/* Custody Schedule Maker: base styles, from prototypes/r4/style.css (round 4 polish, approved 2026-10-28). */
@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
  --ink:#1C1A22; --ink2:#34313D; --muted:#605C68; --faint:#9A97A2; --line:#E8E6EC; --line2:#D6D3DC; --soft:#F6F5F8; --page:#FFFFFF;
  /* Parent colors (round 4): a soft tint fill, a stronger edge, and a dark shade for text, like modern calendars. */
  --a:#5468F0; --at:#EBEEFD; --ae:#5468F0; --ad:#2F3FB8; --am:#AEB7F7;   /* Sam: blue-violet */
  --b:#EC5A6E; --bt:#FCE1E5; --be:#EC5A6E; --bd:#A3263A; --bm:#F6AAB5;   /* Jordan: watermelon */
  --bline:var(--be);
  --r:16px; --wrap:1180px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--ink);font:17px/1.55 Figtree,system-ui,-apple-system,sans-serif;font-feature-settings:"tnum" 0;-webkit-font-smoothing:antialiased}
a{color:inherit}
img,svg{display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
@media (max-width:640px){.wrap{padding:0 16px}}
:focus-visible{outline:3px solid var(--a);outline-offset:2px;border-radius:6px}
.printonly{display:none}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted)}
.num{font-variant-numeric:tabular-nums}

/* header */
.top{height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{white-space:nowrap;display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:17px;letter-spacing:-.01em;min-height:44px}
.brand .mark{width:30px;height:32px}
.toplinks{display:flex;align-items:center;gap:8px}
.toplinks a{white-space:nowrap;text-decoration:none;color:var(--muted);font-weight:500;padding:10px 12px;border-radius:10px;min-height:44px;min-width:44px;justify-content:center;display:inline-flex;align-items:center}
.toplinks a:hover{color:var(--ink);background:var(--soft)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 22px;border-radius:14px;border:0;background:var(--ink);color:#fff;font:600 17px/1 Figtree,system-ui,sans-serif;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--ink2)}
.btn.ghost{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line2)}
.btn.ghost:hover{background:var(--soft)}
.btn.sm{height:44px;padding:0 16px;font-size:16px;border-radius:12px}
.btn.block{width:100%}
.link{background:none;border:0;padding:10px 0;font:500 16px Figtree,system-ui,sans-serif;color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line2);cursor:pointer;min-height:44px;display:inline-flex;align-items:center;gap:6px}
.link:hover{text-decoration-color:var(--ink)}

/* type */
h1,h2,h3{margin:0;letter-spacing:-.025em;line-height:1.08}
.h1{text-wrap:balance;font-size:68px;font-weight:700;letter-spacing:-.035em;line-height:1}
.lede{font-size:20px;color:var(--muted);max-width:30ch;margin:20px 0 0;line-height:1.45}
.q{font-size:40px;font-weight:700}
.qsub{color:var(--muted);margin:10px 0 0;font-size:18px;max-width:40ch}
.h2{font-size:36px;font-weight:700}
.h3{font-size:20px;font-weight:650;letter-spacing:-.01em}
@media (max-width:640px){.toplinks a{padding:10px 6px;font-size:15px}.brand{font-size:16px}.h1{font-size:44px}.lede{font-size:18px;margin-top:14px}.q{font-size:30px}.qsub{font-size:17px}.h2{font-size:28px}}

