/* Soft glass UI, ported from design/redesign-5.html. Static wash, translucent rows, transform/opacity-only motion. All type in rem. */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
:root{
  --ink:#2a2640; --ink2:#4f4a68; --line:rgba(42,38,64,.14);
  --a:#2b3b94; --s:#8f2a14; --t:#0a5e41;               /* owner WORD colours (text) */
  --fa:158,168,255; --fs:255,176,148; --ft:118,214,176; /* owner block fills (rgb) */
  --row:rgba(255,255,255,.58);                          /* translucent row fill, raised from ~.40 for legibility */
  --card:rgba(255,255,255,.72);
  --accent:#4b49c6; --accent-ink:#fff; --hi:rgba(255,214,110,.6);
  --warn:#7a2400; --warn-bg:#fff0c4; --focus:#2f2bb0; --now:#b3123f;
  --font:ui-rounded,"SF Pro Rounded","Avenir Next",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
  --hr:6rem; /* one timeline hour */
}
body{margin:0;min-height:100vh;color:var(--ink);font-family:var(--font);font-size:1.0625rem;font-weight:450;line-height:1.35;-webkit-font-smoothing:antialiased;overflow-wrap:anywhere;background:#f3e3f2}
/* static wash, one layer, never animated: peach -> pink-lavender -> periwinkle */
body::before{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,#fde4d7 0%,#f9e3ea 28%,#f1e2f8 58%,#dde3fb 100%)}
button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;touch-action:manipulation;text-align:inherit;-webkit-touch-callout:none}
h1,h2,h3,p,ul,dl,dd,dt{margin:0;padding:0}
ul{list-style:none}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
#app{width:min(100%,430px);margin:0 auto;padding:0 0 calc(8.5rem + env(safe-area-inset-bottom))}
.press{transition:transform .1s ease-out}
.press:active{transform:scale(.97)}
html[data-rm="on"] .press:active{transform:none;background-color:rgba(42,38,64,.1)}
@media (prefers-reduced-transparency:reduce){.glass,.dock,#scrim,.sheet{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.glass,.dock{background:#fff!important}.sheet{background:#fff!important}#scrim{background:rgba(42,38,64,.6)!important}}
/* ---------- home ---------- */
.topline{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;padding:6px 10px 0}
.topline .date{flex:1 1 8rem;text-align:center;font-size:1rem;font-weight:500;color:var(--ink);line-height:1.2}
.chip{min-height:44px;min-width:44px;padding:0 14px;border-radius:22px;font-weight:600;font-size:1rem;background:rgba(255,255,255,.5);display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}
.greet{padding:22px 22px 6px}
.greet h1{font-size:2.75rem;line-height:1.04;font-weight:400;letter-spacing:-.025em;overflow-wrap:break-word}
.greet .ctx{font-size:1rem;font-weight:450;color:var(--ink2);margin-top:14px}
.greet .sum{font-size:1.1875rem;font-weight:500;margin-top:14px}
.sect{padding:0 14px;margin-top:20px}
.sect>h2{font-size:1.1875rem;font-weight:500;padding:0 8px 4px;line-height:1.3}
.sect>.sub{font-size:.9375rem;color:var(--ink2);padding:0 8px 10px}
.sect+.sect{border-top:0}
.evts{display:grid;gap:8px;margin-top:10px}
.evt{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;min-height:60px;padding:12px 16px;border-radius:20px;background:var(--row);position:relative;text-align:left}
.e-main{min-width:0;flex:1 1 9rem}
.ttl{display:block;font-size:1.0625rem;font-weight:500;line-height:1.3}
.e-time{flex:none;text-align:right;font-size:.9375rem;font-weight:500;color:var(--ink2);max-width:44%;line-height:1.3;padding-top:2px}
.e-time small{display:block;font-size:.875rem;font-weight:450}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;font-size:.875rem;font-weight:550;color:var(--ink2);margin-top:3px}
.note{display:block;font-size:.875rem;font-weight:500;color:var(--ink2);margin-top:3px}
.hl{position:absolute;inset:0;border-radius:20px;background:var(--hi);opacity:0;pointer-events:none}
.own{display:inline-flex;align-items:center;gap:6px;font-weight:700;white-space:nowrap}
.own i{display:inline-block;width:.75rem;height:.75rem;background:currentColor;flex:none}
.own-a{color:var(--a)} .own-a i{border-radius:50%}
.own-s{color:var(--s)} .own-s i{border-radius:2px}
.own-t{color:var(--t)} .own-t i{transform:rotate(45deg) scale(.85)}
.tag{display:inline-block;font-size:.875rem;font-weight:700;padding:0 8px;border-radius:12px;border:2px solid var(--ink2);color:var(--ink);line-height:1.3}
.tag-tentative{border-style:dashed} .tag-proposal{border-style:dotted}
.tag-idea,.tag-to-do{background:var(--ink);color:#fff;border-color:var(--ink);letter-spacing:.04em}
.tag-milestone,.tag-holiday{border-color:transparent;background:rgba(42,38,64,.1)}
.tag-new{border-color:var(--ink);background:var(--hi)}
.cbrow{display:flex;align-items:flex-start;gap:2px;padding:4px 16px 4px 4px;border-radius:20px;background:var(--row);min-height:60px}
.cb{flex:none;width:44px;height:52px;display:flex;align-items:center;justify-content:center}
.cb span{width:1.5rem;height:1.5rem;border-radius:8px;border:2px solid #615c7c;background:rgba(255,255,255,.7);display:block;position:relative}
.cb[aria-pressed="true"] span{background:var(--accent);border-color:var(--accent)}
.cb[aria-pressed="true"] span::after{content:"";position:absolute;left:.4rem;top:.1rem;width:.45rem;height:.8rem;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(40deg)}
.cbrow.done .ttl{text-decoration:line-through;color:var(--ink2)}
.cbrow .e-main{padding:10px 0}
.cbrow .e-time{padding-top:12px}
.txtbtn{min-height:44px;min-width:44px;padding:0 8px;font-weight:600;font-size:1rem;text-decoration:underline;text-underline-offset:3px}
.nothing{font-size:1.0625rem;font-weight:500;padding:6px 8px 4px}
.nothing small{display:block;font-weight:450;font-size:.9375rem;color:var(--ink2);margin-top:4px}
.gap{margin:2px 8px;padding:6px 0;font-size:.875rem;color:var(--ink2);border-top:2px dotted rgba(79,74,104,.55)}
.lvc{margin:10px 0 0;padding:14px 16px;border-radius:20px;background:rgba(214,226,255,.9);font-size:1rem;font-weight:450}
.lvc b{display:block;font-size:1.0625rem;font-weight:600}
.lvc .lvp{display:block;margin-top:4px}
button.lvc{display:block;width:100%;min-height:44px;text-align:left;color:var(--ink);font:inherit;font-size:1rem;font-weight:450}
.ovl{margin:8px 0;padding:12px 14px;border-radius:18px;background:var(--warn-bg);font-size:1rem;font-weight:600}
.ovl.maybe{background:var(--card2,rgba(255,255,255,.7));border:1px dashed rgba(42,38,64,.4)}
.ovl small{display:block;font-size:.9375rem;font-weight:500;margin-top:2px}
.fnote{margin:8px 0;padding:10px 14px;border-radius:18px;background:rgba(255,255,255,.7);border:2px dashed var(--ink2);font-size:.9375rem;font-weight:550;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 10px}
/* ---------- calendar view ---------- */
.calbar{position:relative;z-index:15;padding:6px 8px 2px;margin:0 6px;border-radius:0 0 26px 26px;background:rgba(251,236,242,.88);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
@media (min-height:760px) and (min-width:380px){.calbar{position:sticky;top:0}}
.crow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px;min-height:48px}
.crow b{font-size:1.1875rem;font-weight:600;color:var(--accent);flex:1 1 6rem;text-align:center;line-height:1.2}
.days{position:relative;display:grid;grid-template-columns:repeat(7,1fr);padding-bottom:4px}
.pill{position:absolute;left:0;top:0;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--accent);will-change:transform;pointer-events:none}
.dbtn{position:relative;min-width:0;min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:0;text-align:center;padding:2px 0 4px}
.dbtn .w{font-size:.875rem;font-weight:600;color:var(--ink2);line-height:1.4}
.dbtn .n{width:min(2.25rem,12.5cqw);height:min(2.25rem,12.5cqw);display:grid;place-items:center;border-radius:50%;font-size:1.125rem;font-weight:600;font-variant-numeric:tabular-nums;position:relative}
.dbtn .c{font-size:.875rem;line-height:1.2;min-height:1.05rem;font-weight:600;color:var(--ink2)}
.dbtn.td .n{box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent);font-weight:700}
.dbtn.lv .c::after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:3px;border-radius:2px;background:var(--a)}
.dbtn[aria-pressed="true"] .n{color:#fff;box-shadow:none}
.dbtn[aria-pressed="true"] .w{color:var(--accent);font-weight:700}
#stripWrap{container-type:inline-size}
.cal{margin:10px 12px 14px;padding:14px 12px 14px;touch-action:pan-y}
.glass{background:var(--card);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border:1px solid rgba(255,255,255,.7);box-shadow:0 8px 28px rgba(80,50,110,.08);border-radius:28px}
.dh{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 4px}
.dh h2{font-size:1.5rem;line-height:1.15;font-weight:500;letter-spacing:-.01em}
.dh .st{display:flex;flex:none}
.dh .st button{min-width:44px;min-height:44px;border-radius:22px;font-size:1.5rem;text-align:center;line-height:1}
.cnt{font-size:.9375rem;color:var(--ink2);margin:2px 4px 8px;font-weight:500}
.modes{display:flex;gap:4px;margin:0 4px 6px;padding:3px;border-radius:24px;background:rgba(255,255,255,.6);width:max-content;max-width:calc(100% - 8px)}
.modes button{min-height:44px;padding:0 16px;border-radius:22px;font-weight:600;font-size:1rem;text-align:center}
.modes button[aria-pressed="true"]{background:var(--accent);color:#fff}
.alld{margin:6px 0 4px}
.alld .lab{font-size:.875rem;font-weight:700;color:var(--ink2);padding:0 4px 4px;letter-spacing:.04em;text-transform:uppercase}
.alld .evt{min-height:52px;border-radius:16px;margin-bottom:6px;background:rgba(255,255,255,.7)}
.tl{position:relative;margin:8px 0 0}
.hrow{position:absolute;left:0;right:0;border-top:1px solid var(--line);height:0}
.hrow span{position:absolute;left:0;top:-.7rem;width:3.4rem;font-size:.875rem;font-weight:550;color:var(--ink2);line-height:1.2;background:transparent}
.hrow:first-child span{top:.15rem}
.lane{position:absolute;left:3.6rem;right:0;top:0;bottom:0}
.blk{position:absolute;padding:5px 7px 4px;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;text-align:left;min-width:0}
.blk .bt{display:block;font-size:1rem;font-weight:500;line-height:1.2;overflow:hidden;-webkit-box-orient:vertical;display:-webkit-box;flex:none}
.blk .bm{display:flex;flex-wrap:wrap;gap:0 6px;font-size:.875rem;line-height:1.2;font-weight:600;color:var(--ink2);margin-top:2px;flex:none}
.bk-a{background:linear-gradient(90deg,rgba(var(--fa),.62),rgba(var(--fa),.34));border-left:4px solid #5c68d8}
.bk-s{background:linear-gradient(90deg,rgba(var(--fs),.66),rgba(var(--fs),.36));border-left:4px solid #e0714c}
.bk-t{background:linear-gradient(90deg,rgba(var(--ft),.62),rgba(var(--ft),.34));border-left:4px solid #2fa176}
.blk.tent{border:2px dashed var(--ink2);border-left-width:4px}
.blk.prop{border:2px dotted var(--ink2);border-left-width:4px}
.blk.ov::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(255,255,255,.55) 6px 9px);pointer-events:none}
.blk>*{position:relative}
.nowl{position:absolute;left:0;right:0;height:0;border-top:2px solid var(--now);z-index:0;pointer-events:none}
.nowl span{position:absolute;left:0;top:auto;bottom:3px;font-size:.875rem;font-weight:700;color:var(--now);background:rgba(255,255,255,.85);border-radius:8px;padding:0 3px;line-height:1.3}
.nowl::after{content:"";position:absolute;left:3.5rem;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--now)}
/* dock: people filter + floating Add plan */
.dock{position:fixed;bottom:0;left:50%;width:min(100%,430px);transform:translateX(-50%);z-index:25;padding:6px 10px calc(6px + env(safe-area-inset-bottom));background:rgba(252,240,246,.9);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:26px 26px 0 0;box-shadow:0 -6px 24px rgba(80,50,110,.08)}
.filt{display:flex;flex-wrap:wrap;gap:2px;justify-content:space-between}
.filt button{flex:1 1 auto;min-height:48px;padding:0 6px;border-radius:24px;font-weight:600;font-size:1rem;text-align:center;color:var(--ink2);white-space:nowrap}
.filt button[aria-pressed="true"]{background:rgba(var(--fa),.5);color:var(--ink);font-weight:700;box-shadow:inset 0 0 0 2px var(--accent)}
.fabwrap{position:fixed;bottom:0;left:50%;width:min(100%,430px);transform:translateX(-50%);z-index:26;pointer-events:none;display:flex;justify-content:flex-end;padding:0 16px calc(1rem + env(safe-area-inset-bottom))}
.fabwrap.cal{padding-bottom:calc(4.6rem + env(safe-area-inset-bottom))}
.fab{pointer-events:auto;min-height:56px;padding:0 22px 0 16px;display:flex;align-items:center;gap:8px;background:var(--accent);color:var(--accent-ink);font-size:1.125rem;font-weight:600;border-radius:28px;box-shadow:0 10px 26px rgba(75,73,198,.38)}
.fab b{font-size:1.75rem;line-height:1;font-weight:400}
/* ---------- scrim + sheets ---------- */
#scrim{position:fixed;inset:0;z-index:40;background:linear-gradient(180deg,rgba(214,222,255,.5),rgba(250,222,238,.58) 55%,rgba(255,226,210,.6));-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);opacity:0}
#sheets{position:fixed;inset:0;z-index:50;display:flex;justify-content:center;align-items:flex-end;pointer-events:none}
.sheet{pointer-events:auto;width:min(100%,430px);max-height:var(--vvh,92dvh);overflow:auto;overscroll-behavior:contain;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(24px) saturate(1.3);backdrop-filter:blur(24px) saturate(1.3);border-radius:32px 32px 0 0;padding:0 20px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -12px 44px rgba(70,40,110,.16);position:relative}
.sheet.sh-add{background:rgba(255,255,255,.86)}
.shead{touch-action:none;cursor:grab;position:sticky;top:0;z-index:2;margin:0 -20px;padding:8px 20px 0;user-select:none;-webkit-user-select:none;border-radius:32px 32px 0 0;background:#fff}
.grab{width:44px;height:5px;border-radius:3px;background:#8d88a6;margin:4px auto 4px}
.sh-head{display:flex;align-items:center;justify-content:space-between;min-height:52px}
.sh-head h2{font-size:1.5rem;line-height:1.2;font-weight:500}
.txt{white-space:nowrap;flex:none;min-height:44px;min-width:44px;padding:0 6px;font-weight:600;text-decoration:underline;text-underline-offset:3px;font-size:1rem}
.lbl{display:block;font-size:.875rem;font-weight:600;margin:2px 0 6px;color:var(--ink2)}
.inwrap{position:relative}
#add-in{width:100%;height:56px;font:inherit;font-size:1.125rem;font-weight:500;padding:0 calc(4.5rem + 8px) 0 18px;color:var(--ink);background:rgba(255,255,255,.9);border:2px solid rgba(75,73,198,.25);border-radius:28px}
#add-in::placeholder{color:#5c5776;opacity:1}
#add-in:focus{border-color:var(--focus);outline:none}
.clr{position:absolute;right:4px;top:6px;min-height:44px;min-width:44px;padding:0 .75rem;white-space:nowrap;font-weight:600;text-decoration:underline;text-underline-offset:3px;font-size:1rem}
.starters{margin:14px 0 4px;display:grid;gap:2px}
.starters .lead{font-size:.875rem;font-weight:600;color:var(--ink2);margin-bottom:2px}
.stb{display:flex;align-items:center;gap:14px;width:100%;min-height:56px;padding:6px 4px;border-radius:18px;font-size:1.125rem;font-weight:500;line-height:1.25}
.stb small{display:block;font-size:.875rem;color:var(--ink2);font-weight:500}
.ic{flex:none;width:2.75rem;height:2.75rem;border-radius:50%;display:grid;place-items:center;color:#fff}
.ic svg{width:1.3rem;height:1.3rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ic1{background:linear-gradient(135deg,#e0506f,#c43a63)}
.ic2{background:linear-gradient(135deg,#f08a3a,#d9691f)}
.ic3{background:linear-gradient(135deg,#6a72a8,#4a5088)}
.ic4{background:linear-gradient(135deg,#6c6ee0,#4b49c6)}
.ic5{background:linear-gradient(135deg,#2fa876,#17855a)}
.parsed{margin:12px 0 4px;background:rgba(238,240,252,.9);border-radius:20px;padding:2px 16px}
.parsed div{display:flex;align-items:baseline;min-height:44px;padding:8px 0;gap:12px}
.parsed div+div{border-top:1px solid var(--line)}
.parsed dt{width:4rem;flex:none;font-size:.875rem;color:var(--ink2);font-weight:600}
.parsed dd{font-size:1.0625rem;font-weight:600}
.parsed em{font-style:normal;font-weight:700;color:var(--warn)}
.seg-row{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{flex:1 1 auto;padding:0 14px;white-space:nowrap;min-height:48px;font-weight:600;text-align:center;border-radius:24px;background:rgba(238,240,252,.95);font-size:1rem}
.seg button[aria-pressed="true"]{background:var(--accent);color:#fff}
.warn{margin:10px 0 0;padding:10px 14px;font-size:.9375rem;font-weight:550;color:var(--warn);background:var(--warn-bg);border-radius:16px}
.warn.err{background:#ffdcd2;color:#6d1500}
.warn.err b{display:block;font-size:1rem}
.save{display:block;width:100%;min-height:56px;margin-top:12px;font-size:1.125rem;font-weight:600;text-align:center;background:var(--accent);color:var(--accent-ink);border-radius:28px}

.chk{display:flex;align-items:center;gap:10px;min-height:44px;margin-top:6px;font-size:.9375rem;color:var(--ink2);font-weight:500}
.chk input{width:22px;height:22px;flex:none}
.mock{font-size:.875rem;color:var(--ink2);margin-top:4px;text-align:center}
.dl{margin:4px 0 6px;border-radius:20px;background:rgba(238,240,252,.9);padding:2px 16px}
.dl div{display:flex;gap:12px;padding:10px 0;align-items:baseline;min-height:44px}
.dl div+div{border-top:1px solid var(--line)}
.dl dt{width:4rem;flex:none;font-size:.875rem;color:var(--ink2);font-weight:600}
.dl dd{font-size:1.0625rem;font-weight:600}
.dt{font-size:1.625rem;line-height:1.2;font-weight:500;padding:6px 0 8px}
.btnrow{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.btn2{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:26px;font-weight:600;font-size:1.0625rem;background:var(--accent);color:#fff;text-align:center;padding:0 14px}
.btn2.ghost{background:rgba(238,240,252,.95);color:var(--ink)}
.btn2[aria-disabled="true"]{background:#e3e4ee;color:#403c58;cursor:not-allowed}
.menu-list li{border-top:1px solid var(--line)}
.menu-list button,.menu-list .na{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:56px;font-size:1.125rem;font-weight:500;text-align:left}
.menu-list .na{color:var(--ink2)}.menu-list small{font-size:.875rem}
.plan-list li{padding:12px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.plan-list b{font-size:1.0625rem;font-weight:600}
.mo-nav{display:flex;align-items:center;justify-content:space-between;margin:2px 0 6px}
.mo-nav b{font-size:1.1875rem;font-weight:600}
.mo-nav button{min-width:44px;width:48px;height:48px;flex:none;font-size:1.75rem;text-align:center}
.mo-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.mo-h{font-size:.875rem;color:var(--ink2);text-align:center;padding:4px 0;font-weight:600}
.mo-d{min-height:52px;min-width:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:1.0625rem;font-weight:550;position:relative;border-radius:50%}
.mo-d small{font-size:.875rem;font-weight:600;line-height:1;min-height:.875rem;color:var(--ink2)}
.mo-d.out{color:#5f5a78;font-weight:450}
.mo-d.lv::after{content:"";position:absolute;left:12px;right:12px;bottom:3px;height:3px;background:var(--a);border-radius:2px}
.mo-d.sel{background:var(--accent);color:#fff}.mo-d.sel small{color:#fff}
.mo-d.td span{box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent);padding:0 6px;border-radius:12px;font-weight:700}
.mo-d.sel.td span{box-shadow:none;color:#fff}
.mo-key{font-size:.875rem;color:var(--ink2);margin-top:10px}
#toast{position:fixed;left:50%;width:min(calc(100% - 24px),406px);margin-left:calc(min(calc(100% - 24px),406px)/-2);bottom:calc(8.4rem + env(safe-area-inset-bottom));z-index:30;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;justify-content:space-between;padding:10px 8px 10px 18px;background:#2f2b52;color:#fff;font-size:.9375rem;font-weight:550;border-radius:24px;box-shadow:0 8px 24px rgba(30,20,60,.3)}
#toast span{flex:1 1 12rem}
#toast .ta{display:flex;gap:2px}
#toast button{min-height:44px;min-width:56px;padding:0 10px;font-weight:700;text-decoration:underline;text-underline-offset:3px;color:#fff;border-radius:22px;text-align:center}
.mockft{margin:18px 14px 8px;padding:12px 16px;font-size:.875rem;color:var(--ink2)}
.mockft p{margin-bottom:4px}
.mocklinks{display:flex;flex-wrap:wrap;gap:0 2px}
.mocklinks a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;justify-content:center;padding:0 9px;font-weight:600;color:var(--ink)}
.mocklinks a[aria-current="true"]{text-decoration:none;background:rgba(42,38,64,.1);border-radius:14px}
.rmt{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:600;font-size:.9375rem;color:var(--ink)}
.rmt i{width:44px;height:26px;border-radius:13px;background:#8d88a6;position:relative;flex:none}
.rmt i::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff}
.rmt[aria-pressed="true"] i{background:var(--accent)}
.rmt[aria-pressed="true"] i::after{left:21px}
@container (max-width:20rem){.dbtn .n{width:min(2rem,11.5cqw);height:min(2rem,11.5cqw);font-size:1rem}.crow b{font-size:1.0625rem}}
@container (max-width:40rem){.dbtn .n{width:min(2.25rem,11.5cqw);height:min(2.25rem,11.5cqw)}}
@media (max-width:340px){.calbar{margin:0;padding:6px 4px 2px}.greet h1{font-size:2.375rem}.chip{padding:0 10px}.topline .date{font-size:.9375rem}}
/* ---------- additions for the live prototype ---------- */
.save.off,.save[aria-disabled="true"]{background:#dcdcec;color:#403c58;cursor:not-allowed}
.save[aria-busy="true"]{opacity:.85}
.sbody{padding-top:2px}
.inp{width:100%;min-height:48px;font:inherit;font-size:1.0625rem;font-weight:500;padding:0 14px;color:var(--ink);background:rgba(255,255,255,.92);border:2px solid rgba(75,73,198,.25);border-radius:16px}
.inp:focus{border-color:var(--focus);outline:none}
.fld{margin-top:10px}
.panel2{margin-top:8px;padding:12px 14px;border-radius:18px;background:rgba(238,240,252,.9)}
.panel2 .btn2{margin-top:8px}
.card2{margin-top:10px;padding:14px 16px;border-radius:20px;background:rgba(238,240,252,.9)}
.card2 h3{font-size:1.0625rem;font-weight:600;margin-bottom:4px}
.card2 p{margin-top:6px;font-size:1rem}
.cards2{display:grid;gap:0}
.row2{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:8px}
.ul2{padding-left:1.1rem;list-style:disc;display:grid;gap:6px;margin-top:6px;font-size:1rem}
.headline{font-size:1.1875rem;font-weight:600;margin:10px 0 4px}
.disc{margin-top:10px;border-top:1px solid var(--line)}
.disc>button{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:52px;font-weight:600;font-size:1.0625rem}
.na small,.sm{font-size:.875rem;font-weight:450;color:var(--ink2)}
.proto{margin:18px 14px 8px;padding:12px 16px;font-size:.875rem;color:var(--ink2);border-radius:20px}
.proto p{margin:0 0 4px}
.tag-needs{border-style:dashed;background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}
.tag-work-free{border-color:transparent;background:rgba(42,38,64,.1)}
.clampnote{font-size:.875rem;color:var(--ink2);margin-top:2px}
.foot{margin:10px 4px 0;font-size:.9375rem;color:var(--ink2)}
.btn2.danger{background:#a3261a;color:#fff}
.btn2+.btn2{margin-top:0}
.sheet{overflow-x:hidden}
.sheet .seg button,.sheet .btn2{min-width:0}
.mock{margin-top:8px}
/* sheets and layout must never push the page sideways, even at 320px and 200% text */
html,body{max-width:100%;overflow-x:hidden}
#app,.calbar,.cal,.evt,.sheet{min-width:0}
.crow .chip{flex:0 1 auto;padding:0 12px}
.filt button{min-width:44px;padding:0 4px}
@media (max-width:360px){.fab{padding:0 16px 0 12px;font-size:1rem}.dock{padding-left:4px;padding-right:4px}}
/* reduced motion: no transitions at all, OS setting or in-app toggle */
@media (prefers-reduced-motion:reduce){.press{transition:none}.press:active{transform:none;background-color:rgba(42,38,64,.1)}}
html[data-rm="on"] .press{transition:none}

.mo-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
.mo-d{min-width:0}
@media (max-width:340px){.sheet{padding-left:6px;padding-right:6px}.shead{margin:0 -6px;padding-left:6px;padding-right:6px}.sh-head{padding:0 6px}.sbody{padding:0}}

.lane{z-index:1}
/* large text on a narrow phone: keep the 7-day strip and the day heading inside the screen, never below 14px/16px */
.dbtn .w,.dbtn .c{font-size:max(14px,min(.875rem,4.6cqw))}
.dbtn .n{font-size:max(16px,min(1.125rem,5.4cqw))}
.dh h2{font-size:min(1.5rem,7.4vw);overflow-wrap:break-word;min-width:0}
.dbtn{overflow:hidden}

/* ---- CAL-APP-01: storage notices, edit form, leave prompt, data controls ---- */
textarea.inp{min-height:96px;padding:12px 14px;line-height:1.35;resize:vertical}
.notice{margin:10px 14px 0;padding:12px 16px;border-radius:20px;background:#fff3c9;color:#4a3300;border:2px solid #8a6200;font-size:.9375rem;font-weight:550}
.notice p{margin:0 0 4px}
.leave{margin-top:12px;padding:14px 16px;border-radius:20px;background:#fff;border:2px solid var(--accent)}
.leave .big{font-size:1.125rem;font-weight:650;color:var(--ink)}
.leave .sub{font-size:.9375rem;color:var(--ink2);margin:4px 0 10px}
.leave[hidden]{display:none}
.mn-sec{margin-top:16px;padding-top:6px}
.mn-sec>h3{font-size:.875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2);margin:0 4px 6px}
.filebtn{position:relative;display:flex;align-items:center;min-height:56px;width:100%;font-size:1.125rem;font-weight:500;cursor:pointer}
.filebtn input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:1rem}
.filebtn:focus-within{outline:3px solid var(--focus);outline-offset:2px;border-radius:12px}
.ad-why{display:block;font-size:.875rem;font-weight:450}

/* ---- CAL-PLAN-UI-01: Find a time ---- */
.fs{border:0;margin:16px 0 0;padding:0;min-width:0}
.fs>legend.lbl{padding:0;margin:0 0 6px;font-size:.9375rem;color:var(--ink)}
.fpre{margin-top:10px}
.fwho{margin-top:8px}.fw-n{font-size:1rem;font-weight:600;margin-bottom:4px}
.fr{margin-top:12px;padding:10px 12px;border-radius:18px;background:rgba(238,240,252,.9)}
.fr .seg{margin-top:8px}
.row2.two{align-items:flex-end;flex-wrap:wrap}.row2.two>*{flex:1 1 9rem;min-width:0}
.fld2{min-width:0}
.seg.wd button{padding:0 8px;min-width:44px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip2{min-height:44px;padding:0 12px;border-radius:22px;background:rgba(238,240,252,.95);border:2px solid var(--ink2);font-weight:600;font-size:1rem}
.btn2[aria-disabled="true"]{pointer-events:none}
.homeacts{margin:4px 0 0;gap:0 14px}
.rs-h{font-size:1.25rem;font-weight:600;line-height:1.25;margin:18px 0 4px;outline:none}
.rs-q{margin:8px 0;padding:12px 14px;border-radius:16px;background:rgba(238,240,252,.95);font-size:1rem}
.rs-g{font-size:1rem;font-weight:700;margin:16px 0 2px}
.rs-list{display:grid;gap:10px;margin-top:8px;list-style:none;padding:0}
.rc{padding:14px 16px;border-radius:20px;background:var(--row);border:2px solid rgba(42,38,64,.18);min-width:0}
.rc-infeasible{border-color:var(--warn)}
.rc-h{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.rc-h h4{font-size:1.125rem;font-weight:600;flex:1 1 10rem;min-width:0}
.rc-p{display:grid;gap:3px;margin-top:6px;font-size:1rem;list-style:none;padding:0}
.rc-l{font-size:.875rem;font-weight:700;color:var(--ink2);margin-top:8px;letter-spacing:.03em}
.rc-c{padding-left:1.1rem;list-style:disc;font-size:.9375rem;color:var(--ink)}
.rc .btn2{margin-top:10px;width:100%}
.tag-feasible{border-style:dotted}.tag-conditional{border-style:dashed;background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}
.tag-infeasible{background:var(--ink);color:#fff;border-color:var(--ink)}
.tag-tie,.tag-check{border-style:dashed}
.tag-check{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}
.review{border:2px solid var(--warn);background:#fff;outline:none}
.fcv{margin-top:12px;padding-top:8px;border-top:1px solid var(--line)}
.cvr{justify-content:space-between}
.cvr .txt{min-height:44px;min-width:56px;font-weight:600;text-decoration:underline}
#fd-msg .warn{margin-top:12px}

/* CAL-ADD-02 / CAL-CAPTURE-02: provenance, questions, routing, cancelled, Together */
.prov{margin:4px 2px 0;font-size:.875rem;font-weight:600;color:var(--ink2);line-height:1.3}
.prov:empty{display:none}
.kindnote{margin:6px 2px 0;font-size:.875rem;font-weight:600;color:var(--ink2)}
.qa,.routebox{margin:10px 0;padding:12px 14px;border-radius:18px;background:var(--warn-bg);color:var(--warn);border:2px dashed var(--warn)}
.routebox{background:rgba(238,240,252,.95);color:var(--ink);border:2px solid rgba(75,73,198,.35)}
.qa .big,.routebox .big{margin:0 0 4px;font-size:1.0625rem;font-weight:700}
.qa .note,.routebox .note{margin:0 0 8px}
.qa .seg button{min-width:44px;min-height:48px}
.pick{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.pk{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:48px;padding:6px 14px;border-radius:16px;text-align:left;background:rgba(255,255,255,.92);border:2px solid rgba(75,73,198,.25);color:var(--ink);font-size:1rem}
.pk small{font-size:.875rem;color:var(--ink2);font-weight:600}
.pk[aria-checked="true"]{border-color:var(--accent);background:rgba(var(--fa),.4)}
.evt.cxd .ttl{text-decoration:line-through;text-decoration-thickness:2px}
.evt.cxd{opacity:1}
.cxs .evt{background:rgba(255,255,255,.5)}
.tag-cancelled{border-style:solid;background:rgba(42,38,64,.1);text-decoration:none}
.tag-together{border-color:var(--ink2);background:rgba(var(--ft),.35)}
#tg-pre{margin-top:10px}
/* the floating Add plan pill must never sit over the first rows of a sheet or the last rows of a list */
.sheet .sbody{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}
@media (max-width:360px){.pk{padding-left:10px;padding-right:10px}}

/* ===== Paper skin (option A, chosen Nov 12 2026). Source: docs/restyle-options/common.css + a.css ===== */
/* Restyle options: shared reset layered AFTER base/css/style.css. It only removes the pink/peach/lavender wash, glass blur
   and decorative gradients and routes every surface through tokens. Each option file (a.css, b.css, c.css) sets the tokens
   and the few component differences. Layout, content, sizes (44px targets), type scale and behaviour are the prototype's. */
:root{
  --page:#fff; --surface:#fff; --inset:#f5f5f7; --hair:rgba(0,0,0,.12); --shadow:none; --r:16px; --r-sm:12px;
  --field-border:#8e8e93; --toast:#1d1d1f; --scrim:rgba(0,0,0,.32); --on-accent:#fff;
  --ghost-bg:#f5f5f7; --off-bg:#e5e5ea; --off-fg:#48484a; --sel-bg:#e8f1fd; --warn-bg:#fff4d6; --err-bg:#ffe3df;
  --bk-a:#ece9fb; --bk-s:#fde9dd; --bk-t:#dff2e6; --bar-a:#5b3fc4; --bar-s:#c2410c; --bar-t:#15803d;
  --ic-bg:#e8f1fd; --ic-fg:#0066cc; --sheet:#fff; --grab:#8e8e93; --err-ink:#6d1500;
  color-scheme:light dark;
}
html{background:var(--page)}
body{background:var(--page);color:var(--ink);font-family:var(--font)}
body::before{content:none;background:none}
/* flat surfaces, no blur */
.glass,.dock,.calbar,.sheet,#scrim{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.glass{background:var(--surface);border:1px solid var(--hair);box-shadow:var(--shadow);border-radius:calc(var(--r) + 6px)}
.chip{background:var(--inset)}
.calbar{background:var(--page);border-radius:0}
.dock{background:var(--page);border-top:1px solid var(--hair);box-shadow:none;border-radius:0}
.evt,.cbrow,.rc{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);border:1px solid var(--hair)}
.rc{border:1px solid var(--hair)}.rc-infeasible{border-color:var(--warn)}
.alld .evt,.cxs .evt{background:var(--inset);box-shadow:none}
.hl{border-radius:var(--r)}
.lvc,.parsed,.dl,.panel2,.card2,.fr,.rs-q,.routebox{background:var(--inset);border-radius:var(--r-sm)}
.routebox{border:1px solid var(--hair)}
.lvc{border-radius:var(--r)}
.ovl,.fnote{background:var(--warn-bg);border-radius:var(--r-sm)}
.ovl.maybe,.fnote{background:var(--surface);border-color:var(--ink2)}
.review{background:var(--surface)}
.leave{background:var(--surface);border-color:var(--accent)}
/* time blocks: flat tint + solid owner bar. Owner is still named in text and carried by a distinct dot/square/diamond. */
.bk-a{background:var(--bk-a);border-left:4px solid var(--bar-a)}
.bk-s{background:var(--bk-s);border-left:4px solid var(--bar-s)}
.bk-t{background:var(--bk-t);border-left:4px solid var(--bar-t)}
.blk{border-radius:10px}
.blk.ov::before{background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(255,255,255,.6) 6px 9px)} /* hatch = overlap marker (meaning, not decoration) */
.nowl span{background:var(--surface)}
.hrow{border-top-color:var(--hair)}
/* controls */
.modes{background:var(--inset)}
.seg button,.btn2.ghost,.chip2{background:var(--ghost-bg)}
.chip2{border-color:var(--ink2)}
.btn2[aria-disabled="true"],.save.off,.save[aria-disabled="true"]{background:var(--off-bg);color:var(--off-fg)}
.filt button[aria-pressed="true"]{background:var(--sel-bg);box-shadow:inset 0 0 0 2px var(--accent);color:var(--ink)}
.pk{background:var(--surface);border-color:var(--field-border)}
.pk[aria-checked="true"]{border-color:var(--accent);background:var(--sel-bg)}
.inp,#add-in{background:var(--surface);border-color:var(--field-border)}
#add-in::placeholder{color:var(--ink2)}
#add-in:focus,.inp:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 25%,transparent)}
.cb span{background:var(--surface);border-color:var(--ink2)}
.rmt i,.grab{background:var(--grab)}
/* sheet + scrim: solid, no gradient */
#scrim{background:var(--scrim)}
.sheet,.sheet.sh-add{background:var(--sheet);box-shadow:0 -1px 0 var(--hair),0 -12px 40px rgba(0,0,0,.14)}
.shead{background:var(--sheet)}
/* starter icons: single flat treatment per option (no per-icon gradients) */
.ic1,.ic2,.ic3,.ic4,.ic5{background:var(--ic-bg);color:var(--ic-fg)}
.warn.err{background:var(--err-bg)}
.warn,.qa,.tag-needs,.tag-conditional,.tag-check{background:var(--warn-bg)}
.notice{background:var(--warn-bg)}
#toast{background:var(--toast);color:#fff}
.fab{background:var(--accent);color:var(--on-accent)}
.save,.btn2{background:var(--accent);color:var(--on-accent)}
.btn2.ghost{background:var(--ghost-bg);color:var(--ink)}
.cb[aria-pressed="true"] span{background:var(--accent);border-color:var(--accent)}
.mocklinks a[aria-current="true"],.tag-milestone,.tag-holiday,.tag-work-free,.tag-cancelled{background:var(--inset)}
.dbtn .c{color:var(--ink2)}
@media (prefers-reduced-transparency:reduce){#scrim{background:rgba(0,0,0,.55)!important}.sheet,.glass,.dock{background:var(--sheet)!important}}
.dbtn[aria-pressed="true"] .n,.mo-d.sel,.mo-d.sel small,.mo-d.sel.td span,.modes button[aria-pressed="true"],.seg button[aria-pressed="true"],.rmt[aria-pressed="true"] i::after{color:var(--on-accent)}
.cb[aria-pressed="true"] span::after{border-color:var(--on-accent)}
.tag-idea,.tag-to-do,.tag-infeasible{color:var(--page)}
.tag-new{background:var(--hi)}
.warn.err{color:var(--err-ink)}
/* OPTION A, Paper. Flat white, hairlines, no card shadows, system-blue accent (AA-safe #0066cc), Apple-Calendar restraint. */
:root{
  --ink:#1d1d1f; --ink2:#515154; --line:rgba(0,0,0,.12); --hair:rgba(0,0,0,.12);
  --a:#4b2fb0; --s:#a1360a; --t:#0f6b35;
  --accent:#0066cc; --focus:#0050a8; --now:#d70015; --hi:rgba(255,204,0,.45);
  --warn:#7a2e00; --warn-bg:#fff4d6; --err-bg:#ffe3df;
  --page:#fff; --surface:#fff; --inset:#f5f5f7; --ghost-bg:#f5f5f7; --sel-bg:#e5f0fb;
  --bk-a:#ece9fb; --bk-s:#fde9dd; --bk-t:#dff2e6; --bar-a:#5b3fc4; --bar-s:#c2410c; --bar-t:#15803d;
  --font:-apple-system,"SF Pro Text","SF Pro",system-ui,"Segoe UI",sans-serif;
  --r:12px; --r-sm:10px; --shadow:none; --ic-bg:#e5f0fb; --ic-fg:#0066cc;
}
.greet{padding:14px 20px 4px}
.greet h1{font-size:2.25rem;font-weight:700;letter-spacing:-.03em;line-height:1.08}
.greet .sum{font-weight:600}
/* list, not cards: rows separated by hairlines */
.evts{gap:0;margin-top:6px}
.evt,.cbrow{background:transparent;border:0;border-radius:0;border-bottom:1px solid var(--hair);padding:12px 8px}
.evts li:last-child .evt{border-bottom:0}
.hl{border-radius:0}
.alld .evt,.cxs .evt{background:transparent;border-radius:0}
.glass{border:0;box-shadow:none;background:transparent;padding-left:4px;padding-right:4px}
.cal{margin-left:8px;margin-right:8px}
.calbar{border-bottom:1px solid var(--hair);margin:0 0 4px;padding:6px 10px 2px}
.dbtn.td .n{box-shadow:none;color:var(--accent);font-weight:700}
.dbtn.td[aria-pressed="true"] .n{color:var(--on-accent)}
.dh h2{font-weight:700;letter-spacing:-.02em}
.chip{background:transparent;color:var(--accent);font-weight:500;padding:0 10px}
.modes{border-radius:10px;padding:2px}.modes button{border-radius:8px}
.fab{box-shadow:0 2px 8px rgba(0,0,0,.18)}
.sheet{border-radius:20px 20px 0 0}.shead{border-radius:20px 20px 0 0}
.rc{border-radius:12px}
.lvc{background:var(--inset)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ink:#f5f5f7; --ink2:#aeaeb2; --line:rgba(255,255,255,.16); --hair:rgba(255,255,255,.16);
  --a:#b9a8ff; --s:#ffa27a; --t:#6fdc98; --accent:#2f8cf0; --focus:#6cb4ff; --now:#ff6b6b; --on-accent:#001428; --err-ink:#ffc9bd; --hi:rgba(255,204,0,.3);
  --warn:#ffd28a; --warn-bg:#3a2a10; --err-bg:#4a1e19;
  --page:#000; --surface:#000; --inset:#1c1c1e; --ghost-bg:#2c2c2e; --sel-bg:#0f2a47; --sheet:#1c1c1e; --toast:#3a3a3c;
  --bk-a:#2a2350; --bk-s:#4a2a1a; --bk-t:#16382a; --bar-a:#9b86ff; --bar-s:#ff8a5c; --bar-t:#46c47a;
  --field-border:#8e8e93; --off-bg:#2c2c2e; --off-fg:#c7c7cc; --grab:#8e8e93; --ic-bg:#0f2a47; --ic-fg:#6cb4ff; --scrim:rgba(0,0,0,.6);
}}
@media (max-width:340px){.calbar{padding:6px 4px 2px}}
/* CAL-SHARED-01c: sign-in and household sheet. Tokens only; no new colours. */
.si-lead{margin:4px 0 12px;font-size:1.0625rem}
.si-msg{margin:8px 0 12px;min-height:1px}
.si-msg.warn{margin:8px 0 12px}
.si-go{width:100%;margin-top:4px}
.si-code{font-size:1.75rem;letter-spacing:.35em;font-variant-numeric:tabular-nums;text-align:center;min-height:56px}
.si-invite{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:1rem}
.si-em{overflow-wrap:anywhere;word-break:break-all;font-weight:600}
.si-stack{display:grid;gap:10px;margin:12px 0 4px}
.si-pick{display:grid;gap:8px;margin:10px 0}
.si-pick .pk{min-height:56px;font-size:1.25rem;flex-direction:row;align-items:center}
.si-people{margin:10px 0 4px}
.si-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;border-top:1px solid var(--hair);font-size:1.0625rem}
.si-row:last-child{border-bottom:1px solid var(--hair)}
.si-state{color:var(--ink2);font-size:.9375rem;font-weight:500;text-align:right}
.si-inv{margin-top:12px}
.si-token{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:1.0625rem;line-height:1.5;letter-spacing:.04em;user-select:all;-webkit-user-select:all;word-break:break-all;margin:8px 0}
.si-out{margin-top:20px;padding-top:12px;border-top:1px solid var(--hair)}
.si-out .btn2{margin-top:8px}
#si-body .row2 .txt{white-space:normal;text-align:left}
