:root{
  --ink:#14142B; --mute:#6E6E8A; --faint:#A4A4BC; --line:rgba(80,70,180,.12);
  --indigo:#4B3FE8; --indigo2:#6A5BFF; --indigo-soft:#E6E4FF;
  --green:#0A7048; --green-soft:#D6F5E6; --amber:#8A5200; --amber-soft:#FFE8B3;
  --red:#E0212F; --red-ink:#B4161F; --red-soft:#FFDADD; --orange:#F0803C;
  --a-biz:#4C6FFF; --a-fam:#FF9F3D; --a-per:#21C08B; --a-wed:#FF5C93;
  --glass:linear-gradient(180deg,rgba(var(--sf),.86),rgba(var(--sf),.6));
  --ts:1; --bg:#F5F5FB; --surface:#fff; --sf:255,255,255; --hl:#fff; --surface-line:#fff; --field-line:rgba(90,80,200,.14); --link:#4B3FE8;
  --shadow:0 10px 30px rgba(84,70,200,.10);
  --font:'Plus Jakarta Sans','Hind','Noto Sans Devanagari','Avenir Next','Segoe UI',system-ui,sans-serif;
  color-scheme:light dark;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
html{scroll-padding-top:env(safe-area-inset-top,0px);height:100%;background:var(--bg)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;min-height:100%;color:var(--ink);font-family:var(--font);font-size:calc(15px*var(--ts));line-height:1.4;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:
  radial-gradient(70% 45% at 10% 0%,#D9D6FF 0%,rgba(217,214,255,0) 70%),
  radial-gradient(60% 40% at 100% 10%,#EBDDFF 0%,rgba(235,221,255,0) 70%),
  radial-gradient(60% 35% at 0% 100%,#DCEBFF 0%,rgba(220,235,255,0) 70%),var(--bg)}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:left}
input,select,textarea{font:inherit;font-size:calc(16px*var(--ts));color:var(--ink)}
.fld input,.fld select,.fld textarea,.qa input,.tin,.wqa input,.wsrch input,.wflt input,.wflt select{font-size:calc(16px*min(var(--ts),1.12))}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--indigo);outline-offset:2px;border-radius:8px}
svg{display:block}
.ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

#app{max-width:520px;margin:0 auto;padding:16px 16px 190px}

.glass{background:var(--glass);border:1px solid rgba(var(--sf),.95);box-shadow:var(--shadow),inset 0 1px 0 var(--hl);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.card{background:var(--glass);border:1px solid rgba(var(--sf),.95);box-shadow:0 6px 20px rgba(84,70,200,.08),inset 0 1px 0 var(--hl);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:20px}

/* top bar */
.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.who{display:flex;align-items:center;gap:12px}
.av{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:calc(20px*var(--ts));color:#fff;background:linear-gradient(140deg,#6A5BFF,#2F27B8);box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--indigo)}
.gm{display:block;font-size:calc(13px*var(--ts));color:var(--mute);font-weight:500}
.nm{display:block;font-size:calc(18px*var(--ts));font-weight:700;color:var(--link);letter-spacing:-.01em}
.bell{position:relative;width:46px;height:46px;border-radius:50%;display:grid;place-items:center}
.bell .dot{position:absolute;top:10px;right:11px;width:9px;height:9px;border-radius:50%;background:var(--indigo);box-shadow:0 0 0 2px var(--surface)}

/* hero */
.hero{border-radius:28px;padding:16px 18px 16px;margin-bottom:16px}
.hero-top{display:flex;justify-content:space-between;align-items:center}
.lab{font-weight:700;font-size:calc(13px*var(--ts));letter-spacing:.01em}
.pill{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(140deg,var(--indigo2),var(--indigo));color:#fff;border-radius:999px;padding:8px 14px;font-weight:700;font-size:calc(13px*var(--ts));box-shadow:0 6px 14px rgba(75,63,232,.35)}
.pill .ic{width:15px;height:15px;stroke-width:2.4}
.pill.red{background:linear-gradient(140deg,#F04B57,#D01824);box-shadow:0 6px 14px rgba(224,33,47,.32)}
.pill.orange{background:linear-gradient(140deg,#F7A05C,#E8702F);box-shadow:0 6px 14px rgba(240,128,60,.35)}
.pill.ghost{background:rgba(var(--sf),.8);color:var(--link);box-shadow:inset 0 0 0 1.5px var(--indigo-soft)}
.big{display:flex;align-items:baseline;gap:8px;margin:6px 0 10px}
.big .n{font-size:calc(76px*var(--ts));font-weight:800;line-height:1;letter-spacing:-.04em}
.big .s{font-size:calc(17px*var(--ts));color:var(--mute);font-weight:600}
.big.late .n{color:var(--red)}
.hero-bot{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.tag{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 11px;font-size:calc(13px*var(--ts));font-weight:600;background:var(--green-soft);color:var(--green)}
.tag.red{background:var(--red-soft);color:var(--red-ink)} .tag.amber{background:var(--amber-soft);color:var(--amber)}
.tag .ic{width:14px;height:14px;stroke-width:2.6}
.open{text-align:right;flex:none}
.open b{display:block;font-size:calc(15px*var(--ts))}
.open small{color:var(--mute);font-size:calc(12px*var(--ts))}
.mini{display:flex;justify-content:flex-end;margin-bottom:6px}
.mini i{width:24px;height:24px;border-radius:8px;margin-left:-6px;border:2px solid var(--surface-line);display:grid;place-items:center;font-style:normal;font-size:calc(11px*var(--ts));font-weight:800;color:#fff}

/* action tiles */
.acts4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:8px}
.shortcuts{display:flex;justify-content:space-between;gap:4px;margin:0 0 10px}
.shortcuts button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11.5px;white-space:nowrap;letter-spacing:-.01em;font-weight:600;color:var(--ink);padding:4px 0;border-radius:14px}
.shortcuts .c{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;box-shadow:0 3px 10px rgba(84,70,200,.08)}
.shortcuts .c .ic{width:20px;height:20px}
.fbar{display:flex;align-items:center;gap:12px;margin:0}
.sec-h .fbar{margin-left:auto}
.fbtn{min-height:40px}
.fbtn .ic{width:16px;height:16px;margin-right:6px}
.fbtn.on{background:var(--indigo-soft);color:var(--link);border-color:transparent}
.fpanel .chips{padding-top:6px}
@media (max-width:959px){
 .hero{padding:14px 16px;margin-bottom:12px}
 .hero .open{display:none}
 .big{margin:4px 0 8px}
 .big .n{font-size:calc(52px*var(--ts))}
 .hero .tag{font-size:calc(12px*var(--ts));padding:4px 10px}
}
.act{border-radius:22px;padding:12px 4px 10px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-weight:600;font-size:calc(13px*var(--ts))}
.act .c{width:38px;height:38px;border-radius:50%;display:grid;place-items:center}
.act .c .ic{width:20px;height:20px}

.chips{display:flex;gap:8px;overflow-x:auto;padding:10px 16px 6px;margin:0 -16px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;background:rgba(var(--sf),.75);border:1px solid rgba(var(--sf),.95);box-shadow:0 3px 10px rgba(84,70,200,.08);border-radius:999px;padding:7px 14px;font-weight:600;font-size:calc(14px*var(--ts));display:inline-flex;align-items:center;gap:8px}
.chip[aria-pressed="true"]{background:linear-gradient(140deg,var(--indigo2),var(--indigo));color:#fff;box-shadow:0 6px 14px rgba(75,63,232,.35)}
.chip i,.dotc{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
.chips.afil{flex-wrap:wrap;overflow-x:visible}
.chips.wrap{flex-wrap:wrap;overflow:visible;margin:0;padding:0}

/* sections & rows */
.sec{margin-top:20px}
.sec-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.sec-h h2{margin:0;font-size:calc(17px*var(--ts));font-weight:700;letter-spacing:-.01em;display:flex;gap:8px;align-items:baseline}
.sec-h h2 .cnt{font-size:calc(13px*var(--ts));color:var(--mute);font-weight:600}
.sec.over .sec-h h2{color:var(--red-ink)}
ul.list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.row{display:flex;align-items:center;gap:12px;padding:12px}
.tile{flex:none;width:46px;height:46px;border-radius:15px;display:grid;place-items:center}
@media (max-width:959px){.card.row>.tile.t-task{display:none}}
.av2.anon{background:var(--indigo-soft);color:var(--link)}
.av2.anon .ic{width:46%;height:46%}
.howto{margin:6px 2px 12px}
.triage{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:22px;margin:0 0 12px;border-left:4px solid var(--red)}
.triage b{display:block;font-size:calc(15px*var(--ts))}
.triage span{display:block;color:var(--mute);font-size:calc(13px*var(--ts));margin-top:2px}
.triage .pill{flex:none;min-height:44px}
.triage-lite{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0}
.focus-tip{margin:0 2px 8px}
.sec.focus .sec-h h2{color:var(--link)}
.focusb.on{background:var(--indigo-soft);box-shadow:none}
.tri-n{color:var(--mute);font-weight:700;font-size:calc(13px*var(--ts));margin:0 2px 8px}
.tri{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.tri .pill{justify-content:center;min-height:46px}
.tri .pill.main{grid-column:1/-1}
.tri .tri-drop{color:var(--red-ink)}
.tri-date{display:flex;gap:8px;align-items:flex-end;margin-top:12px}
.tri-date .pill{min-height:46px}
.capt{font-size:calc(13px*var(--ts));color:var(--mute);margin:-4px 2px 10px}
.capt.warn{color:var(--amber)}
.capt .chip{margin:4px 6px 0 0}
.capt .chip .ic{width:15px;height:15px}
.gadd{display:flex;gap:8px;margin:6px 0 10px;flex-wrap:wrap}
.gadd input,.gadd select{flex:1;min-width:0;padding:10px 12px;border-radius:12px;border:1.5px solid var(--field-line);background:var(--surface);min-height:44px}
.gadd #g-n{flex:1 1 100%}
.gadd #g-c{flex:0 0 76px}
.gadd .pill{min-height:44px}
.grow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:18px;margin-bottom:8px}
.gmain{flex:1;min-width:140px}
.gmain b{display:block}
.gmain small{color:var(--mute)}
.seg2.gr{display:flex;gap:4px}
.seg2.gr button{padding:7px 9px;border-radius:10px;font-size:calc(12.5px*var(--ts));font-weight:700;background:rgba(var(--sf),.85);border:1.5px solid var(--field-line);min-height:36px}
.seg2.gr button[aria-pressed="true"]{background:linear-gradient(140deg,var(--indigo2),var(--indigo));color:#fff;border-color:transparent}
.gx{width:36px;height:36px;display:grid;place-items:center;color:var(--mute);border-radius:10px}
.gx .ic{width:16px;height:16px}
.ptime{flex:none;width:72px;font-weight:700;font-size:calc(13px*var(--ts));color:var(--link)}
.vcard{padding:14px;border-radius:20px;margin-bottom:12px}
.clog{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.clog li{background:rgba(var(--sf),.7);border:1px solid var(--line);border-radius:14px;padding:9px 12px}
.clog small{display:block;color:var(--mute);font-weight:700;font-size:calc(12px*var(--ts))}
.note.clockw{background:var(--red-soft);border-color:transparent;color:var(--red-ink)}
.clockw b{color:var(--red-ink)}
.clockl.bad{color:var(--red-ink);font-weight:600}
.howto summary{cursor:pointer;color:var(--link);font-weight:700;font-size:calc(13.5px*var(--ts));min-height:32px;display:flex;align-items:center}
.howto .hint2{margin-top:4px}
.body{flex:1;min-width:0;display:block}
.tl{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.ttl{font-weight:700;font-size:calc(15px*var(--ts));line-height:1.25;word-break:break-word}
.bd{display:inline-block;background:var(--amber-soft);color:var(--amber);border-radius:8px;padding:1px 8px;font-size:calc(12px*var(--ts));font-weight:700}
.bd.red{background:var(--red-soft);color:var(--red-ink)} .bd.grn{background:var(--green-soft);color:var(--green)}
.sub{display:block;color:var(--mute);font-size:calc(12.5px*var(--ts));margin-top:3px}
.sub .u{color:var(--red);font-weight:700}
.sub .sep{margin:0 5px;color:var(--faint)}
.sub>span{white-space:nowrap}
.sub>span:not(.sep):not(.pp){display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
.rt{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:54px}
.tm{font-size:calc(12px*var(--ts));font-weight:700;color:var(--mute);white-space:nowrap}
.tm.late{color:var(--red)}
.chk{flex:none;width:28px;height:28px;border-radius:50%;border:2px solid #8884D4;display:grid;place-items:center;color:transparent;background:rgba(var(--sf),.9);transition:transform .15s ease}
.chk .ic{width:15px;height:15px;stroke-width:3}
.chk:active{transform:scale(.86)}
.chk,.cta .cb,.cb.note{position:relative}
.chk::after{content:"";position:absolute;inset:-8px}
.cta .cb::after,.cb.note::after{content:"";position:absolute;inset:-9px -3px}
@media (max-width:959px){.rt{max-width:78px}.tm{white-space:normal;text-align:right}}
.chk.on{background:var(--green);border-color:var(--green);color:#fff}
.chk[disabled]{border-style:dashed;cursor:default}
.chk.on[disabled]{border-style:solid}
.row.done .ttl{text-decoration:line-through;color:var(--mute)}

/* follow-up card */
.chain{padding:14px 14px 14px}
.step{position:relative;display:flex;gap:12px;align-items:flex-start}
.step+.step{margin-top:14px}
.step:first-child::after{content:"";position:absolute;left:13px;top:32px;bottom:-14px;width:2px;background:linear-gradient(var(--indigo-soft),var(--line))}
.step.wait{opacity:.55}
.step .chk{border-color:var(--link)}
.step .chk.on{border-color:var(--green)}
.chain .hdr{display:flex;align-items:center;gap:8px;font-size:calc(12px*var(--ts));font-weight:700;color:var(--green);margin-bottom:10px}
.chain .hdr .tile{width:26px;height:26px;border-radius:9px}
.chain .hdr .tile .ic{width:15px;height:15px}
.nudge{margin-top:8px}

/* empty */
.empty{margin-top:22px;padding:22px 18px;border-radius:24px;text-align:center}
.empty h2{margin:0 0 6px;font-size:calc(20px*var(--ts))}
.empty p{color:var(--mute);margin:0 0 14px}
.quick{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.foot{margin:22px 4px 0;color:var(--mute);font-size:calc(13px*var(--ts))}
.foot button{color:var(--link);font-weight:700}
.link{color:var(--link);font-weight:700;font-size:calc(13px*var(--ts))}
.sh-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 2px 4px;padding-top:14px;border-top:1px solid var(--line)}
.sh-foot .link{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:calc(14px*var(--ts))}
.sh-foot .link .ic{width:15px;height:15px}
.sh-foot .link.danger{color:var(--red-ink)}
.sh-foot .link.danger.armed{background:var(--red-soft);border-radius:999px;padding:0 14px}

/* calendar */
.cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cal-h h1{margin:0;font-size:calc(22px*var(--ts));font-weight:800;letter-spacing:-.02em}
.cal-nav{display:flex;gap:10px}
.cal-nav button{width:42px;height:42px;border-radius:14px;display:grid;place-items:center}
.cal-sub{display:flex;justify-content:space-between;align-items:baseline;margin:12px 2px 12px}
.cal-sub b{font-size:calc(20px*var(--ts));font-weight:800;letter-spacing:-.02em}
.cal-sub span{color:var(--mute);font-size:calc(13px*var(--ts));font-weight:600}
.calc{border-radius:26px;padding:12px 10px 8px}
.dows,.grid{display:grid;grid-template-columns:repeat(7,1fr)}
.dows span{text-align:center;color:var(--mute);font-size:calc(12px*var(--ts));font-weight:600;padding:6px 0}
.cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:50px;gap:3px;border-radius:14px}
.cell .dn{font-weight:600;font-size:calc(15px*var(--ts));width:32px;height:32px;display:grid;place-items:center;border-radius:12px}
.cell.out{opacity:.35;pointer-events:none}
.cell.is-today .dn{box-shadow:inset 0 0 0 2px var(--indigo);}
.cell.is-sel .dn{background:linear-gradient(140deg,var(--indigo2),var(--indigo));color:#fff;box-shadow:0 6px 14px rgba(75,63,232,.4)}
.cell.fest .dn::after{content:"";position:absolute;top:5px;right:8px;width:7px;height:7px;box-sizing:border-box;border-radius:50%;border:2px solid var(--orange);background:transparent}
.dots{position:absolute;bottom:0;display:flex;gap:3px;height:6px}
.dots i{width:6px;height:6px;border-radius:50%}
.dh{display:flex;justify-content:space-between;align-items:baseline;margin:22px 2px 10px}
.dh b{font-size:calc(15px*var(--ts));font-weight:800;letter-spacing:-.01em}
.dh span{color:var(--mute);font-size:calc(13px*var(--ts));font-weight:600}
.tline{list-style:none;margin:0;padding:0 0 0 26px;position:relative;display:grid;gap:10px}
.tline::before{content:"";position:absolute;left:8px;top:22px;bottom:22px;border-left:2px solid #DAD8F7}
.tline li{position:relative}
.node{position:absolute;left:-26px;top:50%;margin-top:-9px;width:18px;height:18px;border-radius:50%;border:2.5px solid var(--indigo);background:var(--surface)}
.day-none{color:var(--mute);margin:0 4px;font-size:calc(14px*var(--ts))}
.btnrow{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}

/* ideas & places */
.page-h{margin:4px 2px 4px;font-size:calc(30px*var(--ts));font-weight:800;letter-spacing:-.03em}
.page-p{color:var(--mute);margin:0 2px 10px}
.idea{padding:16px;margin-top:12px;border-radius:24px}
.idea h2{margin:0 0 4px;font-size:calc(18px*var(--ts));font-weight:800;letter-spacing:-.01em}
.short{list-style:none;margin:10px 0 0;padding:0}
.short li{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line)}
.short .star{width:28px;height:28px;display:grid;place-items:center;color:#D2D0EA;flex:none}
.short .star.on{color:#F5B301}
.short .star .ic{width:19px;height:19px}
.short .txt{flex:1;font-weight:500}
.short .x{color:var(--mute);width:28px;height:28px;display:grid;place-items:center}
.addline{display:flex;gap:8px;margin-top:12px}
.sugg{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.sugg .chip{background:var(--indigo-soft);box-shadow:none;color:var(--link);text-align:left;font-size:calc(13px*var(--ts))}
.hint{color:var(--mute);font-size:calc(13px*var(--ts));margin:6px 0 0}
.acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.place{margin-top:18px}
.place .sec-h h2{font-size:calc(17px*var(--ts))}
.note{background:rgba(var(--sf),.7);border:1px solid var(--surface-line);border-radius:16px;padding:11px 14px;font-size:calc(13.5px*var(--ts));color:var(--mute);margin:0 0 6px}

/* floating tab bar */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;padding:0 14px calc(10px + env(safe-area-inset-bottom,0px));pointer-events:none}
.tabs .in{pointer-events:auto;max-width:480px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:9px 16px;border-radius:32px;background:linear-gradient(180deg,rgba(var(--sf),.9),rgba(var(--sf),.72));border:1px solid var(--surface-line);box-shadow:0 12px 34px rgba(84,70,200,.2);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.tab{width:60px;height:52px;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#7A7898}
.tab span{font-size:calc(10.5px*var(--ts));font-weight:700;line-height:1}
.tab[aria-current="page"]{background:var(--indigo-soft);color:var(--link)}
.tab[aria-current="page"] .ic{stroke-width:2.4}
.fab{width:56px;height:56px;border-radius:20px;background:linear-gradient(140deg,var(--indigo2),var(--indigo));color:#fff;display:grid;place-items:center;box-shadow:0 10px 22px rgba(75,63,232,.45)}
.fab .ic{width:26px;height:26px;stroke-width:2.6}

/* sheet */
.scrim{position:fixed;inset:0;background:rgba(30,26,80,.35);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:40}
.sheet:focus{outline:none}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;max-width:520px;margin:0 auto;max-height:92vh;max-height:92dvh;overflow:auto;background:linear-gradient(180deg,rgba(250,250,255,.98),rgba(240,240,252,.98));border-radius:28px 28px 0 0;border:1px solid var(--surface-line);padding:12px 16px calc(22px + env(safe-area-inset-bottom,0px));animation:up .22s ease-out;box-shadow:0 -10px 40px rgba(60,50,160,.2)}

@keyframes up{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.sh-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;touch-action:pan-x}
.sh-hd h2{font-size:calc(20px*var(--ts));margin:0;font-weight:800;letter-spacing:-.02em}
.sh-hd button{color:var(--mute);font-weight:700;padding:6px 4px;position:relative}
.sh-hd button::after{content:"";position:absolute;inset:-6px -8px}
.qbtns .pill{min-height:44px}
.hint2 .link{position:relative}
.hint2 .link::after{content:"";position:absolute;inset:-13px -4px}
.chip{position:relative}
.chip::after{content:"";position:absolute;inset:-4px 0}
button,a.pill,a.cb{transition:filter .12s ease,transform .12s ease,opacity .12s ease}
button:not([disabled]):active,a.pill:active,a.cb:active{filter:brightness(.88)}
.pill:active,.chip:active,.fab:active,.tab:active,.cb:active,.shortcuts button:active,.seg button:active,.sh-foot .link:active{transform:scale(.96)}
.wc:active,button.card:active{filter:brightness(.96)}
.card.row:has(>.bcol>.body:active),.wrow:has(>.body:active){filter:brightness(.96)}
.body:active .ttl,.link:active{opacity:.7}
.grab{height:22px;margin:-8px -16px 4px;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:grab}
.grab::before{content:"";width:40px;height:5px;border-radius:3px;background:#CFCDE8}
@media (min-width:960px){.grab{display:none}}
.types{display:grid;gap:10px}
.types button{display:flex;gap:12px;align-items:center;padding:12px;border-radius:20px}
.types b{display:block;font-size:calc(16px*var(--ts))}
.types span.d{color:var(--mute);font-size:calc(13px*var(--ts))}
.sheet h3{font-size:calc(15px*var(--ts));font-weight:800;margin:20px 2px 8px}
.fld{display:block;margin-top:14px}
.fld>span{display:block;font-weight:700;font-size:calc(13px*var(--ts));margin-bottom:5px;color:var(--mute)}
.fld input,.fld select,.fld textarea,.addline input{width:100%;border:1.5px solid var(--field-line);border-radius:14px;padding:11px 13px;background:rgba(var(--sf),.85);min-height:46px}
.fld input:focus,.fld select:focus,.fld textarea:focus,.addline input:focus{border-color:var(--link);outline:none;box-shadow:0 0 0 3px var(--indigo-soft)}
.fld textarea{min-height:76px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.seg button{background:rgba(var(--sf),.85);border:1.5px solid var(--field-line);border-radius:14px;padding:10px 6px;text-align:center;font-weight:700;font-size:calc(14px*var(--ts))}
.seg button[aria-pressed="true"]{background:linear-gradient(140deg,var(--indigo2),var(--indigo));color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(75,63,232,.3)}
.seg button.u[aria-pressed="true"]{background:linear-gradient(140deg,#F04B57,#D01824);box-shadow:0 6px 14px rgba(224,33,47,.3)}
.sum{display:flex;gap:14px;align-items:center;padding:14px;border-radius:24px}
.sum .tile{width:58px;height:58px;border-radius:18px}
.sum .tile .ic{width:28px;height:28px}
.sum .ttl{font-size:calc(19px*var(--ts));font-weight:800;letter-spacing:-.02em}
.sumb{display:flex;gap:10px;margin-top:12px}
.sumb .pill{flex:1;justify-content:center;padding:12px 14px;font-size:calc(14px*var(--ts))}
.sh-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.sh-actions .pill{padding:14px 20px;font-size:calc(15px*var(--ts))}
.sh-actions .main{flex:1;justify-content:center}
.hint2{color:var(--mute);font-size:calc(13px*var(--ts));margin:8px 2px 0}

/* swipe rows */
.sw{position:relative}
.sw>.row{position:relative;touch-action:pan-y;will-change:transform;user-select:none;-webkit-user-select:none}
.swbg{position:absolute;top:0;bottom:0;left:0;width:0;border-radius:20px;overflow:hidden;display:flex;align-items:center;font-weight:800;font-size:calc(14px*var(--ts));white-space:nowrap}
.sw.r .swbg{left:0;background:var(--green-soft);color:var(--green);padding-left:20px;justify-content:flex-start}
.sw.l .swbg{left:auto;right:0;background:var(--red-soft);color:var(--red);padding-right:20px;justify-content:flex-end}
.swbg .sl,.swbg .sr{display:none}
.sw.r .sl,.sw.l .sr{display:inline}
.sw.snap>.row{transition:transform .18s ease}
.tipn{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tipn button{color:var(--link);font-weight:800;flex:none}
/* quick add */
.qa{padding:14px;border-radius:22px}
.qa input{width:100%;border:1.5px solid var(--field-line);border-radius:14px;padding:12px 13px;background:rgba(var(--sf),.9);min-height:48px}
.qa input:focus{border-color:var(--link);outline:none;box-shadow:0 0 0 3px var(--indigo-soft)}
.qapv{margin-top:10px;min-height:20px;color:var(--mute);font-size:calc(13.5px*var(--ts))}
.qapv .pvrow{display:flex;gap:10px;align-items:center}
.qapv .pvrow .tile{width:40px;height:40px;border-radius:13px}
.qapv .pvrow .tile .ic{width:20px;height:20px}
.qapv .pvt{font-weight:800;color:var(--ink);font-size:calc(15px*var(--ts))}
.qapv .pvm{display:flex;flex-wrap:wrap;gap:4px 6px;margin-top:4px}
.qapv .pvm span{background:var(--indigo-soft);color:var(--link);border-radius:8px;padding:1px 8px;font-size:calc(12px*var(--ts));font-weight:700}
.qbtns{display:flex;gap:8px;margin-top:10px}
.qbtns .pill{flex:1;justify-content:center;padding:11px 12px}
.orl{margin:16px 2px 8px;color:var(--mute);font-size:calc(13px*var(--ts));font-weight:700}
.offbar{position:fixed;left:50%;transform:translateX(-50%);top:calc(env(safe-area-inset-top,0px) + 6px);z-index:60;background:rgba(30,27,75,.92);color:#fff;font-size:calc(12.5px*var(--ts));font-weight:700;padding:6px 14px;border-radius:999px;pointer-events:none;display:none;box-shadow:0 6px 18px rgba(30,27,75,.25);white-space:nowrap}
a.pill{text-decoration:none}
/* locked and aligned: no sideways movement, equal columns that can really shrink */
html{overflow-x:hidden}
body{overflow-x:clip;overscroll-behavior-x:none}
.sheet{overflow-x:hidden;overflow-x:clip;overscroll-behavior-x:none;touch-action:pan-y pinch-zoom;box-sizing:border-box}
.sheet *{max-width:100%}
.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.two>*{min-width:0}
.fld input,.fld select,.fld textarea,.addline input{min-width:0;max-width:100%;box-sizing:border-box}
input[type=date],input[type=time]{-webkit-appearance:none;appearance:none;display:block;width:100%;min-width:0;max-width:100%;text-align:left;min-height:46px;line-height:1.3}
input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{text-align:left;min-height:1.4em}
input[type=date]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit{padding:0}
.chips.wrap.areas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.chips.wrap.areas .chip{justify-content:center;min-width:0}
/* polish */
.fr.st{flex-direction:column;align-items:stretch;gap:6px;padding:9px 0}
.fr.st .fl{width:auto}
.seg2.eq{display:grid;grid-template-columns:repeat(var(--n,3),1fr);gap:6px}
.seg2.eq button{padding:7px 4px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc.full{grid-column:1/-1}
.adv-h{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;margin-top:20px;padding:11px 14px;border-radius:14px;background:rgba(var(--sf),.75);border:1px solid var(--line)}
.adv-h b{display:block;font-size:calc(15px*var(--ts))}
.adv-h small{display:block;color:var(--mute);font-weight:600;font-size:calc(12.5px*var(--ts));margin-top:2px}
.adv-h:hover{border-color:var(--link)}
.adv-c .ic{width:18px;height:18px;color:var(--mute)}
.adv-h+.fgrid{margin-top:12px}
.nn{margin-left:auto;display:inline-flex;gap:5px}
.nn .n{margin-left:0!important}
.sn .n.od{background:var(--red);color:#fff}
.sn[aria-current="page"] .n.od{background:var(--surface);color:var(--red)}
.chk:not(.on):not([disabled]):hover{color:rgba(75,63,232,.6);background:var(--surface)}
.chk:not(.on):not([disabled]):hover .ic{opacity:1}
/* the details column, notes and inline editing */
.pane{display:none}
.md{font-size:calc(14.5px*var(--ts));line-height:1.55;word-break:break-word}
.md p{margin:.45em 0}.md h4,.md h5,.md h6{margin:.9em 0 .3em;font-size:calc(15.5px*var(--ts));letter-spacing:-.01em}
.md ul,.md ol{padding-left:22px;margin:.4em 0}
.md code{background:#EEF0FF;border-radius:6px;padding:1px 6px;font-size:calc(13px*var(--ts));font-family:ui-monospace,Menlo,Consolas,monospace}
.md pre{background:#14142B;color:#E8E8FF;padding:11px 13px;border-radius:12px;overflow:auto;margin:.5em 0}
.md pre code{background:none;color:inherit;padding:0}
.md blockquote{border-left:3px solid var(--indigo2);margin:.5em 0;padding:2px 12px;color:var(--mute)}
.md .mdt{overflow:auto;margin:.55em 0;border-radius:10px;border:1px solid var(--line)}
.md table{border-collapse:collapse;width:100%;font-size:calc(13.5px*var(--ts));background:var(--surface)}
.md th,.md td{border:1px solid var(--line);padding:6px 9px;text-align:left;vertical-align:top}
.md th{background:var(--indigo-soft);font-weight:700}
.md a{color:var(--link);font-weight:600}
.md hr{border:0;border-top:1px solid var(--line);margin:.8em 0}
.pane-hd{display:flex;align-items:center;gap:8px;margin-bottom:12px;min-height:30px}
.pane-st{font-size:calc(12.5px*var(--ts));color:var(--green);font-weight:700}
.pane-st button{color:var(--link);font-weight:800;margin-left:6px}
.pt-row{display:flex;gap:12px;align-items:flex-start}
.pt-main{flex:1;min-width:0}
.pt{display:block;width:100%;text-align:left;font-size:calc(21px*var(--ts));font-weight:800;letter-spacing:-.02em;line-height:1.25;padding:2px 6px;margin:-2px -6px;border-radius:10px;word-break:break-word}
.pt:hover,.fvb:hover,.pn-view:hover{background:rgba(var(--sf),.9);box-shadow:0 0 0 1px var(--line)}
.pt-in,.fv input,.fv select{width:100%;font:inherit;font-size:calc(15px*var(--ts));padding:7px 10px;border-radius:10px;border:1.5px solid var(--indigo2);background:var(--surface);color:var(--ink)}
.pt-in{font-size:calc(19px*var(--ts));font-weight:800}
.pt-sub{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.pa{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}
.pa .pill{padding:9px 15px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin-top:12px}
.fc .fl{display:block;width:auto;margin-bottom:3px}
.fc .fv select{width:100%}
.fr{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line);min-height:42px}
.fl{width:104px;flex:none;color:var(--mute);font-weight:600;font-size:calc(13px*var(--ts))}
.fv{flex:1;min-width:0}
.fvb{width:100%;text-align:left;font-size:calc(15px*var(--ts));font-weight:600;padding:5px 9px;margin:-5px -9px;border-radius:9px}
.fvb .ph{color:var(--mute);font-weight:500}
.fv select.psel{border-color:var(--line);font-size:calc(14px*var(--ts));padding:6px 8px}
.seg2{display:flex;flex-wrap:wrap;gap:6px}
.seg2 button{padding:5px 11px;border-radius:999px;font-size:calc(13px*var(--ts));font-weight:700;background:var(--surface);border:1px solid var(--line);color:var(--ink)}
.seg2 button[aria-pressed="true"]{background:var(--indigo);border-color:var(--link);color:#fff}
.pn{margin-top:14px}
.pn-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.pn-view{display:block;width:100%;text-align:left;border-radius:12px;padding:8px 10px;margin:0 -10px;cursor:text;min-height:48px}
.pn-view .ph{color:var(--mute)}
.mdbar{display:flex;gap:4px;margin-bottom:6px;flex-wrap:wrap}
.mdbar button{min-width:34px;height:32px;padding:0 9px;border-radius:9px;background:var(--surface);border:1px solid var(--line);font-weight:800;font-size:calc(13px*var(--ts));color:var(--ink)}
.mdbar button:hover{border-color:var(--link);color:var(--link)}
#pe-notes{width:100%;min-height:160px;max-height:62vh;resize:vertical;font:inherit;font-size:calc(14px*var(--ts));line-height:1.5;padding:10px 12px;border-radius:12px;border:1.5px solid var(--indigo2);background:var(--surface);font-family:ui-monospace,Menlo,Consolas,monospace}
.pn-tip{color:var(--mute);font-size:calc(12px*var(--ts));margin-top:4px}
.bsel{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px;max-height:34vh;overflow:auto}
.bsel li{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-weight:600;font-size:calc(14px*var(--ts))}
.bsel li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bsel li small{color:var(--mute);font-weight:600}
.bsel li button{color:var(--mute);width:24px;height:24px;display:grid;place-items:center}
.bsel li button:hover{color:var(--red)}
.bsec{margin-top:14px}
.bsec>b{display:block;font-size:calc(12px*var(--ts));text-transform:uppercase;letter-spacing:.07em;color:var(--mute);margin-bottom:6px}
.bsec .seg2 button{padding:7px 12px}
.pane-empty{color:var(--mute);margin-top:40px;text-align:center;line-height:1.6}
.pane-empty b{display:block;color:var(--ink);font-size:calc(17px*var(--ts));margin-bottom:4px}
/* desktop and tablet landscape */
.side{display:none}
.hv{display:none}
.bulk{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:50;display:none;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;max-width:94vw;background:var(--ink);color:#fff;border-radius:20px;padding:10px 14px;box-shadow:0 14px 40px rgba(20,20,43,.35)}
.bulk b{margin-right:4px;font-size:calc(14px*var(--ts))}
.bulk button,.bulk select,.bulk input{border-radius:10px;border:0;padding:7px 11px;font:inherit;font-size:calc(13px*var(--ts));font-weight:700;background:rgba(255,255,255,.14);color:#fff}
.bulk select option{color:#14142B}
.bulk input[type=date]{color-scheme:dark}
.bulk button:hover{background:rgba(255,255,255,.26)}
.bulk .red{background:#E0212F}
li.cur>.row,li.cur>.card,.wc.cur{outline:2px solid var(--indigo);outline-offset:2px}
li.selrow>.row,li.selrow>.card,.wc.selrow{background:#E9ECFF;box-shadow:0 0 0 2px var(--indigo)}
.dragging{opacity:.45}
.dragover{outline:2px dashed var(--indigo)!important;outline-offset:-2px;background:#EEF0FF!important}
.wk{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.wk .col{background:rgba(var(--sf),.6);border:1px solid var(--line);border-radius:18px;padding:10px;min-height:300px;display:flex;flex-direction:column}
.wk .col.today{border-color:var(--link);box-shadow:0 0 0 2px var(--indigo-soft)}
.wk .col h3{margin:0 0 4px;font-size:calc(13px*var(--ts));display:flex;justify-content:space-between;align-items:center;font-weight:800}
.wk .col h3 small{color:var(--mute);font-weight:600}
.wk .col h3 button{position:relative;width:24px;height:24px;border-radius:8px;color:var(--link);background:var(--indigo-soft);display:grid;place-items:center}
.wk .col h3 button .ic{width:13px;height:13px}
.wk .col h3 button::after{content:"";position:absolute;inset:-10px}
.wc{display:block;width:100%;text-align:left;background:var(--surface);border-radius:12px;padding:8px 10px;margin-top:8px;font-size:calc(13px*var(--ts));border-left:4px solid var(--indigo);box-shadow:0 3px 10px rgba(84,70,200,.08)}
.wc[draggable="true"]{cursor:grab}
.wc b{display:block;font-weight:700;line-height:1.25;word-break:break-word}
.wc small{display:block;color:var(--mute);font-weight:600;margin-top:2px}
.wc.dn{opacity:.55}
.wk-over{margin:0 0 12px;padding:10px 12px;border-radius:16px;background:var(--red-soft);display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}
.wk-over>b{color:var(--red-ink);font-size:calc(13px*var(--ts));width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px}
.wk-over>b .link{min-height:36px;font-size:calc(13px*var(--ts))}
.wk-over .wc{width:auto;max-width:260px;margin-top:0}
.wknav{display:flex;gap:8px;align-items:center}
.calwrap{display:block}
.kbd{display:inline-block;min-width:22px;padding:2px 7px;border-radius:7px;background:var(--surface);border:1px solid var(--line);border-bottom-width:2px;font-weight:800;font-size:calc(12px*var(--ts));text-align:center;color:var(--ink)}
.keys{display:grid;grid-template-columns:auto 1fr;gap:9px 14px;margin-top:10px;align-items:center}
.keys span{color:var(--mute);font-size:calc(14px*var(--ts));font-weight:600}
@media (min-width:960px){
 body{overflow-x:hidden}
 .tabs{display:none}
 .acts4,.acts3,.shortcuts,.fbar,.fpanel{display:none!important}
 #view>.chips,.tipn{display:none!important}
 body{display:grid;grid-template-columns:248px minmax(0,1fr) 456px;align-items:start;min-height:100vh}
 body[data-tab="week"],body[data-tab="cal"],body[data-tab="wedding"]{grid-template-columns:248px minmax(0,1fr)}
 #sheetHost{display:contents}
 #app{grid-column:2;grid-row:1;max-width:none;min-width:0;margin:0;padding:24px 30px 90px}
 #view{max-width:1000px;margin:0 auto}
 body[data-tab="week"] #view,body[data-tab="cal"] #view{max-width:none}
 #side,#view button,.chip,.sn,.hv,.bulk{-webkit-user-select:none;user-select:none}
 .pane{display:block;grid-column:3;grid-row:1;position:sticky;top:0;height:100vh;overflow-y:auto;padding:18px 22px 40px;background:linear-gradient(180deg,rgba(252,252,255,.92),rgba(244,243,253,.9));border-left:1px solid rgba(80,70,180,.14);box-shadow:-10px 0 34px rgba(60,50,150,.07);z-index:12}
 body[data-tab="week"] .pane,body[data-tab="cal"] .pane,body[data-tab="wedding"] .pane{display:none;position:fixed;right:0;top:0;bottom:0;height:auto;width:456px;z-index:30;background:#F7F6FE;box-shadow:-14px 0 44px rgba(60,50,150,.16)}
 body.pane-sel[data-tab="week"] .pane,body.pane-sel[data-tab="cal"] .pane,body.pane-sel[data-tab="wedding"] .pane{display:block}
 #toast{bottom:28px}
 .scrim{display:none}
 
 .sheet{left:auto;right:0;top:0;bottom:0;margin:0;width:456px;max-width:none;max-height:none;border-radius:0;border:0;border-left:1px solid rgba(80,70,180,.14);box-shadow:-14px 0 44px rgba(60,50,150,.14);padding:20px 22px 40px}
 .calwrap{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:34px;align-items:start}
 .calL{position:sticky;top:20px}
 .side{display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;grid-column:1;grid-row:1;width:248px;padding:18px 14px 14px;overflow-y:auto;z-index:15;background:linear-gradient(180deg,rgba(var(--sf),.82),rgba(247,245,255,.76));border-right:1px solid rgba(var(--sf),.95);box-shadow:6px 0 30px rgba(84,70,200,.06);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
 .sb-brand{display:flex;align-items:center;gap:10px;margin-bottom:8px}
 .sb-brand b{display:block;font-size:calc(18px*var(--ts));letter-spacing:-.02em}
 .sb-brand small{color:var(--mute);font-weight:600;font-size:calc(12.5px*var(--ts))}
 .sb-add{position:relative}
 .sb-add input{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:11px 40px 11px 13px;font:inherit;font-size:calc(14px*var(--ts))}
 .sb-add input:focus{outline:2px solid var(--indigo2);outline-offset:1px}
 .sb-add .kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%)}
 .sb-new{display:flex;align-items:center;justify-content:center;gap:6px;border-radius:12px;padding:9px;font-weight:700;font-size:calc(13.5px*var(--ts));color:var(--link);background:var(--indigo-soft)}
 .sb-new .ic{width:15px;height:15px}
 .sb-nav{display:flex;flex-direction:column;gap:2px;margin-top:6px}
 .sn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:7px 11px;border-radius:12px;font-weight:600;font-size:calc(14.5px*var(--ts));color:var(--ink)}
 .sn .ic{width:18px;height:18px;color:var(--mute);flex:none}
 .sn:hover{background:rgba(var(--sf),.95)}
 .sn[aria-current="page"]{background:linear-gradient(140deg,var(--indigo2),var(--indigo));color:#fff;box-shadow:0 6px 16px rgba(75,63,232,.28)}
 .sn[aria-current="page"] .ic{color:#fff}
 .sn .n{margin-left:auto;font-size:calc(12px*var(--ts));font-weight:800;background:var(--red-soft);color:var(--red);border-radius:999px;padding:1px 8px}
 .sn[aria-current="page"] .n{background:rgba(255,255,255,.25);color:#fff}
 .sb-h{font-size:calc(11.5px*var(--ts));text-transform:uppercase;letter-spacing:.08em;color:var(--mute);font-weight:800;margin:12px 6px 2px}
 .sn.sm{padding:6px 11px;font-size:calc(13.5px*var(--ts))}
 .sn.sm i{width:9px;height:9px;border-radius:50%;flex:none}
 .sn.sm[aria-pressed="true"]{background:var(--indigo-soft);color:var(--link)}
 .sb-who{margin-top:0;gap:5px;flex-wrap:nowrap}
 .sb-who .chip{padding:5px 9px;font-size:calc(12px*var(--ts));gap:4px}
 .mc{margin-top:8px;padding:10px;border-radius:16px;background:rgba(var(--sf),.7);border:1px solid var(--line)}
 .mc-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
 .mc-h b{font-size:calc(13.5px*var(--ts))}
 .mc-h button{width:24px;height:24px;display:grid;place-items:center;border-radius:8px;color:var(--mute)}
 .mc-h button:hover{background:var(--surface)}
 .mc-h .ic{width:14px;height:14px}
 .mc-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
 .mc-g i{font-style:normal;font-size:calc(10.5px*var(--ts));color:var(--mute);font-weight:700;padding:2px 0}
 .mc-g button{aspect-ratio:1;border-radius:8px;font-size:calc(12px*var(--ts));font-weight:600;position:relative;color:var(--ink);display:grid;place-items:center;text-align:center}
 .mc-g button:hover{background:var(--surface)}
 .mc-g button.td{background:var(--indigo);color:#fff}
 .mc-g button.sel{outline:2px solid var(--indigo2)}
 .mc-g button.has::after{content:"";position:absolute;bottom:2px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--indigo2)}
 .mc-g button.td.has::after{background:var(--surface)}
 .sb-foot{margin-top:auto;padding-top:10px;display:flex;flex-direction:column;gap:2px}
 .sb-foot small{color:var(--mute);font-size:calc(11.5px*var(--ts));padding:6px 11px 0}
}
@media (hover:hover) and (min-width:960px){
 .card.row{position:relative}
 .row .hv{position:absolute;right:66px;top:50%;transform:translateY(-50%);display:flex;gap:4px;opacity:0;pointer-events:none;transition:opacity .12s}
 .row:hover .hv,li.cur .row .hv{opacity:1;pointer-events:auto}
 .hv button{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);color:var(--mute)}
 .hv button:hover{color:var(--link);border-color:var(--link)}
 .hv button.red:hover{color:var(--red);border-color:var(--red)}
 .hv .ic{width:15px;height:15px}
}
@media (max-width:959px){.wk{display:block}.wk .col{min-height:0;margin-bottom:10px}}
@media print{
 #side,.tabs,#toast,.bulk,.offbar,#sheetHost,.hv,.acts4,.acts3,.chips,.cal-nav,.wknav{display:none!important}
 #app{margin:0!important;padding:0!important;max-width:none!important}
 #view{max-width:none!important}
 body{background:var(--surface)!important}
 .card,.glass,.col{box-shadow:none!important;backdrop-filter:none!important}
 .wk{grid-template-columns:repeat(7,1fr)}
 .col,.row,.wc{break-inside:avoid}
}
/* snooze, comments, bills, review, wedding */
.acts3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:8px}
.sz{display:inline-flex;align-items:center;border-radius:8px;padding:0 7px;font-size:calc(11.5px*var(--ts));font-weight:800;background:#FFF0C2;color:#9A6B00}
.cm{display:inline-flex;align-items:center;gap:3px;font-size:calc(12px*var(--ts));font-weight:700;color:var(--mute)}
.cm .ic{width:13px;height:13px}
.cm.new{color:var(--link)}
.cm.new::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);margin-left:2px}
.snzl{display:grid;gap:8px;margin-top:12px}
.snzl .pill{justify-content:center;padding:12px 14px;font-size:calc(15px*var(--ts))}
.cmts{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:10px}
.cmts li{display:flex;flex-direction:column;align-items:flex-start}
.cmts li.me{align-items:flex-end}
.cmts .bub{background:rgba(var(--sf),.85);border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:9px 13px;max-width:86%;word-break:break-word;white-space:pre-wrap}
.cmts li.me .bub{background:linear-gradient(140deg,var(--indigo2),var(--indigo));color:#fff;border-color:transparent;border-radius:16px 16px 4px 16px}
.cmts .meta{font-size:calc(11.5px*var(--ts));color:var(--mute);margin-top:3px}
.cmts .meta button{color:var(--red);font-weight:700;font-size:calc(11.5px*var(--ts))}
.mnav{display:flex;align-items:center;justify-content:space-between;margin:6px 0 12px}
.mnav b{font-size:calc(17px*var(--ts))}
.stat2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.stat2 .card{padding:14px 16px;border-radius:20px}
.stat2 small{display:block;color:var(--mute);font-weight:600;font-size:calc(12.5px*var(--ts))}
.stat2 b{display:block;font-size:calc(24px*var(--ts));letter-spacing:-.5px;margin-top:2px}
.bars{display:flex;align-items:flex-end;gap:10px;height:84px;margin-top:8px}
.bars div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;font-size:calc(11px*var(--ts));color:var(--mute);font-weight:600}
.bars i{display:block;width:100%;border-radius:8px 8px 4px 4px;background:linear-gradient(180deg,var(--indigo2),var(--indigo));min-height:3px;margin-bottom:4px}
.bl{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;margin-bottom:10px}
.bl .body{flex:1;text-align:left}
.bl .amt2{font-weight:800;font-size:calc(16px*var(--ts));white-space:nowrap}
.bl .sub{display:block}
.tpl{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border-radius:18px;margin-top:10px;background:rgba(var(--sf),.7);border:1px solid var(--line)}
.tpl .bx{flex:none;width:26px;height:26px;border-radius:8px;border:2px solid #8884D4;display:grid;place-items:center;color:transparent}
.tpl .bx .ic{width:15px;height:15px;stroke-width:3}
.tpl[aria-pressed="true"] .bx{background:var(--indigo);border-color:var(--link);color:#fff}
.tpl.added{opacity:.6}
.tpl small{display:block;color:var(--mute);font-weight:600;margin-top:2px}
.wedc{padding:14px 16px;border-radius:20px;margin-top:6px}
.wedc b{font-size:calc(20px*var(--ts));display:block}
.revn{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.revn .card{padding:14px 16px;border-radius:20px}
.revn b{display:block;font-size:calc(30px*var(--ts));letter-spacing:-1px}
.revn small{color:var(--mute);font-weight:600}
.dnl{list-style:none;margin:6px 0 0;padding:0}
.dnl li{display:flex;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:calc(14px*var(--ts))}
.dnl li span{color:var(--mute);flex:none;width:64px;font-weight:600}
/* two people */
.sc{display:inline-flex;align-items:center;border-radius:8px;padding:0 7px;font-size:calc(11.5px*var(--ts));font-weight:800;background:var(--indigo-soft);color:var(--link)}
.amt{font-weight:800;color:var(--ink)}
button.cb{border:0;font-family:inherit;cursor:pointer}
.cb.no{background:#FFE3E5;color:var(--red)}
.cb.note{background:rgba(var(--sf),.75);color:var(--mute);border:1px solid var(--line)}
.cb.note.ok{color:var(--green)}
.prog{display:block;height:5px;border-radius:3px;background:var(--line);margin-top:8px;overflow:hidden}
.prog i{display:block;height:100%;background:linear-gradient(90deg,var(--indigo2),var(--indigo));border-radius:3px}
.clist{list-style:none;margin:8px 0 0;padding:0}
.clist li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line)}
.ctick{flex:none;width:28px;height:28px;border-radius:50%;border:2px solid #8884D4;display:grid;place-items:center;color:transparent;background:rgba(var(--sf),.9)}
.ctick .ic{width:15px;height:15px;stroke-width:3}
.ctick.on{background:var(--green);border-color:var(--green);color:#fff}
.clist .txt{flex:1;font-weight:500;word-break:break-word}
.clist .txt.dn{text-decoration:line-through;color:var(--mute)}
.clist .x{color:var(--mute);width:28px;height:28px;display:grid;place-items:center}
.actlog{list-style:none;margin:6px 0 0;padding:0}
.actlog li{font-size:calc(13px*var(--ts));color:var(--mute);padding:6px 0;border-bottom:1px dashed var(--line)}
.actlog b{color:var(--ink)}
.whochips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
/* contacts & call buttons */
.bcol{flex:1;min-width:0}
.bcol>.body{display:block;width:100%}
.cta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cb{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 11px;font-size:calc(12.5px*var(--ts));font-weight:700;text-decoration:none;line-height:1.2}
.cb .ic{width:14px;height:14px;stroke-width:2.2}
.cb.call{background:var(--indigo-soft);color:var(--link)}
.cb.wa{background:#D9F7E5;color:#076B37}
.chain .hdr .cta{margin:0 0 0 auto}
.sub .pp{display:inline-flex;align-items:center;gap:4px}
.sub .pp .ic{width:12px;height:12px;stroke-width:2.4}
.chk.lvu{border-color:var(--red);border-width:3px;box-shadow:0 0 0 3px rgba(224,33,47,.14)}
.chk.lvi{border-color:#B87300;border-width:2.5px}
.av2{flex:none;width:44px;height:44px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-weight:800;font-size:calc(17px*var(--ts))}
.av2 .ic{width:15px;height:15px;stroke-width:2.6}
.plist{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.plist li>button{display:flex;align-items:center;gap:12px;padding:10px 12px;width:100%;border-radius:20px}
.nm2{display:block;font-weight:700;font-size:calc(15px*var(--ts))}
.ptools{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px}
.tin{width:100%;border:1.5px solid var(--field-line);border-radius:14px;padding:12px 13px;background:rgba(var(--sf),.9);min-height:48px}
.tin:focus{border-color:var(--link);outline:none;box-shadow:0 0 0 3px var(--indigo-soft)}
.cchip{display:flex;align-items:center;gap:10px;margin-top:8px;padding:8px 12px;border-radius:16px}
.cchip button{margin-left:auto;color:var(--mute);padding:4px}
.csug{display:grid;gap:6px;margin-top:8px}
.csug:empty{display:none}
.csug button{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:14px;background:rgba(var(--sf),.85);border:1px solid var(--surface-line);width:100%}
.phr{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line)}
.phr b{font-size:calc(15px*var(--ts))}
.phr .cta{margin:0}
.login{min-height:78vh;display:flex;align-items:center}
.login .glass{width:100%;padding:28px 22px;border-radius:30px;text-align:center}
.login .logo{width:68px;height:68px;border-radius:22px;margin:0 auto 10px;background:linear-gradient(140deg,var(--indigo2),var(--indigo));display:grid;place-items:center;color:#fff;box-shadow:0 10px 22px rgba(75,63,232,.4)}
.login .logo .ic{width:34px;height:34px;stroke-width:3}
.login h1{font-size:calc(34px*var(--ts));font-weight:800;letter-spacing:-.03em;margin:4px 0}
.login p{color:var(--mute);margin:0 0 18px}
.login input{width:100%;text-align:center;border:1.5px solid var(--field-line);border-radius:14px;padding:13px;background:rgba(var(--sf),.9);min-height:50px}
.login input:focus{border-color:var(--link);outline:none;box-shadow:0 0 0 3px var(--indigo-soft)}
.err{color:var(--red);font-weight:600;font-size:calc(14px*var(--ts));margin:12px 0 0!important}
.steps{margin:8px 0 0;padding-left:20px;color:var(--ink);font-size:calc(14.5px*var(--ts))}
.steps li{margin:6px 0}
#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(96px + env(safe-area-inset-bottom,0px));background:var(--ink);color:#fff;padding:11px 16px;border-radius:16px;z-index:60;display:none;font-weight:600;font-size:calc(14px*var(--ts));max-width:calc(100% - 32px);gap:14px;align-items:center;box-shadow:0 10px 30px rgba(20,20,43,.35)}
#toast.show{display:flex}
#toast button{color:#B6AEFF;font-weight:800}

@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
/* wedding tab */
.wdsub{margin:2px 2px 10px;color:var(--mute);font-size:calc(14px*var(--ts))}.wdsub b{color:#C2255C}
.wsub{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;background:rgba(var(--sf),.7);border:1px solid var(--line);border-radius:14px;padding:4px;margin-bottom:12px}
.wsub button{padding:9px 4px;border-radius:10px;font-weight:700;font-size:calc(14px*var(--ts));color:var(--mute);text-align:center}
.wsub button[aria-selected="true"]{background:var(--surface);color:var(--link);box-shadow:0 2px 8px rgba(84,70,200,.14)}
.wtool{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.wqa input{width:100%;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);margin-bottom:10px;box-sizing:border-box}
.wfns{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px;align-items:center}
.wfns .chip small{color:var(--mute);font-weight:700;margin-left:2px}
.wfns .chip[aria-pressed="true"] small{color:#fff;opacity:.85}
.wl{color:var(--mute);font-size:calc(13px*var(--ts));font-weight:600;margin-right:2px}
.wsrch{display:flex;gap:8px;margin-bottom:10px}
.wsrch input{flex:1;min-width:0;padding:10px 12px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface)}
.wck{font-size:calc(17px*var(--ts));margin:18px 2px 10px}
.wflt[hidden]{display:none}
.wflt{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:12px}
.wflt input,.wflt select{padding:10px 12px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);min-width:0;width:100%;box-sizing:border-box}
.wlist{padding:0;margin:0;list-style:none}
.wrow{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;margin-bottom:8px;background:var(--glass);border:1px solid rgba(var(--sf),.95);box-shadow:0 4px 14px rgba(84,70,200,.07)}
.wrow .body{flex:1;min-width:0;text-align:left}
.wrow .ttl{display:block;font-weight:700;font-size:calc(15.5px*var(--ts));overflow-wrap:anywhere}
.wrow .sub{display:flex;flex-wrap:wrap;gap:3px 6px;color:var(--mute);font-size:calc(12.5px*var(--ts));margin-top:3px;align-items:center}
.wrow .sub .u{color:var(--red);font-weight:700}
.wrow .sub .ic{display:inline-block;width:12px;height:12px;vertical-align:-2px;margin-right:2px}
.wrow.dn .ttl{text-decoration:line-through;color:var(--mute)}
.wrow .chk{flex:none}
.wmo{text-align:right;flex:none}.wmo b{display:block;font-size:calc(15px*var(--ts))}.wmo b.ref{color:var(--red)}
.wmo small{display:block;color:var(--mute);font-size:calc(12px*var(--ts))}.wmo small.ok{color:var(--green);font-weight:700}
.wchip{padding:1px 8px;border-radius:999px;background:#EEEDFB;color:var(--link);font-weight:700;font-size:calc(11.5px*var(--ts))}
.wchip.fc{background:#FFE8B3;color:#8A5200}.wchip.fb{background:#FFE0EC;color:#C2255C}
.wtag{background:#F1F0F8;border-radius:6px;padding:0 6px;font-size:calc(11.5px*var(--ts))}
.wsum{color:var(--mute);font-size:calc(13px*var(--ts));font-weight:600}
.wstats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
@media(min-width:700px){.wstats{grid-template-columns:repeat(4,minmax(0,1fr))}}
.wst{padding:14px 16px;border-radius:20px}.wst small{display:block;color:var(--mute);font-weight:600;font-size:calc(12.5px*var(--ts))}.wst b{display:block;font-size:calc(20px*var(--ts));letter-spacing:-.3px;margin:2px 0}
.wbg{display:block;width:100%;text-align:left;padding:14px 16px;border-radius:20px;margin-bottom:10px}
.wbh{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.wbh small{color:var(--mute)}
.wbar2{display:block;height:6px;border-radius:99px;background:#E9E8F8;margin:8px 0 10px;overflow:hidden}.wbar2 i{display:block;height:100%;background:linear-gradient(90deg,var(--indigo2),var(--indigo));border-radius:99px}
.wbn{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;font-size:calc(13px*var(--ts));font-weight:700}
.wbn small{display:block;color:var(--mute);font-weight:600;font-size:calc(11px*var(--ts));margin-bottom:1px}.wbn .due{color:var(--red)}
@media(max-width:480px){.wbn{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
.wpc{display:flex;gap:6px;align-items:baseline}.wpc small{color:var(--mute);font-weight:600}.wpc[aria-pressed="true"] small{color:#fff;opacity:.85}
.wstat1{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-radius:20px;margin-bottom:12px}
.wstat1 small{display:block;color:var(--mute);font-weight:600;font-size:calc(12.5px*var(--ts))}.wstat1 b{display:block;font-size:calc(17px*var(--ts))}.wstat1 .r{text-align:right}.wstat1 .big{font-size:calc(24px*var(--ts))}
.wsettle{padding:16px;border-radius:20px}.big2{margin:0 0 12px;font-size:calc(17px*var(--ts))}
.wset3{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:6px 8px;align-items:center;font-size:calc(13px*var(--ts))}
.wset3 small{color:var(--mute);font-weight:600;font-size:calc(11px*var(--ts))}.wset3 .neg{color:var(--red);font-weight:700}.wset3 .pos{color:var(--green);font-weight:700}
.wempty{padding:20px;border-radius:20px}.wempty p{color:var(--mute);margin:6px 0 12px}
.wpaysum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.wpaysum span{background:rgba(var(--sf),.75);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.wpaysum small{display:block;color:var(--mute);font-size:calc(11.5px*var(--ts));font-weight:600}.wpaysum b{font-size:calc(15px*var(--ts))}.wpaysum .due{color:var(--red)}
.wsheetpays .wrow{padding:10px 12px}
.wpriv{display:flex;gap:10px;align-items:flex-start;margin:10px 2px;font-size:calc(14px*var(--ts));color:var(--mute)}.wpriv input{margin-top:3px;flex:none}
.wprow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-bottom:8px;align-items:center}
.wprow input,.wprow select{padding:11px 12px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);min-width:0;width:100%;box-sizing:border-box}
.wtags{margin:-4px 0 10px}
.wmark{display:inline-flex;align-items:center;gap:4px;color:#C2255C;font-weight:700;font-size:calc(12.5px*var(--ts))}.wmark .ic{width:12px;height:12px}
.wimpsum{padding:14px 16px;border-radius:18px;margin:10px 0}.wimpsum small{display:block;color:var(--mute);margin-top:4px}.wimpsum .wwarn{color:var(--amber)}
.wpane{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:14px;margin:8px 0}
body[data-tab="wedding"] #view{max-width:1000px}

/* dark theme: follows the iPhone / system setting */
@media (prefers-color-scheme: dark){
:root{
  --bg:#0F0F17; --surface:#1B1B28; --sf:30,30,44; --hl:rgba(255,255,255,.05); --surface-line:rgba(255,255,255,.07); --field-line:rgba(255,255,255,.14);
  --ink:#ECECF5; --mute:#A6A6C0; --faint:#6A6A84; --line:rgba(255,255,255,.09);
  --link:#A9A2FF; --indigo-soft:#2C2868;
  --green:#5FD49F; --green-soft:#11362A; --amber:#F2B65A; --amber-soft:#3B2D12;
  --red:#FF5C68; --red-ink:#FF8E97; --red-soft:#46191F;
  --glass:linear-gradient(180deg,rgba(32,32,47,.9),rgba(26,26,39,.82));
  --shadow:0 10px 30px rgba(0,0,0,.45);
}
body::before{background:
  radial-gradient(70% 45% at 10% 0%,#241F5C 0%,rgba(36,31,92,0) 70%),
  radial-gradient(60% 40% at 100% 10%,#2D1E4F 0%,rgba(45,30,79,0) 70%),
  radial-gradient(60% 35% at 0% 100%,#132542 0%,rgba(19,37,66,0) 70%),var(--bg)}
.card,.glass,.chip,.wrow{box-shadow:0 6px 20px rgba(0,0,0,.35)}
.sheet{background:linear-gradient(180deg,#1D1D2B,#171724)}
.scrim{background:rgba(0,0,0,.55)}
.tabs .in{box-shadow:0 12px 34px rgba(0,0,0,.5)}
#toast{background:#2C2C3E;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.offbar{background:rgba(44,40,104,.95)}
.tab{color:#9C9AB8}
.chk{border-color:#8F8BD6}
.pill.ghost{box-shadow:inset 0 0 0 1.5px rgba(169,162,255,.35)}
/* pastel icon tiles and avatars set inline: dim them so they sit on dark surfaces */
.tile,.shortcuts .c,.act .c,.mini i{filter:brightness(.8) saturate(1.15)}
input::placeholder,textarea::placeholder{color:#8A8AA3}
.wdsub b,.wmark{color:#FF8DB4}
}
@media (prefers-color-scheme: dark) and (min-width:960px){
 .side{background:linear-gradient(180deg,rgba(24,24,36,.94),rgba(19,19,30,.92));border-right-color:rgba(255,255,255,.06)}
 .pane{background:linear-gradient(180deg,rgba(26,26,39,.96),rgba(20,20,31,.94));border-left-color:rgba(255,255,255,.07)}
}