/* pattern choice cards */
.choices{display:grid;gap:10px}
.choice{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;width:100%;text-align:left;background:#fff;border:0;box-shadow:inset 0 0 0 1px var(--line);border-radius:var(--r);padding:16px 18px;cursor:pointer;font:inherit;color:inherit;text-decoration:none;min-height:72px;transition:box-shadow .15s}
.choice:hover{box-shadow:inset 0 0 0 1px var(--line2),0 1px 2px rgba(24,33,29,.06)}
.choice[aria-checked=true],.choice.on{box-shadow:inset 0 0 0 2px var(--ink)}
.choice .t{font-weight:650;font-size:17px;line-height:1.3;display:block}
.choice .s{color:var(--muted);font-size:15px;line-height:1.35;display:block;margin-top:2px}
.choice .s em{font-style:normal;color:var(--muted);white-space:nowrap}
.strip{display:grid;grid-template-columns:repeat(7,12px);gap:3px}
.strip i{width:12px;height:12px;border-radius:3px;background:var(--am)}
.strip i.b{background:var(--bm);box-shadow:none}
.strip i.o{background:none;box-shadow:inset 0 0 0 1px var(--line2)}

/* calendar cells, shared */
.cal{border-collapse:separate;border-spacing:4px;width:100%;table-layout:fixed}
.cal caption{text-align:left;font-weight:650;font-size:16px;padding:0 4px 6px}
.cal th{font-size:12px;font-weight:500;color:var(--muted);padding:0 0 2px}
.cal td{height:40px;border-radius:10px;font-size:14px;font-weight:600;position:relative;padding:0;vertical-align:top}
.cal td .n{position:absolute;left:8px;top:6px}
.cal td .i{position:absolute;right:7px;bottom:5px;font-size:11px;font-weight:700;color:var(--ink)}
.pa{background:var(--at);box-shadow:inset 0 3px 0 var(--a)}
.pb{background:var(--bt);box-shadow:inset 0 3px 0 var(--b)}
.pa .i,.pa .n{color:var(--ad)}.pb .i,.pb .n{color:var(--bd)}
/* A moving day reads in time order: the home they wake up in on the left, the home they sleep in on the right,
   split by one slanted edge. The night (and the count) belongs to the right-hand home. */
.sw::before,.sw::before{content:"";position:absolute;inset:0;border-radius:inherit;clip-path:polygon(0 0,46% 0,30% 100%,0 100%);pointer-events:none}
.fa::before,.fa::before{background:var(--at);box-shadow:inset 0 3px 0 var(--a)}
.fb::before,.fb::before{background:var(--bt);box-shadow:inset 0 3px 0 var(--b)}
.sw{position:relative;isolation:isolate}
.sw::before,.sw::before{z-index:-1}
.cal td.hol::after{content:"";position:absolute;right:7px;top:7px;width:7px;height:7px;border-radius:50%;background:var(--ink)}
.cal td.today{box-shadow:inset 0 0 0 2px var(--ink)}
.cal td.blank{background:none;box-shadow:none}
.cal.small{border-spacing:2px}.cal.small td{height:24px;border-radius:6px;font-size:11px}.cal.small td .n{left:0;right:0;top:4px;text-align:center}.cal.small td.hol::after{display:none}.cal.small td.hol{box-shadow:inset 0 0 0 2px var(--ink)}.cal.small th{font-size:10px}
.cal.small td .i{display:none}

abbr{text-decoration:none}

/* legend */
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;color:var(--muted);align-items:center}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:16px;height:16px;border-radius:5px;display:inline-block}
.legend i.sw::before{display:none}.legend i.sw{background:linear-gradient(to right,var(--a) 0 42%,var(--b) 42%) top/100% 3px no-repeat,linear-gradient(105deg,var(--at) 0 42%,var(--bt) 42% 100%);box-shadow:none}
.legend i.hk{box-shadow:inset 0 0 0 2px var(--ink);background:#fff}
.legend i.pa{background:var(--at);box-shadow:inset 0 3px 0 var(--a)}.legend i.pb{background:var(--bt);box-shadow:inset 0 3px 0 var(--b)}
.legend i.dot{width:7px;height:7px;border-radius:50%;background:var(--ink);margin:0 4px}

/* split bar */
.split{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:15px}
.split b{font-size:22px;font-weight:700;letter-spacing:-.02em;display:block}
.split .r{text-align:right}
.bar{grid-column:1/-1;height:8px;border-radius:8px;display:flex;overflow:hidden;gap:2px}
.bar .a{background:var(--a)}.bar .b{background:var(--b)}

/* panel */
.panel{background:#fff;border-radius:24px;box-shadow:inset 0 0 0 1px var(--line);padding:24px}
.soft{background:var(--soft);border-radius:24px;padding:24px}

/* progress */
.prog{display:flex;align-items:center;gap:14px;font-size:15px;color:var(--muted);font-weight:500}
.prog .segs{display:flex;gap:4px}.prog .segs i{width:28px;height:4px;border-radius:4px;background:var(--line)}.prog .segs i.on{background:var(--ink)}

/* inputs */
.field{display:grid;gap:6px;font-size:15px;color:var(--muted);font-weight:500}
.field input,.field select{height:48px;border-radius:12px;border:0;box-shadow:inset 0 0 0 1px var(--line2);padding:0 14px;font:500 17px Figtree,system-ui,sans-serif;color:var(--ink);background:#fff;width:100%}
.field input:focus{outline:3px solid var(--a);outline-offset:1px}
.toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:6px 0;border-top:1px solid var(--line);font-weight:500}
.sw-ui{width:56px;height:44px;background:none;position:relative;flex:none;border:0;cursor:pointer;padding:0}
.sw-ui::before{content:"";position:absolute;left:4px;top:8px;width:48px;height:28px;border-radius:28px;background:var(--line2);transition:background .15s}
.sw-ui::after{content:"";position:absolute;left:7px;top:11px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:left .15s}
.sw-ui[aria-checked=true]::before{background:var(--a)}.sw-ui[aria-checked=true]::after{left:27px}

/* footer */
.foot{border-top:1px solid var(--line);margin-top:96px;padding:28px 0 40px;font-size:14px;color:var(--muted)}
.foot .wrap{display:flex;flex-wrap:wrap;gap:8px 32px;justify-content:space-between}
.foot p{margin:0;max-width:62ch}

/* icons */
.ic{flex:none}

/* print */
.smallmonths{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.smallmonths .cal caption{font-size:14px;padding-bottom:2px}
@media print{
  .top,.noprint{display:none!important}
  .foot{margin-top:24px;padding:8px 0 0;border-top:1px solid #ccc}.foot .wrap{display:block}.foot p+p{display:none}
  body{font-size:12px}
  .cal td{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* Thumbnails: at a few pixels a cell is solid colour only (no outline, no moving-day corner). */
.mini-year td.pa,.thumb .year td.pa{background:var(--am);box-shadow:none}
.mini-year td.pb,.thumb .year td.pb{background:var(--bm);box-shadow:none}
.mini-year .sw::before,.thumb .year .sw::before{box-shadow:none}.mini-year .fa::before,.thumb .year .fa::before{background:var(--am)}.mini-year .fb::before,.thumb .year .fb::before{background:var(--bm)}

/* Printing. Black and white by default, for home printers: one home white, the other a mid-light gray ("Shades"),
   or a light dot pattern when "Patterns" is chosen (html.pp),
   both outlined, with the home's initial. "Print in colour" adds html.pc to keep the tints. */
.dots{background-color:#fff;background-image:radial-gradient(circle,#000 1px,transparent 1.35px);background-size:6px 6px}
@media print{
  td,li,i,.bar span,.legendkey,.legendkey .bub{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  html:not(.pc) .pa,html:not(.pc) .fa::before,html:not(.pc) .fa::before,html:not(.pc) .legend i.pa{background:#fff!important;box-shadow:inset 0 0 0 1px #000!important}
  html:not(.pc):not(.pp) .pb,html:not(.pc):not(.pp) .fb::before,html:not(.pc):not(.pp) .fb::before,html:not(.pc):not(.pp) .legend i.pb{background-color:#D3D3D3!important;background-image:none!important;box-shadow:inset 0 0 0 1px #000!important}
  html.pp:not(.pc) .pb,html.pp:not(.pc) .fb::before,html.pp:not(.pc) .fb::before,html.pp:not(.pc) .legend i.pb{background-color:#fff!important;background-image:radial-gradient(circle,#000 1px,transparent 1.35px)!important;background-size:6px 6px!important;box-shadow:inset 0 0 0 1px #000!important}
  html:not(.pc):not(.pp) .legend i.sw{background:linear-gradient(105deg,#fff 0 40%,#D3D3D3 40%)!important;box-shadow:inset 0 0 0 1px #000!important}
  html.pp:not(.pc) .legend i.sw{background:linear-gradient(105deg,#fff 0 40%,transparent 40%),radial-gradient(circle,#000 1px,transparent 1.35px) 0 0/6px 6px!important;box-shadow:inset 0 0 0 1px #000!important}
  html:not(.pc) .pa .n,html:not(.pc) .pb .n,html:not(.pc) .pa .i,html:not(.pc) .pb .i{color:#000!important}
  html:not(.pc):not(.pp) .legendkey.mv .bub,html:not(.pc):not(.pp) .kkey.mv .bub{background:linear-gradient(105deg,#fff 0 44%,#D3D3D3 44%)!important;box-shadow:inset 0 0 0 1px #000!important}
  html.pp:not(.pc) .legendkey.mv .bub,html.pp:not(.pc) .kkey.mv .bub{background:linear-gradient(105deg,#fff 0 44%,transparent 44%),radial-gradient(circle,#000 1px,transparent 1.35px) 0 0/6px 6px!important;box-shadow:inset 0 0 0 1px #000!important}
  html:not(.pc) .lab,html:not(.pc) .xn,html:not(.pc) .hn{background:#fff;padding:1px 4px;border-radius:4px;left:6px!important;right:auto!important;max-width:calc(100% - 12px)}
  html.pp:not(.pc) .kw .where{background:#fff;padding:2px 8px;border-radius:8px}
  html:not(.pc) .year td.hol,html:not(.pc) .cal.small td.hol{box-shadow:inset 0 0 0 2.5px #000!important}
  html:not(.pc) .legend i.hk{box-shadow:inset 0 0 0 2.5px #000!important;background:#fff!important}
  html:not(.pc) .ic,html:not(.pc) .pic,html:not(.pc) .pic svg{color:#000!important}
  html.pp:not(.pc) .year td span,html.pp:not(.pc) .cal td .n,html.pp:not(.pc) .cal td .i,html.pp:not(.pc) .kc .n,html.pp:not(.pc) .kw .day,html.pp:not(.pc) .kw .date{background:#fff;border-radius:3px;padding:0 2px}
  html:not(.pc) .legendkey.pb,html:not(.pc) .kkey.pb,html:not(.pc) .legendkey.pa,html:not(.pc) .kkey.pa{background:#fff!important;background-image:none!important;box-shadow:inset 0 0 0 1px #000!important}
  html:not(.pc):not(.pp) .legendkey.pb .bub,html:not(.pc):not(.pp) .kkey.pb .bub{background-color:#D3D3D3;background-image:none;box-shadow:inset 0 0 0 1px #000}
  html.pp:not(.pc) .legendkey.pb .bub,html.pp:not(.pc) .kkey.pb .bub{background-color:#fff;background-image:radial-gradient(circle,#000 1px,transparent 1.35px);background-size:6px 6px;box-shadow:inset 0 0 0 1px #000}
  html:not(.pc) .legendkey.pa .bub,html:not(.pc) .kkey.pa .bub{box-shadow:inset 0 0 0 1px #000}
  html:not(.pc) .kc .lab{font-size:10px!important;line-height:1.15;bottom:6px!important;max-width:calc(100% - 12px)!important}
  .printonly{display:inline!important}
  html:not(.pc) .year td.hol.sw::before{box-shadow:inset 0 0 0 2.5px #000!important}
  html:not(.pc) .bar .a{background:#fff!important;box-shadow:inset 0 0 0 1px #000}html:not(.pc) .bar .b{background:#D3D3D3!important;box-shadow:inset 0 0 0 1px #000}
}

/* The same black-and-white print look, on screen (PDF page preview). */
.bwp .pa,.bwp .fa::before,.bwp .fa::before,.bwp .legend i.pa{background:#fff!important;box-shadow:inset 0 0 0 1px #000!important}
.bwp:not(.pp) .pb,.bwp:not(.pp) .fb::before,.bwp:not(.pp) .fb::before,.bwp:not(.pp) .legend i.pb{background-color:#D3D3D3!important;background-image:none!important;box-shadow:inset 0 0 0 1px #000!important}
.bwp.pp .pb,.bwp.pp .fb::before,.bwp.pp .fb::before,.bwp.pp .legend i.pb{background-color:#fff!important;background-image:radial-gradient(circle,#000 1px,transparent 1.35px)!important;background-size:6px 6px!important;box-shadow:inset 0 0 0 1px #000!important}
.bwp:not(.pp) .legend i.sw{background:linear-gradient(105deg,#fff 0 40%,#D3D3D3 40%)!important;box-shadow:inset 0 0 0 1px #000!important}
.bwp.pp .legend i.sw{background:linear-gradient(105deg,#fff 0 40%,transparent 40%),radial-gradient(circle,#000 1px,transparent 1.35px) 0 0/6px 6px!important;box-shadow:inset 0 0 0 1px #000!important}
.bwp .pa .n,.bwp .pb .n,.bwp .pa .i,.bwp .pb .i{color:#000!important}
.bwp .bar .a{background:#fff!important;box-shadow:inset 0 0 0 1px #000}.bwp .bar .b{background:#D3D3D3!important;box-shadow:inset 0 0 0 1px #000}

.bwp:not(.pp) .kkey.mv .bub{background:linear-gradient(105deg,#fff 0 44%,#D3D3D3 44%)!important;box-shadow:inset 0 0 0 1px #000!important}
.bwp.pp .kkey.mv .bub{background:linear-gradient(105deg,#fff 0 44%,transparent 44%),radial-gradient(circle,#000 1px,transparent 1.35px) 0 0/6px 6px!important;box-shadow:inset 0 0 0 1px #000!important}
.bwp .lab,.bwp .xn,.bwp .hn{background:#fff;padding:1px 4px;border-radius:4px;left:8px!important;right:auto!important;max-width:calc(100% - 22px)}

.bwp .year td.hol{box-shadow:inset 0 0 0 2.5px #000!important}
.bwp .legend i.hk{box-shadow:inset 0 0 0 2.5px #000!important;background:#fff!important}
.bwp .ic,.bwp .pic{color:#000!important}
.bwp.pp .year td span,.bwp.pp .cal td .n,.bwp.pp .cal td .i,.bwp.pp .kc .n{background:#fff;border-radius:3px;padding:0 2px}
.bwp .kkey.pb,.bwp .kkey.pa{background:#fff!important;background-image:none!important;box-shadow:inset 0 0 0 1px #000!important}
.bwp:not(.pp) .kkey.pb .bub{background-color:#D3D3D3;background-image:none;box-shadow:inset 0 0 0 1px #000}
.bwp.pp .kkey.pb .bub{background-color:#fff;background-image:radial-gradient(circle,#000 1px,transparent 1.35px);background-size:6px 6px;box-shadow:inset 0 0 0 1px #000}
.bwp .kkey.pa .bub{box-shadow:inset 0 0 0 1px #000}
.bwp .kc .lab{font-size:10.5px!important;line-height:1.15;bottom:6px!important}

/* The black-and-white print switch: gray shades (default) or patterns. */
.pmode{display:inline-flex;align-items:center;gap:4px;background:var(--soft);border-radius:12px;padding:4px;font-size:14px;color:var(--muted)}
.pmode span{padding:0 6px 0 8px}
.pmode button{min-height:44px;min-width:44px;padding:0 12px;border:0;border-radius:9px;background:none;font:600 14px Figtree,system-ui,sans-serif;color:var(--muted);cursor:pointer}
.pmode button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}

/* ---------- phase 2 additions ---------- */
.foot .fcol{display:grid;gap:10px;max-width:62ch}
.foot .brand{font-size:15px;color:var(--ink)}
.flinks{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:flex-start}
.flinks a{color:var(--muted);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.flinks a:hover{color:var(--ink);text-decoration:underline}
.fine{font-size:14px;margin:8px 0 0}
.soon{display:inline-block;vertical-align:middle;margin-left:8px;font-size:13px;font-weight:600;letter-spacing:0;color:var(--ink2);background:var(--soft);border-radius:999px;padding:3px 10px}
dialog{border:0;border-radius:24px;padding:28px;max-width:440px;width:calc(100% - 32px);box-shadow:0 20px 60px rgba(24,33,29,.25);color:var(--ink)}
dialog::backdrop{background:rgba(24,33,29,.35)}
dialog h2{font-size:24px;font-weight:700;letter-spacing:-.02em;padding-right:36px}
dialog p{color:var(--muted);margin:8px 0 18px}
dialog .x{position:absolute;right:12px;top:12px;width:44px;height:44px;border:0;background:none;border-radius:12px;cursor:pointer;color:var(--muted);display:flex;align-items:center;justify-content:center}
dialog .x:hover{background:var(--soft);color:var(--ink)}
dialog.sheet{max-width:520px;max-height:90vh;overflow:auto}
dialog .hint{color:var(--ink);margin:0 0 12px}
dialog .err{color:#9B1C2E;font-weight:600;margin:10px 0 0}
dialog .done{color:var(--ink);font-weight:600;font-size:18px}
dialog .btn[disabled]{opacity:.45;cursor:default}
.ts-box:empty{display:none}.ts-box{margin-top:12px}
.seo-links{margin-top:72px}
.plinks{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.plinks a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;background:var(--soft);text-decoration:none;font-weight:600;font-size:15px}
.plinks a:hover{background:var(--line)}
.seg.sm{margin:0;padding:3px;border-radius:12px;display:inline-flex;background:var(--soft)}
.seg.sm button{min-height:44px;padding:0 10px;border:0;border-radius:9px;background:none;font:600 14px Figtree,system-ui,sans-serif;color:var(--muted);cursor:pointer}
.seg.sm button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(24,33,29,.08)}
.hrow .toggle span small{display:block;font-size:13px;color:var(--muted);font-weight:500}
.hact{display:inline-flex;align-items:center;gap:8px;flex:none}
.seg.sm button{white-space:nowrap}
@media (max-width:440px){.hrow .toggle{flex-wrap:wrap;row-gap:0}.hrow .toggle>span:first-child{flex:1 1 150px}.hact{margin-left:auto}}
.hact .link{font-size:14px;color:var(--muted)}
/* your own holidays, in the holidays panel */
.mine{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.mine h3{font-size:18px;font-weight:700;letter-spacing:-.01em;margin:0}
.mine #mineSub{margin:4px 0 8px}
.mine #mAdd{margin-top:12px}
.mform{display:grid;gap:14px;margin-top:12px;padding:16px;border-radius:16px;background:var(--soft)}
.mform .mrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mform .mq{display:grid;gap:6px;font-size:15px;color:var(--muted);font-weight:500}
.mform .seg.sm{background:#fff;flex-wrap:wrap;justify-self:start;max-width:100%}
.mform .seg.sm button[aria-pressed=true]{background:var(--ink);color:#fff}
.mform .opts{display:grid;gap:6px}
.mform .opts button{min-height:44px;padding:0 14px;border:0;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1px var(--line2);text-align:left;font:600 15px Figtree,system-ui,sans-serif;color:var(--ink);cursor:pointer}
.mform .opts button[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--ink)}
.mform .opts button[aria-pressed=true]::before{content:"✓ "}
.mform .err{margin:0}
.mform .mbtns{display:flex;align-items:center;gap:16px}
.mine #mineRule .toggle{margin-top:12px}
.mform[hidden],.mine #mAdd[hidden]{display:none}
@media (max-width:440px){.mform .mrow{grid-template-columns:1fr}}
.hhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
@media print{.flinks,.foot .brand{display:none}}

/* review fixes 2026-10-28 */
@media (max-width:640px){.sm-hide{display:none!important}}
.sm-only{display:none}@media (max-width:640px){.sm-only{display:inline}}
a.tap{display:inline-flex;align-items:center;min-height:44px}
.cal.small td.today{box-shadow:none}
.cal.small td.today .n{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;font-weight:800}
.cal.small td.today.hol{box-shadow:inset 0 0 0 2px var(--ink)}
.blocked-note{margin:0;padding:12px 16px;background:#FFF4D6;color:#5A4300;font-size:15px;text-align:center}
/* days before the calendar starts: no home, muted */
/* days before the calendar starts: lighter than the rest, still readable (4.8:1 on white) */
.year td.pre span,.cal td.blank .n.muted{color:#75717D}
.kc td.pre,.kw li.pre,.kidwk .pre,.kidweek .pre{background:none;box-shadow:inset 0 0 0 1px var(--line)}
.kc td.pre .n,.kw li.pre .day,.kw li.pre .date,.kw li.pre .where,.kidwk .pre b,.kidwk .pre .wd{color:#75717D!important}
.kw li.pre .where{font-size:16px;font-weight:600}
@media print{html:not(.pc) .kc td.pre,html:not(.pc) .kw li.pre{background:#fff!important;box-shadow:inset 0 0 0 1px #bbb!important}}
/* the rolling six-week preview */
.roll{margin:14px 0 12px}
.rollnav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.rolltitle{font-weight:650;font-size:16px}
.rollbtns{display:flex;gap:4px}
.rollbtns button,.mbtn{width:44px;height:44px;border:0;border-radius:12px;background:var(--soft);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.rollbtns button:hover,.mbtn:hover{background:var(--line)}
.rollbtns button:disabled,.mbtn.off{opacity:.3;cursor:default;pointer-events:none}
/* Even day cells across the card's full width. Every day is a soft tile before it has a home, so the empty
   calendar already reads as a calendar. A month's short name sits on its first day, above the number. Today is a
   dark pill on the number. (David, 2026-10-29: "the calendar needs to look better before its filled out") */
.cal.roll{border-spacing:4px;width:calc(100% + 8px);margin:0 -4px}
.cal.roll th{padding-bottom:2px}
.cal.roll td{height:46px;border-radius:10px}
.cal.roll td.blank{background:var(--soft)}
.cal.roll td .n{left:0;right:0;top:auto;bottom:7px;text-align:center;font-size:14px;line-height:18px}
.cal.roll td.blank .n.muted{color:var(--muted)}
.cal.roll td .i{display:none}
.cal.roll td .mo{position:absolute;left:0;right:0;top:6px;text-align:center;font-size:9.5px;line-height:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.cal.roll td.pa .mo{color:var(--ad)}.cal.roll td.pb .mo{color:var(--bd)}
.cal.roll td.today{box-shadow:none}
.cal.roll td.pa.today{box-shadow:inset 0 3px 0 var(--a)}.cal.roll td.pb.today{box-shadow:inset 0 3px 0 var(--b)}
.cal.roll td.today .n{left:50%;right:auto;transform:translateX(-50%);min-width:26px;padding:0 6px;border-radius:999px;background:var(--ink);color:#fff!important;text-decoration:none;font-weight:700}
.cal.roll td.hol,.cal.roll td.hol.today{box-shadow:inset 0 0 0 2px var(--ink)}
@media (max-width:420px){.cal.roll{border-spacing:3px;width:calc(100% + 6px);margin:0 -3px}.cal.roll td{height:44px;border-radius:8px}.cal.roll td .n{font-size:13px}.cal.roll td.today .n{min-width:24px;padding:0 5px}}
@media print{.cal.roll td.today .n{background:none;color:#000!important}}
.mnav{display:inline-flex;align-items:center;gap:12px}
@media print{.rollbtns,.mbtn{display:none!important}}
.cals .roll table.roll{display:table!important}
.live .cals,#liveC{display:block;margin:0}
