/* The live app's look, Tide: copied from the Apps Script app's Studio.html (2026-10-22) by `bb tide`, so Studio
   looks the same, screen by screen. Differences: the type is served from /fonts (the page's security policy allows
   no data: fonts), the page scrolls, and the bottom tabs show at every width. Dark follows html[data-theme], which
   start.js sets from the phone. Studio's own rules are in app.css. Don't edit by hand: run `bb tide` again. */

/* Manrope, digits and $ % only (OFL), so every number in the app is set in Manrope and everything else in Onest */
@font-face{font-family:'Onest';src:url(/fonts/onest-latin-wght-normal.woff2) format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';src:url(/fonts/onest-latin-ext-wght-normal.woff2) format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'ThreshNum';src:url(/fonts/thresh-num.woff2) format('woff2');font-weight:200 800;unicode-range:U+0030-0039,U+0024,U+0025}
:root{
  /* Tide: near-white and neutral, one signature blue used sparingly, burnt orange for anything that needs you */
  --bg:#FCFCFB; --card:#FFFFFF; --ink:#1B2830; --muted:#5D676D; --faint:#8F979C;
  --line:#E8EAEA; --line2:#F1F2F2; --beige:#F4F0EA;
  --pri:#2B6A8F; --pri-dark:#225673; --pri-soft:#EAF3F8; --pri-ink:#FFFFFF;
  --grad-a:#2B5F87; --grad-b:#3D8CB0;
  --amber:#B8561C; --amber-soft:#FBEFE6; --hi:#E97F2C; --red:#B3372B; --red-soft:#FBEAE7;
  --pop-n:#EEF0F1; --pop-n-ink:#1B2830; --pop-ok:#E5F0E8; --pop-ok-ink:#2F6346; --pop-bad:#FBE7E3; --pop-bad-ink:#9E2F24;
  --radius:20px; --tab:64px;
  --shadow:0 1px 2px rgba(27,40,48,.04),0 4px 14px rgba(27,40,48,.05);
  --glass:rgba(255,255,255,.58); --glass-line:rgba(255,255,255,.75); --glass-edge:rgba(27,40,48,.09);
  --field:#FFFFFF; --check:#D6DCDF; --hover:#C9D2CE; --skel-a:#F1F2F2; --skel-b:#FAFAF9;
  --cal1:#DCEAF2; --cal2:#A6C9DB; --cal3:#5E9AB8; --cal4:#2B6A8F; --dim:#A6C9DB; --scrim:rgba(20,24,27,.38);
  --bubble:rgba(43,106,143,.13); --bubble-edge:rgba(43,106,143,.08);
}
/* Dark: the same Tide system lifted for low light. More > Appearance picks Light, Dark, or matches the phone. */
html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0E1417; --card:#172024; --ink:#E6ECEE; --muted:#9BA7AD; --faint:#6F7C82;
  --line:#263238; --line2:#1D272C; --beige:#232D32;
  --pri:#62A9D4; --pri-dark:#93C7E5; --pri-soft:rgba(98,169,212,.16); --pri-ink:#0E1417;
  --grad-a:#3F7FA8; --grad-b:#6BB4DA;
  --amber:#E58A50; --amber-soft:rgba(229,138,80,.15); --hi:#F09A52; --red:#E46C5E; --red-soft:rgba(228,108,94,.15);
  --pop-n:#263136; --pop-n-ink:#E6ECEE; --pop-ok:#1E3328; --pop-ok-ink:#9FD0AE; --pop-bad:#3A2220; --pop-bad-ink:#F2A398;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 6px 18px rgba(0,0,0,.28);
  --glass:rgba(28,37,42,.62); --glass-line:rgba(255,255,255,.08); --glass-edge:rgba(255,255,255,.08);
  --field:#11191C; --check:#3B4950; --hover:#3B4950; --skel-a:#1A2327; --skel-b:#222C31;
  --cal1:#1C3341; --cal2:#2B5068; --cal3:#3E7A9E; --cal4:#62A9D4; --dim:#2E4C5E; --scrim:rgba(0,0,0,.55);
  --bubble:rgba(98,169,212,.18); --bubble-edge:rgba(98,169,212,.12);
}
/* (v350) Rogue mode: after sunset, reds and ambers on near-black, no blue light. It rides on Dark (so every dark rule
   still applies) with its own colors on top. More > Appearance turns it on. */
html.rogue[data-theme="dark"]{
  --bg:#0A0504; --card:#160A07; --ink:#F3BBA2; --muted:#BC7A60; --faint:#82503D;
  --line:#2C1510; --line2:#1D0D0A; --beige:#22100B;
  --pri:#E5583B; --pri-dark:#F27D5F; --pri-soft:rgba(229,88,59,.16); --pri-ink:#0A0504;
  --grad-a:#7E2414; --grad-b:#B9401F;
  --amber:#F0983C; --amber-soft:rgba(240,152,60,.15); --hi:#F3A247; --red:#FF5C45; --red-soft:rgba(255,92,69,.15);
  --pop-n:#22100B; --pop-n-ink:#F3BBA2; --pop-ok:#2A1608; --pop-ok-ink:#F0B070; --pop-bad:#3A140E; --pop-bad-ink:#FF9A86;
  --glass:rgba(30,12,8,.66); --glass-line:rgba(255,120,80,.08); --glass-edge:rgba(255,120,80,.08);
  --field:#110705; --check:#4A2217; --hover:#4A2217; --skel-a:#1A0B08; --skel-b:#22100B;
  --cal1:#2E120C; --cal2:#5A2216; --cal3:#9A3A22; --cal4:#E5583B; --dim:#5A2216; --scrim:rgba(0,0,0,.6);
  --bubble:rgba(229,88,59,.18); --bubble-edge:rgba(229,88,59,.12);
}
html.rogue img,html.rogue video,html.rogue .av,html.rogue .pt .ic,html.rogue .pcdock button,html.rogue .stackav,html.rogue .ptile{filter:sepia(.9) saturate(1.6) hue-rotate(-28deg) brightness(.85)}
html.rogue .hcard{filter:sepia(.55) saturate(1.5) hue-rotate(-22deg) brightness(.9) contrast(1.05)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
button:focus:not(:focus-visible){outline:none}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:'ThreshNum','Onest',system-ui,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;touch-action:manipulation}
[data-clock] .d{display:inline-block;width:.63em;text-align:center}
[data-clock] .c{display:inline-block;width:.3em;text-align:center}
a{color:var(--pri)}
.app{position:fixed;inset:0;display:flex;background:var(--bg)}
/* side menu (wide screens) */
.side{width:236px;flex:none;background:var(--card);border-right:1px solid var(--line);padding:28px 16px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}
.brand{font-size:21px;font-weight:700;padding:0 12px 22px;letter-spacing:-.02em}
.brand small{display:block;font-weight:500;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-top:2px}
.nav{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:transparent;padding:11px 12px;border-radius:10px;font-size:15px;color:var(--muted)}
.nav:hover{background:var(--line2);color:var(--ink)}
.nav.on{background:var(--pri-soft);color:var(--pri-dark);font-weight:500;--acc:var(--hi)}
:root{--acc:var(--pri)} .nav{--acc:currentColor}
.count.at,.tab .dot.at,.toppill .dot.at,.pt .ic .dot.at{background:var(--pri)} .pcard .top .count.at{margin-right:6px}
.toppill .atbtn{animation:atpop .45s cubic-bezier(.3,1.6,.5,1)} .toppill .atbtn svg{color:var(--pri)}
@keyframes atpop{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion: reduce){.toppill .atbtn{animation:none}}
.dupHint{font-size:12.5px;margin-top:-6px;color:var(--amber)}
.nmcal{border:1px solid var(--line);border-radius:14px;padding:10px 8px 8px;background:var(--bg)}
.nmbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.nmseg .pill{padding:6px 12px;font-size:13.5px}
.nmnav{display:flex;align-items:center;gap:2px;font-size:14px;font-weight:600} .nmnav span{min-width:96px;text-align:center}
.nmnav button{border:0;background:transparent;color:var(--pri);width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:999px} .nmnav button svg{width:18px;height:18px}
.nmload{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:14px} .nmerr{padding:16px 8px;color:var(--amber);font-size:14px}
.nmg{--gut:34px;position:relative} .nmg.wk{--gut:26px}
.nmgh{display:grid;grid-template-columns:var(--gut) repeat(var(--n),1fr);margin-bottom:4px}
.nmgd{border:0;background:transparent;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:1px;padding:2px 0;border-radius:10px}
.nmgd i{font-style:normal;font-size:10.5px;color:var(--muted)} .nmgd b{font-size:14px;font-weight:600;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.nmgd.today b{color:var(--pri)} .nmgd.sel b{background:var(--pri);color:var(--pri-ink)}
.nmall{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:2px;margin:0 0 4px var(--gut)} .nmg.wk .nmall{grid-template-columns:var(--gut) repeat(var(--n),1fr);margin-left:0}
.nmall>div{display:flex;flex-direction:column;gap:2px;min-width:0} .nmall i{display:block;font-style:normal;font-size:11px;background:var(--beige);border:1px solid var(--line);border-radius:6px;padding:1px 6px;min-height:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nmall i.ooo{background:var(--amber-soft)} .nmall em{font-style:normal;font-size:10px;color:var(--muted)}
.nmgs{max-height:380px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-top:1px solid var(--line)}
.nmgb{position:relative}
.nmhr{position:absolute;left:var(--gut);right:0;border-top:1px dashed var(--line)} .nmhr span{position:absolute;left:calc(-1 * var(--gut));top:-7px;width:calc(var(--gut) - 6px);text-align:right;font-size:10.5px;color:var(--faint)}
.nmgc{position:absolute;top:0;bottom:0;border-left:1px solid var(--line2);cursor:pointer} .nmgc.today{background:var(--pri-soft)}
.nmnow{position:absolute;left:0;right:0;border-top:2px solid var(--red);z-index:3}
.nmev,.nmnew{position:absolute;border-radius:6px;padding:2px 6px;overflow:hidden;font-size:11.5px;line-height:1.25;display:flex;flex-direction:column;pointer-events:none}
.nmg.wk .nmev,.nmg.wk .nmnew{padding:1px 3px;font-size:9.5px;border-radius:4px}
.nmev b,.nmnew b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .nmev span,.nmnew span{opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nmev{background:var(--beige);color:var(--ink);border:1px solid var(--line)} .nmev.own{opacity:.85} .nmev.free{background:transparent;border-style:dashed;color:var(--muted)}
.nmev.pend{background:transparent;border:1.5px dashed var(--pri);color:var(--pri)} .nmev.ooo{background:var(--amber-soft)}
.nmnew{z-index:2;pointer-events:auto;touch-action:none;cursor:grab} .nmnew.drag{z-index:4;cursor:grabbing;transition:top .09s ease-out} .nmnew.call.drag{box-shadow:0 8px 22px rgba(27,40,48,.3)}
.nmev.fresh{animation:nmfresh 2.6s ease-out} @keyframes nmfresh{0%{opacity:0;box-shadow:0 0 0 2px var(--hi)}15%{opacity:1;box-shadow:0 0 0 2px var(--hi)}100%{box-shadow:0 0 0 2px transparent}}
@media (prefers-reduced-motion: reduce){.nmev.fresh{animation:none} .nmnew.drag{transition:none}} .nmnew.call{background:var(--pri);color:var(--pri-ink);box-shadow:0 2px 8px rgba(27,40,48,.18)} .nmnew.prep,.nmnew.wind{background:var(--pri-soft);border:1px dashed var(--pri)}
.nmbz{position:absolute;width:4px;border-radius:2px;background:repeating-linear-gradient(45deg,var(--amber) 0 3px,transparent 3px 5px);pointer-events:none}
.nmkey{display:flex;gap:4px 14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin:8px 0 0 4px} .nmkey i{font-style:normal;display:inline-flex;align-items:center;gap:6px}
.nmkey span{display:inline-block;width:10px;height:10px;border-radius:3px} .nmkey .kc{background:var(--pri)} .nmkey .kz{background:repeating-linear-gradient(45deg,var(--amber) 0 3px,transparent 3px 5px)}
.nmm .nmmh,.nmm .nmmg{display:grid;grid-template-columns:repeat(7,1fr);gap:2px} .nmmh span{text-align:center;font-size:11px;color:var(--muted);padding-bottom:4px}
.nmmc{border:0;background:transparent;color:var(--ink);border-radius:10px;min-height:52px;padding:4px 2px;display:flex;flex-direction:column;align-items:center;gap:3px}
.nmmc b{font-size:13.5px;font-weight:500;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.nmmc.out{opacity:.4} .nmmc.today b{color:var(--pri);font-weight:700} .nmmc.sel b{background:var(--pri);color:var(--pri-ink)}
.nmmb{display:flex;flex-direction:column;gap:2px;width:78%} .nmmb i{display:block;height:4px;border-radius:2px;background:var(--muted);opacity:.55} .nmmb i.all{background:var(--hi)} .nmmb i.free{opacity:.25}
.nmmc em{font-style:normal;font-size:9.5px;color:var(--muted)}
.nmst{font-size:13.5px;line-height:1.45;padding:10px 12px;border-radius:12px;background:var(--line2);color:var(--muted)}
.nmst.warn{background:var(--amber-soft);color:var(--amber)} .nmst.ok{background:var(--pri-soft);color:var(--pri);display:flex;gap:8px;align-items:flex-start} .nmst.ok svg{width:18px;height:18px;flex:none;margin-top:1px}
.nmst.ok span span{color:var(--muted)}
.cvcard{padding:10px 6px 10px 4px;overflow:hidden}
.cvg{--gut:40px;position:relative} .cvg.wk{--gut:30px}
.cvgh{display:grid;grid-template-columns:var(--gut) repeat(var(--n),minmax(0,1fr));margin-bottom:4px}
.cvgd{border:0;background:transparent;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:2px;padding:2px 0;border-radius:10px;min-width:0;font:inherit}
.cvgd i{font-style:normal;font-size:11px;color:var(--muted)} .cvgd b{font-size:14.5px;font-weight:600;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.cvgd.today b{background:var(--hi);color:#fff}
.cvall{display:grid;grid-template-columns:var(--gut) repeat(var(--n),minmax(0,1fr));gap:3px;margin-bottom:6px}
.cvall>span{font-size:10px;color:var(--faint);text-align:right;padding-right:6px;align-self:center}
.cvall>div{display:flex;flex-direction:column;gap:2px;min-width:0} .cvall em{font-style:normal;font-size:10px;color:var(--muted);padding-left:4px}
.cvchip{display:block;width:100%;border:0;font:inherit;font-size:12px;text-align:left;background:var(--beige);color:var(--ink);border-radius:6px;padding:3px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;cursor:pointer}
.cvg.wk .cvchip{font-size:10px;padding:2px 4px;border-radius:5px}
.cvchip.due{background:var(--red-soft);color:var(--red);font-weight:600} .cvchip.ooo{background:var(--amber-soft);color:var(--amber)} .cvchip.av{background:var(--line2);color:var(--muted)}
.cvb0{position:relative;margin-top:10px}
.cvhr{position:absolute;left:var(--gut);right:0;border-top:1px solid var(--line2)} .cvhr span{position:absolute;left:calc(-1 * var(--gut));top:-7px;width:calc(var(--gut) - 6px);text-align:right;font-size:10px;color:var(--faint);white-space:nowrap}
.cvg.wk .cvhr span{font-size:9px}
.cvc{position:absolute;top:0;bottom:0;border-left:1px solid var(--line2)}
/* a new event drafted right on the grid (v323): handles top-left and bottom-right, drag to move or resize; the peek panel below */
.cvdraft{position:absolute;left:2px;right:2px;z-index:4;border-radius:8px;border:2px solid var(--pri);background:color-mix(in srgb,var(--pri) 14%,var(--card));color:var(--ink);padding:4px 8px;font-size:12px;line-height:1.25;display:flex;flex-direction:column;overflow:visible;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;box-sizing:border-box}
.cvdraft b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .cvdraft span{opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cvdraft.on{cursor:grabbing;box-shadow:0 8px 22px rgba(20,24,27,.22)}
.cvdh{position:absolute;width:44px;height:44px;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:ns-resize;z-index:5}
.cvdh::after{content:'';width:14px;height:14px;border-radius:50%;background:var(--card);border:3px solid var(--pri);box-sizing:border-box}
.cvdh.t{left:-12px;top:-23px} .cvdh.b{right:-12px;bottom:-23px}
#cvpeek:empty{display:none}
#cvpeek{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--card);color:var(--ink);border-radius:22px 22px 0 0;box-shadow:0 -8px 30px rgba(20,24,27,.18);padding:8px 20px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;touch-action:none}
@media (min-width: 861px){ #cvpeek{left:auto;right:28px;bottom:24px;width:400px;border-radius:20px;padding-bottom:16px} }
#cvpeek .cvpg{align-self:center;width:64px;height:24px;border:0;margin:-6px 0 -8px;background:transparent;position:relative} #cvpeek .cvpg::after{content:'';position:absolute;left:12px;right:12px;top:10px;height:5px;border-radius:3px;background:var(--line)}
#cvpeek .cvpt{display:flex;justify-content:space-between;align-items:center}
#cvpeek .cvpx{width:44px;height:44px;border-radius:22px;border:1px solid var(--line);background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1}
#cvpeek .cvps{min-height:44px;padding:0 22px;border-radius:22px;border:0;background:var(--pri);color:var(--pri-ink);font:inherit;font-size:16px;font-weight:600}
#cvpeek input{border:0;background:transparent;color:var(--ink);font:inherit;font-size:24px;padding:4px 0;outline:none;min-width:0;width:100%}
#cvpeek input::placeholder{color:var(--faint)}
#cvpeek .cvpw{font-size:16px;color:var(--ink)}
#cvpeek .cvpm{display:flex;gap:8px;flex-wrap:wrap} #cvpeek .cvpm button{min-height:44px;border:1px solid var(--line);background:transparent;border-radius:12px;padding:0 14px;color:var(--pri);font:inherit;font-size:15px}
.cvnow{position:absolute;left:-1px;right:0;border-top:2px solid var(--hi);z-index:3;pointer-events:none} .cvnow::before{content:'';position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--hi)}
.cvev{position:absolute;border:0;font:inherit;text-align:left;border-radius:7px;padding:3px 6px;overflow:hidden;font-size:12px;line-height:1.25;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:1px;cursor:pointer;background:var(--line2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);z-index:1}
.cvg.wk .cvev{padding:2px 3px;font-size:10px;border-radius:5px}
.cvev b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .cvev span{opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cvg.wk .cvev b{white-space:normal;overflow-wrap:normal}
.cvev.blk{color:#fff;box-shadow:none} .cvev.blk span{opacity:.88}
.cvev.free,.cvev.prep{background:transparent;box-shadow:inset 0 0 0 1px var(--faint);color:var(--muted)} .cvev.prep{opacity:.8}
.cvev.ooo{background:var(--amber-soft);color:var(--amber);box-shadow:none}
.cvload{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:140px;border-radius:var(--radius);background:var(--line2);color:var(--muted);font-size:14px;padding:16px}
.cvm{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.cvmh{font-size:11px;color:var(--muted);text-align:center;padding-bottom:4px}
.cvmc{border:0;border-top:1px solid var(--line2);background:transparent;color:var(--ink);font:inherit;border-radius:0;min-height:76px;padding:4px 1px;display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:0;text-align:left;cursor:pointer}
.cvmc.out{opacity:.4} .cvmc>b{align-self:center;font-size:13px;font-weight:500;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.cvmc.today>b{background:var(--hi);color:#fff;font-weight:700}
.cvmc i{display:block;font-style:normal;font-size:9.5px;line-height:1.35;border-radius:4px;padding:0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--line2)}
.cvmc i.due{background:var(--red-soft);color:var(--red)} .cvmc i.ooo{background:var(--amber-soft);color:var(--amber)} .cvmc i.free,.cvmc i.av{background:transparent;color:var(--muted)}
.cvev.prop{background:color-mix(in srgb,var(--pc) 16%,var(--card));color:var(--ink);box-shadow:none;border:1.5px dashed var(--pc)}
.cvev.quick,.cvev.prop.quick{background:var(--beige);color:var(--ink);border:1.5px dashed var(--faint);box-shadow:none}
.cvgd em{font-style:normal;font-size:9.5px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}
.cvpsum{display:flex;flex-direction:column;gap:10px} .cvpsum b{font-size:18px;font-weight:600}
.cvpbar{display:flex;gap:2px;height:10px;border-radius:5px;overflow:hidden} .cvpbar i{display:block;min-width:4px}
.cvpkey{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12.5px;color:var(--muted)} .cvpkey span{display:inline-flex;align-items:center;gap:6px} .cvpkey i{width:10px;height:10px;border-radius:3px;display:inline-block}
.cvpact,.cvupact{display:flex;gap:10px} .cvpact .btn,.cvupact .btn{flex:1} .cvpact .btn.pri,.cvupact .btn.pri{flex:1.4}
.cvup{display:flex;flex-direction:column;gap:12px} .cvup .eyebrow{color:var(--amber)} .cvupt{font-size:20px;font-weight:600;line-height:1.25}
.cvupnote{padding:10px 12px;border-radius:12px;background:var(--beige);font-size:14px;line-height:1.4}
.cvnext{padding:0 4px}
.cvqrow{gap:12px;align-items:center} .cvqchk{flex:none;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--faint);background:var(--card);display:flex;align-items:center;justify-content:center;padding:0;color:#fff} .cvqchk svg{width:16px;height:16px}
.cvqrow.dn .cvqchk{background:var(--pri);border-color:var(--pri)} .cvqrow.dn .title{text-decoration:line-through;color:var(--muted)}
.cvqt{border:0;background:transparent;text-align:left;font:inherit;color:inherit;padding:0;min-width:0}
.cvev.cvlift{z-index:6;box-shadow:0 10px 24px rgba(27,40,48,.28);transform:scale(1.03);transition:transform .12s ease,box-shadow .12s ease;cursor:grabbing}
.cvb0 .cvev:not(.prop)::after{content:'';position:absolute;left:30%;right:30%;bottom:2px;height:3px;border-radius:2px;background:currentColor;opacity:0;transition:opacity .12s} .cvb0 .cvev.cvlift::after{opacity:.45}
.sheet input[type=date],.sheet input[type=time]{min-width:0;max-width:100%}
.cvrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px} .cvrow .f{min-width:0} .cvrow input,.cvrow select{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.cvrow input[type=time],.cvrow input[type=date],label.f input[type=date]{-webkit-appearance:none;appearance:none;display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;text-align:center}   /* iPhone draws date and time boxes wider than their column unless they're told not to */
/* how a meeting happens, at the top of an event: video (with Join) or in person (with Directions) */
.cvhow{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--field)}
.cvhow .cvhow-r{display:flex;align-items:center;gap:12px} .cvhow .cvhow-i{width:40px;height:40px;flex:none;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--pri-soft);color:var(--pri)} .cvhow .cvhow-i svg{width:22px;height:22px}
.cvhow .cvhow-t{flex:1 1 auto;min-width:0} .cvhow .cvhow-t b{display:block;font-size:16px;font-weight:600;color:var(--ink)} .cvhow .cvhow-t span{display:block;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.cvhow .cvhow-b{display:flex;gap:8px} .cvhow .cvhow-b .btn{flex:1 1 0;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none} .cvhow .cvhow-b .btn svg{width:18px;height:18px}
.cvperm{display:flex;flex-direction:column;gap:4px;padding:4px 0}
.cvcols{display:flex;flex-wrap:wrap;gap:10px} .cvsw{width:30px;height:30px;border-radius:50%;border:2px solid transparent;padding:0;cursor:pointer;box-shadow:inset 0 0 0 2px var(--card)} .cvsw.on{border-color:var(--ink)} .cvsw.dflt{background:var(--line2);box-shadow:inset 0 0 0 1px var(--line)}
.cvrsvp{display:flex;gap:8px} .cvrsvp .btn{flex:1}
.cvhd{display:flex;gap:8px;align-items:center} .cvhd .icon svg{width:20px;height:20px}
.cvroll{display:flex;flex-direction:column;gap:10px} .cvroll .eyebrow{color:var(--amber)}
.cvev.blk.miss{background:transparent!important;color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--line);opacity:.85}
.cvlb{display:flex;flex-direction:column;gap:12px} .cvlbr{display:flex;flex-direction:column;gap:5px;min-width:0} .cvlbr .clip{min-width:0;font-weight:500}
.cvlbb{position:relative;height:10px} .cvlbb i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;display:block} .cvlbb i.pl{border:1.5px solid;box-sizing:border-box} .cvlbb i.dn{opacity:.85}
.mtaf{display:grid;grid-template-columns:repeat(5,1fr);gap:0 4px;background:var(--beige);border-radius:14px;padding:6px 4px}
.mtafh{font-size:11px;color:var(--muted);text-align:center;padding:2px 0 0}
.mtafd{border:0;background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center;min-height:44px;padding:0;border-radius:10px}
.mtafd.today b{box-shadow:inset 0 0 0 1.5px var(--faint)} .mtafd b{font-size:14.5px;font-weight:600;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.mtafd.in b{background:var(--pri-soft);color:var(--pri-dark)} .mtafd.on b{background:var(--pri);color:var(--pri-ink)} .mtafd:disabled{opacity:.35}
.cvmc em{font-style:normal;font-size:9.5px;color:var(--muted);text-align:center} .cvmc small{font-size:9.5px;color:var(--faint);text-align:center;margin-top:auto}
.sug .sugk{display:block;margin-bottom:2px;color:var(--pri)} .sug .sugadd{display:block;margin:4px 0 2px;padding:6px 10px;border-left:3px solid var(--pri);background:var(--line2);border-radius:0 8px 8px 0;font-size:14px;line-height:1.4;color:var(--ink)}
.count{min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--amber);color:#fff;font-size:12px;display:inline-flex;align-items:center;justify-content:center}
.side .mini{margin-top:auto}
.nav svg{width:20px;height:20px;flex:none}
.nav .count{margin-left:auto}
.main{flex:1;min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--bg);padding:40px clamp(18px,4vw,56px) 60px}
.wrap{max-width:980px;margin:0 auto;display:flex;flex-direction:column;gap:26px;min-height:calc(100% + 1px)}
.main{touch-action:pan-y;overflow-x:hidden;overscroll-behavior-x:none}   /* (v358) no sideways drift while scrolling */
#ptr{position:fixed;left:50%;top:calc(var(--sat, env(safe-area-inset-top, 0px)) + 10px);width:38px;height:38px;margin-left:-19px;border-radius:50%;background:var(--card);box-shadow:0 4px 14px rgba(20,24,27,.18);display:flex;align-items:center;justify-content:center;color:var(--muted);z-index:60;pointer-events:none;opacity:0;transform:translateY(-60px)}
#ptr svg{width:20px;height:20px} #ptr.armed{color:#fff;background:var(--pri)} #ptr.spin{color:var(--pri)} #ptr.spin svg{animation:ptrspin .8s linear infinite}
#pdfv{position:fixed;inset:0;z-index:50;background:var(--beige);display:flex;flex-direction:column;opacity:0;transform:translateY(24px);transition:opacity .2s ease,transform .22s cubic-bezier(.2,.8,.2,1)}
#pdfv.on{opacity:1;transform:none}
#pdfv .pvbar{display:flex;align-items:center;gap:6px;padding:calc(var(--sat, env(safe-area-inset-top, 0px)) + 8px) 10px 8px;background:var(--card);border-bottom:1px solid var(--line)}
#pdfv .pvt{flex:1;min-width:0;text-align:center;font-weight:600;font-size:15px}
#pdfv .pvb{border:0;background:none;color:var(--pri);font:inherit;font-size:16px;font-weight:500;padding:8px 8px;min-width:44px;min-height:40px;border-radius:12px;cursor:pointer}
#pdfv .pvb.ico{display:flex;align-items:center;justify-content:center;padding:6px}
#pdfv .pvb svg{width:22px;height:22px}
#pdfv .pvsc{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y}
#pdfv .pvpages{width:100%;box-sizing:border-box;transform-origin:0 0;padding:14px 12px calc(28px + env(safe-area-inset-bottom, 0px));display:flex;flex-direction:column;gap:14px;max-width:900px;margin:0 auto}
#pdfv.zoomed .pvpages{width:220%;max-width:none}
#pdfv .pvpage{background:#fff;box-shadow:0 1px 3px rgba(20,24,27,.12),0 6px 18px rgba(20,24,27,.08);border-radius:4px;overflow:hidden;width:100%}
#pdfv .pvpage canvas{display:block;width:100%;height:100%}
#pdfv .pvmsg{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 20px;text-align:center;color:var(--muted);font-size:15px;line-height:1.45}
#pdfv .pvspin{width:26px;height:26px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--pri);animation:ptrspin .8s linear infinite}
#pdfv .pvfoot{text-align:center;color:var(--faint);font-size:13px}
.invrow{width:100%;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.invic{width:40px;height:40px;border-radius:12px;background:var(--line2);color:var(--muted);display:grid;place-items:center;flex:none}
.invic svg{width:20px;height:20px} .invic.draft{background:var(--amber-soft);color:var(--amber)} .invic.sched{background:var(--pri-soft);color:var(--pri)}
.invic.due{background:var(--amber-soft);color:var(--amber)} .invic.bad{background:var(--red-soft);color:var(--red)}
.invst.due{color:var(--amber)} .invst.bad{color:var(--red)} .amt.strike{text-decoration:line-through;color:var(--faint)}
.invsum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.invsum>div{background:var(--card);border-radius:16px;padding:10px 12px;box-shadow:var(--shadow);min-width:0}
.invsum small{display:block;font-size:12px;color:var(--muted)} .invsum b{display:block;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}
.invsum b.due{color:var(--amber)}
.seg.seg5 .pill{flex:1 1 auto;padding:0 6px;white-space:nowrap;font-size:13.5px}
.ipbar{height:4px;border-radius:2px;background:var(--line);overflow:hidden} .ipbar i{display:block;height:100%;background:var(--pri);border-radius:2px;transition:width .25s ease}
.ipq{font-size:20px;font-weight:600;margin:4px 0 0;text-wrap:balance}
.payrow .paychip{flex:none;display:inline-flex;align-items:center;gap:5px;border:0;border-radius:999px;padding:6px 11px;font:inherit;font-size:13px;font-weight:500;background:var(--pri-soft);color:var(--pri);cursor:pointer;white-space:nowrap}
.payrow .paychip svg{width:15px;height:15px} .payrow .paychip.go{background:var(--pri);color:var(--pri-ink)}
.invic.paid{background:var(--pop-ok);color:var(--pop-ok-ink)} .invst.ok{color:var(--pop-ok-ink)}
.thxcard{padding:16px} .thxsub{font-weight:600;margin-bottom:10px} .thxbody{font-size:15px;line-height:1.5;color:var(--ink)}
/* the thank-you, sent */
.thxok{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:10px 8px 6px}
.thxok b{font-size:22px;font-weight:600;letter-spacing:-.01em;margin-top:8px;text-wrap:balance} .thxok .sub{font-size:15px;line-height:1.45;max-width:36ch;text-wrap:pretty}
.thxbadge{width:68px;height:68px;border-radius:50%;background:var(--pop-ok);color:var(--pop-ok-ink);display:grid;place-items:center;animation:atpop .38s cubic-bezier(.2,.9,.3,1.3) both}
.thxbadge svg{width:32px;height:32px} .thxbadge path{stroke-dasharray:15;animation:ckdraw .42s .22s ease-out both}
.thxsum{border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px 0;background:var(--card)} .thxsum .invamt{font-size:36px}
.thxsum .kvl{margin-top:12px} .thxsum .kvl > div:last-child{border-bottom:0}
.thxrc{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:12px 16px;min-height:0} .thxrc .title{font-size:16px} .thxrc .meta{font-size:13px;color:var(--muted)}
.thxrc .go{color:var(--pri);font-size:15px;font-weight:500;flex:none}
@media (prefers-reduced-motion: reduce){.thxbadge,.thxbadge path{animation:none}}
.sysmsg{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;margin:12px auto;max-width:88%;padding:12px 16px;border-radius:16px;background:var(--pri-soft);color:var(--pri-dark)}
.sysmsg .syst{font-weight:600;font-size:14.5px} .sysmsg .sysb{font-size:13.5px;line-height:1.4;color:var(--ink);opacity:.8} .sysmsg .sysw{font-size:11.5px;color:var(--faint)}
.sysmsg.pause{background:var(--amber-soft);color:var(--amber)}
#ptr.settle{transition:transform .25s ease,opacity .25s ease,background .2s,color .2s}
@keyframes ptrspin{to{transform:rotate(360deg)}}
.tabs,.floatbar{touch-action:none}
@keyframes inR{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes inL{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
.wrap.inR{animation:inR .2s ease-out}
.wrap.inL{animation:inL .2s ease-out}
/* bottom tabs (phones) */
.tabs{display:none}
@media all{   /* Studio: the bottom tabs at every width */
  .side{display:none}
  .app{flex-direction:column}
  .main{padding:22px 16px 150px}
  /* the bottom bar floats as a frosted pill; the page shows faintly through it */
  .tabs{display:block;position:absolute;left:20px;right:20px;bottom:20px;padding:5px;border-radius:999px;z-index:20;
        background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);
        border:1px solid var(--glass-edge);box-shadow:0 10px 30px rgba(27,40,48,.10),0 1px 2px rgba(27,40,48,.05)}
  .tabrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:relative;z-index:1}
  .blob{position:absolute;top:5px;bottom:5px;left:5px;width:calc((100% - 10px) / 4);transition-property:transform,width,opacity;z-index:0;pointer-events:none;transition:transform .45s cubic-bezier(.3,1.3,.5,1),opacity .2s}
  .blob i{display:block;width:100%;height:100%;border-radius:999px;background:var(--bubble);box-shadow:inset 0 0 0 1px var(--bubble-edge)}
  .blob.go i{animation:squish .45s ease}
  @keyframes squish{0%{transform:scale(1)}40%{transform:scale(1.32,.86)}100%{transform:scale(1)}}
  /* the whole pill gives a small answering flex when the selection changes */
  .tabs.bump{animation:tbump .42s cubic-bezier(.3,1.2,.5,1)}
  @keyframes tbump{0%{transform:none}35%{transform:scale(1.012,.97)}100%{transform:none}}
  @media (prefers-reduced-motion: reduce){.tabs.bump,.blob.go i{animation:none}}
  .tab{border:0;background:transparent;height:51px;display:flex;align-items:center;justify-content:center;color:var(--faint);position:relative;padding:0;transition:color .25s}
  .tab .ic{display:flex;align-items:center;justify-content:center;transition:transform .25s}
  /* (v410) Projects: the bar ends at Calendar, search sits in its own circle to the right */
  .tabs.nohub{right:94px}.tabs.nohub .tabrow{grid-template-columns:repeat(3,minmax(0,1fr))}.tabs.nohub.haslive .tabrow{grid-template-columns:minmax(0,1fr) minmax(0,2.6fr) minmax(0,1fr)}
  #tsrch{display:none;position:fixed;right:20px;bottom:20px;z-index:20;width:62px;height:62px;border-radius:50%;border:1px solid var(--glass-edge);background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);box-shadow:0 10px 30px rgba(27,40,48,.10),0 1px 2px rgba(27,40,48,.05);color:var(--pri);place-items:center;padding:0;cursor:pointer}
  #tsrch.on{display:grid}#tsrch svg{width:25px;height:25px}#tsrch:active{transform:scale(.94)}
  .hbdesk{display:none!important}
  /* (v407) the running timer in place of the Timer icon: the project, its clock, and pause */
  .tabs.haslive .tabrow{grid-template-columns:minmax(0,1fr) minmax(0,2.6fr) minmax(0,1fr) minmax(0,1fr)}
  .tab.tlive{display:flex;align-items:center;justify-content:center;gap:5px;padding:0 2px}
  .tlgo{display:flex;align-items:center;gap:6px;border:0;background:var(--line2);height:44px;padding:0 9px 0 5px;border-radius:22px;color:var(--ink);font:inherit;cursor:pointer;min-width:0}
  .tlic{position:relative;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:700;flex:none}
  .tlic::before{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid #E97F2C;animation:tlpulse 2.4s ease-in-out infinite}
  @keyframes tlpulse{0%,100%{opacity:1}50%{opacity:.45}}
  .tlclk{flex:none;white-space:nowrap;font-size:14.5px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
  .tlpz{flex:none;width:36px;height:36px;border-radius:50%;border:0;background:var(--pri);color:#fff;display:grid;place-items:center;padding:0;cursor:pointer}.tab .tlpz svg{width:15px;height:15px}
  .tlgo:active,.tlpz:active{transform:scale(.94)}
  .tab.tlive.paused .tlic::before{animation:none;border-color:var(--faint)}.tab.tlive.paused .tlclk{color:var(--muted)}
  .tab svg{width:27px;height:27px}
  /* Today only: Inbox and More live in a small frosted pill, top right */
  .toppill{position:fixed;top:16px;right:20px;z-index:21;display:flex;align-items:center;gap:2px;padding:4px;border-radius:999px;
           background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);
           border:1px solid var(--glass-line);box-shadow:0 8px 24px rgba(27,40,48,.10),0 1px 2px rgba(27,40,48,.06)}
  .toppill[hidden]{display:none}
  .toppill button{width:46px;height:42px;border:0;background:transparent;border-radius:999px;color:var(--ink);display:flex;align-items:center;justify-content:center;position:relative;padding:0}
  .toppill button:active{background:rgba(43,106,143,.10)}
  .toppill svg{width:24px;height:24px}
  .toppill .dot{position:absolute;top:5px;right:7px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--amber);color:#fff;font-size:10px;font-weight:500;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #fff}
  .toppill .sep{width:1px;height:22px;background:var(--line)}
  body[data-view="today"] .main{padding-top:80px}
  /* Home Screen web app: iPhone lays its blurred status bar over the top of the page, so everything starts below it */
  html.sa{--sat:max(env(safe-area-inset-top), 50px)}
  html.sa .main{padding-top:calc(var(--sat) - 4px)}   /* titles raised 26px, matching the pill */
  html.sa body[data-view="today"] .main{padding-top:calc(46px + var(--sat))}
  html.sa .toppill{top:calc(var(--sat) - 18px)}   /* raised half the pill's height (52px) from where it was */
  .back{display:inline-flex;align-items:center;gap:2px;border:0;background:transparent;color:var(--pri);font-size:15px;padding:0;min-height:36px;margin-bottom:-14px;align-self:flex-start}
  /* (v360) the inline Back stays put; once it scrolls away a separate glass pill floats in its place */
  #fback{position:fixed;top:max(8px,calc(var(--sat,0px) - 6px));left:14px;z-index:39;display:inline-flex;align-items:center;gap:2px;border:0;color:var(--pri);font-size:15px;min-height:36px;padding:0 12px 0 6px;border-radius:999px;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 0 0 1px var(--glass-edge),0 4px 14px rgba(27,40,48,.10);opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .18s,transform .18s}
  #fback.on{opacity:1;transform:none;pointer-events:auto}
  #fback svg{width:18px;height:18px}
  .back svg{width:18px;height:18px}
  .tab.on{color:var(--pri)}
  .tab{--acc:currentColor} .tab.on{--acc:var(--hi);--sw:1.9}   /* icon direction B: the solid accent piece warms when the tab is active */
  .tab:active .ic{transform:scale(.88)}
  .tab .dot{position:absolute;top:5px;left:calc(50% + 9px);min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--amber);color:#fff;font-size:10px;font-weight:500;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px rgba(255,255,255,.9)}
  .floatbar{position:fixed;left:20px;right:20px;bottom:91px;z-index:19}
}
/* type */
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
h1{font-weight:700;font-size:clamp(28px,5vw,36px);line-height:1.12;letter-spacing:-.02em;margin:4px 0 0}
h2{font-size:18px;letter-spacing:0;color:var(--ink);font-weight:500;margin:0;line-height:1.3}
h2 .n{color:var(--faint);font-weight:400}
.seeall{border:0;background:transparent;color:var(--pri);font-size:14px;display:inline-flex;align-items:center;gap:2px;padding:8px 0;min-height:40px}
.seeall svg{width:16px;height:16px}
.sub{color:var(--muted);font-size:14px}
.row{display:flex;align-items:center;gap:12px}
.between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.stack{display:flex;flex-direction:column;gap:12px}
.card{background:var(--card);border:0;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.list{background:var(--card);border:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.item{display:flex;align-items:center;gap:14px;padding:14px 18px;min-height:68px;position:relative}
.item + .item::before{content:'';position:absolute;top:0;right:18px;left:72px;border-top:1px solid var(--line2)}
.item.noav + .item::before,.item + .item.noav::before{left:18px}
.av{width:40px;height:40px;border-radius:999px;background:var(--beige);color:var(--muted);flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;letter-spacing:.02em}
.av.pri{background:var(--pri-soft);color:var(--pri-dark)}
.amt{font-variant-numeric:tabular-nums;font-size:16px;font-weight:500;white-space:nowrap}
.grow{flex:1;min-width:0}
.title{font-size:16px;line-height:1.35}
.meta{font-size:13px;color:var(--muted);margin-top:2px}
.clip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.empty{border-radius:var(--radius);padding:22px 20px;color:var(--muted);font-size:15px;text-align:center;background:var(--beige)}
/* buttons */
.btn{min-height:44px;padding:0 18px;border-radius:14px;border:1px solid var(--line);background:var(--card);font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.btn:hover{border-color:var(--hover)}
.btn.pri{background:var(--pri);border-color:var(--pri);color:var(--pri-ink)}
.btn.pri:hover{background:var(--pri-dark)}
.btn.ghost{border-color:transparent;background:transparent;color:var(--pri)}
.btn.line{border-color:var(--line);color:var(--pri-dark)}
.btn.danger{color:var(--red)}
.btn.armed,.btn.danger.armed,.btn.line.danger.armed{background:var(--red);border-color:var(--red);color:#fff;font-weight:600;animation:armpop .22s ease}
.btn.armed:hover{background:var(--red);filter:brightness(.95)} @keyframes armpop{0%{transform:scale(.97)}60%{transform:scale(1.02)}100%{transform:none}}
@media (prefers-reduced-motion: reduce){ .btn.armed{animation:none} }
.btn.line.danger{border-color:color-mix(in srgb,var(--red) 45%,var(--line));background:var(--card)} .btn.line.danger:hover{border-color:var(--red);background:var(--red-soft)}
.btn.wide{width:100%}
.ibc.wait{border:1.5px solid var(--hi);box-shadow:0 0 0 3px color-mix(in srgb,var(--hi) 14%,transparent)}
.hcard.need.wait{box-shadow:inset 0 0 0 2px var(--hi)}
.hcard.need.top{box-shadow:inset 0 0 0 2.5px var(--hi),0 14px 34px rgba(20,35,46,.22)}.hcard.need.top .hk{opacity:1;color:#FFD2AE}
.invwait{display:flex;align-items:center;gap:8px;width:100%;border:1.5px solid var(--hi);background:var(--amber-soft);color:var(--amber);border-radius:12px;padding:9px 12px;font-size:13.5px;text-align:left;min-width:0;cursor:pointer}
.invwait svg{width:16px;height:16px;flex:none} .invwait .clip{flex:1;min-width:0} .invwait b{font-weight:600}
button.mref.inv.wait{border-color:var(--hi);color:var(--amber);background:var(--amber-soft)}
.btn.big{min-height:52px;font-size:15px}
.invacts{display:flex;gap:10px} .invacts .btn{flex:1 1 0;min-width:0;padding:0 12px} .invacts .btn svg{width:18px;height:18px;flex:none}
a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.invamt{font-size:44px;font-weight:300;letter-spacing:-.02em;line-height:1.15;margin-top:4px}
.kvl{border-top:1px solid var(--line)} .kvl > div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line);font-size:15px}
.kvl span:first-child{color:var(--muted);flex:none} .kvl span:last-child{text-align:right;overflow-wrap:anywhere}
.warnt{color:var(--red)}
.btn[disabled]{opacity:.5;cursor:default}
.pill{min-height:40px;padding:0 15px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:13px}
.pill.on{background:var(--pri-soft);border-color:transparent;color:var(--pri-dark)}
.pill.plus{border-style:dashed;color:var(--pri)}
.chips.fit{flex-wrap:nowrap;gap:6px} .chips.fit .pill{flex:1;padding:0 4px;white-space:nowrap}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.depamt{font-size:24px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;font-variant-numeric:tabular-nums}
.depmemo{font-style:italic;color:var(--muted);overflow-wrap:anywhere}
.depnote{background:var(--amber-soft);color:var(--amber);border-radius:10px;padding:8px 10px}
.pill.depinv{min-height:48px;height:auto;padding:6px 14px;display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;border-radius:14px}
.pill.depinv small{color:var(--muted);font-size:12px} .pill.depinv.exact{border-color:var(--pri)}
.deplist{max-height:280px;overflow-y:auto}
.deprem{display:flex;align-items:center;gap:10px;min-height:40px;background:none;border:0;padding:0;color:var(--ink);font-size:14px;text-align:left}
.depbox{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line);display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--pri-ink)}
.deprem.on .depbox{background:var(--pri);border-color:var(--pri)}
.depline{display:flex;gap:8px;align-items:center} .depline select{flex:1;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);padding:0 10px;font:inherit}
.btn.sm{min-height:36px;padding:0 12px;font-size:13px;border-radius:12px;flex:none}
.prminfo{background:var(--pri-soft);color:var(--pri-dark);border-radius:10px;padding:8px 10px}
.prmok{display:flex;gap:6px;align-items:center;color:var(--pri)} .prmok svg{flex:none}
.prmflag{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.prmokb{display:inline-flex;align-items:center;gap:5px;border:0;font:inherit;font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--card);color:var(--ink);box-shadow:0 0 0 1px color-mix(in srgb,var(--amber) 35%,transparent);cursor:pointer}.prmokb svg{width:14px;height:14px;color:var(--pri)}
.prmdone{display:flex;gap:8px;color:var(--muted);font-size:13px;padding:2px 2px}.prmdone>span:first-child{color:var(--pri);flex:none}.prmdone s{text-decoration-color:color-mix(in srgb,var(--muted) 60%,transparent)}
.linkb{border:0;background:none;padding:0;font:inherit;color:var(--pri);cursor:pointer}
.phrow{display:flex;flex-direction:column;gap:8px;padding:12px 0 2px;border-top:1px solid var(--line2)} .phrow .meta{display:inline;margin:0}
.pill.armed{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}
.prmnext{background:var(--pri-soft);color:var(--pri-dark);border-radius:14px;padding:12px 14px;font-size:15px;line-height:1.4}
.prmnext.warn{background:var(--amber-soft);color:var(--amber)}
.prmstep.lock .prmh{opacity:.55} .prmstep.lock .prmsum{color:var(--muted)} .prmh{display:flex;align-items:center;gap:10px} .prmsum{overflow-wrap:anywhere}
.prmn{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;background:var(--line2);color:var(--muted);flex:none}
.prmn.ok{background:var(--pri);color:var(--pri-ink)} .prmn svg{width:14px;height:14px}
.ferr{color:var(--red);font-size:13px;line-height:1.35}
.prmform{padding:10px 0;border-top:1px solid var(--line2)} .prmform .t{font-size:15px}
.prmol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--ink);line-height:1.45}
.prmatt{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;font-size:14px;overflow-wrap:anywhere} .prmatt svg{width:18px;height:18px;flex:none;color:var(--muted)}
.prmtag{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--amber);background:var(--amber-soft);border-radius:6px;padding:1px 6px;margin-left:4px;vertical-align:2px}
.chips.ibacts{justify-content:flex-end}
.icon{width:44px;height:44px;border-radius:999px;border:0;background:var(--pri-soft);color:var(--pri);display:inline-flex;align-items:center;justify-content:center;flex:none}
.icon.soft{background:var(--pri-soft);color:var(--pri)}
.check{width:40px;height:40px;border-radius:999px;border:2px solid var(--check);background:var(--card);flex:none;display:inline-flex;align-items:center;justify-content:center}
.check.on{background:var(--pri);border-color:var(--pri);color:var(--pri-ink)}
.check svg path{stroke-dasharray:15;stroke-dashoffset:0}
.completing .check{background:var(--pri);border-color:var(--pri);color:var(--pri-ink);animation:ckpop .42s cubic-bezier(.3,1.4,.5,1)}
.completing .check svg path{animation:ckdraw .3s .1s ease-out both}
@keyframes ckpop{0%{transform:scale(1)}35%{transform:scale(.8)}72%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes ckdraw{from{stroke-dashoffset:15}to{stroke-dashoffset:0}}
.tt{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 58%;background-size:0 1.5px;transition:background-size .34s ease .2s,color .3s ease .2s}
.completing .tt{background-size:100% 1.5px;color:var(--muted)}
section.collapsing{overflow:hidden;opacity:0;transition:height .3s cubic-bezier(.4,0,.2,1),margin .3s cubic-bezier(.4,0,.2,1),opacity .2s ease}
.item.collapsing,.swipe.collapsing{overflow:hidden;opacity:0;min-height:0!important;padding-top:0!important;padding-bottom:0!important;transition:height .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1),opacity .2s ease}
.item.collapsing::before,.item.collapsing + .item::before,.swipe.collapsing::before,.swipe.collapsing + .swipe::before{opacity:0}
.swipe.tsw + .swipe.tsw::before{left:18px}
.swipe:not(.moving):not(.gone):not(.open) .swipe-bg{visibility:hidden}   /* no red hairline under a resting row */
.trow{border:0;background:transparent;text-align:left;padding:0;min-width:0;cursor:pointer}
.tvhead{display:flex;gap:14px;align-items:flex-start}
.tvtitle{font-size:20px;line-height:1.3;font-weight:500;padding-top:7px;overflow-wrap:anywhere;min-width:0}
.tvtitle.done{color:var(--muted);text-decoration:line-through}
.tvnotes{font-size:15px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--beige);border-radius:14px;padding:12px 14px}.tvntap{cursor:text;text-align:left;width:100%;border:0;color:var(--ink);font-family:inherit}.tvnph{color:var(--faint)}textarea.tvnin{width:100%;box-sizing:border-box;border:1px solid var(--pri);outline:none;resize:none;font-family:inherit;color:var(--ink);min-height:96px}
.tvnotes a{color:var(--pri)}
.kvl .who{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-size:15px}
@media (prefers-reduced-motion: reduce){.completing .check,.completing .check svg path{animation:none}.tt,.item.collapsing,.swipe.collapsing{transition:none}}

/* ---- Home: hero rail, glance tiles, project tiles */
.herowrap{display:flex;flex-direction:column;gap:12px}
.hrail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1 * clamp(18px,4vw,56px));padding:0 clamp(18px,4vw,56px);scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-padding:0 clamp(18px,4vw,56px)}
@media (max-width:860px){ .hrail{margin:0 -16px;padding:0 16px;scroll-padding:0 16px} }
.hrail::-webkit-scrollbar,.prail::-webkit-scrollbar{display:none}
.hcard{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always;position:relative;overflow:hidden;border-radius:28px;min-height:min(62vw,330px);color:#F3F6F8;
  background-color:#1F3A4E;
  background-image:radial-gradient(120% 85% at 92% -5%,rgba(74,147,184,.62),transparent 62%),linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:auto,48px 48px,48px 48px,12px 12px,12px 12px;background-position:0 0,-1px -1px,-1px -1px,-1px -1px,-1px -1px;box-shadow:0 14px 34px rgba(20,35,46,.22)}
.hcard.need{background-color:#3E2A22;background-image:radial-gradient(120% 85% at 92% -5%,rgba(233,127,44,.5),transparent 62%),linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px)}
.hcard.task{background-color:#23313A;background-image:radial-gradient(120% 85% at 92% -5%,rgba(126,156,136,.5),transparent 62%),linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px)}
.hdeco{position:absolute;right:-6px;top:10px;width:min(52%,210px);color:#fff;opacity:.15;pointer-events:none}
.hbody{position:relative;height:100%;min-height:inherit;box-sizing:border-box;padding:22px 22px 20px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px}
.hk{font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.78;display:flex;align-items:center;gap:8px}
.hk .live{width:8px;height:8px;border-radius:999px;background:#F29A4A;box-shadow:0 0 0 4px rgba(242,154,74,.22)}
.ht{font-size:clamp(24px,7vw,30px);font-weight:700;line-height:1.12;letter-spacing:-.015em;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hclock{font-size:clamp(52px,16vw,68px);font-weight:300;line-height:1;letter-spacing:.01em;font-variant-numeric:tabular-nums}
.hs{font-size:15px;line-height:1.4;opacity:.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hacts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:10px;margin-top:8px}
.hacts > :only-child{grid-column:1 / -1}
.hbtn{min-height:50px;border-radius:999px;border:0;background:#F3F6F8;color:#16232C;font:inherit;font-size:16px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.hbtn svg{width:18px;height:18px}
.hbtn.glass{background:rgba(255,255,255,.14);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.hbtn.hsent{opacity:.7;cursor:default;font-size:15px}
.btn.ibsent{opacity:.75;cursor:default;display:inline-flex;align-items:center;gap:6px} .btn.ibsent svg{width:15px;height:15px}
.hdots{display:flex;justify-content:center;gap:7px}
.hdots button{width:7px;height:7px;border-radius:999px;border:0;padding:0;background:var(--line);transition:width .25s ease,background .25s ease;cursor:pointer}
.hdots button.on{width:22px;background:var(--ink)}
.glance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gt{background:var(--card);border:0;border-radius:20px;box-shadow:var(--shadow);padding:13px 14px 12px;text-align:left;display:flex;flex-direction:column;gap:2px;font:inherit;color:var(--ink);cursor:pointer;min-width:0}
.gt .l{font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.gt .v{font-size:24px;font-weight:500;letter-spacing:-.01em;white-space:nowrap}
.gt .s{font-size:12.5px;color:var(--muted)} .gt .s.over{color:var(--red)}
.sech{border:0;background:transparent;padding:0;font:inherit;font-size:22px;font-weight:700;letter-spacing:-.015em;color:var(--ink);display:inline-flex;align-items:center;gap:4px;cursor:pointer}
.sech svg{width:20px;height:20px;color:var(--faint);margin-top:2px} .sech .n{color:var(--faint);font-weight:500}
.prail{display:flex;gap:14px;overflow-x:auto;margin:0 -16px;padding:2px 16px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
@media (min-width:861px){ .prail{margin:0;padding:2px 0 4px} }
.pt{flex:0 0 104px;width:104px;min-width:0;border:0;background:transparent;padding:0;text-align:left;font:inherit;color:var(--ink);display:flex;flex-direction:column;gap:2px;cursor:pointer}
.pt .ic{position:relative;width:104px;height:104px;border-radius:26px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:30px;font-weight:600;letter-spacing:.02em;margin-bottom:6px;box-shadow:0 8px 18px rgba(20,35,46,.16);
  background-blend-mode:normal;overflow:hidden}
.pt .ic::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);background-size:13px 13px;pointer-events:none}
.pt .ic .dot{position:absolute;top:8px;right:8px;min-width:20px;height:20px;border-radius:999px;background:#E97F2C;color:#fff;font-size:11.5px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 5px;z-index:1}
.pt .n{font-size:14px;font-weight:500;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pt .m{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* timer */
.clock{font-size:clamp(54px,16vw,72px);font-weight:300;letter-spacing:.01em;font-variant-numeric:tabular-nums;line-height:1}
.mono{font-variant-numeric:tabular-nums}
.adj{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.run{text-align:center;align-items:stretch;padding:24px 20px}
.run .hero{display:flex;flex-direction:column;align-items:center;gap:4px}
.tmtask{display:inline-flex;align-items:center;gap:4px;max-width:100%;min-height:36px;margin-top:-2px;padding:4px 8px 4px 12px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:14px;cursor:pointer}
.tmtask span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .tmtask svg{width:16px;height:16px;flex:none;opacity:.7} .tmtask:active{background:var(--line2)}
.tmtask.none b{color:var(--hi);font-weight:500}
.tmprog{width:100%;max-width:290px;margin:8px auto 0;display:flex;align-items:center;gap:12px}
.tmbar{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;border:0;background:none;padding:8px 0;margin:-8px 0;font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.tmbar .tl{display:block;text-align:left}.tmbar.none .tl{color:var(--faint)}
.tmbar u{text-decoration:underline;text-underline-offset:2px} .tmbar.over .tl{color:var(--red)} .tmbar:active .eb{filter:brightness(.92)} .tmbar:focus-visible{outline:2px solid var(--pri);outline-offset:2px;border-radius:8px}
.check.tmck{width:34px;height:34px;color:var(--muted);transition:background .2s,border-color .2s,color .2s}.check.tmck svg{opacity:.3}
.check.tmck.cap{border-color:var(--amber);color:var(--amber);animation:tmcap 2.4s ease-in-out infinite}.check.tmck.cap svg{opacity:.75}
@keyframes tmcap{0%,100%{box-shadow:0 0 0 0 rgba(184,86,28,0)}50%{box-shadow:0 0 0 6px rgba(184,86,28,.14)}}
.check.tmck.go{background:var(--pri);border-color:var(--pri);color:var(--pri-ink);animation:ckpop .42s cubic-bezier(.3,1.4,.5,1)}.check.tmck.go svg{opacity:1}
.tmack{border:0;background:none;padding:0;font:inherit;color:var(--pri);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.clockrow{position:relative;width:100%;display:flex;justify-content:center;align-items:center;margin:6px 0 4px}.run .clockrow .clock{margin:0;font-size:clamp(48px,14vw,68px)}
.adjv,.ckset{position:absolute;top:50%;transform:translateY(-50%)}
.adjv{right:-6px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:999px;background:var(--card);overflow:hidden}
.adjv .tsb{width:38px;height:36px}.adjv .tsb+.tsb{border-left:0;border-top:1px solid var(--line)}
.ckset{left:-6px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--muted);display:grid;place-items:center;padding:0;cursor:pointer}.ckset svg{width:16px;height:16px}.ckset:active{background:var(--line2)}
.lgdec{text-align:center;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-top:-2px}
.tmprog .tl{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:center} .tmprog .tl.amb{color:var(--amber)}
.tmnext{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:14px;cursor:pointer;margin:8px auto 0}
.tmnext svg{width:14px;height:14px;color:var(--pri)} .tmnext:active{background:var(--line2)}
.tmcap{display:flex;flex-direction:column;align-items:center;gap:8px;margin:10px auto 0;padding:10px 12px;border-radius:14px;background:var(--amber-soft);color:var(--amber);font-size:13.5px;width:100%;max-width:320px}
.tmcap .row{display:flex;gap:8px} .tmcap .pill{min-height:36px;background:var(--card);color:var(--ink);display:inline-flex;align-items:center;gap:6px} .tmcap .pill svg{width:14px;height:14px;color:var(--pri)}
.tmearl{font-size:12.5px;color:var(--faint);margin-top:8px;line-height:1.45;max-width:100%} .tmearl .ok{color:var(--pri)}
.lgparts{border-top:1px solid var(--line)}
.lgp{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:10px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:15px;text-align:left}
button.lgp{cursor:pointer} .lgp .ck{width:24px;height:24px;border-radius:50%;border:1.6px solid var(--faint);display:grid;place-items:center;color:var(--pri-ink)}
.lgp .ck.on{background:var(--pri);border-color:var(--pri)} .lgp .ck svg{width:13px;height:13px}
.lgp .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .lgp .t small{display:block;font-size:12.5px;color:var(--muted)}
.lgp .h{font-variant-numeric:tabular-nums;color:var(--muted)}
.tmnew{display:flex;gap:8px} .tmnew input{flex:1;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:14px;padding:10px 12px;font-size:16px;background:var(--field);color:var(--ink)} .tmnew .btn{min-height:48px;padding:0 18px}
.run .clock{margin:6px 0 4px}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--amber)}
.tag .live{width:8px;height:8px;border-radius:99px;background:var(--hi)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
/* a timer left running (v322): the amber bar over the tabs. It wiggles once when you come back; Stop or Still on it in one tap */
#awaybar:empty{display:none}
#awaybar{position:fixed;left:20px;right:20px;bottom:91px;z-index:20}
@media (min-width: 861px){ #awaybar{left:auto;right:28px;bottom:24px;width:420px} }
.awb{background:#FFF4DE;color:#1B2830;border-radius:18px;box-shadow:0 0 0 1.5px #C98A12 inset,0 10px 30px rgba(20,24,27,.16);padding:12px;display:flex;flex-direction:column;gap:10px}
.awb .awh{display:flex;align-items:center;gap:10px;padding:0 4px;font-size:14px;color:#6E4C07;line-height:1.35}
.awb .awh i{width:10px;height:10px;border-radius:5px;background:#C98A12;flex:none;animation:awpulse 1.6s ease-in-out infinite}
.awb .awr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.awb .awr button{min-height:56px;border:0;border-radius:14px;font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px 8px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.awb .awr button b{font-size:16px;font-weight:600} .awb .awr button span{font-size:12.5px}
.awb .aws{background:#FFFFFF;color:var(--pri)} .awb .aws span{color:#5D676D}
.awb .awk{background:var(--pri);color:var(--pri-ink)} .awb .awk span{opacity:.85}
.awb .awn{font-size:12.5px;color:#6E4C07;padding:0 4px}
.awb .awc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.awb .awc button{min-height:60px;border:0;border-radius:14px;background:#FFFFFF;color:#1B2830;font:inherit;text-align:left;padding:8px 12px;display:flex;flex-direction:column;justify-content:center;gap:2px}
.awb .awc button b{font-size:16px;font-weight:600} .awb .awc button span{font-size:12.5px;color:#5D676D}
.awb .awc .awk{background:var(--pri);color:var(--pri-ink)} .awb .awc .awk:nth-child(odd){grid-column:2} .awb .awc .awk span{color:inherit;opacity:.85}
.awb .awx{display:flex;justify-content:space-between;align-items:center}
.awb .awx button{border:0;background:transparent;font:inherit;font-size:13.5px;color:#6E4C07;padding:8px 6px;min-height:40px}
.awb .awx .warnt{color:var(--red)}
.awb.wig{animation:awwig .7s cubic-bezier(.36,.07,.19,.97) 1}
@keyframes awwig{0%,100%{transform:translateX(0)}12%{transform:translateX(-9px) rotate(-1.2deg)}28%{transform:translateX(8px) rotate(1deg)}44%{transform:translateX(-6px) rotate(-.6deg)}60%{transform:translateX(4px)}76%{transform:translateX(-2px)}}
@keyframes awpulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion: reduce){.awb.wig{animation:none;box-shadow:0 0 0 3px #C98A12 inset,0 10px 30px rgba(20,24,27,.16)} .awb .awh i{animation:none}}
html[data-theme="dark"] .awb{background:#3A2C10;color:#FFF4DE} html[data-theme="dark"] .awb .awh,html[data-theme="dark"] .awb .awn,html[data-theme="dark"] .awb .awx button{color:#F2D59A} html[data-theme="dark"] .awb .aws,html[data-theme="dark"] .awb .awc button:not(.awk){background:var(--card);color:var(--ink)}
.mini{display:flex;align-items:center;gap:10px;background:var(--card);color:var(--ink);border-radius:18px;padding:8px 8px 8px 16px;box-shadow:0 6px 24px rgba(27,40,48,.12);border:1px solid var(--line);width:100%;text-align:left}
.mini .grow{font-size:13px;display:flex;align-items:center;gap:8px}
.mini .live{width:8px;height:8px;border-radius:99px;background:var(--hi);flex:none}
.mini .mono{font-size:16px} .mini.paused .mono{color:var(--muted)}
.mini .pz{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex:none}
.mini .icon{width:40px;height:40px;background:var(--pri);color:var(--pri-ink)}
.bar{height:6px;background:var(--line2);border-radius:3px;overflow:hidden}
.bar > i{display:block;height:6px;background:var(--pri);border-radius:3px}
.warn{color:var(--amber)} .over{color:var(--red)}
.bar.warn > i{background:var(--amber)} .bar.over > i{background:var(--red)}
.note{padding:12px 14px;border-radius:12px;font-size:14px;line-height:1.45}
.note.ok{background:var(--pri-soft);color:var(--pri-dark)}
.note.bad{background:var(--red-soft);color:var(--red)}
.note.warn{background:var(--amber-soft);color:var(--amber)}
.wncard ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.wncard li{font-size:14.5px;line-height:1.4}.wncard li b{font-weight:500}.wncard li .d{display:block;color:var(--muted);font-size:13.5px;margin-top:2px}
.toppill .dot.nt{background:var(--pri)}
.shwho{display:inline-block;font-size:12.5px;padding:3px 10px;border-radius:999px;background:var(--line2);color:var(--muted)} .shwho.ok{background:var(--pri-soft);color:var(--pri-dark)} .shwho.warn{background:#fdf0e6;color:var(--amber)}
.shrow{gap:10px;align-items:center} .shsel{border:0;background:transparent;padding:0;display:grid;place-items:center;flex:none}
.wnmini{display:flex;align-items:center;gap:4px;padding:10px 6px 10px 14px}
.wnmain{flex:1;display:flex;align-items:center;gap:12px;border:0;background:transparent;text-align:left;padding:0;min-width:0;color:inherit}
.wnmain>svg{width:16px;height:16px;color:var(--faint);flex:none}
.wnic,.ntic{width:36px;height:36px;border-radius:10px;background:var(--pri-soft);color:var(--pri);display:grid;place-items:center;flex:none} .wnic svg,.ntic svg{width:18px;height:18px}
.wnx{border:0;background:transparent;color:var(--faint);width:36px;height:36px;border-radius:999px;display:grid;place-items:center;flex:none} .wnx svg{width:16px;height:16px}
.ntrow{width:100%;border:0;background:transparent;text-align:left;gap:12px;align-items:flex-start} .ntrow .ntwhen{display:block;font-size:12px;color:var(--faint);margin-top:3px}
.ntrow>svg{width:16px;height:16px;flex:none;color:var(--faint);align-self:center} .ntrow.new{background:var(--pri-soft)} .ntdot{width:8px;height:8px;border-radius:50%;background:var(--pri);flex:none;margin-top:8px}
#smtour.nohole{background:rgba(10,14,16,.62)} #smtour.nohole .tour-hole{display:none}
.relgo{all:unset;box-sizing:border-box;display:block;width:100%;cursor:pointer;border-radius:10px;-webkit-tap-highlight-color:transparent}
.relgo:focus-visible{outline:2px solid var(--pri);outline-offset:4px}
.relgo em{display:inline-flex;align-items:center;gap:2px;margin-top:6px;font-style:normal;font-size:13.5px;font-weight:600;color:var(--pri)} .relgo em svg{width:14px;height:14px}
.mslist{gap:10px} .msrow{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:14px} .msrow.off{opacity:.55} .msline{font-size:13px;color:var(--ink2);margin-top:4px;line-height:1.35} .msacts{display:flex;flex-direction:column;gap:6px;align-items:stretch;flex-shrink:0} .msacts .pill{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--pri-dark);min-width:104px} .msacts .pill.armed{background:var(--red);color:#fff;border-color:var(--red)} .msbusy{gap:8px;opacity:1!important;color:var(--muted)} .msspin{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--pri);animation:recspin .9s linear infinite;flex:none}
.sklabel{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:18px 0 6px}.skarea{width:100%;min-height:72px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-size:16px;color:var(--ink);background:var(--card);resize:vertical}.skbox{padding:10px 12px;border-radius:12px;background:var(--line2)}.skrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.skrow .pill.pri{background:var(--pri);color:#fff;border-color:var(--pri)}.skchips{display:flex;flex-wrap:wrap;gap:6px}.skchip{display:inline-flex;align-items:center;gap:4px;padding:5px 6px 5px 12px;border:1px solid var(--line);border-radius:999px;font-size:14px}.skx{border:0;background:none;color:var(--muted);width:26px;height:26px;display:grid;place-items:center;padding:0;border-radius:50%;cursor:pointer;flex:none}.skx svg{width:14px;height:14px}.skadd{display:flex;gap:8px;margin-top:8px}.skin{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font:inherit;font-size:16px;color:var(--ink);background:var(--card)}.skline{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;font-size:14px;line-height:1.35}
.msq{font-style:italic}.msq2{animation-duration:2.4s;opacity:.6}.msacts .pill.pri{background:var(--pri);color:#fff;border-color:var(--pri)}.rqopts{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}.rqopt.on{border-color:var(--pri);color:var(--pri-dark);font-weight:600}.rqfind{display:flex;align-items:center;gap:8px;margin:6px 0 10px;padding:0 12px;border-radius:10px;background:var(--line2);color:var(--muted)}.rqfind svg{width:17px;height:17px;flex:none}.rqfind input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:16px;color:var(--ink);padding:10px 0;outline:none}.rqwho{display:flex;flex-direction:column;gap:4px;padding:10px 14px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card);margin:2px 0 8px}.rqwho input{border:0;border-bottom:1px solid var(--line2);background:none;font:inherit;font-size:16px;color:var(--ink);padding:6px 0;outline:none;width:100%}.rqwho input:focus{border-bottom-color:var(--pri)}.rqwho .rqnm{font-size:19px;font-weight:600}.rqem{font-size:13.5px;color:var(--muted);word-break:break-all;padding:2px 0}.rqgh{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:10px 0 6px}.rqlist .rqopt{margin:0 0 6px}.rqpj{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:10px 12px 10px 14px;margin:0 0 8px;color:var(--ink);font:inherit}.rqpj b{display:block;font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rqpjh{display:block;font-size:12px;color:var(--muted)}.rqpjc{color:var(--pri);font-size:14.5px}.rqpj svg{width:16px;height:16px;color:var(--faint);flex:none}.sheet.rqfit{height:92vh;height:calc(100svh - var(--sat, env(safe-area-inset-top, 0px)) - 16px)}.sheet.rqfit .sbody{overflow:hidden;display:flex;flex-direction:column;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.sheet.rqfit .sbody>*{flex:none}.sheet.rqfit .rqmid{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin:0 -20px;padding:0 20px 12px;display:flex;flex-direction:column}.sheet.rqfit .rqmid>*{flex:none}.rqfoot{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--line2)}.tkfiles{display:flex;flex-wrap:wrap;gap:8px}.tkfiles:empty{display:none}.tkf{position:relative;width:76px;display:flex;flex-direction:column;gap:3px}.tkft{width:76px;height:76px;border-radius:12px;border:1px solid var(--line);background:var(--line2);padding:0;overflow:hidden;display:grid;place-items:center;color:var(--muted)}.tkft img{width:100%;height:100%;object-fit:cover;display:block}.tkfx{font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--red);background:var(--red-soft);border-radius:6px;padding:4px 6px}.tkfn{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tkfrm{position:absolute;top:-7px;right:-7px;width:24px;height:24px;border-radius:50%;border:2px solid var(--card);background:var(--ink);color:var(--card);font-size:14px;line-height:19px;padding:0;box-shadow:0 1px 3px rgba(0,0,0,.2)}.tkf{transition:transform .22s ease,opacity .22s ease}.tkf.out{transform:scale(.4);opacity:0}
.tkf.new .tkft{animation:tkpop .55s cubic-bezier(.2,1.5,.4,1) both}@keyframes tkpop{0%{transform:scale(.7);opacity:.4;filter:blur(3px)}60%{filter:blur(0)}100%{transform:none;opacity:1}}
.tkok{position:absolute;left:50%;top:38px;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:#2E8A5B;color:#fff;display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.25);animation:tkok 1.5s ease forwards;pointer-events:none}.tkok svg{width:16px;height:16px}@keyframes tkok{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}20%{transform:translate(-50%,-50%) scale(1.1);opacity:1}70%{opacity:1}100%{transform:translate(-50%,-50%) scale(1);opacity:0}}
.tkf.pend .tkft{position:relative}.tkf.pend img{opacity:.55;filter:blur(1.5px) saturate(.8)}.tkring{position:absolute;inset:22px;border-radius:50%;border:3px solid color-mix(in srgb,var(--pri) 25%,transparent);border-top-color:var(--pri);animation:tkspin .8s linear infinite}@keyframes tkspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.tkf.new .tkft,.tkok,.tkring{animation:none}}.tkadd{align-self:flex-start;margin-top:6px;cursor:pointer;position:relative;overflow:hidden}.tkin{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.tkscrim{position:fixed;inset:0;z-index:95;background:rgba(20,24,27,.16)}
.tkmenu{position:fixed;z-index:96;width:236px;border-radius:14px;overflow:hidden;background:color-mix(in srgb,var(--card) 94%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 12px 40px rgba(27,40,48,.25),0 0 0 .5px var(--line);animation:tkmin .22s cubic-bezier(.25,1.3,.45,1) both}
@keyframes tkmin{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
.tkmenu button{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:transparent;padding:12px 16px;font:inherit;font-size:16px;color:var(--ink);text-align:left}.tkmenu button+button{border-top:.5px solid var(--line)}.tkmenu button:active{background:var(--line2)}.tkmenu svg{width:20px;height:20px;flex:none}.tkmenu .sep{height:7px;background:var(--line2)}
.tkpbox{position:fixed;z-index:96;left:16px;right:16px;top:calc(var(--sat, 0px) + 16px);display:flex;gap:8px;align-items:stretch;padding:10px;border-radius:16px;background:var(--card);box-shadow:0 12px 40px rgba(27,40,48,.28)}
.tkpin{flex:1;min-height:52px;border:2px dashed color-mix(in srgb,var(--pri) 50%,transparent);border-radius:12px;padding:14px;font-size:15px;color:var(--muted);outline:none;-webkit-user-select:text;user-select:text}.tkpin:focus{border-style:solid;color:var(--ink)}.tkpin:empty::before{content:attr(data-ph);color:var(--muted);pointer-events:none}.tkadd svg{width:16px;height:16px}.tkup{border-style:dashed}.prmask{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;margin-top:4px}.prmask svg{width:16px;height:16px}.paw{display:inline-flex;align-items:center;gap:6px}.paw .av{width:22px;height:22px;font-size:9px}.prmhl{animation:prmhl 2.4s ease}@keyframes prmhl{0%,40%{box-shadow:0 0 0 3px color-mix(in srgb,var(--pri) 45%,transparent);border-radius:10px}100%{box-shadow:0 0 0 0 transparent}}.mssaid{max-height:45vh;overflow-y:auto;border-left:3px solid var(--line);padding:2px 0 2px 12px;font-size:14.5px;line-height:1.5;color:var(--ink)}.mssaid p{margin:0 0 8px}.rqsel{display:flex;flex:none;flex-wrap:wrap;gap:6px;min-height:34px;align-items:center;margin:2px 0 4px}.rqpj,.rqoff{flex:none}.rqopt.sel{background:var(--pri);border-color:var(--pri);color:#fff;font-weight:600}.rqoff{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);margin:-2px 2px 8px}.rqoff input{width:18px;height:18px;accent-color:var(--pri)}
.rell{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px} .rell li{font-size:14.5px;line-height:1.45} .rell li b{font-weight:600;display:block} .rell li span{display:block;color:var(--muted);font-size:14px;margin-top:2px}
.relcard .wnh,.wncard .wnh{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:4px}.note .lgfix{margin-top:8px}
/* sheet */
.scrim{position:fixed;inset:0;background:var(--scrim);z-index:40;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--card);width:100%;max-width:560px;max-height:92vh;max-height:calc(100svh - var(--sat, env(safe-area-inset-top, 0px)) - 16px);overflow:hidden;will-change:transform;border-radius:28px 28px 0 0;display:flex;flex-direction:column}
/* the grab bar and title stay put; everything under them scrolls, sliding beneath a soft shadow once it moves */
.shead{position:relative;z-index:4;background:var(--card);padding:10px 20px 4px;display:flex;flex-direction:column;gap:14px;flex:none;border-radius:inherit;transition:padding-top .3s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease}
.sheet.lifted .shead{box-shadow:0 1px 0 var(--line2),0 8px 14px -8px rgba(20,24,27,.22)}
.sbody{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overflow-wrap:break-word;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:12px 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}
/* scrolled up, a sheet opens to the full screen; pulled down from the top, it settles back */
.sheet.full{max-height:none;height:100vh;height:100dvh;border-radius:0}
.sheet.full .shead{padding-top:calc(10px + var(--sat, env(safe-area-inset-top, 0px)))}
@media (max-width: 860px){ .sheet{box-shadow:0 80px 0 var(--card)} }
.grab{width:40px;height:5px;border-radius:99px;background:var(--line);margin:0 auto 2px;flex:none;position:relative}
.grab::before{content:'';position:absolute;inset:-14px -60px}
.shead{touch-action:none}
@media (min-width: 861px){ .scrim{align-items:center} .sheet{border-radius:24px;max-height:92vh} .shead{padding-top:22px} .grab{display:none} }
.sheet h3{margin:0;font-weight:700;font-size:22px;letter-spacing:-.015em}
.snav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;min-height:44px}
.snav h3{font-size:17px;font-weight:600;letter-spacing:-.01em;text-align:center;max-width:52vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.snav .l{justify-self:start} .snav .r{justify-self:end}
.navb{border:0;background:transparent;color:var(--pri);font-size:16px;min-height:44px;padding:0 4px;display:inline-flex;align-items:center;gap:2px;white-space:nowrap}
.navb.back{margin-left:-8px} .navb.back svg{width:22px;height:22px}
.navb.strong{font-weight:600}
.navb:disabled{color:var(--faint)}
label.f{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
.f input,.f select,.f textarea{min-height:48px;border:1px solid var(--line);border-radius:14px;padding:10px 12px;font-size:16px;background:var(--field);color:var(--ink)}
.f textarea{min-height:92px;resize:vertical;line-height:1.45}
.sheet .f textarea,.sheet .f textarea:focus{height:170px;min-height:0}   /* half what it grew to before; it no longer changes size as you type or dictate */
.stepper{display:grid;grid-template-columns:52px 52px minmax(0,1fr) 52px 52px;gap:6px;align-items:center}
.stepper .btn{padding:0}
.stepper .mono{font-size:clamp(22px,7vw,30px);text-align:center;white-space:nowrap}
.sidemini{margin-top:auto;background:var(--pri-soft);color:var(--ink);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px}
.sidemini .row{justify-content:space-between}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cb{display:flex;align-items:center;gap:10px;font-size:15px;min-height:36px}
/* our own pickers in place of the phone's dropdowns */
div.f{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
.ptitle{display:flex;align-items:center;gap:10px}.ptitle h1{min-width:0}
.pgear{flex:none;display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--muted);padding:0}
.pgear svg{width:20px;height:20px}
.psec{display:flex;flex-direction:column;gap:12px}.psh{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.clrow{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.clrow input[type=text],.clrow input[type=email]{min-height:44px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:16px;background:var(--field);color:var(--ink);min-width:0;width:100%}
.clrow input[type=text]{grid-row:1;grid-column:1}.clrow input[type=email]{grid-row:2;grid-column:1/-1}
.clrow .clx{grid-row:1;grid-column:2;width:40px;height:40px;border:0;background:none;color:var(--muted);padding:0;display:grid;place-items:center}.clrow .clx svg{width:16px;height:16px}
.clbill{grid-row:3;grid-column:1/-1;justify-self:start;display:flex;align-items:center;gap:6px;font-size:14px;color:var(--muted);border:0;background:none;padding:4px 2px;min-height:32px}
.clbill.on{color:var(--pri);font-weight:500}.clbill svg{width:16px;height:16px}
.sheet .f textarea.cuta{height:440px}.sheet .f textarea.cita{height:220px}
.ytq{font-size:15px;line-height:1.45;color:var(--ink);border-left:3px solid var(--line);padding:2px 0 2px 12px;white-space:pre-wrap;overflow-wrap:anywhere}
.ytdraft{font-size:15px;line-height:1.45;background:var(--pri-soft);border-radius:14px;padding:10px 12px;white-space:pre-wrap;overflow-wrap:anywhere}.ytdraft .sub{display:block;font-size:12px;margin-bottom:2px}
.ytwhy{color:var(--amber)}
.ibfirst{margin-bottom:6px}.ibfirst>.eyebrow{color:var(--amber);margin:0 2px 6px}.ibsec{margin-top:14px}.ibsech{font-size:13px;font-weight:600;margin:0 2px 8px}.card.ibgrp{padding:2px 12px}
.ibrow{display:flex;align-items:center;gap:12px;width:100%;padding:12px 2px;border:0;border-bottom:1px solid var(--line2);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}.ibrow:last-child{border-bottom:0}
.ibic{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--pri-soft);color:var(--pri)}.ibic svg{width:18px;height:18px}.ibic.a{background:var(--amber-soft);color:var(--amber)}.ibic.g{background:#E5F0E8;color:#2F6346}.ibic.r{background:var(--red-soft);color:var(--red)}
.ibt{display:block;font-size:15px;font-weight:500}.ibs{display:block;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ibn{min-width:24px;height:24px;border-radius:12px;background:var(--ink);color:var(--bg);font-size:12px;font-weight:600;display:grid;place-items:center;padding:0 7px;flex:none}.ibrow>svg:last-child{width:16px;height:16px;color:var(--faint);flex:none}
.ibfoot{font-size:13px;color:var(--faint);text-align:center;margin:16px 0 8px;line-height:1.8}
label.ytdraft{display:block;cursor:text}.ytedit{display:block;width:100%;border:0;background:transparent;padding:0;margin:0;font:inherit;font-size:15px;line-height:1.45;color:var(--ink);resize:none;outline:none;min-height:44px;overflow:hidden}
label.ytdraft:focus-within{box-shadow:0 0 0 2px var(--pri)}.ytedit::placeholder{color:var(--faint)}
.ytpager{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 10px}
.ytcount{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:58px;text-align:center}
.ytnav{border:0;background:var(--card);box-shadow:var(--shadow);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--ink);cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}
.ytnav svg{width:16px;height:16px}.ytnav:disabled{opacity:.35;cursor:default}
.ytrail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;margin:0 calc(-1 * clamp(18px,4vw,56px));padding:4px clamp(18px,4vw,56px) 18px;scroll-padding:0 clamp(18px,4vw,56px);align-items:flex-start}
.ytrail::-webkit-scrollbar{display:none}
.ytslide{flex:0 0 min(calc(100% - 28px),560px);scroll-snap-align:start;scroll-snap-stop:always;min-width:0}
.ytslide>.card{margin:0}
.ytslide.ytph{border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);min-height:var(--ydh,420px)}
body.ytdeck:not(.yttyping) #scroller{overflow-y:hidden}
body.ytdeck .ytrail{touch-action:pan-x}
body.ytdeck .ytslide{height:var(--ydh,auto)}
body.ytdeck .ytslide>.ibc{height:100%;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}
body.ytdeck .ytslide>.ibc>.stack{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
body.ytdeck .ytslide>.ibc>.stack>*{flex:none}
body.ytdeck .ytslide .title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.ytdeck .ytslide .ytq{flex:0 1 auto;min-height:4.4em;overflow:hidden}
body.ytdeck .ytslide .ytq.clip{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 2.2em),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 2.2em),transparent)}
body.ytdeck .ytslide .ytfull{align-self:flex-start;margin-top:-4px}
body.ytdeck .ytslide .ytedit{max-height:9.5em;overflow-y:auto;touch-action:pan-y}
body.ytdeck .ytslide .ibacts{margin-top:auto;flex:none}
.ythead{align-items:center}.ythead h1{margin:0}
.ythr{display:flex;align-items:center;gap:8px}
.ythr .ytcount{min-width:0;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:7px 12px;font-size:14px;line-height:1;color:var(--ink)}
.ythr .rfb{font-size:0;gap:0;width:40px;height:40px;min-height:0;padding:0;justify-content:center;border-radius:12px}
.ytvids{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:-12px calc(-1 * clamp(18px,4vw,56px)) -14px;padding:2px clamp(18px,4vw,56px);touch-action:pan-x;overscroll-behavior-x:contain}
.ytvids::-webkit-scrollbar{display:none}
.ytvid{flex:none;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:7px 13px;font:inherit;font-size:13.5px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ytvid span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.ytvid.on{background:var(--pri);border-color:var(--pri);color:#fff}.ytvid.on span{color:rgba(255,255,255,.75)}
.ytvid,.ytvid span{transition:background-color .28s ease,border-color .28s ease,color .28s ease}
.ytslide.ytin{animation:ytin .42s cubic-bezier(.2,.8,.2,1) both}
.ytslide.ytin:nth-child(n){animation-delay:0s}
@keyframes ytin{from{opacity:.55;transform:translateX(26px) scale(.985)}to{opacity:1;transform:none}}
.ytwho{display:flex;align-items:center;gap:11px}
.ytav{flex:none;width:36px;height:36px;border-radius:50%;background:var(--pri-soft);color:var(--pri);display:grid;place-items:center;font-weight:600;font-size:15px}
.ytwn{flex:1;min-width:0}.ytname{font-weight:600;font-size:15px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ytsubl{font-size:12.5px;color:var(--muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ytwho .ibbell{align-self:flex-start;margin-top:-4px}
/* one left edge: the quote's rule and the reply's tint hang out into the card margin */
.ytslide .ytq{margin-left:-12px;padding-left:9px;border-left-width:3px}
.ytslide label.ytdraft{margin:0 -12px;padding:10px 12px}
.ytslide .ytfull{margin-top:-2px}
.ytctx{display:flex;flex-direction:column;gap:4px;font-size:12.5px;line-height:1.4;color:var(--muted)}
.ytctxl{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;border-left:2px dashed var(--line);padding-left:10px}
.ytctxl b{font-weight:600;color:var(--ink)}.ytctxl.ours b{color:var(--pri)}
.ytslide .ytctxl{margin-left:-12px;padding-left:10px}
body.ytdeck .ytslide>.ibc>.stack>.ytctx{flex:none}
.btn.ytarm{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:7px;font-weight:600;animation:armpop .22s ease}
.btn.ytarm svg{width:15px;height:15px;flex:none}
.btn.ytgo,.btn.ytgo:hover{background:#2F7A55;border-color:#2F7A55;color:#fff}
.btn.ytarm::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.6);transform-origin:left center;animation:ytdrain 4s linear forwards}
.btn.ytarm:disabled::after{display:none}.btn.ytgo:disabled{opacity:.85}
@keyframes ytdrain{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.ibacts.ytarming .btn:not(.ytarm){display:none}
.ibacts.ytarming .btn.ytarm{flex:1 1 auto;justify-content:center;min-height:48px;font-size:15px}
@media (prefers-reduced-motion: reduce){.btn.ytarm{animation:none}.btn.ytarm::after{animation:none;opacity:.6}}
.ytmore{align-items:center}.ytrxs{display:inline-flex;gap:6px;margin-left:auto}
.ytrx{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--muted);display:grid;place-items:center;padding:0;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .15s ease;-webkit-tap-highlight-color:transparent}
.ytrx svg{width:17px;height:17px}.ytrx:active{transform:scale(.92)}
.ytrx.on{background:var(--pri);border-color:var(--pri);color:#fff}.ytrx.on svg{fill:currentColor}
.ytrx.heart.on{background:#D9534F;border-color:#D9534F}
.ythalf{position:relative;display:flex;flex-direction:column;gap:8px}
.ythalf>.ytq,.ythalf>.ytdraft{opacity:.38;filter:saturate(.6)}
.ytfin{flex:1 1 auto;min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}
.ytfinq{font-size:13px;font-weight:600;color:var(--ink);background:var(--card);border-radius:999px;padding:5px 12px;box-shadow:var(--shadow)}
.ytfinb{display:flex;gap:16px}
.ytrx.big{width:60px;height:60px;box-shadow:0 6px 20px rgba(27,40,48,.16);border-color:transparent}.ytrx.big svg{width:26px;height:26px}
.ytslide .ythalf>.ytq{margin-left:-12px;padding-left:9px}.ytslide .ythalf>.ytdraft{margin:0 -12px}
body.ytdeck .ytslide>.ibc>.stack>.ythalf{flex:1 1 auto;min-height:0}body.ytdeck .ytslide .ythalf>.ytq{flex:0 1 auto;min-height:3em;overflow:hidden}body.ytdeck .ytslide .ythalf>.ytdraft{flex:none}
/* phones: the page gutter there is 16px, so the rows reach exactly to the screen edge (no sideways page drift) */
body.ytdeck #scroller{overflow-x:hidden}
@media (max-width: 860px){.ytrail,.ytvids{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;scroll-padding:0 16px}}
.ytmore{display:flex;gap:16px;flex-wrap:wrap}.ytlink{border:0;background:none;padding:2px 0;color:var(--pri);font:inherit;font-size:13px;cursor:pointer;text-decoration:none}
.ppw{font-weight:500}.ppw.p3{color:var(--amber)}.ppw.p4{color:var(--red)}
.chipin{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:48px;border:1px solid var(--line);border-radius:14px;padding:7px 8px;background:var(--field);cursor:text}
.chipin:focus-within{border-color:var(--pri)}
.f .chipin input.chipt{flex:1 1 60px;min-width:60px;min-height:32px;border:0;border-radius:0;padding:4px 4px;background:transparent;outline:none;font-size:16px;color:var(--ink)}
.chip{display:inline-flex;align-items:center;gap:2px;max-width:100%;padding:5px 4px 5px 11px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:15px;color:var(--ink)}
.chip.bad{border-color:var(--red);color:var(--red)}
.chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chipx{display:inline-grid;place-items:center;width:26px;height:26px;border:0;border-radius:50%;background:none;color:var(--muted);padding:0}
.chipx svg{width:14px;height:14px}
.pkrow{min-height:48px;border:1px solid var(--line);border-radius:14px;padding:6px 10px 6px 12px;font-size:16px;background:var(--field);color:var(--ink);display:flex;align-items:center;gap:10px;width:100%;text-align:left}
.pkrow .grow{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pkrow .ph{color:var(--faint)} .pkrow > svg{width:18px;height:18px;color:var(--faint);flex:none}
.pkrow .av{width:32px;height:32px;font-size:11.5px}
.av{position:relative;overflow:hidden}.av .avph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;background:var(--beige)}
.pksearch{position:sticky;top:0;background:var(--card);padding:6px 0 8px;z-index:2}
.pksearch input{width:100%;min-height:46px;border:1px solid var(--line);border-radius:14px;padding:10px 14px;font-size:16px;background:var(--line2);color:var(--ink)}
.pkh{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:14px 6px 4px}
.pkit{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:transparent;padding:8px 8px;border-radius:14px;min-height:56px;color:var(--ink)}
.pkit.on{background:var(--pri-soft)} .pkit .t{display:block;font-size:16px} .pkit .m{display:block;font-size:13px;color:var(--muted)}
.pkit .ok{margin-left:auto;color:var(--pri);flex:none;display:flex} .pkit .ok svg{width:20px;height:20px}
.av.av3{font-size:10.5px;letter-spacing:0}
.plres:empty{display:none} .plres{margin-top:-6px} .plhint{padding:2px 2px 0}
.plist .pkrow{gap:10px} .plist .title b{font-weight:650} .plwarn{font-size:12px;color:var(--amber);margin-top:2px;white-space:normal;line-height:1.35} .plchg{align-self:flex-start;margin-top:6px;font-size:13px} .plby{font-size:11px;color:var(--faint);text-align:right;padding:4px 4px 0}
.esthint{margin-top:-6px;line-height:1.45;font-size:13px;display:block} .esthint .estuse{font-size:13px;margin-left:4px;padding:0;min-height:0;display:inline;font-weight:600} .esthint .esthist{display:block;margin-top:6px;padding-left:10px;border-left:2px solid var(--line);color:var(--faint);font-size:12px;line-height:1.5} .plist .grow{display:flex;flex-direction:column;min-width:0} .plpin{color:var(--hi);display:inline-flex} .plpin svg{width:18px;height:18px}
.plpick{flex:none;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}
.plmap{aspect-ratio:640/300;background:var(--line2);display:grid;place-items:center} .plmap img{width:100%;height:100%;object-fit:cover;display:block}
.plcap{display:flex;flex-direction:column;gap:2px;padding:10px 12px;font-size:14px} .plcap span{color:var(--muted);font-size:13px} .plcap .plsrc{font-size:12px;color:var(--faint)}
.pkit.on .av{background:var(--pri);color:var(--pri-ink)}
.sheet.pk{min-height:min(640px,78vh)}
.cb input{width:20px;height:20px;accent-color:var(--pri)}
.seg{display:flex;gap:4px;background:var(--beige);border-radius:14px;padding:4px}
.seg .pill{flex:1;min-height:40px;border:0;background:transparent;border-radius:11px;color:var(--muted);padding:0 8px;font-size:14px}
.seg .pill.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(20,24,27,.12)}
.phsel,.phopt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 14px;min-height:52px;color:var(--ink);font:inherit}
.phsel{background:var(--beige);border:0;border-radius:14px}
.phsel svg{width:18px;height:18px;flex:none;color:var(--muted);transition:transform .2s}
.phsel.open svg{transform:rotate(180deg)}
.phsel .grow,.phopt .grow{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.phsel b,.phopt b{font-weight:500;font-size:15px}
.phsel small,.phopt small{color:var(--muted);font-size:12.5px;line-height:1.35}
.phlist{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.phopt{background:transparent;border:0;border-radius:0;border-bottom:1px solid var(--line2)}
.phopt:last-child{border-bottom:0}
.phopt.on{background:var(--pri-soft)} .phopt.on b{color:var(--pri-dark)}
.phbar{flex:none;width:64px;height:4px;border-radius:2px;background:var(--line);overflow:hidden}
.phbar i{display:block;height:100%;background:var(--pri)} .phbar.over i{background:var(--red)}
.soctabs{display:flex;gap:8px}.soctab{flex:1;min-width:0;border:1px solid var(--line);background:var(--card);border-radius:14px;padding:10px 8px;text-align:center;color:var(--ink)}
.soctab b{display:block;font-size:15px}.soctab span{display:block;font-size:12px;color:var(--muted);margin-top:2px}.soctab.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.socin{display:flex;gap:18px;border-bottom:1px solid var(--line);padding:0 4px}.socin button{border:0;background:none;padding:6px 0 9px;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.socin button.on{color:var(--ink);border-color:var(--ink);font-weight:600}
.pick{display:flex;align-items:center;gap:14px;width:100%;text-align:left;min-height:64px;padding:10px 12px;border-radius:16px;border:0;background:transparent}
@media (hover:hover){.pick:hover{background:var(--line2)}} body.tch .pick:not(.on):hover{background:transparent}
.pick.on{background:var(--pri-soft)}
.pick.on .av{background:var(--pri);color:var(--pri-ink)}
.pick{cursor:pointer;-webkit-user-select:none;user-select:none}
.pick .lead{position:relative;flex:none;width:40px;height:40px;border-radius:999px;background:var(--beige);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;overflow:hidden;
            font-size:13px;font-weight:500;letter-spacing:.02em;transition:width .34s cubic-bezier(.3,1.25,.5,1),background .2s,color .2s}
.pick .lead .ini,.pick .lead .go{position:absolute;white-space:nowrap;transition:opacity .18s ease,transform .26s ease}
.pick .lead .go{opacity:0;transform:scale(.75);font-size:15px;font-weight:600;letter-spacing:.01em}
.pick.on .lead{width:92px;background:var(--pri);color:var(--pri-ink)}
.pick.on .lead .ini{opacity:0;transform:scale(.6)} .pick.on .lead .go{opacity:1;transform:none}
.sheet .list{flex:none}
.npbar{height:4px;border-radius:999px;background:var(--line2);overflow:hidden;margin:-4px 0 2px} .npbar i{display:block;height:100%;background:var(--pri);border-radius:999px;transition:width .3s ease}
.npstep{display:flex;flex-direction:column;gap:14px;animation:npin .22s ease} @keyframes npin{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){ .npstep{animation:none} .npbar i{transition:none} }
.npof{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.npq{font-size:22px;line-height:1.25;font-weight:600;margin:-8px 0 0;color:var(--ink)}
.npnav{display:flex;gap:10px;margin-top:4px} .npnav .btn{flex:1;min-height:48px} .npnav .btn.ghost{flex:.8}
.npopt[hidden]{display:none} .npopt.best:not(.on){background:var(--line2)}
.npbusy{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:36px 8px 28px} .npbusy .npq{margin:0}
.npspin{width:44px;height:44px;border-radius:50%;border:3px solid var(--pri-soft);border-top-color:var(--pri);animation:rfspin .9s linear infinite}
@media (prefers-reduced-motion: reduce){ .npspin{animation-duration:2.4s} }
.npgate{display:flex;align-items:center;gap:14px;padding:14px;border-radius:16px;background:var(--line2)}
.sheet.kbg{height:calc(100svh - var(--sat, env(safe-area-inset-top, 0px)) - 16px);max-height:none} .sheet.kbg .sbody{padding-bottom:62vh}
.tmb{display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:18px;background:var(--pri-soft);border:1.5px solid transparent;transition:border-color .15s ease,background .15s ease}
.tmb.out{background:var(--line2)} .tmb.tmover{border-color:var(--pri);border-style:dashed}
.tmh{display:flex;justify-content:space-between;align-items:baseline;padding:0 4px 2px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)} .tmh b{font-weight:600;letter-spacing:0}
.tmempty{padding:16px 10px;text-align:center;font-size:14px;color:var(--faint);border:1.5px dashed var(--line);border-radius:14px}
.tmc{display:flex;align-items:center;gap:10px;min-height:56px;padding:6px 6px 6px 2px;border-radius:14px;background:var(--card);box-shadow:0 1px 2px rgba(20,24,27,.06);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;transition:background .3s ease}
.tmb.out .tmc{background:transparent;box-shadow:none;color:var(--muted)} .tmb.out .tmc .title{color:var(--muted)}
.tmc .tmn{min-width:0} .tmc .tmn .title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;line-height:1.25;overflow:hidden;overflow-wrap:anywhere} .tmc .tmn .meta{display:block;font-size:12.5px}
.tmgrip{flex:none;width:28px;height:40px;display:grid;place-items:center;color:var(--faint);touch-action:none;cursor:grab} .tmgrip svg{width:18px;height:18px}
.tmrate{flex:none;display:flex;align-items:center;gap:2px;padding:0 8px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--bg);font-size:14px;color:var(--muted)}
.tmrate input{width:52px;border:0;background:transparent;font:inherit;font-size:16px;color:var(--ink);text-align:right;padding:0;outline:none}
.tmx{flex:none;width:36px;height:36px;border-radius:999px;border:0;display:grid;place-items:center;background:var(--line2);color:var(--muted)} .tmx svg{width:18px;height:18px}
.tmb.out .tmx{background:var(--pri);color:var(--pri-ink)}
.tmc.tmgone{opacity:.25} .tmc.tmflash{background:var(--pri-soft)}
.tklist{display:flex;flex-direction:column;gap:8px}
.tkc{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:4px;align-items:center;width:100%;min-height:64px;text-align:left;padding:13px 16px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 1px 2px rgba(20,24,27,.05);color:var(--ink);font:inherit;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .1s ease}
.tkc:active{transform:scale(.99)} .tkc[hidden]{display:none}
.tkc .tkt{grid-column:1;font-size:16px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.tkc .tkm{grid-column:1;display:flex;flex-wrap:wrap;gap:2px 12px;font-size:13px;color:var(--muted)} .tkc .tkm .late{color:var(--red)} .tkc .tkm .soon{color:var(--amber)}
.tkc .tkok{grid-column:2;grid-row:1 / span 2;color:var(--pri);display:flex} .tkc .tkok svg{width:22px;height:22px}
.tkc.on{border-color:var(--pri);background:var(--pri-soft)}
.tkc.gen{border-style:dashed;background:transparent;box-shadow:none;min-height:56px} .tkc.gen .tkt{font-weight:500}
.tkc.gen.on{border-style:solid;background:var(--pri-soft)}
.tkh{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:8px 4px 0} .tklist.q .tkh{display:none}
.tknone{padding:14px 4px;font-size:14px;color:var(--muted)}
.tknew{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.tkfind{margin-bottom:-4px}
.tmghost{position:fixed;z-index:80;pointer-events:none;margin:0;box-shadow:0 12px 28px rgba(20,24,27,.22);transform:scale(1.03);background:var(--card)!important;color:var(--ink)!important}
.npopt .ok{flex:none;color:var(--pri);display:grid} .npopt .ok svg{width:18px;height:18px} .npopt.on{background:var(--pri-soft)}
.nprows{display:flex;flex-direction:column;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.nprow{display:grid;grid-template-columns:96px minmax(0,1fr) 16px;gap:10px;align-items:center;text-align:left;border:0;background:transparent;padding:12px 14px;font:inherit;color:var(--ink);min-height:48px}
.nprow + .nprow{border-top:1px solid var(--line2)} .nprow>span:first-child{color:var(--muted);font-size:13px} .nprow>span:nth-child(2){overflow-wrap:anywhere;font-size:14.5px}
.nprow svg{width:16px;height:16px;color:var(--faint)} .nprow .ph{color:var(--faint)}
.npdots{display:flex;gap:6px;justify-content:center;margin:-4px 0 2px}
.pkfindh{padding:10px 12px 6px} .npfindh{margin-top:-6px}
.npdots span{width:6px;height:6px;border-radius:999px;background:var(--line);transition:width .25s ease,background .25s ease}
.npdots span.did{background:var(--pri-soft)} .npdots span.on{width:18px;background:var(--pri)}
.npcode{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:12px 14px;border-radius:14px;background:var(--beige);font-size:14px}
.npcode span{color:var(--muted)} .npcode b{font-weight:500;overflow-wrap:anywhere;text-align:right}
.npdone{width:64px;height:64px;margin:4px auto 0;border-radius:999px;background:var(--pri-soft);color:var(--pri);display:flex;align-items:center;justify-content:center}
.npdone svg{width:30px;height:30px}
.npph{min-height:60px;gap:10px;padding:8px 14px} .npph.off .grow,.npph.off .npn,.npph.off .npc{opacity:.5}
.npph input[type=checkbox]{width:20px;height:20px;flex:none;accent-color:var(--pri)}
.npfee,.npc,.npn{min-height:40px;border:1px solid var(--line);border-radius:12px;padding:6px 10px;font-size:16px;background:var(--field);color:var(--ink);min-width:0}
.npfee{width:96px;text-align:right;flex:none}
.mny{display:flex;align-items:center;gap:4px;min-height:64px;padding:0 16px;border:1px solid var(--line);border-radius:14px;background:var(--field);cursor:text;transition:border-color .15s ease,box-shadow .15s ease}
.mny:focus-within{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-soft)}
.mnys{flex:none;font-size:26px;font-weight:600;color:var(--muted);line-height:1}
.f .mny input,.mny input{flex:1;min-width:0;min-height:0;border:0;border-radius:0;background:transparent;box-shadow:none;outline:none;padding:12px 0;font:inherit;font-size:28px;font-weight:600;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums}
.mny input::placeholder{color:var(--faint)}
.mny.sm{flex:none;width:118px;min-height:42px;padding:0 10px;border-radius:12px;gap:2px}
.mny.sm .mnys{font-size:16px;font-weight:500} .mny.sm input{font-size:16px;font-weight:500;text-align:right;padding:8px 0} .npc{width:64px;flex:none;text-transform:uppercase}
.sub2{padding-left:66px;display:flex;flex-direction:column;gap:6px}
.toast{position:fixed;left:50%;transform:translateX(-50%);top:calc(var(--sat, env(safe-area-inset-top, 0px)) + 10px);animation:popDown .28s cubic-bezier(.2,.8,.2,1);background:var(--card);color:var(--ink);box-shadow:0 6px 24px rgba(27,40,48,.14);border:1px solid var(--line);padding:10px 16px;border-radius:12px;font-size:14px;z-index:60;max-width:calc(100% - 32px)}
@media (min-width: 861px){ .toast{top:20px} }
.toast.tostap{display:flex;align-items:center;gap:14px;width:max-content;max-width:calc(100vw - 32px);font:inherit;font-size:14px;color:var(--ink);text-align:left;cursor:pointer;min-height:44px}
.toast.tostap .tostgo{color:var(--pri);font-weight:600;white-space:nowrap}
.toast.t-n,.undo.t-n{background:var(--pop-n);color:var(--pop-n-ink);border-color:transparent}
.toast.t-ok,.undo.t-ok{background:var(--pop-ok);color:var(--pop-ok-ink);border-color:transparent}
.toast.t-bad,.undo.t-bad{background:var(--pop-bad);color:var(--pop-bad-ink);border-color:transparent}
.toast.tostap.t-ok .tostgo{color:var(--pop-ok-ink)} .toast.tostap.t-bad .tostgo{color:var(--pop-bad-ink)}
.undo.t-ok button{background:var(--pop-ok-ink);color:var(--pop-ok)} .undo.t-bad button{background:var(--pop-bad-ink);color:var(--pop-bad)}
.toast{width:max-content;max-width:min(calc(100vw - 24px),520px);box-sizing:border-box}
.toast .tmsg{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}
.toast.tostap{max-width:min(calc(100vw - 24px),520px)} .toast.tostap .tmsg{min-width:0}
.toast.more{display:flex;align-items:center;gap:6px;cursor:pointer} .toast .tmore{flex:none;display:inline-flex;opacity:.65} .toast .tmore svg{width:16px;height:16px}
.toast.open .tmsg{-webkit-line-clamp:unset;display:block}
.undo{max-width:calc(100vw - 24px)} .undo span{overflow:hidden;text-overflow:ellipsis;min-width:0}
.poprow{align-items:flex-start} .popmsg{display:block;white-space:normal;overflow-wrap:anywhere;font-weight:400}
.popdot{width:9px;height:9px;border-radius:50%;flex:none;margin:7px 2px 0 0;background:var(--faint)} .popdot.t-ok{background:var(--pop-ok-ink)} .popdot.t-bad{background:var(--pop-bad-ink)}
.poprow.hi{animation:pophi 2.4s ease} @keyframes pophi{0%,40%{background:var(--pri-soft)}100%{background:transparent}}
.toast.below{top:calc(var(--sat, env(safe-area-inset-top, 0px)) + 70px)}   /* under an Undo pill that is showing */
@keyframes popDown{from{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%,0)}}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.tile .v{font-size:28px;font-weight:400;margin-top:6px}
.heroamt{text-align:center;padding:28px 20px}
.heroamt .v{font-size:clamp(40px,12vw,52px);font-weight:300;letter-spacing:-.01em;margin:6px 0 2px;font-variant-numeric:tabular-nums}
.est{display:flex;flex-direction:column;gap:10px;padding:14px 20px}
.estcard{position:relative} .estcard>.between{flex-wrap:nowrap}
.tiph{display:flex;align-items:center;gap:4px}
.tipbtn{width:30px;height:30px;margin:-6px 0;flex:none;border:0;background:none;color:var(--faint);display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tipbtn svg{width:19px;height:19px} .tipbtn[aria-expanded="true"]{color:var(--pri);background:var(--pri-soft)}
.tipb{position:absolute;left:16px;right:16px;z-index:5;background:var(--ink);color:var(--card);font-size:14px;font-weight:400;line-height:1.45;padding:12px 14px;border-radius:12px;box-shadow:0 8px 24px rgba(20,24,27,.22);animation:npin .18s ease}
.tipb::before{content:'';position:absolute;top:-5px;left:var(--ax,40px);width:12px;height:12px;background:inherit;transform:translateX(-50%) rotate(45deg);border-radius:2px}
.esthd{display:inline-flex;align-items:center;gap:10px} .estexp{width:34px;height:34px;flex:none} .estexp svg{width:17px;height:17px}
.estrail{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;margin:0 -20px;padding:2px 20px;scroll-padding:0 20px}
.estrail::-webkit-scrollbar{display:none}
.esttask{flex:0 0 calc(100% - 34px);scroll-snap-align:start;scroll-snap-stop:always;min-width:0;border:1px solid var(--line);border-radius:14px;padding:12px 10px 12px 14px;background:var(--bg);display:flex;align-items:center;gap:8px;text-align:left;font:inherit;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent}
 .esttask .title,.esttask .meta{display:block}
.estfull{display:block;margin:-4px 14px 10px}
.esttask .estchev{transform:rotate(90deg)} .estcard.info .esttask .estchev{transform:rotate(-90deg)}
.estinfo{display:flex;flex-direction:column;gap:10px;animation:npin .2s ease} .estinfo .kvl>div{padding:10px 0;font-size:14px}
.estrow .estinfo{padding:0 14px 12px}
.estbody{display:flex;flex-direction:column;gap:16px}
.esttv{border-top:1px solid var(--line);padding-top:16px}
.estrail.one .esttask{flex-basis:100%}
.esttask .title{font-size:17px;font-weight:600;line-height:1.3}
.estrows{display:flex;flex-direction:column;gap:8px}
.estrow{border:1px solid var(--line);border-radius:14px;background:var(--card);transition:border-color .2s}
.estrow.on{border-color:var(--pri)}
.estrh{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;background:none;border:0;text-align:left;color:var(--ink);font:inherit;cursor:pointer}
.estrh .title{display:block;font-weight:600;line-height:1.3} .estrh .meta{display:block}
.estpend{font-size:13px;color:var(--muted);white-space:nowrap}
.estchev{color:var(--faint);display:inline-flex;transition:transform .2s} .estchev svg{width:18px;height:18px} .estrow.on .estchev{transform:rotate(90deg)}
.estrow .estctl{padding:0 14px 14px;animation:npin .22s ease}
.wheels{position:relative;display:grid;grid-template-columns:1fr 1fr;height:252px;margin:0;user-select:none;-webkit-user-select:none}
.wband{position:absolute;left:0;right:0;top:108px;height:36px;border-radius:12px;background:var(--line2);pointer-events:none}
.wcol{position:relative;min-width:0}
.wscroll{position:relative;height:252px;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior:contain;touch-action:pan-y;outline:none;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 12%,#000 88%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 12%,#000 88%,transparent 100%)}
.wscroll::-webkit-scrollbar{display:none} .wpad{height:108px}
.witem{height:36px;line-height:36px;scroll-snap-align:center;text-align:right;padding-right:calc(50% + 2px);font-size:22px;font-variant-numeric:tabular-nums;color:var(--ink);cursor:pointer;overflow:hidden;contain:paint;perspective:260px}
.wn{display:inline-block;transform-origin:50% 50%;will-change:transform}
.wunit{position:absolute;top:108px;left:calc(50% + 10px);height:36px;line-height:36px;font-size:18px;font-weight:500;color:var(--ink);pointer-events:none}
.wscroll:focus-visible{box-shadow:inset 0 0 0 2px var(--pri);border-radius:12px}
.estlist{margin:0 -20px -20px} .estlist .swipe.esw{border-top:1px solid var(--line2)} .estlist .swipe.esw::before{display:none}
.estlist .swipe.esw:last-child{border-radius:0 0 var(--radius) var(--radius)} .estlist .swipe.esw:last-child .est{padding-bottom:20px}
.est .chips{flex-wrap:nowrap}
.est .pill{flex:1;padding:0 6px}
.chart{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:6px;align-items:end;height:200px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent 49px,var(--line2) 49px,var(--line2) 50px)}
.chart button{height:100%;border:0;background:transparent;display:flex;align-items:flex-end;justify-content:center;padding:0}
.chart button i{display:block;width:min(44px,70%);background:linear-gradient(180deg,var(--grad-b),var(--grad-a));border-radius:4px 4px 0 0}
.chart button.dim i{background:var(--dim)}
.axis{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:6px;font-size:12px;color:var(--muted);text-align:center;margin-top:6px}
.joinln{display:block;width:100%;margin:2px 0 0;padding:14px 8px;background:none;border:0;color:var(--muted);font:inherit;font-size:14px;text-align:center;cursor:pointer}
.joinln b{color:var(--pri);font-weight:600}
.jrow .av{opacity:.55}
.recadd{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;margin-bottom:12px}
.recbtns{display:flex;gap:8px}.recbtns .recadd{flex:1;min-width:0}.recbtns .btn.pri .rnico,.recbtns .btn.pri svg{color:#ff6b5a}
.rnwrap{align-items:center;text-align:center;padding:12px 0 6px;gap:10px}.rnclock{font-size:52px;font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.rndot{width:14px;height:14px;border-radius:50%;background:#d93a2b;animation:rnpulse 1.4s ease-in-out infinite}.rndot.off{background:var(--muted);animation:none}
@keyframes rnpulse{50%{opacity:.35}}.rnmeter{display:block;width:70%;height:6px;border-radius:3px;background:var(--line2);overflow:hidden}.rnmeter i{display:block;height:100%;width:0;background:var(--pri);transition:width .08s}
#rnbar{position:fixed;left:50%;transform:translateX(-50%);top:calc(env(safe-area-inset-top) + 8px);z-index:60;display:flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:8px 14px;background:#2a1714;color:#fff;font:inherit;font-size:14px;font-variant-numeric:tabular-nums;box-shadow:0 6px 20px rgba(0,0,0,.25);cursor:pointer}
#rnbar i{width:9px;height:9px;border-radius:50%;background:#ff5a47;animation:rnpulse 1.4s ease-in-out infinite}#rnbar span{opacity:.75;margin-left:4px}
.rnleft{margin-bottom:12px}.rnrow{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.recadd svg{width:18px;height:18px}
.recq{margin-bottom:12px}
.recst{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--line);color:var(--muted)}
.recst svg{width:18px;height:18px}
.recst.bad{color:var(--bad,#C2410C)}
.recspin{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--pri);animation:recspin .9s linear infinite}
@keyframes recspin{to{transform:rotate(360deg)}}
.recx{flex:none;width:36px;height:36px;border:0;border-radius:50%;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.recx svg{width:16px;height:16px}
.avfree{width:100%;border:0;background:transparent;text-align:left;display:flex;align-items:center;gap:12px;cursor:pointer}
.avbox{flex:none;width:22px;height:22px;border-radius:6px;border:2px solid var(--line);display:grid;place-items:center;color:#fff}
.avbox.on{background:var(--pri);border-color:var(--pri)} .avbox svg{width:14px;height:14px}
.avcl{padding:14px 0 6px;border-top:1px solid var(--line);gap:8px}
.jask{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--pri);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.jask svg{width:18px;height:18px}
.jask.done{color:var(--muted);font-weight:500;border-style:dashed;cursor:default}
.joinok{gap:8px;align-items:center;text-align:center;padding:12px 0 4px}
.joinic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--pri);color:#fff}
.joinic svg{width:24px;height:24px}
.skel{height:84px;border-radius:var(--radius);background:linear-gradient(90deg,var(--skel-a),var(--skel-b),var(--skel-a));background-size:200% 100%}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}
.strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.strip button{border:0;background:transparent;border-radius:14px;padding:8px 0 9px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--muted);min-height:64px}
.strip .dl{font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.strip .dn{font-size:17px;font-weight:600;color:var(--ink)}
.strip .dh{font-size:11px;font-variant-numeric:tabular-nums}
.strip button.on{background:var(--pri-soft);color:var(--pri-dark)} .strip button.on .dn{color:var(--pri-dark)}
.strip button.today .dn{color:var(--pri)} .strip button.on.today .dn{color:var(--pri-dark)}
.pager{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pager .lab{font-weight:600;font-size:16px}
.pager .icon{width:40px;height:40px;background:var(--card);color:var(--ink);box-shadow:var(--shadow)}
.pager .icon svg{width:18px;height:18px}
.wkbars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end;height:150px;border-bottom:1px solid var(--line);padding-top:18px;background:repeating-linear-gradient(to top,transparent 0,transparent 37px,var(--line2) 37px,var(--line2) 38px)}
.wkbars button{height:100%;border:0;background:transparent;padding:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;position:relative}
.wkbars i{display:block;width:min(30px,70%);background:linear-gradient(180deg,var(--grad-b),var(--grad-a));border-radius:4px 4px 0 0;min-height:0}
.wkbars .v{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.wkbars button.zero .v{opacity:.5}
.wkaxis{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;font-size:12px;color:var(--muted);text-align:center;margin-top:6px}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal .hd{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);text-align:center;padding-bottom:2px}
.cal button{aspect-ratio:1/1.05;border:0;border-radius:12px;background:var(--line2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0;color:var(--ink)}
.cal button .n{font-size:13px;font-weight:500} .cal button .h{font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--muted)}
.cal button.l1{background:var(--cal1)} .cal button.l2{background:var(--cal2)} .cal button.l3{background:var(--cal3);color:#fff} .cal button.l4{background:var(--cal4);color:#fff}
.cal button.l3 .h,.cal button.l4 .h{color:rgba(255,255,255,.85)}
.cal button.today{box-shadow:inset 0 0 0 2px var(--ink)}
.cal .pad{visibility:hidden}
.key{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);justify-content:flex-end}
.key i{width:14px;height:14px;border-radius:4px;display:inline-block}
.share{height:4px;background:var(--line2);border-radius:2px;margin-top:6px;overflow:hidden;max-width:220px}
.share > i{display:block;height:4px;background:var(--pri);border-radius:2px}
.kind{font-size:11px;letter-spacing:.12em;text-transform:uppercase}
@media (max-width: 520px){ .hide-sm{display:none} }
.kind.act{color:var(--pri)} .kind.ask{color:var(--amber)} .kind.warn{color:var(--red)} .kind.quiet{color:var(--muted)}
/* ---------- notes boxes: grow when you're in them, and scroll on their own */
.f textarea{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;transition:height .22s ease}

/* ---------- swipe a paused timer left to throw it away */
.swipe{position:relative;overflow:hidden}
.swipe + .swipe::before{content:'';position:absolute;top:0;right:18px;left:72px;border-top:1px solid var(--line2);z-index:2}
.swipe-bg{position:absolute;inset:0;background:var(--line2);color:#fff;display:flex;align-items:center;justify-content:flex-end;padding-right:12px}
.swipe-bg button{border:0;background:var(--red);color:#fff;display:flex;flex-direction:row;align-items:center;gap:6px;font:inherit;font-size:14.5px;font-weight:600;height:44px;padding:0 14px;border-radius:12px;cursor:pointer}
.swipe-bg svg{width:18px;height:18px}
.swipe-bg button{transition:transform .15s ease}
.swipe.arm .swipe-bg button{transform:scale(1.04)}.swipe.gone{transition:height .28s ease;overflow:hidden}.pzplay{width:46px;height:46px;border-radius:50%;background:var(--pri);color:#fff;border:0;flex:none;margin-left:2px}.pzplay svg{width:20px;height:20px}
.swipe-fg{background:var(--card);will-change:transform;touch-action:pan-y}
/* the pulled-back card's right edge rounds as it's dragged, and squares again as it settles (set inline, in step with the drag) */
.swipe.gone{transition:height .25s ease .15s,opacity .2s;opacity:0}
.undo{position:fixed;left:50%;top:calc(var(--sat, env(safe-area-inset-top, 0px)) + 10px);transform:translateX(-50%);z-index:55;display:flex;align-items:center;gap:14px;padding:8px 8px 8px 18px;border-radius:999px;
      background:var(--card);color:var(--ink);box-shadow:0 10px 30px rgba(20,24,27,.18);border:1px solid var(--line);font-size:14px;transition:opacity .45s ease,transform .45s ease;white-space:nowrap}
.undo button{border:0;background:var(--pri);color:var(--pri-ink);border-radius:999px;padding:9px 16px;font:inherit;font-weight:500}
.undo.out{opacity:0;transform:translate(-50%,-12px);pointer-events:none}
@media (min-width: 861px){ .undo{top:20px} }
/* ---------- tasks coming due */
.check.late{border-color:var(--red)} .check.soon{border-color:var(--amber)}
.av.sm{width:30px;height:30px;font-size:11px} .av.nobody{background:transparent;border:1.5px dashed var(--faint);color:var(--faint)}
.av.pin{background:var(--pri);color:var(--pri-ink)} .av svg{width:18px;height:18px}
/* ---------- projects hub */
.pcard{padding:16px 18px;display:block;width:100%;text-align:left;border:0;color:inherit}
.pfbar{display:flex;align-items:center;gap:8px;margin-top:-4px} .pfrow{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1 1 auto;min-width:0;padding:2px 0;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.pfrow::-webkit-scrollbar{display:none} .pfrow .pill{flex:none;white-space:nowrap;font-size:13.5px;padding:7px 12px} .pfrow .pfn{opacity:.6;font-size:12px;margin-left:2px}
.pfsort{flex:none;border:0;background:transparent;color:var(--pri);font-size:13px;display:inline-flex;align-items:center;gap:4px;padding:6px 2px 6px 6px;white-space:nowrap} .pfsort svg{width:16px;height:16px}
.nmsgs .nmsg{width:100%;border:0;background:transparent;text-align:left;color:inherit;gap:12px} .nmsgs .nmsg .meta b{color:var(--ink);font-weight:500} .nmsgs .nmt{font-size:12px;flex:none}
.nmsgs .nmsg .count{flex:none} .nmsgs .nmsg .count.at{margin-right:-4px}
.item.chrow{padding:0;gap:0}.chrow .chgo{flex:1;min-width:0;min-height:68px;display:flex;align-items:center;gap:12px;border:0;background:transparent;text-align:left;color:inherit;font:inherit;padding:12px 4px 12px 18px;cursor:pointer}
.chrow .chgo .meta b{color:var(--ink);font-weight:500}.chrow .chgo .meta.unr{color:var(--ink)}.chrow .nmt{font-size:12px;flex:none}.chrow .count{flex:none}
.chrow .between{flex-wrap:nowrap}.chrow .title{min-width:0}.nmlink{font-size:14px;color:var(--pri);background:none;border:0;padding:6px 0;display:inline-flex;align-items:center;gap:2px;cursor:pointer;font-family:inherit}.nmlink svg{width:14px;height:14px}
.chpin{flex:none;width:44px;height:44px;margin-right:6px;border:0;border-radius:50%;background:transparent;color:var(--faint);display:grid;place-items:center;padding:0;cursor:pointer}.chpin svg{width:18px;height:18px}.chpin.on{color:var(--pri)}
.msg{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
/* press and hold never selects text or pops the callout menu, anywhere in the app, except in text boxes and the
   full email reading view (so a phone number or address can still be copied out of an email) */
html, body, body *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input, textarea, [contenteditable], .wptext, .wptext *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
body{-webkit-tap-highlight-color:transparent}
/* press and hold, the way Messages does it: the bubble sinks a little as you hold, lifts with a soft spring when the
   bar appears, and settles back when it closes. The bar grows out of the bubble and the emoji arrive one after another. */
.msg{transition:transform .34s cubic-bezier(.3,1.35,.5,1),box-shadow .3s ease}
.msg.pressing{transform:scale(.965);transition:transform .45s cubic-bezier(.35,0,.65,1)}
.msg.held{transform:scale(1.025);box-shadow:0 10px 26px rgba(27,40,48,.16);transition:transform .42s cubic-bezier(.25,1.6,.5,1),box-shadow .3s ease}
.rx{display:flex;flex-wrap:wrap;gap:4px;margin-top:-1px} .mrow.me .rx{justify-content:flex-end}
.rxc{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:2px 8px;display:inline-flex;align-items:center;gap:4px;font-size:14px;line-height:1.4;color:var(--ink);min-height:28px}
.rxc.on{border-color:var(--pri);background:var(--pri-soft)} .rxc .n{font-size:12px;color:var(--muted)} .rxc.dots .e,.rxp.dots{font-weight:700;letter-spacing:.05em;color:var(--muted)}
.rxscrim{position:fixed;inset:0;z-index:60;background:transparent}
.rxbar{position:fixed;z-index:61;display:flex;gap:2px;padding:6px;border-radius:999px;background:var(--card);box-shadow:0 6px 24px rgba(27,40,48,.22);border:1px solid var(--line);animation:rxin .36s cubic-bezier(.25,1.45,.45,1) both}
@keyframes rxin{0%{transform:translateY(var(--rxdy,6px)) scale(.55);opacity:0}45%{opacity:1}100%{transform:none;opacity:1}}
.rxbar .rxp{animation:rxpop .38s cubic-bezier(.3,1.7,.5,1) both;animation-delay:calc(60ms + var(--i) * 24ms)}
@keyframes rxpop{0%{transform:scale(.25);opacity:0}60%{opacity:1}100%{transform:none;opacity:1}}
.rxbar.out{animation:rxout .16s ease-in forwards} .rxbar.out .rxp{animation:none;transition:opacity .12s ease,transform .2s cubic-bezier(.3,1.6,.5,1)}
.rxbar.out .rxp:not(.picked){opacity:0} .rxbar.out .rxp.picked{transform:scale(1.3)}
@keyframes rxout{to{transform:scale(.92);opacity:0}}
@media (prefers-reduced-motion: reduce){.rxbar,.rxbar .rxp,.rxbar.out{animation:none} .msg,.msg.pressing,.msg.held{transition:none}}
.rxp{border:0;background:transparent;font-size:24px;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;color:var(--ink);transition:transform .22s cubic-bezier(.3,1.6,.5,1),background .15s} .rxp:active{background:var(--line2);transform:scale(1.22)}
/* (v456) W3: line icons in color on glass, like Messages: the bar on top, the message lifted, then who reacted and the actions */
.rxk-up{--rk:#2F6346;--rs:#2F6346}.rxk-heart{--rk:#D13B57;--rs:#D13B57}.rxk-haha{--rk:#B9780A;--rs:#B9780A}.rxk-done{--rk:#2E8A5B;--rs:#2E8A5B}.rxk-eye{--rk:#6B4FA0;--rs:#6B4FA0}.rxk-thanks{--rk:#B4632A;--rs:#B4632A}.rxk-clap{--rk:#C2410C;--rs:#C2410C}.rxk-down{--rk:#9A3A2C;--rs:#9A3A2C}.rxk-q{--rk:#2B6A8F;--rs:#2B6A8F}.rxk-think{--rk:#5E6970;--rs:#5E6970}.rxk-idea{--rk:#C08A00;--rs:#C08A00}.rxk-fire{--rk:#E0531F;--rs:#E0531F}.rxk-wow{--rk:#B9780A;--rs:#B9780A}.rxk-sad{--rk:#3D6FA8;--rs:#3D6FA8}.rxk-party{--rk:#8E44AD;--rs:#8E44AD}.rxk-ok{--rk:#2E8A5B;--rs:#2E8A5B}.rxk-pencil{--rk:#B4632A;--rs:#B4632A}.rxk-send{--rk:#2B6A8F;--rs:#2B6A8F}.rxk-ruler{--rk:#6A5A40;--rs:#6A5A40}.rxk-hat{--rk:#D08A00;--rs:#D08A00}.rxk-flag{--rk:#C0392B;--rs:#C0392B}.rxk-clock{--rk:#3D5A73;--rs:#3D5A73}.rxk-pin{--rk:#7A4E9E;--rs:#7A4E9E}
html[data-theme=dark] .rxk-up{--rk:#8DA999}html[data-theme=dark] .rxk-heart{--rk:#E693A3}html[data-theme=dark] .rxk-haha{--rk:#D8B578}html[data-theme=dark] .rxk-done{--rk:#8CBFA5}html[data-theme=dark] .rxk-eye{--rk:#AE9ECB}html[data-theme=dark] .rxk-thanks{--rk:#D6A98A}html[data-theme=dark] .rxk-clap{--rk:#DD9679}html[data-theme=dark] .rxk-down{--rk:#C7938B}html[data-theme=dark] .rxk-q{--rk:#8AADC1}html[data-theme=dark] .rxk-think{--rk:#A6ACB0}html[data-theme=dark] .rxk-idea{--rk:#DCBF73}html[data-theme=dark] .rxk-fire{--rk:#EEA084}html[data-theme=dark] .rxk-wow{--rk:#D8B578}html[data-theme=dark] .rxk-sad{--rk:#94B0CF}html[data-theme=dark] .rxk-party{--rk:#C198D2}html[data-theme=dark] .rxk-ok{--rk:#8CBFA5}html[data-theme=dark] .rxk-pencil{--rk:#D6A98A}html[data-theme=dark] .rxk-send{--rk:#8AADC1}html[data-theme=dark] .rxk-ruler{--rk:#ADA496}html[data-theme=dark] .rxk-hat{--rk:#E5BF73}html[data-theme=dark] .rxk-flag{--rk:#DC928A}html[data-theme=dark] .rxk-clock{--rk:#94A4B2}html[data-theme=dark] .rxk-pin{--rk:#B69ECA}
/* (v459) sticker icons: a white outline with a soft shadow, the shape in its color, white details */
.rxi{width:24px;height:24px;flex:none;display:block;overflow:visible;filter:drop-shadow(0 1px 1.2px rgba(0,0,0,.28))}
.rxi .rxh{fill:#fff;stroke:#fff;stroke-width:4.4;stroke-linejoin:round;stroke-linecap:round}
.rxi .rxs{fill:var(--rs,var(--rk));stroke:var(--rs,var(--rk));stroke-width:1;stroke-linejoin:round}
.rxi .rxx{fill:none;stroke:var(--rs,var(--rk));stroke-width:1.9;stroke-linecap:round}
.rxi .rxd{fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round} .rxi .rxd .f{fill:#fff;stroke:#fff;stroke-width:.6}
.rxp.more .rxmo{width:24px;height:24px;fill:none;stroke:var(--muted);stroke-width:1.7;stroke-linecap:round} .rxp.more.on{background:var(--line2)}
.rxbar{transition:top .32s cubic-bezier(.25,1.2,.5,1)}
.rxlift.hid,.rxmenu.hid{visibility:hidden;pointer-events:none}
.rxtray{position:fixed;z-index:62;padding:10px 10px 12px;border-radius:20px;background:color-mix(in srgb,var(--card) 94%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 12px 34px rgba(27,40,48,.18),0 0 0 .5px var(--line);animation:rxmin .32s cubic-bezier(.25,1.3,.45,1) both;transform-origin:50% 0}
.rxq{width:100%;box-sizing:border-box;border:0;border-radius:12px;background:var(--line2);padding:9px 12px 9px 34px;font-size:16px;color:var(--ink);font-family:inherit;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A9399' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:11px center;background-size:16px}
.rxtabs{display:flex;gap:3px;padding:3px;border-radius:11px;background:var(--line2);margin:8px 0 4px}.rxtabs button{flex:1;border:0;background:transparent;border-radius:8px;padding:6px;font-size:13.5px;color:var(--muted);font-family:inherit}.rxtabs button.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.rxgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 4px;padding-top:8px}
.rxt{border:0;background:transparent;padding:0;display:flex;flex-direction:column;align-items:center;gap:4px;font-family:inherit;color:var(--ink)}
.rxt .c{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;position:relative;background:color-mix(in srgb,var(--rk) 13%,transparent);transition:transform .2s cubic-bezier(.3,1.6,.5,1)} .rxt:active .c{transform:scale(1.15)}
.rxt.on .c{background:color-mix(in srgb,var(--rk) 26%,transparent);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--rk) 55%,transparent)}
.rxt .c .rxi{width:26px;height:26px} .rxt .l{font-size:11px;color:var(--muted);line-height:1.2;text-align:center;max-width:80px}
.rxt .cnt{position:absolute;top:-2px;right:-2px;min-width:15px;height:15px;border-radius:8px;font-size:9.5px;font-weight:700;line-height:15px;text-align:center;padding:0 3px;color:#fff;background:var(--rs);box-shadow:0 0 0 1.5px var(--card)}
.rxnone{grid-column:1/-1;text-align:center;color:var(--muted);font-size:14px;padding:16px 0}
.rxscrim{background:color-mix(in srgb,var(--bg) 45%,transparent);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);animation:rxfade .25s ease both}
@keyframes rxfade{from{opacity:0}to{opacity:1}}
.rxbar{gap:2px;padding:5px 6px;border:0;background:color-mix(in srgb,var(--card) 88%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 10px 30px rgba(27,40,48,.16),0 0 0 .5px var(--line)}
.rxp{width:38px;height:38px;position:relative} .rxp.on{background:color-mix(in srgb,var(--rk) 18%,transparent)}
.rxp:active{background:color-mix(in srgb,var(--rk,var(--ink)) 18%,transparent)}
.rxp .cnt{position:absolute;top:-2px;right:-2px;min-width:15px;height:15px;border-radius:8px;font-size:9.5px;font-weight:700;line-height:15px;text-align:center;padding:0 3px;color:#fff;background:var(--rs);box-shadow:0 0 0 1.5px var(--card)}
.rxrow .rxp{width:40px;height:40px}
.rxlift{position:fixed;z-index:61;margin:0;padding:0;display:flex;pointer-events:none;transition:transform .4s cubic-bezier(.25,1.25,.5,1)}
.rxlift .msg{max-width:none;margin:0;transform:scale(1.02);box-shadow:0 12px 30px rgba(27,40,48,.18)} .rxlift.cut .msg{overflow:hidden;-webkit-mask-image:linear-gradient(#000 80%,transparent);mask-image:linear-gradient(#000 80%,transparent)}
.msg.rxsrc{opacity:0}
.rxmenu{position:fixed;z-index:61;display:flex;flex-direction:column;gap:8px;animation:rxmin .34s cubic-bezier(.25,1.3,.45,1) both}
@keyframes rxmin{0%{opacity:0;transform:translateY(-10px) scale(.96)}100%{opacity:1;transform:none}}
.rxmenu.out{animation:rxout .16s ease-in forwards} .rxlift.out{opacity:0;transition:opacity .16s ease}
.rxcard{background:color-mix(in srgb,var(--card) 92%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:16px;box-shadow:0 10px 30px rgba(27,40,48,.14),0 0 0 .5px var(--line);overflow:hidden}
.rxwho{display:flex;align-items:center;gap:8px;padding:8px 10px 8px 12px;font-size:14px;color:var(--ink)} .rxwho+.rxwho{border-top:.5px solid var(--line)}
.rxwho .avs{display:flex;flex:none} .rxwho .avs .av{width:24px;height:24px;font-size:9px;margin-left:-7px;box-shadow:0 0 0 1.5px var(--card)} .rxwho .avs .av:first-child{margin-left:0}
.rxwho .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rxwho .ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--rk) 15%,transparent)} .rxwho .ic .rxi{width:17px;height:17px}
.rxact{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;background:transparent;padding:12px 16px;font-size:15.5px;color:var(--ink);text-align:left;font-family:inherit}
.rxact+.rxact{border-top:.5px solid var(--line)} .rxact svg{width:20px;height:20px;color:var(--muted);flex:none} .rxact:active{background:var(--line2)}
.rxact.red,.rxact.red svg{color:var(--red)} .rxact.armed{background:var(--red-soft);font-weight:600}
.rxc{border:0;background:color-mix(in srgb,var(--rk,var(--ink)) 10%,var(--card));padding:3px 9px 3px 7px;min-height:26px;gap:3px} .rxc .rxi{width:16px;height:16px}
.rxc.on{background:color-mix(in srgb,var(--rk,var(--ink)) 20%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rk,var(--ink)) 45%,transparent)} .rxc .n{color:var(--rk,var(--muted));font-weight:600}
.chxpop svg{width:46px;height:46px;display:block;fill:#D13B57}
.ibwhen{font-size:12.5px;color:var(--faint);margin-top:-4px}
/* (v458) Email in the Inbox */
.emchips{display:flex;gap:6px;overflow-x:auto;margin:0 -20px 12px;padding:2px 20px;scrollbar-width:none}.emchips::-webkit-scrollbar{display:none}
.emchip{flex:none;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 13px;font-size:14px;color:var(--ink);text-decoration:none;font-family:inherit}.emchip.on{background:var(--ink);color:var(--card);border-color:var(--ink)}.emchip i{font-style:normal;opacity:.6;margin-left:5px}
.emgh{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:18px 4px 6px}
.emlist{padding:0;overflow:hidden}
.emr{display:flex;gap:11px;padding:12px 14px;border:0;border-top:1px solid var(--line2);align-items:flex-start;width:100%;background:transparent;color:inherit;text-align:left;font:inherit;position:relative}.emr:first-child{border-top:0}.emr:active{background:var(--line2)}
.av.emav{width:38px;height:38px;flex:none;font-size:12.5px;font-weight:600;color:#fff;position:relative;overflow:hidden}
.emb{flex:1;min-width:0;display:block}.emtop{display:flex;justify-content:space-between;gap:8px;font-size:14.5px}.emtop b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emtop span{color:var(--faint);font-size:12.5px;flex:none}
.emsub{display:block;font-size:14px;font-weight:500;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emsub i{font-style:normal;color:var(--faint);font-weight:400;font-size:12.5px}
.emsn{font-size:13.5px;color:var(--muted);margin-top:1px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.emtags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.emtag{display:inline-flex;font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--pri-soft);color:var(--pri);font-weight:500}.emtag.f{background:var(--line2);color:var(--muted)}.emtag.c{background:color-mix(in srgb,#2E8A5B 14%,transparent);color:#2E7A52}.emtag.g{background:var(--amber-soft);color:var(--amber)}
html[data-theme=dark] .emtag.c{color:#8FD0A5}
.emdot{position:absolute;left:5px;top:28px;width:7px;height:7px;border-radius:50%;background:var(--pri)}
.emgo{margin:2px 0 4px}
.emcount{font-size:12.5px;color:var(--muted);text-align:center;margin:-2px 0 10px}
.emcard{padding:16px 16px 14px;touch-action:pan-y}.emwho{display:flex;gap:10px;align-items:center;margin-top:12px}
.emsum{background:var(--line2);border-radius:12px;padding:10px 12px;font-size:14.5px;line-height:1.45;margin:12px 0 10px}.emsum b,.emdraft b{display:block;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;font-weight:600}
.emdraft{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:15px;line-height:1.5;color:var(--ink)}.emdraft b{color:var(--pri)}.emdraft.ph{color:var(--faint)}
.emacts{display:flex;gap:8px;margin-top:12px}.emacts .btn{flex:1;justify-content:center}.emacts.sm{margin-top:6px}
.emnav{display:flex;justify-content:space-between;margin-top:6px}
.emproj{display:inline-flex;font-size:12.5px;padding:4px 10px;border-radius:999px;background:var(--pri-soft);color:var(--pri);font-weight:500}
.emh1{font-size:24px!important;line-height:1.2}
.emth{padding:14px 16px;margin-top:8px}.emth.col{display:block;width:100%;text-align:left;border:0;padding:10px 16px;color:var(--muted);font-size:13.5px;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emth.col b{color:var(--ink);font-weight:600}
.emmeta{font-size:12.5px;color:var(--faint);margin-top:2px}.embody{font-size:15px;line-height:1.5;margin-top:10px;overflow-wrap:anywhere}.embody a{color:var(--pri)}
.emfile{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-size:13.5px;margin-top:10px;color:var(--ink);text-decoration:none}.emfile i{font-style:normal;background:var(--red-soft);color:var(--red);font-size:10.5px;font-weight:700;border-radius:6px;padding:4px 5px}.emfile span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emfile small{color:var(--faint)}
.embar{display:flex;gap:8px;margin-top:12px}.embar .btn{flex:1;justify-content:center}
@media (prefers-reduced-motion: reduce){.rxmenu,.rxscrim{animation:none}.rxlift{transition:none}}
.rxrow{display:flex;justify-content:space-between;gap:2px;padding:4px;border-radius:999px;background:var(--line2);margin-bottom:6px}
.membusy{pointer-events:none}
.wpban{display:flex;align-items:center;gap:14px;width:100%;text-align:left;border:0;color:inherit;padding:16px 18px;background:linear-gradient(135deg,var(--pri-soft),var(--card))}
.wpban b{display:block;font-weight:600;font-size:16px} .wpban .sub{display:block;font-size:13px;margin-top:2px} .wpban .grow{flex:1 1 auto}
.wpban > svg{width:18px;height:18px;flex:none;color:var(--faint)}
.wpbi{position:relative;width:44px;height:44px;border-radius:14px;background:var(--pri);color:var(--pri-ink);display:flex;align-items:center;justify-content:center;flex:none}
.wpbi svg{width:22px;height:22px} .wpbi i{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--hi);color:#fff;font-style:normal;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--card)}
.wpcount{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:-4px 2px 2px}
.wpcount em{font-style:normal;display:inline-block} .wpcount em.dn{animation:wpdn .45s cubic-bezier(.3,1.4,.5,1)} @keyframes wpdn{0%{transform:translateY(-7px);opacity:0;color:var(--hi)}60%{color:var(--hi)}100%{transform:none;opacity:1}}
.wpend{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:10px 8px 8px} .wpend b{font-size:22px;letter-spacing:-.01em;margin-top:2px}
.wpart{position:relative;width:200px;height:150px} .wpart svg{display:block;width:200px;height:150px;overflow:visible}
.wpart .wpsh{fill:var(--line2)} .wpart .env rect{fill:var(--card);stroke:var(--muted);stroke-width:1.3} .wpart .env polyline{fill:none;stroke:var(--muted);stroke-width:1.3;stroke-linejoin:round}
.wpart .e4 rect{stroke:var(--pri)} .wpart .e4 polyline{stroke:var(--pri)}
.wpart .env{animation:wpdrop .55s cubic-bezier(.3,1.45,.5,1) both} .wpart .e2{animation-delay:.09s} .wpart .e3{animation-delay:.18s} .wpart .e4{animation-delay:.27s}
@keyframes wpdrop{from{transform:translateY(-48px);opacity:0}to{transform:none;opacity:1}}
.wpart .wpflag line{stroke:var(--ink);stroke-width:1.6;stroke-linecap:round} .wpart .wpflag path{fill:var(--hi);transform-origin:100px 13px;animation:wpwave 2.6s 1.2s ease-in-out infinite}
.wpart .wpflag{transform-origin:100px 40px;animation:wpplant .5s .52s cubic-bezier(.3,1.7,.5,1) both}
@keyframes wpplant{from{transform:scaleY(0)}to{transform:none}} @keyframes wpwave{0%,100%{transform:none}50%{transform:skewY(-7deg) scaleX(.92)}}
.wpconf{position:absolute;left:100px;top:22px;width:0;height:0}
.wpconf i{position:absolute;left:-3px;top:-2px;width:7px;height:4px;border-radius:1px;opacity:0;animation:wpconf 1.15s cubic-bezier(.12,.7,.35,1) both;animation-delay:calc(.62s + var(--t))}
.wpconf .c0{background:var(--hi)} .wpconf .c1{background:var(--pri)} .wpconf .c2{background:var(--amber)} .wpconf .c3{background:var(--muted);border-radius:50%;width:5px;height:5px}
@keyframes wpconf{0%{opacity:0;transform:rotate(var(--a)) translateX(0) rotate(0)}6%{opacity:1}70%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateX(var(--d)) translateY(14px) rotate(var(--r))}}
.wpend.calm .env,.wpend.calm .wpflag,.wpend.calm .wpconf i{animation:none}
@media (prefers-reduced-motion: reduce){.wpart .env,.wpart .wpflag,.wpart .wpflag path,.wpconf i,.wpcount em.dn{animation:none}}
/* all your suggested tasks sorted: a clipboard ticks itself off and the confetti goes */
.cheer{position:fixed;inset:0;z-index:95;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(10,14,16,.38);animation:chin .25s ease both}
.cheer.out{animation:chout .3s ease both}
.cheerc{width:min(340px,100%);background:var(--card);color:var(--ink);border-radius:24px;padding:22px 20px 18px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;box-shadow:0 18px 50px rgba(0,0,0,.28);animation:chpop .45s cubic-bezier(.3,1.5,.5,1) both}
.cheerc b{font-size:22px;letter-spacing:-.01em;margin-top:2px}
.cheerc .btn{margin-top:8px}
.cheerart .clb{fill:var(--card);stroke:var(--muted);stroke-width:1.4} .cheerart .clamp{fill:var(--line2);stroke:var(--muted);stroke-width:1.4}
.cheerart .ln{stroke:var(--line2);stroke-width:5;stroke-linecap:round}
.cheerart .tk{fill:none;stroke:var(--pri);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20;animation:chtick .32s ease-out both}
.cheerart .tk.t2{animation-delay:.22s} .cheerart .tk.t3{animation-delay:.44s;stroke:var(--hi)}
.cheerart .spk{fill:var(--hi);transform-box:fill-box;transform-origin:center;animation:chspk 1.6s .7s ease-in-out infinite}
.cheerart .wpconf{top:36px}
@keyframes chin{from{opacity:0}to{opacity:1}} @keyframes chout{to{opacity:0}}
@keyframes chpop{from{transform:scale(.86) translateY(12px);opacity:0}to{transform:none;opacity:1}}
@keyframes chtick{to{stroke-dashoffset:0}} @keyframes chspk{0%,100%{transform:scale(.6);opacity:.5}50%{transform:scale(1.1);opacity:1}}
@media (prefers-reduced-motion: reduce){.cheer,.cheerc,.cheerart .spk,.cheer .wpconf i{animation:none}.cheerart .tk{animation:none;stroke-dashoffset:0}}
/* money in: a note, a stack of coins dropping on, the amount, and a status line that follows the save */
.payart .note rect{fill:var(--pop-ok);stroke:var(--pop-ok-ink);stroke-width:1.4} .payart .note circle{fill:none;stroke:var(--pop-ok-ink);stroke-width:1.3}
.payart .note text{fill:var(--pop-ok-ink);font:700 17px system-ui,-apple-system,sans-serif}
.payart .note{transform-origin:84px 95px;animation:pcnote .5s cubic-bezier(.3,1.5,.5,1) both}
.payart .coin .ctop{fill:#F2C766;stroke:#B98A22;stroke-width:1.3} .payart .coin .cside{fill:#D9A93C;stroke:#B98A22;stroke-width:1.3}
.payart .coin{animation:pcdrop .45s cubic-bezier(.3,1.4,.5,1) both} .payart .k2{animation-delay:.14s} .payart .k3{animation-delay:.28s} .payart .k4{animation-delay:.42s}
.payart .wpconf{top:60px;left:134px}
.cheer.pay .wpconf i{animation-delay:calc(.5s + var(--t))}
.cheerc .pcamt{font-size:34px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:0}
.pcst{display:flex;align-items:center;gap:8px;justify-content:center;font-size:14px;color:var(--muted);min-height:22px;margin-top:2px}
.pcst svg{width:16px;height:16px;flex:none} .pcst .pcsp{display:inline-flex} .pcst .pcsp svg{animation:rfspin .8s linear infinite}
.pcst.ok{color:var(--pop-ok-ink)} .pcst.bad{color:var(--red)} .pcst .pctx{text-align:left;text-wrap:balance}
.cheer.failed .wpconf{display:none}
@keyframes pcdrop{from{transform:translateY(-70px);opacity:0}to{transform:none;opacity:1}} @keyframes pcnote{from{transform:scale(.7) rotate(-6deg);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion: reduce){.payart .note,.payart .coin{animation:none}.pcst .pcsp svg{animation-duration:2.4s}}
.wpdeck{position:relative;margin-top:4px;padding-bottom:34px}
.wpc{position:absolute;left:0;right:0;top:0;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:20px 18px 14px;box-shadow:0 10px 30px rgba(27,40,48,.10);
  transition:transform .38s cubic-bezier(.2,.9,.25,1.15),opacity .3s ease;transform-origin:50% 100%;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.wpc.d0{position:relative} .wpc.d1,.wpc.d2{bottom:34px;overflow:hidden}
.wpc.d1{transform:translateY(16px) scale(.95);opacity:.9;pointer-events:none} .wpc.d2{transform:translateY(30px) scale(.9);opacity:.6;pointer-events:none}
.wpc.from.d0{transform:translateY(16px) scale(.95)} .wpc.from.d1{transform:translateY(30px) scale(.9)} .wpc.from.d2{transform:translateY(42px) scale(.85);opacity:0}
.wpc.d1 .wpsubj,.wpc.d2 .wpsubj{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.wpmeta{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.wpsubj{font-size:21px;font-weight:600;line-height:1.25;margin:6px 0 8px;letter-spacing:-.01em}
.wpsum{font-size:15px;line-height:1.45;color:var(--muted);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.wpwhy{font-size:13px;color:var(--faint);margin-top:8px;font-style:italic;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wpopts{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.wpopt{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--bg);border-radius:16px;padding:10px 12px;text-align:left;color:var(--ink);min-height:60px;width:100%}
.wpopt b{display:block;font-size:16px;font-weight:600} .wpopt small{display:block;font-size:12px;color:var(--faint)} .wpopt svg{width:18px;height:18px;color:var(--faint);flex:none}
.wpopt.best{border-color:var(--pri);background:var(--pri-soft)} .wpopt.best small{color:var(--pri)} .wpopt:active{transform:scale(.98)}
.wpfoot{display:flex;justify-content:space-between;gap:8px;margin-top:10px;flex-wrap:wrap} .wpfoot .seeall.danger{color:var(--red)}
.wps{margin-top:14px}
.wpread{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:4px 0;font-size:14px} .wpread svg{width:17px;height:17px}
.wprd .wpsubj{margin-top:0} .wpmsg{border-top:1px solid var(--line2);padding:14px 0 16px} .wpmsg header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.wpmsg header b{display:block;font-size:15px;font-weight:600} .wpmsg header small{display:block;font-size:12px;color:var(--faint)} .wpmsg header .av{flex:none}
.wptext{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.5;color:var(--ink);user-select:text;-webkit-user-select:text}
.wpfiles{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px} .wpfiles .pill{min-height:30px;font-size:12.5px;padding:0 10px;display:inline-flex;align-items:center}
/* the deck fills the screen exactly: nothing below the cards to scroll to; the project list takes the room that's left */
.sheet.wpfit{height:92vh;height:calc(100svh - var(--sat, env(safe-area-inset-top, 0px)) - 16px)}
.sheet.wpfit .sbody{overflow:hidden;overscroll-behavior:none;gap:10px}
.sheet.wpfit .wpcount,.sheet.wpfit .wphint{flex:none} .sheet.wpfit .wphint{margin-top:0}
.sheet.wpfit .wpdeck{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding-bottom:30px}
.sheet.wpfit .wpc.d0{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.sheet.wpfit .wpc.d0>*{flex:none} .sheet.wpfit .wpc.d0>.wplist{flex:1 1 auto;min-height:96px;max-height:none}
.sheet.wpfit .wpc.d1,.sheet.wpfit .wpc.d2{bottom:30px}
@media (max-height: 760px){ .sheet.wpfit .wpsum p{-webkit-line-clamp:2} .sheet.wpfit .wpwhy{display:none} .sheet.wpfit .wpc.d0>.wplist{min-height:76px} .sheet.wpfit .wpread{margin-top:2px} .sheet.wpfit .wpsubj{font-size:19px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:4px 0 6px} .sheet.wpfit .wps{margin-top:8px} .sheet.wpfit .wphint{display:none} }
@media (min-width: 861px){ .sheet.wpfit{height:min(92vh,860px)} }
.wprow.ina b{color:var(--muted);font-weight:400} .wprow.ina .av{opacity:.6}
.hcard.run, .hcard.idle{cursor:pointer}
.tset{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:0;padding:8px 0 6px}
.tsu{display:flex;flex-direction:column;align-items:center;gap:4px}
.tsin{width:2.4ch;font-family:'ThreshNum','Onest',system-ui,sans-serif;font-size:56px;font-weight:300;line-height:1.05;text-align:center;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--ink);padding:0 0 2px;font-variant-numeric:tabular-nums;border-radius:0;letter-spacing:-.01em;transition:border-color .15s}
.tsin::placeholder{color:var(--faint);opacity:.5}.tsin:focus{outline:none;border-bottom-color:var(--pri)}
.tsin.bump{animation:tsbump .18s ease-out}@keyframes tsbump{0%{transform:scale(1.06)}100%{transform:none}}
.tsl{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:10px}
.tsrow{display:flex;border:1px solid var(--line);border-radius:999px;background:var(--card);overflow:hidden}
.tsb{width:58px;height:42px;border:0;background:transparent;color:var(--ink);display:grid;place-items:center;padding:0;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background .15s}
.tsb+.tsb{border-left:1px solid var(--line)}.tsb svg{width:18px;height:18px}.tsb:active{background:var(--line2)}.tsb:active svg{transform:scale(.88)}
.tscolon{font-family:'ThreshNum','Onest',system-ui,sans-serif;font-size:46px;font-weight:300;color:var(--faint);line-height:1.2;padding:0 2px}
.lgclk{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;gap:8px;padding:4px 0 0}
.lgb{width:56px;height:56px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center;padding:0;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background .15s,transform .12s}
.lgb svg{width:22px;height:22px}.lgb:active{background:var(--line2);transform:scale(.94)}
.lgv{text-align:center;line-height:1}
.lgv b{display:block;font-family:'ThreshNum','Onest',system-ui,sans-serif;font-size:54px;font-weight:300;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.lgv b.bump{animation:tsbump .18s ease-out}
.lgv span{display:block;margin-top:8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.lghr{display:flex;justify-content:center;margin-top:12px}
.lghr .tsb{width:auto;min-width:78px;padding:0 16px;font-size:14px;font-variant-numeric:tabular-nums;display:flex;align-items:center;justify-content:center;gap:4px}.lghr .tsb svg{width:15px;height:15px}
.pkrow.pkon{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-soft)}
.pkrow.pkon input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:16px;padding:0;height:34px;outline:none}
.pkdrop{margin-top:6px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 10px 30px rgba(20,30,40,.10);max-height:min(320px,44vh);overflow:auto;padding:4px;overscroll-behavior:contain}
.pkdrop .pkh{padding:10px 8px 2px} .pkdrop .pkit{min-height:48px;padding:6px 8px} .pkdrop .sub{padding:12px 8px !important}
.eb{position:relative;height:6px;border-radius:3px;background:var(--line2);overflow:hidden}
.eb.big{height:10px;border-radius:5px}
.eb > i{position:absolute;top:0;bottom:0;display:block}
.tpri{display:flex;flex-direction:column;gap:8px}
.tpo{display:flex;align-items:center;gap:12px;width:100%;min-height:58px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.tpo.on{border-color:var(--pri);background:color-mix(in srgb,var(--pri) 8%,var(--card))} .tpo b{display:block;font-weight:600} .tpo .meta{display:block} .tpo > svg{width:18px;height:18px;flex:none;color:var(--pri)} .tpo:active{background:var(--line2)}
.tpd{width:10px;height:10px;border-radius:50%;flex:none;background:var(--faint)} .tpd.p4{background:var(--red)} .tpd.p3{background:var(--amber)} .tpd.p1{background:transparent;box-shadow:inset 0 0 0 1.5px var(--faint)}
.tsw .trow{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.eb .ef{left:0;background:var(--pri)} .eb .eo{background:var(--red)} .eb.over .ef{background:var(--red)}
.eb .em{width:2px;margin-left:-1px;background:var(--card)} .eb .er{width:2px;margin-left:-1px;background:var(--ink);opacity:.45}
.meta.amb, .amb{color:var(--amber)}
.tvlg{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted)} .tvlg b{color:var(--ink);font-weight:600} .tvlg b.amb{color:var(--amber)} .tvlg b.over{color:var(--red)}
.tvrev{display:flex;gap:8px;align-items:baseline;font-size:13px;color:var(--muted);line-height:1.4} .tvrev b{color:var(--ink);font-weight:500;white-space:nowrap}
.tvsess{border-top:1px solid var(--line)}
.tvs{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.tvs .d{color:var(--muted);white-space:nowrap} .tvs .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .tvs .h{font-variant-numeric:tabular-nums;white-space:nowrap}
.estlock{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:14px;background:var(--beige);font-size:13px;line-height:1.4;color:var(--muted);margin-bottom:8px} .estlock svg{width:16px;height:16px;flex:none;margin-top:1px;color:var(--faint)}
.rv{display:grid;gap:10px;padding:4px 0}
.rvrow{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px;color:var(--muted)} .rvrow b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.rvb{height:10px;border-radius:5px;background:var(--line2);overflow:hidden} .rvb i{display:block;height:100%;border-radius:5px}
.rvb i.e{background:var(--faint)} .rvb i.o{background:var(--amber)} .rvb i.u{background:var(--pri)}
.rvw{display:flex;flex-wrap:wrap;gap:8px} .rvw .pill{min-height:44px;padding:0 16px}
.sgdot{display:inline-flex;margin-left:6px;color:var(--hi);vertical-align:-2px} .sgdot svg{width:15px;height:15px}
.pstats .sgs{color:var(--hi)}
.pact.won{color:var(--pri);border-color:var(--pri)} .pact.won svg{width:16px;height:16px}
.npwp svg{--acc:var(--pri)}
.hsnzb{position:absolute;top:14px;left:14px;z-index:3;width:40px;height:40px;border-radius:50%;border:0;display:grid;place-items:center;color:#F3F6F8;background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer}
.hsnzb svg{width:19px;height:19px} .hsnzb:active,.hedb:active{transform:scale(.92)}
.hzz{position:absolute;top:3px;right:4px;font-style:normal;font-size:9px;font-weight:700;line-height:1;color:#F3F6F8;opacity:.9}.hzz b{font-size:7px;vertical-align:4px;margin-left:1px}
.hedb{position:absolute;top:14px;right:14px;z-index:3;width:40px;height:40px;border-radius:50%;border:0;display:grid;place-items:center;color:#F3F6F8;background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer}.hedb svg{width:18px;height:18px}
.hcard.need .hk{margin:0 50px;min-height:40px;padding-top:2px}.hcard.task .hk{margin-right:50px;min-height:40px;padding-top:2px}
.hqlist{display:flex;flex-direction:column;gap:8px}.hqlist .btn{justify-content:flex-start;position:relative}.hqlist .btn input[type=date]{position:absolute;inset:0;opacity:0;width:100%;height:100%}
.hsz{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.hzc{min-height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.10);color:#F3F6F8;font:inherit;font-size:15px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;position:relative}
.hzc:active{background:rgba(255,255,255,.22)} .hzc svg{width:17px;height:17px;--acc:#F3F6F8}
.hzd input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.hacts.one{grid-template-columns:1fr}
.wpfoot [data-wpnew]{display:inline-flex;align-items:center;gap:4px} .wpfoot [data-wpnew] svg{width:16px;height:16px}
.pmts{display:flex;flex-direction:column;gap:10px}
.pmt{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.pmh{display:flex;align-items:center;gap:14px;width:100%;border:0;background:transparent;text-align:left;color:var(--ink);padding:14px 16px 14px 18px;min-height:64px;font:inherit}
.pmh .title{font-weight:600} .pmh .meta{margin-top:2px}
.pmi{flex:none;width:36px;height:36px;border-radius:10px;background:var(--bg);display:grid;place-items:center;color:var(--muted)} .pmi svg{width:20px;height:20px}
.pmh .chev{flex:none;display:grid;color:var(--faint);transition:transform .2s ease} .pmh .chev svg{width:18px;height:18px} .pmt.open .pmh .chev{transform:rotate(90deg)}
.pmb{padding:0 18px 16px;display:flex;flex-direction:column;gap:12px;font-size:14.5px;line-height:1.45}
.pmb p{margin:0} .pmsum{display:flex;flex-direction:column;gap:6px} .pmsum p{color:var(--muted)} .pmsum p.b{color:var(--ink);font-weight:600;margin-top:4px}
.pmsh{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.pmsteps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.pmsteps li{display:flex;flex-direction:column;gap:1px;padding-left:12px;border-left:2px solid var(--line2)} .pmsteps .who{font-size:12px;color:var(--faint)} .pmsteps b{font-weight:600;color:var(--ink)}
.pmlinks{display:flex;flex-wrap:wrap;gap:8px} .pmlinks a{display:inline-flex;align-items:center;text-decoration:none;color:var(--pri);font-weight:500;min-height:36px}
.npwp{display:flex;align-items:flex-start;gap:8px;background:var(--bg);border-radius:12px;padding:10px 12px;font-size:13.5px;color:var(--muted)} .npwp svg{width:17px;height:17px;flex:none;margin-top:1px;color:var(--pri)} .npwp b{color:var(--ink);font-weight:600}
.wprdfoot{display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 0 4px;position:sticky;bottom:0;background:linear-gradient(transparent,var(--card) 18px);padding-top:22px}
.wpsum p{margin:0 0 4px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden} .wpsum p b{color:var(--ink);font-weight:600}
.wpsum{display:block;-webkit-line-clamp:none;font-size:14.5px;min-height:44px}
.wpsk{display:block;height:12px;border-radius:6px;margin:6px 0 10px;background:linear-gradient(90deg,var(--line2),var(--line),var(--line2));background-size:200% 100%;animation:wpsk 1.2s linear infinite} .wpsk.short{width:62%}
@keyframes wpsk{to{background-position:-200% 0}}
.wplist{margin:10px -6px 0;max-height:min(44vh,340px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 6px;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.wprow{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;text-align:left;color:var(--ink);padding:9px 8px;border-radius:12px;min-height:52px}
.wprow b{display:block;font-size:15.5px;font-weight:500} .wprow small{display:block;font-size:12px;color:var(--faint)} .wprow .av{flex:none}
.wprow.top{background:var(--bg);margin-top:6px} .wprow.top b{font-weight:600} .wprow.best{background:var(--pri-soft);box-shadow:inset 0 0 0 1px var(--pri)} .wprow.top small{color:var(--pri)}
.wprow:active{background:var(--pri-soft)} .wprow + .wprow:not(.top){border-top:1px solid var(--line2);border-radius:0}
.wpsep{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:14px 8px 4px} .wpnone{padding:16px 8px}
.wpstamp{position:absolute;top:18px;right:18px;transform:rotate(8deg);border:2px solid var(--pri);color:var(--pri);border-radius:10px;padding:4px 10px;font-weight:700;font-size:14px;letter-spacing:.04em;background:var(--card)}
.wphint{text-align:center;font-size:12.5px;margin-top:6px}
.wpdone{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:30px 8px 8px} .wpdone b{font-size:20px}
.wpok{width:56px;height:56px;border-radius:50%;background:var(--pri-soft);color:var(--pri);display:flex;align-items:center;justify-content:center} .wpok svg{width:26px;height:26px}
@media (prefers-reduced-motion: reduce){.wpc{transition:none}}
.pacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:-2px}
.pact{border:1px solid var(--line);background:var(--card);color:var(--pri);border-radius:999px;padding:7px 14px 7px 12px;font-size:14px;display:inline-flex;align-items:center;gap:7px;min-height:38px}
.pact svg{width:17px;height:17px} .pact:active{background:var(--pri-soft)}
.newdiv{display:flex;align-items:center;gap:10px;margin:10px 0 6px;color:var(--red);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.newdiv::before,.newdiv::after{content:'';flex:1;border-top:1px solid var(--red);opacity:.45}
.pcard .top{display:flex;align-items:center;gap:12px}
.pcard .last{margin-top:9px;font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard .last b{color:var(--ink);font-weight:500}
.pstats{display:flex;gap:14px;margin-top:9px;font-size:13px;color:var(--muted);align-items:center;flex-wrap:wrap}
.pstats span{display:inline-flex;align-items:center;gap:5px} .pstats svg{width:16px;height:16px}
.stackav{display:flex} .stackav .av{box-shadow:0 0 0 2px var(--bg);margin-right:-4px}
body[data-view="proj"] .tabs{display:none}
body[data-view="proj"].chatting .main{padding-bottom:120px}
/* ---------- chat */
.msgs{display:flex;flex-direction:column;gap:6px}
.day{text-align:center;font-size:11px;color:var(--faint);letter-spacing:.12em;text-transform:uppercase;margin:14px 0 4px}
.mrow{display:flex;gap:8px;align-items:flex-end;position:relative}
.hdnow{border:0;background:none;padding:0;font:inherit;color:var(--pri);cursor:pointer}
.hdend{flex:0 0 auto;position:relative;width:12px}.hdend i{display:block;width:12px;height:12px;border-radius:50%;background:var(--ink);margin-top:-2px}.hdend span{position:absolute;right:0;bottom:14px;font-size:11px;color:var(--muted);white-space:nowrap}
.ovstat{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 10px}.ovstat button{border:0;background:var(--card);border-radius:16px;padding:12px 8px;font:inherit;color:var(--ink);box-shadow:var(--sh1,0 1px 3px rgba(0,0,0,.06));cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px}
.ovstat b{font-size:20px;font-weight:700;letter-spacing:-.01em}.ovstat small{font-size:12px;color:var(--muted)}.ovstat .r b{color:var(--red)}
.ovcard{padding:12px 14px;margin-bottom:10px}.ovh{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ovh b{font-size:15px}
.ovgo{border:0;background:none;color:var(--pri);font:inherit;font-size:13.5px;display:inline-flex;align-items:center;gap:2px;cursor:pointer}.ovgo svg{width:14px;height:14px}
.ovmsg{display:flex;gap:10px;align-items:flex-start;padding:6px 0}.ovmsg small{display:block;font-size:12px;color:var(--muted)}.ovmsg span{font-size:14.5px}
.ovreply{width:100%;margin-top:8px;border:1px solid var(--line);background:var(--bg);border-radius:20px;padding:9px 14px;text-align:left;font:inherit;color:var(--muted);cursor:pointer}
.ovtk{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:8px 0;font:inherit;color:var(--ink);text-align:left;cursor:pointer;border-top:1px solid var(--line2)}.ovtk:first-of-type{border-top:0}
.ovtk i{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);flex:none}.ovtk i.r{border-color:var(--red)}.ovtk .clip{flex:1}.ovtk em{font-style:normal;font-size:12.5px;color:var(--muted);flex:none}.ovtk em.r{color:var(--red)}
.ovadd{display:flex;align-items:center;gap:8px;border:0;background:none;color:var(--pri);font:inherit;padding:8px 0 2px;cursor:pointer}.ovadd svg{width:16px;height:16px}
#msgs{overflow-x:clip}
.chxt{position:absolute;right:-56px;bottom:4px;width:50px;font-size:11px;color:var(--muted);white-space:nowrap;opacity:0;transition:opacity .15s}
#msgs.chxtimes .chxt{opacity:1}
.chxrep{position:absolute;left:-40px;top:50%;margin-top:-15px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--muted);background:var(--line2);opacity:var(--chxa,0);transform:scale(calc(.6 + var(--chxa,0) * .4))}
.mrow.chxarm .chxrep{color:#fff;background:var(--pri)}
.chxpop{position:fixed;z-index:80;font-size:42px;pointer-events:none;transform:translate(-50%,-50%) scale(.3);animation:chxpop .7s cubic-bezier(.2,1.4,.4,1) forwards}
@keyframes chxpop{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}35%{transform:translate(-50%,-50%) scale(1.15);opacity:1}70%{transform:translate(-50%,-60%) scale(1);opacity:1}100%{transform:translate(-50%,-90%) scale(.9);opacity:0}} .mrow.me{justify-content:flex-end}
.mrow > .mcol{max-width:82%;display:flex;flex-direction:column;gap:3px;min-width:0} .mrow.me > .mcol{align-items:flex-end}
.mrow .avsp{width:30px;flex:none}
.who{font-size:12px;color:var(--faint);padding:6px 6px 0}
.msg{background:var(--card);box-shadow:var(--shadow);padding:9px 13px;border-radius:18px 18px 18px 6px;font-size:15.5px;line-height:1.42;color:var(--ink);border:0;text-align:left;
     white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;max-width:100%}
.mrow.me .msg{background:var(--pri-soft);box-shadow:none;border-radius:18px 18px 6px 18px}
.msg.pending{opacity:.6} .msg.del{color:var(--faint);font-style:italic;box-shadow:none;background:transparent;border:1px dashed var(--line)}
.msg .q{display:block;border-left:3px solid var(--pri);padding:2px 0 2px 8px;margin:2px 0 6px;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg .ph{display:block;border-radius:12px;width:240px;max-width:100%;height:170px;margin:2px 0;background:var(--beige);object-fit:cover}
.msg .phn{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin-top:4px}
.mention{color:var(--pri);font-weight:500}
.mtask{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--pri-dark);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px 10px;max-width:100%}
.mtask svg{width:14px;height:14px;flex:none} .mtask span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.composer{position:fixed;left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:22;display:flex;flex-direction:column;gap:6px}
.cbar{display:flex;align-items:flex-end;gap:8px;padding:6px;border-radius:26px;background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);
      border:1px solid var(--glass-edge);box-shadow:0 10px 30px rgba(27,40,48,.12)}
.cbtn{width:42px;height:42px;border-radius:999px;border:0;background:var(--line2);color:var(--ink);display:flex;align-items:center;justify-content:center;flex:none}
.cbtn svg{width:20px;height:20px} .cbtn.send{background:var(--pri);color:var(--pri-ink)} .cbtn.send[disabled]{opacity:.4}
#cmsg{flex:1;border:0;background:transparent;resize:none;font:inherit;font-size:16px;line-height:1.35;color:var(--ink);padding:10px 4px;max-height:132px;min-height:42px;outline:none;overflow-y:auto}
.cpanel{display:flex;gap:6px;flex-wrap:wrap;padding:0 4px}
.cpanel .pill{background:var(--card);box-shadow:var(--shadow)}
.cpanel .tpick{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
button.mref{cursor:pointer;margin-top:4px;font:inherit;font-size:12px;text-align:left}
.sugs .list{background:var(--pri-soft)}
.sugh{display:inline-flex;align-items:center;gap:6px} .sugh svg{width:18px;height:18px;color:var(--pri)} .sugh .n{color:var(--faint);font-weight:500}
.sug{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 0;position:relative;transition:height .25s ease,opacity .2s ease;overflow:hidden}
.sug + .sug{border-top:1px solid var(--line2)}
.sug.going{opacity:0;height:0!important;padding-top:0!important;padding-bottom:0!important;transform:scale(.97);transition:height .32s cubic-bezier(.4,0,.2,1),padding .32s cubic-bezier(.4,0,.2,1),opacity .24s ease,transform .32s cubic-bezier(.4,0,.2,1)}
.sug.striking .tt{background-size:100% 1.5px;color:var(--muted)}
.sug .sugacts,.sug .why,.sug .meta{transition:opacity .3s ease .15s} .sug.striking .sugacts,.sug.striking .why,.sug.striking .meta{opacity:.4}
.sugmain{flex:1;min-width:0;display:flex;align-items:flex-start;gap:12px;border:0;background:transparent;text-align:left;padding:10px 0 10px 14px;color:var(--ink)}
.sugmain .title{display:block;font-size:15px} .sugmain .meta{display:block;font-size:12.5px;margin-top:2px}
.sugmain .why{display:block;font-size:12px;color:var(--faint);margin-top:3px;line-height:1.35}
.sico{width:30px;height:30px;border-radius:10px;background:var(--card);color:var(--pri);display:grid;place-items:center;flex:none;margin-top:1px} .sico svg{width:17px;height:17px}
.sugbtns{display:flex;gap:6px;flex:none}
.sug{flex-direction:column;align-items:stretch!important;gap:0!important;padding:4px 0 14px!important}
.sug .sugmain{padding:10px 14px 12px}
.sugacts{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:10px;padding:0 14px}
.sgb{min-height:44px;border-radius:13px;border:0;font-size:14.5px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.sgb svg{width:17px;height:17px;flex:none}
.sgb.no{background:var(--beige);color:var(--muted)} .sgb.ed{background:var(--pri-soft);color:var(--pri)} .sugs .sgb.ed{background:var(--card)} .sgb.ok{background:var(--pri);color:var(--pri-ink)}
.sugsrc{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:var(--pri-soft);font-size:13px;line-height:1.4;color:var(--muted)}
.sugsrc svg{width:18px;height:18px;flex:none;color:var(--pri);margin-top:1px} .sugsrc a{color:var(--pri)}
.sugno{background:transparent;color:var(--faint)} .sugno svg{width:18px;height:18px}
.sugok{background:var(--pri);color:var(--pri-ink)} .sugok svg{width:18px;height:18px}
.sugfind{gap:6px;font-size:13.5px;align-self:center} .sugfind svg{width:16px;height:16px}
.ibbell{width:34px;height:34px;margin:-8px -8px -8px 0;border:0;border-radius:11px;background:transparent;color:var(--faint);display:grid;place-items:center}
.ibbell svg{width:19px;height:19px} .ibbell.on{background:var(--pri-soft);color:var(--pri)}
.snz{display:flex;flex-direction:column;gap:8px}
.snzchips{display:flex;flex-wrap:wrap;gap:6px} .snzchips .mvc{flex:1 1 auto;padding:0 12px}
.snzrow.collapsing{overflow:hidden;opacity:0;min-height:0!important;padding-top:0!important;padding-bottom:0!important;transition:height .3s cubic-bezier(.4,0,.2,1),padding .3s,opacity .2s}
.snzrow .btn.restoring,.snzrow .btn.restored,.snzrow .btn.restoring:disabled,.snzrow .btn.restored:disabled{background:var(--pri-soft)!important;color:var(--pri)!important;opacity:1!important;border-color:transparent!important}
.snzrow .btn.restoring{animation:rstpulse 1s ease-in-out infinite} @keyframes rstpulse{50%{opacity:.6!important}}
.snzrow .btn.restored svg{width:16px;height:16px;margin-right:4px;vertical-align:-3px}
.ibc.collapsing{overflow:hidden;opacity:0;padding-top:0!important;padding-bottom:0!important;margin-top:-16px;transition:height .3s cubic-bezier(.4,0,.2,1),padding .3s,opacity .2s,margin .3s}
.snzlist .list{opacity:.62;filter:grayscale(1)}
.snzlist .list.mtgone{opacity:1;filter:none} .mtgone .snzi,.mtgone .grow{opacity:.62;filter:grayscale(1)}   /* the rows stay muted, Restore stays live */
.snzrow{display:flex;align-items:center;gap:12px;padding:12px 8px 12px 16px}
.snzrow + .snzrow{border-top:1px solid var(--line2)}
.snzrow .title{font-size:15px} .snzrow .meta{font-size:12.5px}
.snzi{color:var(--faint);display:grid;place-items:center} .snzi svg{width:18px;height:18px}
.rfb{display:inline-flex;align-items:center;gap:7px;transition:background-color .2s ease,color .2s ease}
.rfb svg{width:17px;height:17px;flex:none}
.rfb.busy:disabled{opacity:1} .rfb.busy{background:var(--pri-soft);color:var(--pri);border-color:transparent} .rfb.busy svg{animation:rfspin .8s linear infinite}
.rfb.done{background:var(--pri-soft);color:var(--pri);border-color:transparent}
@keyframes rfspin{to{transform:rotate(360deg)}}
.selbar{min-height:40px} .seln{font-weight:600;font-size:15px}
.selpin{position:sticky;top:0;z-index:6;background:var(--bg);margin:0 -4px;padding:2px 4px}
.selrow{display:flex;justify-content:flex-end;margin:-14px 0 -18px}
.wk-hr{display:inline-flex;align-items:center;gap:10px}.wk-h .selbtn{min-height:32px;font-size:13px;letter-spacing:0;text-transform:none}
.selbox{width:26px;height:26px;flex:none;border-radius:8px;border:1.8px solid var(--faint);background:transparent;display:grid;place-items:center;color:var(--pri-ink);padding:0;margin:0 2px;transition:background-color .15s ease,border-color .15s ease}
.selbox.on{background:var(--pri);border-color:var(--pri)} .selbox svg{width:16px;height:16px}
.swipe.picked .swipe-fg{background:var(--pri-soft)}
/* The next 7 days and Later, the sorting stack, rough times */
.wkbar{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:12px 14px;display:flex;flex-direction:column;gap:7px}
.wkbar .wkt{font-size:14.5px;color:var(--muted);display:flex;align-items:baseline;justify-content:space-between;gap:10px}.wkbar .wkt .seeall,.wkbar .wkm .seeall{min-height:28px;padding:0;flex:none;font-size:13.5px}.wkbar .wkl{font-size:12.5px;color:var(--faint)}
.wkbar .wkm{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--muted)} .wkbar .wkt b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.wkbar .wkb{height:8px;border-radius:99px;background:var(--line2);overflow:hidden} .wkbar .wkb i{display:block;height:100%;border-radius:99px;background:var(--pri);transition:width .4s ease}
.wkbar.over .wkb i{background:var(--red)} .wkbar.over .wkm .meta{color:var(--red)} .wkbar .meta{font-size:12.5px}
.ts-call{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:18px;background:var(--pri);color:var(--pri-ink);padding:12px 16px 12px 12px;min-height:60px;text-align:left;font:inherit;box-shadow:0 6px 18px rgba(43,106,143,.2)}
.ts-call .ic{width:38px;height:38px;flex:none;border-radius:12px;background:rgba(255,255,255,.18);display:grid;place-items:center}.ts-call .ic svg{width:21px;height:21px}
.ts-call .grow{min-width:0;display:flex;flex-direction:column;gap:2px}.ts-call b{font-weight:600;font-size:15.5px}.ts-call .sub{color:inherit;opacity:.85;font-size:13px}
.ts-call .go{flex:none;font-weight:600;font-size:14px;padding:7px 12px;border-radius:99px;background:rgba(255,255,255,.2)}
.ts-call.soft{background:var(--card);color:var(--ink);box-shadow:var(--shadow)} .ts-call.soft .ic{background:var(--pri-soft);color:var(--pri)} .ts-call.soft .sub{color:var(--muted);opacity:1} .ts-call.soft .go{background:var(--pri-soft);color:var(--pri)}
.hu{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:6px 4px 4px;display:flex;flex-direction:column}
.hu-h{display:flex;align-items:baseline;justify-content:space-between;padding:6px 12px 4px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);font-weight:600}.hu-h b{font-weight:600;letter-spacing:0}
.hu-row{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;font:inherit;color:inherit;text-align:left;padding:9px 12px;border-radius:12px;min-height:50px}
.hu-row + .hu-row{border-top:1px solid var(--line)} .hu-row svg{width:16px;height:16px;flex:none;color:var(--faint)}
.hu-row .grow{min-width:0;display:flex;flex-direction:column;gap:1px}.hu-row .tt{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hu-row .meta{font-size:12.5px}
.hu-w{flex:none;font-size:11.5px;font-weight:600;border-radius:99px;padding:3px 8px;background:var(--line2);color:var(--muted);white-space:nowrap}
.hu-w.over,.hu-w.p4{background:var(--red-soft);color:var(--red)} .hu-w.warn,.hu-w.p3{background:var(--amber-soft);color:var(--amber)} .hu-w.from{background:var(--pri-soft);color:var(--pri)}
.hu .seeall{align-self:flex-start;padding-left:12px}
.wk-sug{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;font:inherit;font-size:14.5px;color:var(--pri);text-align:left;padding:4px 4px;min-height:40px}.wk-sug svg{width:18px;height:18px;flex:none}.wk-sug .grow{min-width:0}
.wk-h{display:flex;align-items:baseline;justify-content:space-between;margin:8px 2px -2px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.wk-h b{font-weight:500;letter-spacing:0}
.wkg{background:var(--card);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.wkg-h{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;font:inherit;color:inherit;text-align:left;padding:10px 14px 10px 10px;min-height:58px}
.wkg-h .grow{min-width:0;display:flex;flex-direction:column;gap:2px}.wkg-h b{font-weight:600;font-size:15.5px;display:flex;align-items:center;gap:8px}.wkg-h .meta{font-size:12.5px}.wkg-h .meta.warnm{color:var(--amber)}
.wkg-h > svg{width:18px;height:18px;flex:none;color:var(--faint);transition:transform .2s ease}.wkg.open .wkg-h > svg{transform:rotate(90deg)}
.wkg .list{border-top:1px solid var(--line);border-radius:0;box-shadow:none}
.wk-today{font-size:11px;font-weight:600;letter-spacing:.04em;border-radius:99px;padding:2px 8px;background:var(--pri-soft);color:var(--pri)}
.sheet.tsfit{height:92vh;height:calc(100svh - var(--sat, env(safe-area-inset-top, 0px)) - 16px)}
.sheet.tsfit .sbody{gap:12px}
.ts-top{display:flex;align-items:center;justify-content:space-between;min-height:32px}.ts-top .seeall{min-height:32px;padding:4px 0}.ts-top .seeall svg{width:16px;height:16px}
.ts-deck{position:relative;height:min(42vh,360px);flex:none;margin:2px 4px 6px}
.ts-card{position:absolute;inset:0;background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 30px rgba(27,40,48,.12);padding:18px 18px 14px;display:flex;flex-direction:column;gap:10px;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;will-change:transform}
.ts-card.under{pointer-events:none;cursor:default;box-shadow:0 4px 14px rgba(27,40,48,.08)}.ts-card.u1{transform:translateY(10px) scale(.96);opacity:.85}.ts-card.u2{transform:translateY(20px) scale(.92);opacity:.55}
.ts-car{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px;padding:2px 20px 6px;scrollbar-width:none;flex:none}.ts-car::-webkit-scrollbar{display:none}
.ts-pc{flex:none;scroll-snap-align:center;scroll-snap-stop:always;transition:border-color .15s ease,background-color .15s ease;display:flex;align-items:center;gap:9px;max-width:72vw;border:1px solid var(--line);background:var(--card);border-radius:16px;padding:8px 12px 8px 8px;font:inherit;color:var(--ink);text-align:left;-webkit-tap-highlight-color:transparent}
.ts-pc .av{width:34px;height:34px;font-size:12px;flex:none}.ts-pc .grow{min-width:0;display:flex;flex-direction:column;gap:1px}.ts-pc b{font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ts-pc .meta{font-size:12px}
.ts-pc.on{border-color:var(--pri);background:var(--pri-soft);box-shadow:0 0 0 1px var(--pri) inset} .ts-pc.on b{color:var(--pri-dark)}
.ts-pc.done{opacity:.6}.ts-ok{color:var(--pop-ok-ink);display:grid;place-items:center}.ts-ok svg{width:16px;height:16px}
.ts-tr{display:flex;gap:14px}
.scrim.page{background:var(--card);align-items:stretch;justify-content:center}
.scrim.pgin{animation:pgin .26s cubic-bezier(.2,.8,.2,1) both} @keyframes pgin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.sheet.page{max-width:none;max-height:none;height:100%;border-radius:0;box-shadow:none;will-change:auto}
.sheet.page>.shead,.sheet.page>.sbody{width:100%;max-width:600px;margin-left:auto;margin-right:auto}
.sheet.page .shead{padding-top:calc(10px + var(--sat, env(safe-area-inset-top, 0px)));touch-action:auto;border-radius:0;box-shadow:none}
.sheet.page .sbody>*{flex-shrink:0}
.sheet.page.pfix .sbody{overflow:hidden;overscroll-behavior:none;touch-action:pan-x}   /* only the project row scrolls, sideways */
.ts-below{display:flex;flex-direction:column;gap:inherit}.ts-below>*{flex-shrink:0}
.sheet.page.pfix .ts-below{flex:1 1 auto;min-height:0}
.sheet.page.pfix .ts-deck{flex:1 1 auto;height:auto;min-height:200px;max-height:540px}
@media (min-width: 861px){ .scrim.page{align-items:stretch} .sheet.page{border-radius:0;max-height:none} .sheet.page .shead{padding-top:22px} }
@media (prefers-reduced-motion: reduce){ .scrim.pgin{animation:none} }
.ts-deck .ts-card{inset:0 14%;margin:auto 0;height:176px;max-height:100%;padding:16px 18px;gap:8px}   /* small, with room all round to fling it */
.ts-deck .ts-card>*{flex-shrink:0}                                                   /* the title never gets squeezed; only the notes give way */
.ts-deck.det .ts-card:not(.under){height:-webkit-fit-content;height:fit-content;min-height:176px;max-height:100%}   /* opened: as tall as it needs, up to the room there is */
.ts-deck .ts-notes{overflow-wrap:anywhere}
.ts-deck .ts-card.det .ts-title{-webkit-line-clamp:unset;display:block;overflow:visible}
.ts-deck .ts-card.det .ts-notes{min-height:44px;-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 16px),transparent);padding-bottom:12px}   /* more below: it fades rather than cutting a line in half */
@media (max-height: 720px){ .ts-deck .ts-card.det .ts-title{font-size:18px} .ts-deck .ts-card.det .ts-foot{display:none} }
.ts-deck .ts-title{font-size:20px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ts-card.det .ts-notes{-webkit-line-clamp:unset;display:block;overflow-y:auto;touch-action:pan-y;flex:1 1 auto}
.mgl{position:fixed;inset:0;z-index:210;background:rgba(14,18,20,.5);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);opacity:0;transition:opacity .2s ease;touch-action:none;overscroll-behavior:none}
.mgl.on{opacity:1}
.mg-in{height:100%;max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:12px;padding:calc(18px + var(--sat, env(safe-area-inset-top, 0px))) 18px calc(14px + env(safe-area-inset-bottom, 0px))}
.mg-head{color:#fff;font-weight:600;font-size:17px;text-align:center;text-wrap:balance;flex:none}
.mg-box{position:relative;flex:none;height:150px;width:min(250px,70%);margin:0 auto;border:2px dashed rgba(255,255,255,.55);border-radius:22px;transition:border-color .15s ease,background-color .15s ease,transform .15s ease}
.mg-box.hot{border-color:#fff;background:rgba(255,255,255,.14);transform:scale(1.04)}
.mg-pc{position:absolute;left:10px;right:10px;top:12px;bottom:12px;background:var(--card);color:var(--ink);border-radius:16px;box-shadow:0 8px 22px rgba(0,0,0,.25);padding:12px;display:flex;flex-direction:column;justify-content:center;gap:4px;
  transform:translateY(calc(var(--i) * -5px)) rotate(var(--r));transition:transform .25s cubic-bezier(.2,1.2,.4,1)}
.mg-pc span{font-weight:600;font-size:15px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-align:center}
.mg-pc i{font-style:normal;font-size:11.5px;color:var(--faint);text-align:center}
.mg-pc.top{cursor:pointer}.mg-pc.fresh{animation:mgland .3s cubic-bezier(.2,1.3,.4,1) both}
@keyframes mgland{from{transform:translateY(-26px) scale(1.12) rotate(var(--r));opacity:.4}to{transform:translateY(calc(var(--i) * -5px)) rotate(var(--r));opacity:1}}
.mg-box.fuse .mg-pc{transform:scale(.92);transition:transform .25s ease}.mg-box.fuse{border-color:transparent}
.mg-say{color:rgba(255,255,255,.8);text-align:center;flex:none;min-height:20px}
.mg-grid{flex:0 1 auto;min-height:0;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(64px,92px);gap:10px;align-content:start}
.mg-mini{border:0;border-radius:16px;background:var(--card);color:var(--ink);font:inherit;padding:10px 9px;display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:0 6px 16px rgba(0,0,0,.18);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:opacity .15s ease,transform .15s ease}
.mg-mini span{font-size:13.5px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.mg-mini.lift{opacity:.25;transform:scale(.94)}
.mg-ghost{position:fixed;z-index:3;margin:0;pointer-events:none;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.mg-none{grid-column:1/-1;color:rgba(255,255,255,.8);text-align:center;padding:24px 0}
.mg-find{flex:none;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);border-radius:14px;padding:0 12px;color:rgba(255,255,255,.85)}.mg-find svg{width:18px;height:18px;flex:none}
.mg-find input{flex:1;min-width:0;background:none;border:0;color:#fff;font:inherit;font-size:16px;padding:11px 0;outline:none}.mg-find input::placeholder{color:rgba(255,255,255,.6)}
.mg-bar{flex:none;display:flex;gap:12px;margin-top:auto}.mg-bar .btn{flex:1}.mg-bar .btn.line{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.3)}
@media (prefers-reduced-motion: reduce){ .mgl,.mg-pc,.mg-box,.mg-mini{transition:none} .mg-pc.fresh{animation:none} }
.ts-guide{flex:none;height:92px;display:flex;justify-content:center;align-items:center;--gc:var(--pri)}
.ts-guide[data-k="later"]{--gc:var(--ink)}.ts-guide[data-k="done"]{--gc:var(--pop-ok-ink)}.ts-guide[data-k="del"]{--gc:var(--red)}
.tg-c{position:relative;width:134px;height:92px}
.tg-i{position:absolute;width:34px;height:34px;padding:0;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;display:grid;place-items:center;background:var(--card);border:1px solid var(--line);color:var(--faint);transform:scale(calc(1 + var(--p, 0) * .24));transition:transform .12s ease,background-color .12s ease,color .12s ease,border-color .12s ease,opacity .12s ease}
.tg-i svg{width:17px;height:17px}.tg-i::before{content:'';position:absolute;inset:-7px}
.tg-i.u{left:50px;top:0}.tg-i.d{left:50px;bottom:0}.tg-i.l{left:0;top:29px}.tg-i.r{right:0;top:29px}
.ts-guide:not([data-k=""]) .tg-i:not(.on){opacity:.4}
.tg-i.on{color:var(--gc);border-color:var(--gc);border-width:1.5px}
.ts-guide.armed .tg-i.on{background:var(--gc);color:var(--card)}
.tg-m{pointer-events:none;position:absolute;left:50%;top:50%;width:22px;height:28px;margin:-14px 0 0 -11px;border-radius:6px;background:var(--card);border:1.5px solid var(--muted);box-shadow:0 2px 6px rgba(0,0,0,.12);transition:transform .28s cubic-bezier(.2,1.3,.4,1)}
.ts-guide.drag .tg-m{transition:none}
.tg-t{position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%);font-weight:700;font-size:15px;color:var(--gc);white-space:nowrap}
.tg-t.later{left:auto;right:calc(100% + 10px)}
@media (max-height: 720px){ .ts-guide{height:72px} .tg-c{transform:scale(.78)} .ts-deck .ts-card{height:150px} .ts-hint{display:none} .sheet.page.pfix .ts-deck{min-height:156px} }
@media (prefers-reduced-motion: reduce){ .tg-i,.tg-m{transition:none} }
.ts-deck .ts-card.lift{transform:scale(1.045)!important;box-shadow:0 22px 44px rgba(27,40,48,.22);transition:transform .15s cubic-bezier(.2,.9,.3,1.3),box-shadow .15s ease!important}
.pgunder{position:fixed;inset:0;z-index:38;background:#000;pointer-events:none}
.pgunder .scrim{z-index:1;transform-origin:50% 0;transition:transform .42s cubic-bezier(.2,.9,.25,1),border-radius .42s ease,opacity .42s ease;overflow:hidden}
.pgunder.back .scrim{transform:translateY(calc(var(--sat, env(safe-area-inset-top, 0px)) + 8px)) scale(.92);border-radius:22px;opacity:.85}
.scrim.up{animation:scrimin .32s ease backwards}.scrim.up .sheet{animation:sheetup .44s cubic-bezier(.2,.9,.25,1) backwards}
@keyframes scrimin{from{background:transparent}}
@keyframes sheetup{from{transform:translateY(100%)}to{transform:none}}
.scrim.pgback{animation:pgback .42s cubic-bezier(.2,.9,.25,1) backwards;transform-origin:50% 0}
@keyframes pgback{from{transform:translateY(calc(var(--sat, env(safe-area-inset-top, 0px)) + 8px)) scale(.92);border-radius:22px;opacity:.85}to{transform:none;border-radius:0;opacity:1}}
@media (prefers-reduced-motion: reduce){ .scrim.up,.scrim.up .sheet,.scrim.pgback{animation:none} .pgunder .scrim{transition:none} }
.slideaway .scrim{pointer-events:none}
.slideaway .scrim{z-index:45}
.ts-guide.eg{position:absolute;inset:0;height:auto;display:block;pointer-events:none;z-index:3}
.ts-guide.eg .tg-i{width:40px;height:40px;pointer-events:auto}.ts-guide.eg .tg-i svg{width:19px;height:19px}
.ts-guide.eg .tg-i.u,.ts-guide.eg .tg-i.d{left:50%;margin-left:-20px;bottom:auto}.ts-guide.eg .tg-i.u{top:0}.ts-guide.eg .tg-i.d{top:auto;bottom:0}
.ts-guide.eg .tg-i.l{left:2px;top:50%;margin-top:-20px}.ts-guide.eg .tg-i.r{right:2px;left:auto;top:50%;margin-top:-20px}
.tg-say{font-size:16px;font-weight:700;color:var(--pri)}.tg-say.later{color:var(--ink)}.tg-say.done{color:var(--pop-ok-ink)}.tg-say.del{color:var(--red)}
.ts-pc{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.pcm{position:fixed;inset:0;z-index:300;opacity:0;transition:opacity .16s ease}.pcm.on{opacity:1}
.pcm-dim{position:absolute;inset:0;background:rgba(14,18,20,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.pcm .pcm-pill{position:fixed;margin:0;transform:scale(1.05);box-shadow:0 14px 30px rgba(0,0,0,.25);transition:transform .18s cubic-bezier(.2,.9,.3,1.3)}
.pcm-menu{position:fixed;width:264px;background:var(--card);border-radius:16px;box-shadow:0 18px 44px rgba(0,0,0,.28);overflow:hidden;transform-origin:20% 0;animation:pcmin .2s cubic-bezier(.2,.9,.3,1.2) both}
@keyframes pcmin{from{transform:scale(.9);opacity:0}}
.pcm-menu button{display:flex;align-items:center;gap:11px;width:100%;padding:14px 16px;border:0;border-top:1px solid var(--line2);background:none;font:inherit;font-size:15.5px;color:var(--ink);text-align:left;-webkit-tap-highlight-color:transparent}
.pcm-menu button:first-child{border-top:0}.pcm-menu button:active{background:var(--line2)}.pcm-menu svg{width:19px;height:19px;color:var(--muted);flex:none}
@media (prefers-reduced-motion: reduce){ .pcm,.pcm .pcm-pill{transition:none} .pcm-menu{animation:none} }
.ts-deck .ts-card.like:not(.under){height:-webkit-fit-content;height:fit-content;min-height:176px;max-height:100%}
.ts-like{margin-top:auto;display:flex;gap:6px;align-items:stretch}
.ts-like button{border:0;font:inherit;border-radius:12px;background:var(--line2);color:var(--ink);-webkit-tap-highlight-color:transparent;cursor:pointer}
.ts-like button:active{filter:brightness(.94)}
.ts-like-go{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:9px 11px;font-size:13.5px;font-weight:600;text-align:left}
.ts-like-go span{min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.ts-like-go i{font-style:normal;font-weight:500;color:var(--muted)}
.ts-like-go svg{width:17px;height:17px;flex:none;color:var(--pri)}
.ibn.zero{background:var(--line2);color:var(--muted)}
.tklink{color:var(--pri);text-decoration:underline;text-underline-offset:2px}
.asmsgs{display:flex;flex-direction:column;gap:10px;padding-bottom:6px}
.asq{align-self:flex-end;max-width:85%;background:var(--pri);color:var(--pri-ink);padding:9px 13px;border-radius:18px 18px 6px 18px;font-size:15px;white-space:pre-wrap}
.asa.asmut{font-style:italic}.asretry{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:0 13px;color:var(--pri);font-weight:600;flex:none}.asa{align-self:flex-start;max-width:92%;background:var(--beige);padding:10px 13px;border-radius:18px 18px 18px 6px;font-size:15px;line-height:1.45;display:flex;gap:8px;align-items:center}
.asact{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;padding:8px 8px 8px 12px;font-size:14px;background:var(--card)}.asact.done{opacity:.6}
.asbar{position:sticky;bottom:0;display:flex;gap:8px;align-items:flex-end;background:var(--card);padding:8px 0 4px}.asbar textarea{flex:1;min-height:44px;max-height:140px;resize:none;border:1px solid var(--line);border-radius:22px;padding:11px 14px;background:var(--field);font-size:16px}
.asbar .icon{flex:none;width:44px;height:44px}.asbar .asstop{background:var(--ink)!important;color:var(--bg)!important}.asbar .icon.on{color:var(--red)}.asbar .icon.pri{background:var(--pri);color:var(--pri-ink);border-radius:50%}
.astools{display:flex;gap:4px;margin:-2px 0 2px 2px}.astool{border:0;background:transparent;color:var(--muted);min-width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 7px;cursor:pointer;font:inherit;transition:background .15s,color .15s}.astool:active{background:var(--line2)}.astool svg{width:19px;height:19px}.astool.on{color:var(--pri);background:var(--pri-soft)}.asres{font-size:12.5px;font-weight:600;color:var(--pri)}
.aseq{display:inline-flex;align-items:center;gap:2.5px;height:16px}.aseq i{width:3px;border-radius:2px;background:currentColor;animation:aseq 1s ease-in-out infinite}.aseq i:nth-child(1){height:8px}.aseq i:nth-child(2){height:15px;animation-delay:.15s}.aseq i:nth-child(3){height:10px;animation-delay:.3s}@keyframes aseq{0%,100%{transform:scaleY(.45)}50%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.aseq i{animation:none}}
.pcsec h2{margin:0}
.pcrail{display:flex;gap:10px;overflow-x:auto;margin:0 -16px;padding:2px 16px 4px;scroll-snap-type:x mandatory;scroll-padding:0 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.pcrail::-webkit-scrollbar{display:none}
@media (min-width:861px){.pcrail{margin:0;padding:2px 0 4px;scroll-padding:0}}
.pc{flex:none;width:min(80%,420px);scroll-snap-align:start;position:relative;border-radius:20px;padding:13px 14px 12px;display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);background:var(--card);min-height:178px}
.pc.stop{background:#3A140E;border-color:#3A140E;color:#FBE7E3}.pc.late{background:var(--red-soft);border-color:color-mix(in srgb,var(--red) 18%,transparent)}.pc.inv{background:var(--amber-soft);border-color:color-mix(in srgb,var(--amber) 18%,transparent)}.pc.today,.pc.chat{background:var(--pri-soft);border-color:color-mix(in srgb,var(--pri) 15%,transparent)}
.pchit{position:absolute;inset:0;border:0;background:transparent;border-radius:20px;z-index:0}
.pc>*:not(.pchit){position:relative;z-index:1;pointer-events:none}.pc .pcacts{pointer-events:auto}
.pcn{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.pcn .l{display:flex;align-items:center;gap:6px}.pcn i{width:7px;height:7px;border-radius:50%;background:currentColor}
.pc.bill{background:color-mix(in srgb,#2F6346 9%,var(--card));border-color:color-mix(in srgb,#2F6346 20%,transparent)}.pc.bill .pcn{color:#2F6346}html[data-theme=dark] .pc.bill .pcn{color:#8FD0A5}.pc.ask{background:var(--amber-soft);border-color:color-mix(in srgb,var(--amber) 25%,transparent)}.pc.ask .pcn{color:var(--amber)}
.pc.stop .pcn{color:#FF8A73}.pc.late .pcn{color:var(--red)}.pc.inv .pcn{color:var(--amber)}.pc.today .pcn,.pc.chat .pcn{color:var(--pri)}.pc.calm .pcn{color:var(--muted)}
.pcun{min-width:20px;height:20px;border-radius:10px;background:var(--hi);color:#fff;font-size:11.5px;font-weight:700;display:inline-grid;place-items:center;padding:0 6px;letter-spacing:0}
.pct{font-weight:700;font-size:19px;line-height:1.2}.pcw{font-size:13.5px;line-height:1.35;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pc.stop .pcw{color:#F2B8AC}
.pcmsg{display:flex;gap:6px;align-items:center;font-size:13px;line-height:1.3;border-top:1px solid color-mix(in srgb,var(--ink) 9%,transparent);padding-top:7px;color:var(--muted);min-width:0}.pcmsg.un{color:var(--ink)}.pc.stop .pcmsg{border-color:rgba(255,255,255,.12);color:#F2C9BF}
.pcmsg span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pcmsg b{font-weight:650}.pcmsg svg{flex:none;opacity:.6}
.hdsw{display:flex;border-radius:999px;background:var(--field,color-mix(in srgb,var(--ink) 6%,transparent));padding:4px;gap:4px;margin:4px 0 2px}.hdsw button{flex:1;border:0;background:transparent;font:inherit;font-size:14px;font-weight:600;color:var(--muted);padding:8px;border-radius:999px;cursor:pointer}.hdsw button.on.us{background:#EAF3EC;color:#2F6346}.hdsw button.on.them{background:#E97F2C;color:#fff}
html[data-theme=dark] .hdsw button.on.us{background:#1F3A2A;color:#9FD3AE}
.hdcard{gap:10px;margin-bottom:6px}.hdline{display:flex;gap:3px;align-items:flex-start}.hdseg{display:flex;flex-direction:column;gap:5px;min-width:6px;flex-basis:0}.hdseg i{display:block;height:8px;border-radius:4px;background:#2F6346}.hdseg span{font-size:11px;color:#9A4E12;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:13px}
.hdseg.h i{background:repeating-linear-gradient(135deg,#E97F2C,#E97F2C 5px,#F4B987 5px,#F4B987 10px)}.hdseg.now i{box-shadow:0 0 0 3px rgba(233,127,44,.25)}
.hdwho{display:flex;justify-content:space-between;align-items:center;gap:10px;border:0;background:none;padding:0;font:inherit;color:var(--ink);text-align:left;cursor:pointer}.hdwho b{font-size:15.5px}.hdwho em{font-style:normal;color:var(--pri);font-weight:700;flex:none}
.hdfu{display:flex;gap:10px;align-items:center;border-radius:14px;background:rgba(233,127,44,.08);border:1px solid rgba(233,127,44,.3);padding:10px 12px}.hdfu .ic{width:28px;height:28px;border-radius:50%;background:#E97F2C;color:#fff;display:grid;place-items:center;flex:none;font-size:13px;font-weight:700}.hdfu div{flex:1;font-size:14px;line-height:1.35}.hdfu button{border:0;background:none;font:inherit;font-weight:700;color:#B4601A;font-size:14px;cursor:pointer;flex:none}
.bar{position:relative}.bar .rhun{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,rgba(233,127,44,.55),rgba(233,127,44,.55) 4px,transparent 4px,transparent 8px)}
.hdq{font-weight:700;font-size:16px}
.tmxcard{gap:12px}.tmxmore{align-items:flex-start;justify-content:center;gap:4px;border-style:dashed;min-height:120px;cursor:pointer}.tmxmore b{font-size:15px}.tmxmore span{font-size:13px;color:var(--muted);line-height:1.35}.tmxmi{width:34px;height:34px;border-radius:50%;background:var(--pri-soft);color:var(--pri);display:grid;place-items:center;margin-bottom:4px}.tmxmi svg{width:17px;height:17px}
.tmxadj2{display:flex;flex-direction:column;gap:8px;flex:none;margin-left:auto}.tmxadj2 button{width:42px;height:42px;border-radius:50%;border:0;background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink);display:grid;place-items:center;padding:0;cursor:pointer;touch-action:manipulation;transition:transform .12s,background .15s}.tmxadj2 button:active{transform:scale(.9);background:color-mix(in srgb,var(--ink) 12%,transparent)}.tmxadj2 svg{width:18px;height:18px}
.tmxfind{width:32px;height:32px;border-radius:10px;border:0;background:var(--pri-soft);color:var(--pri);display:grid;place-items:center;margin-left:10px;padding:0;cursor:pointer}.tmxfind:active{transform:scale(.9)}
header:has(> .tmxpjh){flex-wrap:nowrap}header:has(> .tmxpjh) > div{flex:none}.tmxpjh span{text-align:right}.tmxpjh svg{flex:none;margin-bottom:2px}.tmxpjh{display:inline-flex;align-items:flex-end;justify-content:flex-end;gap:4px;border:0;background:none;padding:0 0 6px;margin:0 0 0 12px;flex:0 1 auto;min-width:0;max-width:60%;text-align:right;font:inherit;font-size:17px;line-height:1.2;font-weight:600;color:var(--ink);text-align:left;cursor:pointer}.tmxpjh svg{width:16px;height:16px;color:var(--muted)}.tmxcard .tmxhd .tmxclk{font-size:clamp(46px,14vw,64px)}
.tmxtop{display:flex;justify-content:space-between;align-items:center;width:100%}.tmxset{display:inline-flex;align-items:center;gap:5px;border:0;background:none;padding:4px 0;font:inherit;font-size:13px;font-weight:600;color:var(--pri);cursor:pointer}.tmxset svg{width:13px;height:13px}
.tmxadj{position:static;transform:none;flex:none}.tmxadj .tsb{width:34px;height:32px}.tmxcard.run{padding:18px 18px 16px}.tmxcard .tmxc,.tmxcard .tmxc *,.tmxai,.tmxheard{text-align:left}.tmxhd{display:flex;align-items:center;gap:12px;width:100%}.tmxcard .tmxclk{border:0;background:none;padding:0;margin:0;font-size:clamp(40px,11.5vw,56px);font-weight:300;line-height:1;color:var(--ink);flex:none;cursor:pointer;font-variant-numeric:tabular-nums}
.tmxpj{border:0;background:none;padding:0;font:inherit;font-size:17px;font-weight:600;color:var(--ink);text-align:left;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;min-width:0}.tmxpj svg{width:14px;height:14px;vertical-align:-2px}
.tmxrail{display:flex;align-items:flex-start;gap:10px;overflow-x:auto;margin:0 -20px;padding:2px 20px;scroll-snap-type:x mandatory;scroll-padding:0 20px;scrollbar-width:none;overscroll-behavior-x:contain;width:calc(100% + 40px);box-sizing:border-box}.tmxrail::-webkit-scrollbar{display:none}
.tmxc{flex:none;width:78%;scroll-snap-align:start;border-radius:18px;padding:12px 14px;border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;gap:6px;height:184px;overflow:hidden;box-sizing:border-box;transition:background .2s,border-color .2s}.tmxc .tmxd{flex:0 0 auto;min-height:0}.tmxc.on{border-color:var(--pri);background:var(--pri-soft)}
.tmxt{display:flex;gap:8px;align-items:flex-start}.tmxt em{font-style:normal;font-variant-numeric:tabular-nums;font-size:14px;color:var(--pri);font-weight:600;flex:none;margin-top:3px;display:flex;align-items:center;gap:5px}.tmxdot{width:7px;height:7px;border-radius:50%;background:var(--pri);display:inline-block}
.tmxc textarea{border:0;background:transparent;font:inherit;color:var(--ink);resize:none;padding:2px 4px;margin:-2px -4px;border-radius:6px;width:100%;box-sizing:content-box;overflow:hidden;outline:none}.tmxc textarea:focus{background:var(--card);box-shadow:0 0 0 1.5px var(--pri)}
.tmxti{font-size:16px;font-weight:600;flex:1;min-width:0}.tmxd{font-size:14px;color:var(--muted);line-height:1.4}textarea.tmxd{color:var(--muted)}textarea.tmxd:focus{color:var(--ink)}.tmxd.ph{color:var(--faint)}
.tmxsv{font-size:12px;color:#2F6346;font-weight:600;min-height:0;display:flex;gap:4px;align-items:center}.tmxsv svg{width:12px;height:12px}
.tmxc[data-act]{cursor:pointer}.tmxc:not(.on) textarea{pointer-events:none}
.tmxck{flex:none;width:24px;height:24px;margin-top:1px}.tmxck svg{width:14px;height:14px}
.tmxest{display:flex;flex-direction:column;gap:4px;border:0;background:none;padding:0;font:inherit;text-align:left;width:100%;cursor:pointer}.tmxest span{font-size:12.5px;color:var(--muted)}.tmxest span.over{color:var(--red)}.tmxest .eb{margin:0}
.tmxpick{font-size:12.5px;color:var(--pri);font-weight:600;margin-top:auto}
.tmxc.picked{animation:tmxPick .38s cubic-bezier(.3,1.5,.5,1)}.tmxc.arrive{animation:tmxArrive .5s ease-out}
@keyframes tmxPick{0%{transform:scale(1)}40%{transform:scale(.95)}100%{transform:scale(1.02);box-shadow:0 0 0 4px rgba(42,103,140,.25)}}
@keyframes tmxArrive{0%{box-shadow:0 0 0 8px rgba(42,103,140,.35)}100%{box-shadow:0 0 0 0 rgba(42,103,140,0)}}
.tmxti.auto{color:var(--pri)}.tmxti.suggesting{animation:tmxNm .9s ease-in-out infinite alternate}
.tmxc.naming .tmxti{animation:tmxNm .9s ease-in-out infinite alternate}@keyframes tmxNm{from{opacity:.35}to{opacity:1}}
.tmxc.leaving{animation:tmxLeave .42s ease-in forwards}@keyframes tmxLeave{to{opacity:0;transform:translateY(10px) scale(.94)}}
.tmxdots{display:flex;gap:2px;justify-content:center;align-items:center;width:100%}
.tmxdots > .tmxplus{margin-right:50px}.tmxdots > .tmxfind{margin-left:50px}   /* (v406) about halfway between v383 (10px) and v405 (the edges): thumb room for the dots, icons still close */
.tmxdt{position:relative;width:8px;height:8px;margin:0 3px;padding:0;border:0;border-radius:4px;background:var(--line);cursor:pointer;transition:width .25s cubic-bezier(.22,.8,.24,1),background .2s}.tmxdt::after{content:"";position:absolute;inset:-10px -5px}
.tmxdots{touch-action:pan-y}.tmxdots.scrub .tmxdt.view{width:26px;transform:scaleY(1.25)}.tmxdt.view{width:18px;background:var(--pri)}.tmxdt.act{background:#E97F2C;box-shadow:0 0 0 3px rgba(233,127,44,.22)}.tmxdt.act.view{background:#E97F2C}
.tmxplus{width:28px;height:28px;border-radius:50%;border:0;background:var(--pri);color:#fff;display:grid;place-items:center;margin-right:10px;cursor:pointer;padding:0}.tmxplus svg{width:16px;height:16px}.tmxplus:active{transform:scale(.88)}
.tmxtalk{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;border-radius:999px;border:0;background:var(--ink);color:var(--bg);font:inherit;font-size:15.5px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;transition:transform .15s,background .15s}
.tmxtalk .w{display:flex;gap:3px;align-items:center}.tmxtalk .w i{width:3px;border-radius:2px;background:#E97F2C;display:block;height:8px}.tmxtalk .w i:nth-child(2){height:16px}.tmxtalk .w i:nth-child(3){height:11px}.tmxtalk .w i:nth-child(4){height:18px}
.tmxtalk.on{background:#E97F2C;color:#fff;transform:scale(1.03);box-shadow:0 0 0 8px rgba(233,127,44,.18)}.tmxtalk.on .w i{background:#fff;animation:tmxw .6s ease-in-out infinite alternate}.tmxtalk.on .w i:nth-child(2n){animation-delay:.2s}.tmxtalk.busy{opacity:.7}
@keyframes tmxw{from{transform:scaleY(.5)}to{transform:scaleY(1.3)}}
.tmxheard{width:100%;border-radius:14px;background:color-mix(in srgb,var(--ink) 5%,transparent);padding:10px 12px;font-size:14px;font-style:italic;line-height:1.4;box-sizing:border-box}
.tmxai{width:100%;box-sizing:border-box;font-size:13.5px;border-radius:12px;padding:8px 10px;background:rgba(233,127,44,.1);color:#9A4E12;display:flex;gap:8px;align-items:center}.tmxai span{flex:1}.tmxai svg{width:15px;height:15px;flex:none}.tmxai button{border:0;background:none;font:inherit;font-weight:700;color:#9A4E12;cursor:pointer}
.rcard{gap:12px}.rctiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.rctiles div{border-radius:14px;background:color-mix(in srgb,var(--ink) 5%,transparent);padding:10px}.rctiles b{display:block;font-size:20px}.rctiles span{font-size:11.5px;color:var(--muted)}
.rcwho{display:flex;flex-direction:column;gap:7px}.rcwho div{display:flex;align-items:center;gap:8px;font-size:13.5px}.rcwho span{width:84px;flex:none}.rcwho i{display:block;height:8px;border-radius:4px;background:#E97F2C;flex:none;max-width:38%}.rcwho em{font-style:normal;color:var(--muted);font-size:12.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rclog{display:flex;flex-direction:column;border-left:2px solid var(--line);margin-left:6px;padding-left:14px;gap:11px}.rclog div{position:relative;font-size:14px;line-height:1.35}.rclog div:before{content:"";position:absolute;left:-20px;top:4px;width:10px;height:10px;border-radius:50%;background:#E97F2C}.rclog div.b:before{background:#2F6346}.rclog em{display:block;font-style:normal;color:var(--muted);font-size:12px}
.hdlist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden}.hdlist button,.hdpk{display:flex;align-items:center;gap:10px;width:100%;border:0;border-top:1px solid var(--line);background:var(--card);padding:9px 12px;font:inherit;color:var(--ink);text-align:left;cursor:pointer}.hdlist button:first-child{border-top:0}.hdlist b,.hdpk b{display:block;font-size:15px}.hdlist small,.hdpk small{display:block;color:var(--muted);font-size:12.5px}
.hdpk{border:1px solid #E97F2C66;border-radius:14px;background:rgba(233,127,44,.06)}.hdpk button{border:0;background:none;color:var(--muted);padding:6px;cursor:pointer}
.hdnew{display:flex;flex-direction:column;gap:8px;border:1px dashed var(--line);border-radius:14px;padding:10px 12px}.hdnt{display:flex;flex-direction:column;gap:4px}.hdtog{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--muted)}.hdtog input{width:18px;height:18px;accent-color:var(--pri)}
.hdnow{font-size:12px;font-weight:700;color:#B4601A;flex:none}.hdin{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:12px;padding:11px 12px;font:inherit;font-size:16px;background:var(--card);color:var(--ink)}
.hddate{position:relative;display:inline-flex;align-items:center;border:1px dashed var(--line);border-radius:999px;padding:6px 12px;font-size:14px;color:var(--muted)}.hddate input{position:absolute;inset:0;opacity:0;width:100%}
#tsrch{display:none}
.hbplus{width:40px;height:40px;border-radius:50%;border:0;background:var(--line2);color:var(--ink);display:grid;place-items:center;padding:0;cursor:pointer;flex:none}.hbplus svg{width:20px;height:20px}
.hbctl{position:relative;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:-4px 0 -8px}
.hbdd{display:inline-flex;align-items:center;gap:6px;border:0;background:var(--line2);border-radius:999px;padding:8px 12px 8px 10px;font:inherit;font-size:15px;font-weight:600;color:var(--ink);cursor:pointer}.hbdd svg{width:15px;height:15px;color:var(--muted)}
.hbwait{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(233,127,44,.35);background:rgba(233,127,44,.08);border-radius:999px;padding:7px 12px 7px 9px;font:inherit;font-size:14px;font-weight:600;color:#B8561C;cursor:pointer}.hbwait svg{width:16px;height:16px}.hbwait.due{background:#E97F2C;color:#fff;border-color:#E97F2C}
.hbscrim{position:fixed;inset:0;z-index:40}
.hbmenu{position:absolute;left:0;top:calc(100% + 8px);z-index:41;width:270px;background:var(--card);border-radius:18px;box-shadow:0 14px 44px rgba(0,0,0,.22);overflow:hidden;padding-bottom:4px}.hbmenu h5{margin:0;padding:12px 16px 4px;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.hbmenu button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:11px 16px;font:inherit;font-size:16px;color:var(--ink);text-align:left;cursor:pointer}.hbmenu button.on{color:var(--pri);font-weight:600}.hbmenu button i{width:17px;flex:none;display:grid;place-items:center;color:var(--pri)}.hbmenu button i svg{width:16px;height:16px}.hbmenu em{margin-left:auto;font-style:normal;font-size:13.5px;color:var(--muted)}.hbmenu hr{border:0;border-top:1px solid var(--line2);margin:4px 0}
.hbgh{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:6px 2px -8px}
.hblist{background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.hbrow{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;padding:12px 14px;font:inherit;color:var(--ink);text-align:left;cursor:pointer;position:relative}.hbrow + .hbrow::before{content:"";position:absolute;left:66px;right:0;top:0;border-top:1px solid var(--line2)}.hbrow:active{background:var(--line2)}
.hbic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:700;flex:none}
.hbg{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.hbn{display:flex;align-items:center;gap:8px;min-width:0}.hbn b{font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbun{flex:none;width:8px;height:8px;border-radius:50%;background:#E97F2C}
.hbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden}.hbs span{overflow:hidden;text-overflow:ellipsis}.hbs .r{color:var(--red);font-weight:600}.hbs .o{color:#B8561C;font-weight:600}.hbs .k{color:var(--pri);font-weight:600}
.hbd{flex:none;width:7px;height:7px;border-radius:50%;background:var(--pri)}.hbd.r{background:var(--red)}.hbd.o{background:#E97F2C}
.hbl{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px;width:70px}.hbl b{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}.hbl b small{font-size:12px;font-weight:500;color:var(--muted);margin-left:2px}.hbl.r b{color:var(--red)}.hbl.o b{color:#B8561C}
.hbbar{display:block;width:70px;height:5px;border-radius:3px;background:var(--line2);overflow:hidden}.hbbar i{display:block;height:100%;border-radius:3px;background:var(--pri)}.hbbar i.o{background:#E97F2C}.hbbar i.r{background:var(--red)}
#hsx{position:fixed;inset:0;z-index:70}#hsx .hsscrim{position:absolute;inset:0;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .18s}#hsx.on .hsscrim{opacity:1}
#hsx .hsbox{position:fixed;left:12px;right:12px;top:calc(var(--sat, env(safe-area-inset-top, 0px)) + 10px);bottom:auto;display:flex;flex-direction:column;gap:10px;transform:translateY(-16px);opacity:0;transition:transform .22s cubic-bezier(.2,.9,.3,1.1),opacity .15s}#hsx.on .hsbox{transform:none;opacity:1}
.hslbl{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:0 8px;display:flex;justify-content:space-between}.hslbl span{letter-spacing:0;text-transform:none;font-weight:500}
.hsrow{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:none;padding:6px 4px 2px;margin:0 -12px;padding-left:16px;padding-right:16px}.hsrow .hsc{touch-action:pan-x}.hsrow::-webkit-scrollbar{display:none}
.hsc{flex:none;width:66px;display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;padding:0;font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.hsc .c{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:15px;font-weight:700;position:relative}.hsc .c.ring{box-shadow:0 0 0 2.5px var(--bg),0 0 0 5px var(--red)}.hsc .c em{position:absolute;top:0;right:0;width:12px;height:12px;border-radius:50%;background:#E97F2C;border:2px solid var(--bg)}
.hsc .c i{position:absolute;bottom:-3px;right:-3px;width:21px;height:21px;border-radius:50%;background:var(--pri);color:#fff;display:grid;place-items:center;border:2px solid var(--bg)}.hsc .c i svg{width:11px;height:11px}.hsc b{font-size:11.5px;font-weight:500;color:var(--ink);max-width:66px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hsc .c{transition:transform .46s cubic-bezier(.3,.7,.4,1),box-shadow .2s,opacity .2s}.hsc.press .c{transform:scale(.88)}
.hsc.lift .c{transform:scale(1.14);box-shadow:0 10px 26px rgba(0,0,0,.28);transition:transform .22s cubic-bezier(.2,1.4,.4,1),box-shadow .2s}
.hsrow.menu .hsc:not(.lift){opacity:.35}.hsrow.menu .hsc:not(.lift) .c{transform:scale(.94)}
.hsc.just .c{animation:hsjust .55s cubic-bezier(.2,1.4,.4,1)}@keyframes hsjust{0%{transform:scale(.6)}60%{transform:scale(1.12)}100%{transform:none}}
.hsdiv{flex:none;width:1px;align-self:stretch;margin:8px 4px 22px;background:var(--line)}
.hsmenu{position:fixed;z-index:3;width:210px;background:var(--card);border-radius:16px;box-shadow:0 14px 40px rgba(0,0,0,.25);overflow:hidden;transform:scale(.8) translateY(-8px);transform-origin:50% 0;opacity:0;transition:transform .2s cubic-bezier(.2,1.3,.4,1),opacity .14s}.hsmenu.on{transform:none;opacity:1}
.hsmenu .hsmt{padding:10px 14px 6px;font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hsmenu button{display:flex;align-items:center;gap:10px;width:100%;border:0;border-top:1px solid var(--line2);background:none;padding:12px 14px;font:inherit;font-size:15.5px;color:var(--ink);text-align:left;cursor:pointer}.hsmenu button:active{background:var(--line2)}.hsmenu button svg{width:16px;height:16px;color:var(--pri);flex:none}
.hsres{background:var(--card);border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.12);overflow:hidden;max-height:30vh;overflow-y:auto}.hsres button{display:flex;align-items:center;gap:12px;width:100%;border:0;border-top:1px solid var(--line2);background:none;padding:11px 14px;font:inherit;font-size:15.5px;color:var(--ink);text-align:left;cursor:pointer}.hsres button:first-child{border-top:0}
.hsres .t{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:700;flex:none}.hsres .t.tk{background:var(--line2);color:var(--pri)}.hsres .t.tk svg{width:15px;height:15px}.hsres small{font-size:12.5px;color:var(--muted);flex:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hsnone{font-size:14px;color:var(--muted);padding:4px 10px}
.hsfld{display:flex;align-items:center;gap:10px;height:56px;border-radius:28px;padding:0 8px 0 18px;background:var(--card);box-shadow:0 10px 30px rgba(0,0,0,.16)}.hsfld svg{width:20px;height:20px;color:var(--muted);flex:none}.hsfld input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}.hsfld input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:17px;color:var(--ink);outline:none}.hsfld .x{width:40px;height:40px;border-radius:50%;border:0;background:var(--line2);color:var(--ink);display:grid;place-items:center;padding:0;flex:none;cursor:pointer}.hsfld .x svg{width:16px;height:16px}
.wtrow .grow,.wtit .grow{flex:1 1 auto;min-width:0}.wtrow > svg,.wtit > svg{width:18px;height:18px;flex:none;color:var(--faint)}.wti svg{width:18px;height:18px}.wtrow{display:flex;align-items:center;gap:12px;width:100%;border:1px solid rgba(233,127,44,.35);background:rgba(233,127,44,.07);border-radius:16px;padding:12px 14px;font:inherit;color:var(--ink);text-align:left;cursor:pointer}.wtrow b{display:block;font-size:15.5px}.wtrow small{color:var(--muted);font-size:13px}.wti{width:34px;height:34px;border-radius:50%;background:#E97F2C;color:#fff;display:grid;place-items:center;flex:none}
.wtgrp{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card)}.wtgrp .gh{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 14px 4px}.wtit{display:flex;align-items:center;gap:10px;width:100%;border:0;border-top:1px solid var(--line);background:none;padding:10px 14px;font:inherit;color:var(--ink);text-align:left;cursor:pointer}.wtgrp .gh+.wtit{border-top:0}.wtit b{display:block;font-size:15px}.wtit small{color:var(--muted);font-size:13px}.wtit em{font-style:normal;font-size:12.5px;font-weight:700;color:#B4601A;flex:none}.wtit em.late{color:var(--red)}
.okpop .okp-ball{animation:okpBounce .8s .1s cubic-bezier(.3,1.4,.5,1) both;transform-origin:24px 40px}
@keyframes okpBounce{0%{transform:translateY(-14px)}50%{transform:translateY(2px) scaleY(.9)}100%{transform:none}}
.okpop{position:fixed;z-index:90;pointer-events:none;transform:translate(-50%,-50%)}.okpop>span{display:grid;place-items:center;width:92px;height:92px;border-radius:28px;background:color-mix(in srgb,var(--card) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 0 0 1px var(--glass-edge,rgba(0,0,0,.06)),0 16px 40px rgba(20,30,40,.18);color:#2F6346;animation:okpIn 1.6s cubic-bezier(.2,.9,.3,1.2) forwards}
.okpop .okp-slip{animation:okpSlip .7s .12s cubic-bezier(.2,.9,.3,1.25) both}
@keyframes okpIn{0%{opacity:0;transform:scale(.6)}18%{opacity:1;transform:scale(1.06)}30%{transform:scale(1)}75%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.92) translateY(-14px)}}
@keyframes okpSlip{from{transform:translateY(-16px)}to{transform:translateY(0)}}
@media (prefers-reduced-motion: reduce){.okpop>span,.okpop .okp-slip{animation-duration:.01s}}
#pcmenu{position:fixed;inset:0;z-index:80}#pcmenu .pcmscrim{position:absolute;inset:0;background:rgba(10,16,20,.18)}
#pcmenu .pcmbox{position:absolute;min-width:220px;padding:6px;border-radius:16px;background:var(--card,var(--bg));box-shadow:0 0 0 1px var(--glass-edge,rgba(0,0,0,.06)),0 14px 40px rgba(20,30,40,.22);animation:pcmIn .16s ease-out}
#pcmenu .pcmt{font-size:12px;font-weight:600;color:var(--muted);padding:6px 10px 4px;letter-spacing:.02em}
#pcmenu button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;color:var(--ink);font:inherit;font-size:15px;padding:11px 10px;border-radius:10px;text-align:left;cursor:pointer}#pcmenu button:active{background:color-mix(in srgb,var(--ink) 8%,transparent)}
@keyframes pcmIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.pc{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.pc.pressing{filter:brightness(.97)}
body.srchkb .main{padding-bottom:75vh}
.pcacts{margin-top:auto;display:flex;gap:7px;padding-top:3px;min-width:0}.pcb{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;border:0;font:inherit;font-size:14px;font-weight:600;padding:8px 14px;border-radius:999px;background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink);white-space:nowrap;cursor:pointer}.pcb.p{background:var(--ink);color:var(--bg);flex:none;max-width:70%}
.pc.stop .pcb{background:rgba(255,255,255,.14);color:#FBE7E3}.pc.stop .pcb.p{background:#F3F6F8;color:#1B2830}
.pcdock{display:flex;gap:7px;align-items:center;overflow-x:auto;touch-action:pan-y;scrollbar-width:none;margin:-6px -16px -10px;padding:8px 16px 14px;min-height:62px}@media (min-width:861px){.pcdock{margin:-6px 0 -10px;padding:8px 0 14px}}.pcdock::-webkit-scrollbar{display:none}
.pcdock button{flex:none;border:0;font:inherit;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;opacity:.55;transition:width .2s,height .2s,opacity .2s,box-shadow .2s,transform .15s;cursor:pointer;padding:0}
.pcdock.scrub button.on{transform:translateY(-6px) scale(1.12)}.pcdock button.on{opacity:1;width:40px;height:40px;border-radius:12px;font-size:12.5px;box-shadow:0 4px 12px rgba(27,40,48,.2)}
.pcdock .bill{background:#2F6346}.pcdock .ask{background:var(--amber)}.pcdock .stop{background:#8E2418}.pcdock .late{background:var(--red)}.pcdock .inv{background:var(--hi)}.pcdock .today,.pcdock .chat{background:var(--pri)}.pcdock .calm{background:var(--line);color:var(--muted)}
.cuto{display:flex;flex-direction:column;gap:4px;font-size:15px;text-align:left}.cuto>div{display:flex;gap:10px;align-items:baseline;min-width:0;overflow-wrap:anywhere}.cuto span{flex:none;width:34px;color:var(--muted);font-size:13px}.cuto em{font-style:normal;min-width:0}
.cdready{flex:none;font-size:12px;font-weight:600;color:var(--pri);background:color-mix(in srgb,var(--pri) 12%,transparent);padding:4px 9px;border-radius:999px;margin-left:8px}
.ts-fix{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ts-fx{font:inherit;font-size:13px;line-height:1.2;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);display:inline-flex;gap:6px;align-items:center;max-width:100%}.ts-fx span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ts-fx svg{width:14px;height:14px;flex:none}
.ts-like-x{flex:none;width:36px;display:grid;place-items:center;color:var(--muted)}.ts-like-x svg{width:15px;height:15px}
@media (max-height: 720px){ .ts-deck .ts-card.like:not(.under){min-height:150px} }
.tsw .trow{-webkit-touch-callout:none}
.tsw.tklift .swipe-fg{transform:scale(1.02);box-shadow:0 10px 24px rgba(27,40,48,.16);transition:transform .15s ease,box-shadow .15s ease;position:relative;z-index:2}
.tsw.tksrc .swipe-fg{opacity:.35;transform:none;box-shadow:none}
.tkghost{position:fixed;z-index:220;pointer-events:none;background:var(--card);border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.25);padding:13px 16px;font-weight:600;font-size:15.5px;color:var(--ink);transform:rotate(-2deg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsw .swipe-fg.tkdrop{outline:2.5px solid var(--pri);outline-offset:-2px;background:var(--pri-soft)}
.tktag{position:fixed;z-index:221;pointer-events:none;background:var(--pri);color:#fff;font-weight:700;font-size:13px;padding:6px 11px;border-radius:99px;display:flex;gap:6px;align-items:center;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.tktag svg{width:15px;height:15px}
.tour{position:fixed;inset:0;z-index:300;opacity:0;transition:opacity .2s ease;touch-action:none}.tour.on{opacity:1}
.tour-hole{position:fixed;border-radius:18px;box-shadow:0 0 0 200vmax rgba(10,14,16,.62);transition:left .3s cubic-bezier(.2,.9,.25,1),top .3s cubic-bezier(.2,.9,.25,1),width .3s cubic-bezier(.2,.9,.25,1),height .3s cubic-bezier(.2,.9,.25,1);pointer-events:none}
.tour-hole::after{content:'';position:absolute;inset:-2px;border-radius:20px;border:2px solid rgba(255,255,255,.85)}
.tour-tip{position:fixed;left:16px;right:16px;max-width:380px;margin:0 auto;background:var(--card);color:var(--ink);border-radius:18px;padding:16px 16px 12px;box-shadow:0 18px 44px rgba(0,0,0,.3);transition:top .3s cubic-bezier(.2,.9,.25,1)}
.tour-tip b{display:block;font-size:17px;margin:2px 0 4px}.tour-tip p{margin:0;font-size:15px;line-height:1.45;color:var(--ink)}
.tour-n{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}
.tour-bar{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.tour-r{display:flex;gap:6px;align-items:center}
.tour-bar button{border:0;font:inherit;font-size:15px;min-height:42px;padding:0 14px;border-radius:99px;background:none;color:var(--muted);-webkit-tap-highlight-color:transparent}
.tour-bar .tour-back{color:var(--pri)}.tour-bar .tour-next{background:var(--pri);color:#fff;font-weight:600;padding:0 20px}
.navb.tourb{margin-left:-6px;color:var(--muted)}.navb.tourb svg{width:22px;height:22px}
@media (prefers-reduced-motion: reduce){ .tour,.tour-hole,.tour-tip{transition:none} }
.te-car{position:relative;display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px;padding:2px 28px 8px;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.te-car::-webkit-scrollbar{display:none}
.te-slide{flex:0 0 100%;min-width:0;box-sizing:border-box;scroll-snap-align:center;scroll-snap-stop:always;display:flex;flex-direction:column;gap:14px;transition:opacity .2s ease}
.te-slide .ts-card.est{max-height:30vh;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
.te-slide .ts-card.est .ts-notes{-webkit-line-clamp:unset;display:block;overflow:visible;flex:none}
.te-head{display:flex;align-items:center;gap:8px;justify-content:space-between}.te-head .ts-eye{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.te-fu{flex:none;display:inline-flex;align-items:center;gap:5px;border:0;border-radius:99px;background:var(--pri-soft);color:var(--pri);font:inherit;font-size:12.5px;font-weight:650;padding:5px 10px;min-height:30px;max-width:60%}.te-fu svg{width:14px;height:14px;flex:none}.te-fu span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcm .ts-card.pcm-pill{overflow:hidden}
.te-slide .ts-card.est{transition:transform .38s cubic-bezier(.2,.8,.2,1)}.te-slide .ts-card.est.te-press{transform:scale(.975)}
.pcm.tem{opacity:1;transition:none}
.pcm.tem .pcm-dim{opacity:0;transition:opacity .24s ease}.pcm.tem.on .pcm-dim{opacity:1}
.pcm.tem .pcm-pill{transform:scale(.975);box-shadow:0 4px 14px rgba(0,0,0,.08);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease}
.pcm.tem.on .pcm-pill{transform:scale(1.03);box-shadow:0 18px 40px rgba(0,0,0,.24)}
.pcm.tem .pcm-menu{animation:none;opacity:0;transform:translateY(-8px) scale(.97);transform-origin:24px 0;transition:opacity .2s ease,transform .28s cubic-bezier(.2,.8,.2,1)}
.pcm.tem .pcm-menu.up{transform:translateY(8px) scale(.97);transform-origin:24px 100%}
.pcm.tem.on .pcm-menu{opacity:1;transform:none;transition-delay:.06s}
@media (prefers-reduced-motion: reduce){.pcm.tem .pcm-dim,.pcm.tem .pcm-pill,.pcm.tem .pcm-menu,.te-slide .ts-card.est{transition:none}}
.fu{background:var(--card);border:1.5px solid var(--line);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:12px}
.fu-eye{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;display:flex;align-items:center;gap:7px}
.fu-eye svg{width:15px;height:15px;color:var(--pri);flex:none}
.fu-p{display:flex;align-items:center;gap:11px}.fu-p .grow{min-width:0}
.fu-av{width:40px;height:40px;border-radius:50%;background:var(--pri-soft);color:var(--pri);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex:none}
.fu-p b,.fu-pk b{display:block;font-size:16px;font-weight:600;color:var(--ink)}
.fu-p small,.fu-pk small{display:block;font-size:13px;color:var(--muted);line-height:1.3;overflow-wrap:anywhere}
.fu-draft{background:var(--line2);border-radius:14px;padding:12px 13px;font-size:15px;line-height:1.45;color:var(--ink);overflow-wrap:anywhere}
.fu-draft .sj{font-size:12.5px;color:var(--muted);margin-bottom:6px}
.fu-in,.fu-ta{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:13px;padding:11px 12px;font:inherit;font-size:16px;line-height:1.45;color:var(--ink);background:var(--card)}
.fu-ta{resize:vertical;min-height:120px}.fu-in:disabled{color:var(--muted)}
.fu-bar{display:flex;gap:8px}.fu-bar .btn{flex:1;min-height:46px;font-size:15px;padding:0 10px;text-decoration:none}.fu-bar .btn.pri{flex:1.4}
.fu-note{font-size:12.5px;color:var(--muted);line-height:1.4}
.fu-sum{font-size:13.5px;color:var(--muted)}
.fu-q{font-size:14px;color:var(--ink);background:var(--line2);border-radius:12px;padding:9px 11px;line-height:1.4;overflow-wrap:anywhere}
.fu-link{border:0;background:none;color:var(--pri);font:inherit;font-size:14px;padding:4px 0;align-self:flex-start;min-height:36px}
.fu-wait{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--muted);min-height:44px}
.asfill{display:flex;align-items:center;gap:8px;max-width:88%;border:0;background:none;padding:3px 0;margin:2px 0;color:var(--muted);font:inherit;font-size:14.5px;font-style:italic;text-align:left;cursor:pointer}.asfill svg,.asfill .aseq{width:16px;height:16px;flex:none;opacity:.75}.asfill.on{color:var(--pri)}
#asthink{display:inline-block;transition:opacity .18s,transform .18s;font-style:italic;color:var(--muted)}#asthink.out{opacity:0;transform:translateY(-3px)}.asthink{display:flex;align-items:center;gap:8px}
.astool.wait .aseq{opacity:.45}
.asvbar{display:flex;justify-content:flex-end;margin:-6px 0 6px}.asvbtn{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;background:var(--pri-soft);color:var(--pri);font:inherit;font-size:13px;font-weight:600;padding:6px 11px;cursor:pointer}.asvbtn svg{width:15px;height:15px}
.asvl .item{display:flex;align-items:center;gap:8px;padding:4px 6px}.asvpick{flex:1;display:flex;align-items:center;gap:8px;border:0;background:none;font:inherit;color:var(--ink);text-align:left;padding:8px 4px;cursor:pointer;min-width:0}.asvpick b{display:block;font-size:15.5px}.asvpick small{display:block;font-size:13px;color:var(--muted)}.asvpick.on b{color:var(--pri)}.asvpick svg{color:var(--pri);flex:none}
.asvplay{width:38px;height:38px;border-radius:50%;border:0;background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink);font-size:13px;display:grid;place-items:center;flex:none;cursor:pointer}.asvplay.on{background:var(--pri-soft);color:var(--pri)}.asvplay.ld{opacity:.4;animation:tmxNm .9s ease-in-out infinite alternate}
.fu-spin{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--pri);animation:ptrspin .8s linear infinite;flex:none}
.fu-err{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--red);background:var(--red-soft);border-radius:11px;padding:4px 4px 4px 11px;min-height:40px}.fu-err .grow{min-width:0}
.fu-rt2{flex:none;width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:var(--red);display:flex;align-items:center;justify-content:center}.fu-rt2:active{background:rgba(0,0,0,.06)}.fu-rt2 svg{width:19px;height:19px}
.fu-gh{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:6px 2px 0}.fu-gh span{text-transform:none;letter-spacing:0;font-weight:500;font-size:12px}
.fu-sw{position:relative;border-radius:13px;overflow:hidden;flex:none}.fu-sw .fu-pk{position:relative;width:100%;transition:transform .22s cubic-bezier(.2,.8,.2,1);touch-action:pan-y}
.fu-sw-bg{position:absolute;inset:0;display:flex;justify-content:flex-end;background:var(--red);border-radius:13px}.fu-sw-bg button{width:96px;border:0;background:transparent;color:#fff;font:inherit;font-size:14px;font-weight:600}
.fu-sw:not(.open) .fu-sw-bg{visibility:hidden}.fu-sw.open .fu-sw-bg,.fu-sw.moving .fu-sw-bg{visibility:visible}
.fu-ask{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1.5px solid var(--line);border-radius:13px;font-size:14px;color:var(--ink)}.fu-ask span{color:var(--muted);font-size:13px}
.btn.pri.danger{background:var(--red);border-color:var(--red);color:#fff}
.fu-list{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto}
.fu-pk{display:flex;align-items:center;gap:11px;text-align:left;border:1.5px solid var(--line);border-radius:13px;background:var(--card);padding:8px 10px;font:inherit;min-height:52px}
.fu-pk .grow{min-width:0}.fu-pk b{font-size:15px}
.fu-later{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:13px;background:var(--line2);font-size:14px;color:var(--ink)}.fu-later svg{width:16px;height:16px;color:var(--pri);flex:none}.fu-later .seeall{min-height:36px;padding:4px 0}
.fu-card{background:var(--card);border-radius:18px;box-shadow:0 6px 22px rgba(27,40,48,.07);overflow:hidden;margin-top:8px}
.fu-row{display:flex;flex-direction:column;gap:7px;padding:14px;border-top:1px solid var(--line2)}.fu-row:first-child{border-top:0}
.fu-rt{border:0;background:none;padding:0;text-align:left;font:inherit;display:flex;flex-direction:column;gap:2px;color:inherit}
.fu-rt .tt{font-size:15.5px;color:var(--ink);line-height:1.3}.fu-rt .mt{font-size:13px;color:var(--muted)}
.fu-pill{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:650;padding:4px 10px;border-radius:99px;background:var(--line2);color:var(--muted)}
.fu-pill svg{width:14px;height:14px;flex:none}
.fu-pill.hot{background:var(--pri);color:var(--pri-ink)}.fu-pill.soft{background:var(--pri-soft);color:var(--pri)}
.fu-acts{display:flex;gap:8px}.fu-acts .btn{flex:1;min-height:42px;font-size:14.5px;text-decoration:none;padding:0 8px}
@media (prefers-reduced-motion: reduce){.fu-spin{animation:none}}
.te-slide.te-end{justify-content:center}
.ts-ec.on{background:var(--pri);border-color:var(--pri);color:#fff;font-weight:600}
.btn.te-on{border-color:var(--pri);color:var(--pri);background:var(--pri-soft)}
.ts-sug b{color:var(--ink);font-weight:600}
.te-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:2px 4px 0}
.te-st{position:relative;border:0;background:none;border-radius:0;padding:12px 8px 2px 0;font:inherit;text-align:left;display:flex;flex-direction:column;gap:2px;min-width:0;color:var(--ink);-webkit-tap-highlight-color:transparent;cursor:pointer}
.te-st::before{content:'';position:absolute;left:0;right:6px;top:0;height:4px;border-radius:4px;background:var(--line);transition:background-color .2s ease,opacity .2s ease}
.te-st.set::before{background:var(--pri)}.te-st.cur::before{background:var(--pri);opacity:.45}
.te-st i{font-style:normal;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:700}
.te-st b{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.te-st:not(.set) b{color:var(--faint);font-weight:500}
.te-st.cur i{color:var(--pri)}
.te-q{font-size:19px;font-weight:650;color:var(--ink);text-align:center;letter-spacing:-.01em;margin-top:6px;text-wrap:balance}
.te-q + .ts-sug:empty{display:none}
.te-q + .ts-sug{margin-top:-8px}
.ts-ec small{display:block;font-size:12px;color:var(--muted);font-weight:500;margin-top:1px}
.ts-ec.on small{color:rgba(255,255,255,.85)}
.te-due .ts-ec{min-height:58px;line-height:1.2}
.te-pick{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;overflow:hidden}
.te-pick input{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:0;-webkit-appearance:none;appearance:none}
.chips.ibacts.te-left{justify-content:flex-start}
.te-prio{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.te-prio .ts-ec{min-height:64px;padding:8px 10px;text-align:left;display:flex;flex-direction:column;justify-content:center}
.te-prio .ts-ec>span{display:flex;align-items:center;gap:7px;font-weight:600}
.te-prio .ts-ec.tsug{border-color:var(--pri);color:var(--pri);background:var(--pri-soft)}
.te-prio .ts-ec.on .tpd{box-shadow:0 0 0 2px rgba(255,255,255,.9)}
.wkpills{display:flex;gap:8px;flex-wrap:wrap;margin-top:3px}
.wkpill{border:1px solid var(--pri);color:var(--pri);background:var(--pri-soft);border-radius:99px;font:inherit;font-weight:600;font-size:13.5px;padding:6px 12px;min-height:34px;-webkit-tap-highlight-color:transparent;cursor:pointer}
.wkpill:active{filter:brightness(.95)}
.tshield{position:fixed;inset:0;z-index:400;background:transparent}
.tsconf{position:fixed;width:0;height:0;z-index:300;pointer-events:none}
.tsconf i{position:absolute;left:-3px;top:-2px;width:7px;height:4px;border-radius:1px;opacity:0;animation:tsconf 1.05s cubic-bezier(.2,.65,.4,1) both;animation-delay:var(--t)}
.tsconf .c0{background:var(--hi)}.tsconf .c1{background:var(--pri)}.tsconf .c2{background:var(--amber)}.tsconf .c3{background:var(--pop-ok-ink);border-radius:50%;width:5px;height:5px}
@keyframes tsconf{0%{opacity:0;transform:translate(0,0) rotate(0)}8%{opacity:1}45%{opacity:1;transform:translate(calc(var(--x) * .75),var(--u)) rotate(calc(var(--r) * .5))}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--r))}}
.ts-ok.pop{animation:atpop .4s cubic-bezier(.2,.9,.3,1.4) both}
@media (prefers-reduced-motion: reduce){.tsconf{display:none}.ts-ok.pop{animation:none}}
.whd{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.whd .pill{padding-left:0;padding-right:0;justify-content:center;text-align:center;min-height:40px}.ts-empty{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:40px 10px}.ts-empty b{font-size:18px}
.ts-card.head{align-items:center;justify-content:center;text-align:center;gap:8px}.ts-card.head .av{width:64px;height:64px;font-size:22px}.ts-proj{font-size:24px;font-weight:600;letter-spacing:-.01em;text-wrap:balance}
.ts-eye{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--pri);font-weight:600}
.ts-title{font-size:22px;font-weight:600;line-height:1.25;letter-spacing:-.01em;text-wrap:balance;overflow-wrap:anywhere}
.ts-chips{display:flex;flex-wrap:wrap;gap:6px}
.ts-chip{font-size:12px;font-weight:500;border-radius:99px;padding:3px 9px;background:var(--line2);color:var(--muted)}.ts-chip.over{background:var(--red-soft);color:var(--red)}.ts-chip.warn,.ts-chip.old{background:var(--amber-soft);color:var(--amber)}
.ts-chips .ppw{font-size:12px;border-radius:99px;padding:3px 9px;background:var(--amber-soft)}.ts-chips .ppw.p4{background:var(--red-soft)}
.ts-notes{font-size:14.5px;line-height:1.5;color:var(--muted);white-space:pre-line;overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;flex:0 1 auto;min-height:0}
.ts-card.det .ts-notes{-webkit-line-clamp:unset;display:block;overflow-y:auto;touch-action:pan-y}
.ts-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--faint)}.ts-foot .seeall{min-height:32px;padding:0}
.ts-stamp{position:absolute;top:18px;font-size:15px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:10px;border:2px solid currentColor;opacity:0;pointer-events:none;z-index:2;background:var(--card)}
.ts-stamp.r{left:16px;top:46%;color:var(--pri);transform:rotate(-8deg)}.ts-stamp.l{right:16px;top:46%;color:var(--muted);transform:rotate(8deg)}
.ts-stamp.u{left:50%;top:46%;transform:translateX(-50%);color:var(--pop-ok-ink)}.ts-stamp.d{left:50%;top:46%;transform:translateX(-50%);color:var(--red)}
.ts-card[data-dir="week"] .ts-stamp.r,.ts-card[data-dir="later"] .ts-stamp.l,.ts-card[data-dir="done"] .ts-stamp.u,.ts-card[data-dir="del"] .ts-stamp.d{opacity:var(--sp,1)}
.ts-acts{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.ts-b{display:flex;flex-direction:column;align-items:center;gap:5px;border:0;background:none;font:inherit;font-size:12px;color:var(--muted);padding:4px 0;-webkit-tap-highlight-color:transparent}
.ts-b .ic{width:50px;height:50px;border-radius:50%;background:var(--card);box-shadow:var(--shadow);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);transition:transform .12s ease}.ts-b .ic svg{width:22px;height:22px}
.ts-b:active .ic{transform:scale(.92)} .ts-b.bad .ic{color:var(--red)} .ts-b.pri{color:var(--pri);font-weight:600} .ts-b.pri .ic{background:var(--pri);color:var(--pri-ink);border-color:var(--pri)}
.ts-hint{font-size:12.5px;color:var(--faint);text-align:center;text-wrap:balance}
.ts-hacts{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px}.ts-hacts .btn{padding-left:6px;padding-right:6px;white-space:nowrap}
.ts-card.est{flex-shrink:0;position:relative;inset:auto;cursor:default;touch-action:auto;box-shadow:var(--shadow);max-height:34vh}
.ts-sug{text-align:center}
.ts-ec-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ts-ec{border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:15.5px;font-weight:500;border-radius:14px;min-height:52px;font-variant-numeric:tabular-nums}
.ts-ec:active{background:var(--pri-soft)} .ts-ec.sug{border-color:var(--pri);color:var(--pri);background:var(--pri-soft);font-weight:600}
#selbar{display:flex;gap:10px} #selbar .btn.line{flex:none;background:var(--card);color:var(--ink)}
@media (prefers-reduced-motion: reduce){.ts-card,.wkbar .wkb i,.wkg-h > svg{transition:none!important}}
#selbar{position:fixed;left:16px;right:16px;bottom:calc(91px + env(safe-area-inset-bottom, 0px));z-index:21;animation:gmIn .16s ease-out}
#selbar .btn{box-shadow:0 10px 28px rgba(20,35,46,.22);display:flex;align-items:center;justify-content:center;gap:8px} #selbar svg{width:18px;height:18px}
@media (min-width:861px){#selbar{left:auto;right:32px;bottom:28px;width:340px}}
body.selecting .floatbar{display:none}
body.selecting .main{padding-bottom:220px}
.bnow{margin-top:-8px;font-size:12.5px;color:var(--faint)}
.dq{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.dq .pill{min-height:38px}
.bdue{display:flex;gap:8px;align-items:center} .bdue [hidden]{display:none} .bdue input{flex:1;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:14px;padding:10px 12px;font-size:16px;background:var(--field);color:var(--ink)}
.gwrap{display:flex;align-items:center;gap:2px}
.mttimes{background:var(--beige);border-radius:12px;padding:10px 14px;font-size:15px;line-height:1.6;white-space:pre-line}
.sheet .f textarea.mtta{height:140px}
.mtmail{white-space:pre-wrap;background:var(--field);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.5}
.mtvwrap{display:flex;flex-direction:column;gap:10px}
.mtvars{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px;padding:4px 20px 12px;scroll-padding:0 20px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.mtvars::-webkit-scrollbar{display:none}
.mtvar{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always;position:relative;background:var(--card);border-radius:24px;box-shadow:var(--shadow);padding:16px 18px 20px;font-size:14.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;display:flex;flex-direction:column;gap:10px;color:var(--ink)}
.mtvar .mtvtimes{background:var(--beige);border-radius:12px;padding:8px 12px;white-space:pre-line}
.mtvar .mtvsig{color:var(--muted);font-size:13px;border-top:1px dashed var(--line);padding-top:8px}
.mtvar .mtvtop{display:flex;align-items:center;justify-content:space-between;gap:8px;white-space:normal;min-height:36px;margin-bottom:-2px}
.mtvar .mtvtag{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.mtvpen{width:36px;height:36px;flex:none;border-radius:999px;border:0;background:var(--pri-soft);color:var(--pri);display:inline-flex;align-items:center;justify-content:center;padding:0}
.mtvpen svg{width:17px;height:17px}
.ivrail{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;margin:0 -20px;padding:0 20px;scroll-padding:0 20px;align-items:flex-start}
.ivrail::-webkit-scrollbar{display:none}
.ivcard{flex:0 0 calc(100% - 26px);scroll-snap-align:start;scroll-snap-stop:always;min-width:0}
.ivsig{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);color:var(--muted);font-size:13px;line-height:1.5;white-space:pre-wrap}
.ivsig span{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:4px}
.mtvsigp{color:var(--muted);font-size:13px;line-height:1.5;white-space:pre-wrap;border-top:1px dashed var(--line);padding-top:8px}
.mtlog{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--muted)}
.mtwhen{font-size:22px;font-weight:600;line-height:1.25}
.mtrow{width:100%;border:0;background:transparent;text-align:left;color:inherit} .mtrow .snzi{color:var(--pri)} .mtrow > svg{width:18px;height:18px;flex:none;color:var(--faint)}
.mtday{position:relative;margin:8px 4px 0 52px;border-left:1px solid var(--line)}
.mtoptr{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;background:var(--field);color:var(--ink);transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.mtoptr.cur{background:var(--pri-soft);border-color:var(--pri);box-shadow:0 1px 6px rgba(43,106,143,.14)}
.mtoptr .mtchk{border:0;background:transparent;padding:12px 4px 12px 12px;min-width:48px;display:flex;align-items:flex-start;justify-content:center;color:inherit}
.mtoptr .mtchk .selbox{margin-top:1px}
.mtoptr .mtoptb{flex:1 1 auto;min-width:0;border:0;background:transparent;color:inherit;text-align:left;padding:12px 12px 12px 6px;font-size:16px;display:flex;align-items:flex-start;gap:8px}
.mtoptr .mtoptb .grow{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}
.mtoptr .mtoptb b{font-weight:600;display:block} .mtoptr .mtoptb .meta{font-size:13px;margin-top:2px} .mtoptr .mtbump{color:var(--muted);font-size:13px;margin-top:4px;font-style:italic}
.mtoptr .mtcalm{width:18px;height:18px;flex:none;color:var(--pri);opacity:0;transition:opacity .2s ease;margin-top:1px} .mtoptr.cur .mtcalm{opacity:1}
.mtoptr .mtswap{flex:none;border:0;background:transparent;color:var(--pri);padding:12px 14px 12px 4px;display:flex;align-items:flex-start}
.mtoptr .mtswap svg{width:20px;height:20px} .mtoptr .mtswap.spin svg{animation:rfspin .8s linear infinite} .mtoptr .mtswap:disabled{opacity:1}
@media (prefers-reduced-motion: reduce){.mtoptr .mtswap.spin svg{animation-duration:2.4s}}
.mtdhead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mtddots{display:flex;align-items:center;gap:2px}
.mtddot{width:26px;height:26px;border:0;background:transparent;padding:0;display:inline-flex;align-items:center;justify-content:center}
.mtddot span{width:7px;height:7px;border-radius:50%;background:var(--line);transition:background .15s,transform .15s}
.mtddot.on span{background:var(--pri);transform:scale(1.25)}
.mtdays{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.mtdays::-webkit-scrollbar{display:none}
.mtdpage{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;border:1px solid var(--line);border-radius:14px;padding:12px 8px 10px 4px;background:var(--bg)}
.mtdtitle{font-size:15px;font-weight:600;margin:0 0 2px 12px}
.mthr{position:absolute;left:0;right:0;border-top:1px dashed var(--line)} .mthr span{position:absolute;left:-50px;top:-8px;width:42px;text-align:right;font-size:11px;color:var(--faint)}
.mtev,.mtnew{position:absolute;border-radius:8px;padding:3px 8px;overflow:hidden;font-size:12px;line-height:1.3;display:flex;flex-direction:column;justify-content:flex-start}
.mtev b,.mtnew b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .mtev span,.mtnew span{opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mtev{background:var(--beige);color:var(--ink);border:1px solid var(--line)}
.mtev.short,.mtnew.short{flex-direction:row;align-items:center;gap:6px;padding-top:0;padding-bottom:0;font-size:11.5px} .mtev.short b,.mtnew.short b{flex:none;max-width:60%} .mtev.short span,.mtnew.short span{flex:1 1 auto;min-width:0}
.mtev.own{opacity:.85} .mtev.moving{background:transparent;border-style:dashed;color:var(--muted)} .mtev.moving b{text-decoration:line-through}
.mtnew{color:var(--pri);z-index:1}
.mtnew.call{background:var(--pri);color:var(--pri-ink)} .mtnew.prep,.mtnew.wind{background:var(--pri-soft)}
.mtdaykey{display:flex;align-items:center;gap:4px 14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin:10px 0 2px 12px}
.mtdaykey i{font-style:normal;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.mtdaykey span{display:inline-block;width:10px;height:10px;border-radius:3px} .mtdaykey .kc{background:var(--pri)} .mtdaykey .ke{background:var(--beige);border:1px solid var(--line)} .mtdaykey .km{border:1px dashed var(--muted)}
.mtdaykey .kp{background:var(--pri-soft);border:1px solid var(--pri)}
/* the call with its prep and wind-down, as one block you can hold and drag (Oct 19 2026) */
.mtgrp{position:absolute;display:flex;flex-direction:column;border-radius:9px;overflow:hidden;z-index:2;cursor:grab;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;box-shadow:0 1px 4px rgba(20,24,27,.16);transition:box-shadow .15s ease,transform .15s ease,opacity .15s ease}
.mtgrp .mtgs{flex:1 1 0;min-height:0;display:flex;flex-direction:column;justify-content:center;padding:0 8px;font-size:11.5px;line-height:1.25;overflow:hidden;white-space:nowrap}
.mtgrp .mtgs b,.mtgrp .mtgs span{overflow:hidden;text-overflow:ellipsis}
.mtgrp .prep,.mtgrp .wind{background:var(--pri-soft);color:var(--pri)}
.mtgrp .prep{border-bottom:1px dashed var(--pri)} .mtgrp .wind{border-top:1px dashed var(--pri)}
.mtgrp .call{background:var(--pri);color:var(--pri-ink);font-size:12px} .mtgrp .call b{font-weight:600} .mtgrp .call span{opacity:.85}
.mtgrp.short .call{flex-direction:row;align-items:center;gap:6px} .mtgrp.short .call b{flex:none;max-width:60%}
.mtgrp.off{opacity:.5} .mtgrp.cur{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--pri)}
.mtgrp.pend .call{background-image:repeating-linear-gradient(135deg,transparent 0 8px,rgba(255,255,255,.14) 8px 16px)}
.mtgrp.warn .call{box-shadow:inset 4px 0 0 var(--red)}
.mtgrp.mtlift{cursor:grabbing;z-index:6;opacity:1;box-shadow:0 12px 28px rgba(20,24,27,.3);transform:scale(1.02);transition:none}
.mtgrp:focus-visible{outline:2px solid var(--pri);outline-offset:2px}
@media (prefers-reduced-motion: reduce){.mtgrp.mtlift{transform:none}}
.mtcvseg{padding:3px;border-radius:12px;flex:none} .mtcvseg .pill{min-height:34px;font-size:13px;padding:0 14px;flex:none}
.mthint{font-size:12.5px}
.mtddots.mtdrow{justify-content:center}
.mtwk{border:1px solid var(--line);border-radius:14px;background:var(--bg);padding:6px 6px 10px 0;--gut:40px}
.mtwknav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 2px 6px}
.mtwknav b{font-size:14px;font-weight:600}
.mtwknav button{width:44px;height:40px;border:0;background:transparent;color:var(--pri);display:inline-flex;align-items:center;justify-content:center;border-radius:10px} .mtwknav svg{width:20px;height:20px}
.mtwkh{display:grid;grid-template-columns:var(--gut) repeat(5,1fr);margin-bottom:6px}
.mtwkd{text-align:center;font-size:11px;color:var(--muted);line-height:1.25} .mtwkd b{display:block;font-size:15px;color:var(--ink);font-weight:600} .mtwkd.today b{color:var(--pri)} .mtwkd.has i{color:var(--pri);font-style:normal;font-weight:600}
.mtwkd i{font-style:normal}
.mtwkb{position:relative;margin-left:var(--gut);border-left:1px solid var(--line)}
.mtwkb .mthr span{left:-44px;width:38px}
.mtwkc{position:absolute;top:0;bottom:0;border-right:1px solid var(--line)} .mtwkc:last-child{border-right:0}
.mtwkc .mtev{padding:2px 4px;font-size:10.5px;border-radius:6px} .mtwkc .mtgrp .mtgs{padding:0 4px;font-size:10.5px} .mtwkc .mtgrp{border-radius:7px}
.mtsoon{position:absolute;left:0;right:0;top:0;background:repeating-linear-gradient(135deg,transparent 0 6px,var(--line) 6px 7px);opacity:.6;pointer-events:none}
.mtwkload{padding:48px 0;text-align:center}
.mtoptr .mtpend{color:var(--pri);font-size:13px;margin-top:4px;display:flex;align-items:center;gap:6px} .mtoptr .mtpend svg{width:14px;height:14px;animation:rfspin .8s linear infinite}
.mtoptr .mtover{color:var(--red);font-size:13px;margin-top:4px}
.mtdaynone{margin:4px 0 0 12px}
.mtwait{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:26px 8px 18px}
.mtspin{width:58px;height:58px;border-radius:50%;background:var(--pri-soft);color:var(--pri);display:grid;place-items:center;margin-bottom:6px}
.mtspin svg{width:26px;height:26px;animation:rfspin .8s linear infinite}
.mtwt{font-size:17px;font-weight:600}
.btn .mtbs{display:inline-flex;margin-right:8px} .btn .mtbs svg{width:18px;height:18px;animation:rfspin .8s linear infinite}
@media (prefers-reduced-motion: reduce){.mtspin svg,.btn .mtbs svg{animation-duration:2.4s}}
.dbrow{width:100%;border:0;background:transparent;text-align:left;color:inherit} .dbrow > svg{width:18px;height:18px;flex:none;color:var(--faint)}
.db2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
.dbl{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:1.45} .dbh{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.dbwatch{padding:12px 14px;border-radius:12px;font-size:14px;line-height:1.45;background:rgba(214,140,40,.13);color:var(--ink)}
.dbline{display:flex;align-items:center;gap:8px;width:100%;border:0;background:var(--pri-soft);color:var(--ink);border-radius:12px;padding:9px 12px;font-size:13.5px;text-align:left;min-width:0}
.dbline svg{width:16px;height:16px;flex:none;color:var(--pri)} .dbline .clip{flex:1;min-width:0} .dbline b{font-weight:600;color:var(--pri)}
.lcard.collapsing{overflow:hidden;opacity:0;padding-top:0!important;padding-bottom:0!important;margin-top:-16px;transition:height .3s cubic-bezier(.4,0,.2,1),padding .3s,opacity .2s,margin .3s}
.lrow{display:flex;align-items:center;gap:14px}
.mv{display:flex;flex-direction:column;gap:8px}
.mvchips{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.mvc{position:relative;border:0;border-radius:12px;background:var(--beige);color:var(--ink);font-size:13.5px;min-height:40px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;overflow:hidden}
.mvc:active{background:var(--pri-soft)}
.mvc svg{width:16px;height:16px;color:var(--pri);flex:none}
.mvc.pick input{position:absolute;inset:0;opacity:0;width:100%;height:100%;border:0;-webkit-appearance:none;appearance:none}
.lfoot{display:flex;justify-content:flex-start}
.ldel{border:0;background:transparent;color:var(--red);font-size:13.5px;display:inline-flex;align-items:center;gap:6px;padding:6px 0;min-height:36px}
.ldel svg{width:16px;height:16px}
.repm{display:inline-flex;align-items:center;gap:3px;color:var(--muted)} .repm svg{width:12px;height:12px}
.psearch{display:flex;align-items:center;gap:8px;background:var(--beige);border-radius:14px;padding:0 6px 0 14px;min-height:46px;color:var(--faint)}
.psearch svg{width:18px;height:18px;flex:none}
.psearch input{flex:1;min-width:0;border:0;background:transparent;font-size:16px;color:var(--ink);padding:10px 0;outline:none;-webkit-appearance:none;appearance:none}
.psearch input::-webkit-search-cancel-button{display:none}
.psearch:focus-within{background:var(--card);box-shadow:0 0 0 1.5px var(--pri)}
.pclear{border:0;background:transparent;color:var(--faint);width:36px;height:36px;display:grid;place-items:center;border-radius:10px}
.pclear.off{visibility:hidden}
.tbar{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:5}
.mseg{display:inline-flex;gap:2px;background:var(--beige);border-radius:12px;padding:3px}
.mseg button{border:0;background:transparent;min-height:36px;padding:0 14px;border-radius:9px;font-size:14px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.mseg button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(20,24,27,.12)}
.mseg .n{font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}
.mseg button.on .n{color:var(--pri)}
.gwrap{position:relative}
.gbtn{border:0;background:transparent;min-height:40px;padding:0 4px 0 8px;border-radius:10px;font-size:14px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.gbtn svg{width:18px;height:18px} .gbtn span{color:var(--ink)}
.gbtn.on{background:var(--beige)}
.gmenu{position:absolute;right:0;top:calc(100% + 6px);min-width:196px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 32px rgba(20,24,27,.16);padding:6px;animation:gmIn .14s ease-out;transform-origin:top right}
.gmh{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:8px 12px 4px}
.gmenu button{display:flex;width:100%;align-items:center;justify-content:space-between;border:0;background:transparent;min-height:44px;padding:0 12px;border-radius:10px;font-size:15px;color:var(--ink);text-align:left}
.gmenu button:active{background:var(--beige)}
.gmenu button svg{width:18px;height:18px;color:var(--pri)}
@keyframes gmIn{from{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:none}}
.foldh{border:0;background:transparent;padding:6px 0;min-height:44px;display:flex;align-items:center;gap:8px;font-size:15px;color:var(--muted);width:100%}
.foldh .n{color:var(--faint)} .foldh svg{width:16px;height:16px;color:var(--faint);transition:transform .2s;margin-left:auto}
.fold.open .foldh svg{transform:rotate(90deg)}
.addtask{display:flex;align-items:center;gap:14px;width:100%;border:0;border-radius:18px;background:var(--pri);color:var(--pri-ink);padding:12px 18px 12px 12px;min-height:60px;text-align:left;box-shadow:0 6px 18px rgba(43,106,143,.22)}
.addtask:active{transform:scale(.985)}
.addtask .pl{width:36px;height:36px;border-radius:12px;background:rgba(255,255,255,.18);display:grid;place-items:center;flex:none}
.addtask .pl svg{width:20px;height:20px}
.addtask b{display:block;font-size:16px;font-weight:600} .addtask small{display:block;font-size:12.5px;opacity:.8;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.creply{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:16px;padding:8px 8px 8px 14px;box-shadow:var(--shadow);font-size:13px;color:var(--muted)}
.creply span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid var(--pri);padding-left:8px}
.creply button{border:0;background:transparent;color:var(--muted);font-size:20px;line-height:1;padding:4px 8px}
.newer{display:flex;justify-content:center;margin:6px 0}
.frow .icon{background:var(--line2);color:var(--muted);width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.frow .icon svg{width:20px;height:20px} a.frow{color:inherit;text-decoration:none}
.btn svg{width:20px;height:20px;flex:none}
body[data-view="proj"] .floatbar{display:none}
/* project sections: the everyday three and More */
.seg.psw{position:sticky;top:-40px;z-index:6}
/* (v399) the project header */
.pjhd{position:sticky;top:-40px;z-index:7;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:-8px 0 -10px;padding:8px 0}
.pjhd,.pjhd *{text-align:center}
@media (max-width:860px){ body[data-view="proj"] .main{padding-top:calc(var(--sat, env(safe-area-inset-top, 0px)) + 78px)} .pjhd{position:fixed;top:0;left:0;right:0;margin:0;padding:calc(var(--sat, env(safe-area-inset-top, 0px)) + 6px) 12px 14px;background:none}
  /* (v402) like Messages: no bar behind the header. Only the strip under the status bar is frosted, fading out by the
     middle of the pills; the chat shows clearly behind the title, and the Back pill, the name and the section pill are each
     their own small piece of glass */
  /* (v403) one smooth fade of the page color under the status bar, no blur layers: blur stacked in steps showed lines on
     iPhone. The curve eases out so there's no point where it visibly starts or stops */
  .pjhd::before{content:"";position:absolute;left:0;right:0;top:0;height:calc(var(--sat, env(safe-area-inset-top, 0px)) + 44px);z-index:-1;pointer-events:none;
    background:linear-gradient(to bottom, color-mix(in srgb, var(--bg) 96%, transparent) 0%, color-mix(in srgb, var(--bg) 90%, transparent) 30%, color-mix(in srgb, var(--bg) 74%, transparent) 50%, color-mix(in srgb, var(--bg) 50%, transparent) 66%, color-mix(in srgb, var(--bg) 26%, transparent) 80%, color-mix(in srgb, var(--bg) 9%, transparent) 91%, color-mix(in srgb, var(--bg) 0%, transparent) 100%)}
  .pjfx,.pjhd::after{display:none}
  .pjbk,.pjsec,.pjnm b{background:color-mix(in srgb, var(--card) 70%, transparent);-webkit-backdrop-filter:blur(16px) saturate(1.6);backdrop-filter:blur(16px) saturate(1.6);box-shadow:0 2px 10px rgba(0,0,0,.08),0 0 0 .5px var(--line)}
  .pjnm{gap:0}.pjnm b{margin-top:-7px;height:30px;padding:0 9px 0 12px;border-radius:999px;font-size:14px;position:relative;z-index:1}
  .pjhd{align-items:start}.pjbk,.pjsec{margin-top:12px} }
@media (min-width:861px){ .pjfx{display:none} }
.pjbk,.pjsec{display:inline-flex;align-items:center;gap:3px;height:36px;border:0;border-radius:999px;background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.08),0 0 0 1px var(--line);font:inherit;font-size:15px;cursor:pointer;touch-action:manipulation;transition:transform .12s}
.pjbk:active,.pjsec:active,.pjnm:active{transform:scale(.95)}
.pjbk{justify-self:start;padding:0 13px 0 7px;color:var(--pri);font-weight:500}.pjbk svg{width:20px;height:20px}
.pjsec{justify-self:end;padding:0 10px 0 11px;gap:5px;color:var(--ink);font-weight:500;max-width:100%}.pjsec svg{width:16px;height:16px;color:var(--muted);flex:none}.pjsec span{white-space:nowrap}
.pjnm{display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;padding:0;font:inherit;color:var(--ink);cursor:pointer;min-width:0;max-width:52vw}
.pjnm b{display:flex;align-items:center;gap:1px;font-size:13px;font-weight:600;max-width:100%}.pjnm b span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pjnm b svg{width:13px;height:13px;color:var(--muted);flex:none}
.pjic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;flex:none}.pjic.big{width:50px;height:50px;border-radius:15px;font-size:16px}
#pjpeek{position:fixed;inset:0;z-index:60}#pjpeek .pjscrim{position:absolute;inset:0;background:rgba(20,28,34,.14);opacity:0;transition:opacity .16s}#pjpeek.on .pjscrim{opacity:1}
.pjcard{position:absolute;left:12px;right:12px;max-width:440px;margin-left:auto;background:var(--card);border-radius:22px;box-shadow:0 14px 40px rgba(0,0,0,.22);padding:10px;display:flex;flex-direction:column;gap:8px;transform-origin:top right;transform:scale(.6) translateY(-14px);opacity:0;transition:transform .2s cubic-bezier(.2,.9,.3,1.15),opacity .14s}
#pjpeek.on .pjcard{transform:none;opacity:1}
.pjtiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pjt{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-height:78px;border:0;border-radius:16px;background:var(--bg);padding:11px 12px;font:inherit;color:var(--ink);text-align:left;cursor:pointer;min-width:0}
.pjt.on{background:var(--pri-soft);box-shadow:inset 0 0 0 1.5px var(--pri)}.pjt b{display:flex;align-items:center;gap:7px;font-size:15px;font-weight:600}.pjt b svg{width:17px;height:17px;color:var(--pri);flex:none}.pjt b em{margin-left:auto;font-style:normal;font-size:12.5px;color:var(--muted);font-weight:600}
.pjt small{font-size:12.5px;color:var(--muted);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pjt small.late{color:var(--red)}
.pjmore{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:4px 4px 2px}.pjml{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--muted);margin-right:2px}.pjml svg{width:16px;height:16px}.pjmore .pill{min-height:34px;padding:0 12px}
.pjch{display:flex;align-items:center;gap:12px}.pjch,.pjch *{text-align:left}.pjch b{display:block;font-size:19px}.pjch small{font-size:13.5px;color:var(--muted)}
.pjtags{display:flex;gap:6px;flex-wrap:wrap}.pjtags span{font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--line2);color:var(--ink)}.pjtags span.o{background:rgba(233,127,44,.14);color:#B8561C}.pjtags span.g{background:rgba(47,99,70,.12);color:#2F6346}
.pjcd{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.pjcd h4{margin:0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}
.pjbar{height:8px;border-radius:4px;background:var(--line2);overflow:hidden}.pjbar i{display:block;height:100%;background:var(--pri)}
.pjrw{display:flex;justify-content:space-between;align-items:center;gap:10px;font:inherit;font-size:14px;border:0;background:none;padding:0;color:var(--ink);text-align:left;width:100%}.pjrw span{color:var(--muted);flex:none}.pjrw span.late{color:var(--red)}button.pjrw{cursor:pointer}
.pjppl{display:flex;flex-direction:column;gap:8px}.pjppl div{display:flex;align-items:center;gap:10px;font-size:14.5px}
.pjqa{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px}.pjqa > *{display:flex;flex-direction:column;align-items:center;gap:5px;font:inherit;font-size:12.5px;color:var(--ink);padding:10px 0;border-radius:14px;background:var(--card);border:1px solid var(--line);text-decoration:none;cursor:pointer}.pjqa svg{width:20px;height:20px;color:var(--pri)}   /* flush with the top of the screen once it sticks */
@media (max-width:860px){ .seg.psw{top:-22px} }
.title.two{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
.dbwrap{display:flex;gap:6px;align-items:stretch} .dbwrap .dbline{flex:1}
.dbx{flex:none;width:40px;border:0;border-radius:12px;background:var(--pri-soft);color:var(--muted);display:grid;place-items:center;padding:0} .dbx svg{width:14px;height:14px}
.icon.ptrash{background:transparent;color:var(--muted);width:34px;margin-right:-4px} .icon.ptrash svg{width:19px;height:19px}
.btn.ibmore{min-width:44px;padding:0 12px;font-size:18px;letter-spacing:1px}
.chart button{flex-direction:column;align-items:center;justify-content:flex-end;gap:4px} .chart .cv{font-size:11px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.chart button.dim .cv{opacity:.5}
.psw > .pill{white-space:nowrap} .psw .sgdot{margin-left:4px} .psw .sgdot svg{width:13px;height:13px}

.psw .pmore{flex:1;display:flex;position:relative}
.psw .pmore > .pill{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:3px;position:relative}
.psw .pmore > .pill svg{width:15px;height:15px;opacity:.75;flex:none}
.psw .pmdot{position:absolute;top:8px;right:10px;width:7px;height:7px;border-radius:50%;background:var(--pri)}
.pmenu{z-index:20;min-width:210px}
.pmenu .pmmi{display:inline-flex;align-items:center;gap:12px}.pmenu .pmmi svg{width:19px;height:19px;color:var(--pri)}
.pmenu .pmn{font-size:13px;color:var(--pri)}
/* Files */
.flsec{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:22px 2px 8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.flsec:first-child{margin-top:4px}
.flsec b{font-weight:500;letter-spacing:0;text-transform:none;font-size:13.5px;color:var(--pri);text-align:right}
.flcard{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.flrow{width:100%;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer;min-height:66px;padding:10px 14px 10px 12px;gap:12px}
.flrow + .flrow{border-top:1px solid var(--line2)}
.flrow > svg{width:18px;height:18px;color:var(--faint);flex:none}
.flrow .t{display:block;font-size:15.5px}.flrow .m{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.flth{width:40px;height:46px;border-radius:7px;flex:none;display:grid;place-items:center;background:var(--line2);color:var(--muted)}
.flth b{font-size:10px;font-weight:600;letter-spacing:.06em}
.flth svg{width:20px;height:20px}
.flth.k-pdf{background:var(--red-soft);color:var(--red)}.flth.k-gdoc{background:var(--pri-soft);color:var(--pri)}.flth.k-img{background:var(--pop-ok);color:var(--pop-ok-ink)}
.flth.k-dir{height:40px;border-radius:12px;background:var(--beige);color:var(--muted)}
.flext{font-size:13px;color:var(--pri);flex:none}
.flnone{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;color:var(--muted);font-size:14.5px;line-height:1.45}
.flall{border:0;background:none;color:var(--pri);font:inherit;font-size:13.5px;letter-spacing:0;text-transform:none;padding:4px 0}
.flphotos{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.flph{aspect-ratio:1;border:0;padding:0;border-radius:12px;overflow:hidden;background:var(--line2);color:var(--faint);display:grid;place-items:center;cursor:pointer}
.flph img{width:100%;height:100%;object-fit:cover;display:block}.flph svg{width:22px;height:22px}
.fldrive{display:block;text-align:center;margin:26px 0 6px;font-size:13.5px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.flback{display:inline-flex;align-items:center;gap:2px;border:0;background:none;color:var(--pri);font:inherit;font-size:15px;padding:6px 0;margin:-2px 0 2px -4px;min-height:40px}
.flback svg{width:20px;height:20px}
.flh{font-size:22px;font-weight:600;letter-spacing:-.01em;margin:0 0 12px;text-wrap:balance}
/* Email */
.pmchips{flex:none;display:flex;gap:8px;overflow-x:auto;margin:2px -20px 6px;padding:2px 20px 4px;scrollbar-width:none}
.pmchips::-webkit-scrollbar{display:none}
.pmchip{flex:none;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:0 14px;min-height:36px;font:inherit;font-size:14px}
.pmchip.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.pmlist{display:flex;flex-direction:column}
.pmrow{display:flex;gap:10px;width:100%;border:0;border-top:1px solid var(--line);background:none;text-align:left;font:inherit;color:inherit;padding:13px 2px 13px 0;cursor:pointer}
.pmrow:first-child{border-top:0}
.pmrow .ud{width:9px;flex:none;padding-top:7px}.pmrow.unread .ud i{display:block;width:9px;height:9px;border-radius:50%;background:var(--pri)}
.pmrow .l1{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:15.5px}
.pmrow .l1 b{font-weight:500;min-width:0}.pmrow.unread .l1 b,.pmrow.unread .sj{font-weight:600}
.pmrow .when{font-size:13px;color:var(--muted);flex:none}
.pmrow .pmn2{font-size:12.5px;color:var(--faint);font-weight:400}
.pmrow .sj{display:block;font-size:14.5px;margin-top:2px}
.pmrow .sn{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13.5px;color:var(--muted);line-height:1.38;margin-top:2px}
.pmatts{display:flex;gap:6px;margin-top:7px;min-width:0}
.pmatt{display:inline-flex;align-items:center;gap:4px;max-width:58%;border:1px solid var(--line);border-radius:8px;padding:3px 8px;font-size:12px;color:var(--muted)}
.pmatt svg{width:13px;height:13px;flex:none}.pmatt.more{flex:none}
.pmsubj{font-size:21px;font-weight:600;letter-spacing:-.01em;line-height:1.25;margin:0;text-wrap:balance}
.pmmeta{font-size:13px;color:var(--muted);margin:6px 0 14px}
.pmolder{font-size:13px;color:var(--muted);text-align:center;margin:0 0 10px}
.pmmsg{position:relative;background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:13px 15px 14px;margin-bottom:10px}
.pmmsg.fold{padding:11px 15px}
.pmfold{position:absolute;inset:0;border:0;background:transparent;border-radius:16px;cursor:pointer;z-index:1}
.pmmsg .h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:15px}.pmmsg .h b{font-weight:600;min-width:0}.pmmsg .h span{font-size:13px;color:var(--muted);flex:none}
.pmmsg .to{font-size:12.5px;color:var(--muted);margin-top:2px}
.pmmsg .tx{font-size:15px;line-height:1.5;margin-top:10px;overflow-wrap:anywhere}
.pmmsg .sn{font-size:13.5px;color:var(--muted);margin-top:3px}
.pmfiles{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.pmfile{display:flex;align-items:center;gap:10px;width:100%;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:8px 10px;font:inherit;color:inherit;text-align:left;cursor:pointer}
.pmfile .flth{width:32px;height:38px}.pmfile .grow{font-size:14.5px}.pmfile small{display:block;font-size:12px;color:var(--muted)}
.pmfile > svg{width:17px;height:17px;color:var(--faint);flex:none}.pmfile.off{cursor:default;opacity:.75}
.pmbtns{display:flex;gap:8px;margin-top:6px}.pmbtns .btn{flex:1;justify-content:center;text-decoration:none}
/* the viewer's tools for a project file */
#pdfv .pvacts{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:10px 8px calc(10px + env(safe-area-inset-bottom, 0px));background:var(--card);border-top:1px solid var(--line);flex:none}
#pdfv .pvacts button{display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;font:inherit;font-size:12px;line-height:1.2;color:var(--ink);text-align:center;padding:2px 0;cursor:pointer}
#pdfv .pvacts .ic{width:46px;height:46px;border-radius:15px;background:var(--pri-soft);color:var(--pri);display:grid;place-items:center}
#pdfv .pvacts .ic.p{background:var(--pri);color:var(--pri-ink)}
#pdfv .pvacts svg{width:21px;height:21px}
#pdfv .pvimg img{display:block;width:100%;height:auto}
#pdfv .pvimg{background:transparent;box-shadow:none}
body.pvsend .scrim{z-index:52}
/* sending a file */
.fsto{display:flex;gap:10px;align-items:flex-start;border-bottom:1px solid var(--line);padding:6px 0 10px}
.fsto .lab{color:var(--muted);font-size:15px;padding-top:8px;flex:none;width:28px}
.fsto .chips{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0;align-items:center}
.fsto .tok{display:inline-flex;align-items:center;gap:2px;background:var(--pri-soft);color:var(--pri);border-radius:999px;padding:4px 4px 4px 12px;font-size:14.5px;max-width:100%}
.fsto .tok button{border:0;background:none;color:inherit;font-size:17px;line-height:1;width:26px;height:26px;border-radius:50%;cursor:pointer}
.fsto input{flex:1;min-width:120px;border:0;background:transparent;font:inherit;font-size:16px;padding:8px 0;color:var(--ink);outline:none}
.fssug{flex:none;display:flex;gap:8px;overflow-x:auto;margin:-4px -20px 0;padding:0 20px 2px;scrollbar-width:none}.fssug::-webkit-scrollbar{display:none}
.fssug button{flex:none;display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:7px 12px;font:inherit;font-size:14px;color:var(--ink);text-align:left}
.fssug small{font-size:12px;color:var(--muted)}
.pdfatt2{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:9px 12px;background:var(--card)}
.pdfatt2 .flth{width:32px;height:38px}.pdfatt2 .grow{font-size:14.5px}.pdfatt2 small{display:block;font-size:12.5px;color:var(--muted)}
/* payments open */
.payrow[data-payd]{cursor:pointer}
.payrow[data-payd]:active{background:var(--line2)}
.invic.pay{background:var(--pri-soft);color:var(--pri)}
/* rough times: project and edit */
.estmv{display:flex;gap:8px;align-items:center;margin:-2px 0 2px}
.estpj{flex:1;min-width:0;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:0 12px;min-height:38px;font:inherit;font-size:14px;cursor:pointer}
.estpj svg{width:16px;height:16px;flex:none;color:var(--muted)}.estpj svg:last-child{width:15px;height:15px}
.estpj .clip{flex:1;min-width:0;text-align:left}
.estedit{flex:none;display:inline-flex;align-items:center;gap:6px;border:0;background:var(--pri-soft);color:var(--pri);border-radius:999px;padding:0 14px;min-height:38px;font:inherit;font-size:14px;cursor:pointer}
.estedit svg{width:16px;height:16px}
/* content ideas */
.ideacard{position:relative;display:flex;align-items:stretch}
.ideacard .dbrow{flex:1;min-width:0}
.ideaic{width:40px;height:40px;border-radius:12px;background:var(--amber-soft);color:var(--amber);display:grid;place-items:center;flex:none}.ideaic svg{width:21px;height:21px}
.ideaadd{flex:none;border:0;border-left:1px solid var(--line2);background:transparent;color:var(--pri);font:inherit;font-size:14.5px;font-weight:500;padding:0 16px;cursor:pointer}
.ideanewb{justify-content:center;gap:8px}.ideanewb svg{width:17px;height:17px}
.ideaseg .pill{font-size:13px;padding:0 4px;white-space:nowrap}
.ideas{display:flex;flex-direction:column;gap:10px}
.idea{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:4px 14px 12px}
.ideah{display:flex;flex-direction:column;gap:3px;width:100%;border:0;background:none;text-align:left;font:inherit;color:inherit;padding:10px 0 4px;cursor:pointer}
.ideah .t{font-size:16px;font-weight:600;line-height:1.3}.ideah .m{font-size:13px;color:var(--muted)}
.ideah .n{font-size:14.5px;line-height:1.45;margin-top:5px;white-space:pre-wrap;overflow-wrap:anywhere}
.ideah .n.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.idreply{font-size:14px;line-height:1.4;background:var(--line2);border-radius:10px;padding:8px 10px;margin:6px 0 2px}
.idnote{margin-top:8px}
.idacts{justify-content:flex-end;margin-top:8px}
/* usage */
.uxtiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.uxtiles div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 8px;text-align:center;display:flex;flex-direction:column;gap:2px}
.uxtiles b{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.uxtiles span{font-size:12px;color:var(--muted)}
.uxsec h2{font-size:17px;margin:6px 0 0}
.uxrows{display:flex;flex-direction:column;gap:2px}
.uxrow{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(40px,1fr) minmax(0,auto);gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line2);font-size:13.5px}
.uxrow .k{min-width:0}.uxrow .v{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:48vw}
.sbody:has(.uxroot){overflow-x:hidden;overscroll-behavior-x:none}.uxchips span,.uxflow .m,.uxflow .t b{overflow-wrap:anywhere}.uxflow,.uxsec{min-width:0}
.uxbar{height:6px;border-radius:3px;background:var(--line2);overflow:hidden}.uxbar i{display:block;height:100%;background:var(--pri);border-radius:3px}
.uxchips{display:flex;flex-wrap:wrap;gap:6px}
.uxflows{display:flex;flex-direction:column;gap:8px}
.uxflow{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:5px}
.uxflow .t{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:15px}.uxflow .t b{font-weight:600;min-width:0}
.uxflow .m{font-size:13px;color:var(--muted);line-height:1.4}
.uxv{flex:none;font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px}.uxv.ok{background:var(--pop-ok);color:var(--pop-ok-ink)}.uxv.warn{background:var(--amber-soft);color:var(--amber)}.uxv.bad{background:var(--red-soft);color:var(--red)}.uxchips span{font-size:12.5px;border:1px solid var(--line);border-radius:999px;padding:3px 9px;color:var(--muted)}
/* moving time to another project */
.tmproj{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:36px;padding:2px 8px 2px 0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:19px;font-weight:500;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}
.tmproj span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tmproj svg{width:16px;height:16px;flex:none;opacity:.55}
.tmproj:active{opacity:.7}
.mvfrom{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius);background:var(--line2)}
.mvfrom .eyebrow{display:block;margin-bottom:2px}
.mvfrom b{display:block;font-size:16px;font-weight:600}
.mvfrom .mono{font-size:15px;flex:none}
.mvacts{justify-content:space-between;margin-top:4px}
.mvacts .btn{min-height:48px}
.lg1card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:14px;display:flex;flex-direction:column;gap:12px}.lg1card,.lg1card *,.lg1pts,.lg1pts *{text-align:left}
.lg1top{display:flex;justify-content:space-between;align-items:center;gap:10px}.lg1dt{position:relative;display:inline-flex;align-items:center;gap:3px;font-size:13.5px;font-weight:600;color:var(--pri);background:var(--pri-soft);border-radius:999px;padding:6px 9px 6px 11px;flex:none;cursor:pointer}.lg1dt svg{width:14px;height:14px}.lg1dt input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;border:0;padding:0;font-size:16px;cursor:pointer}
.lg1pj{border:0;background:none;padding:0;font:inherit;font-size:15px;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0;max-width:65%;cursor:pointer}.lg1pj span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.lg1pj svg{width:15px;height:15px;color:var(--muted);flex:none}
.lg1row{display:flex;align-items:center;gap:12px}.lg1tot{border:0;background:none;padding:0;font:inherit;font-size:clamp(46px,14vw,58px);font-weight:300;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;cursor:pointer}.lg1tot.bump{animation:tsbump .18s ease-out}.lg1dec{font-size:13px;color:var(--muted);margin-top:5px}
.lg1sb{display:flex;height:8px;border-radius:4px;overflow:hidden;gap:2px}.lg1sb i{display:block;min-width:3px;transition:flex-grow .2s}
.lg1pts{display:flex;flex-direction:column;gap:8px}#lgpp{position:fixed;inset:0;z-index:250}#lgpp .lgppscrim{position:absolute;inset:0}
.lgppb{position:fixed;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--card);border-radius:18px;box-shadow:0 14px 44px rgba(0,0,0,.24),0 0 0 .5px var(--line);padding:6px;transform:scale(.85);opacity:0;transition:transform .2s cubic-bezier(.2,1.25,.4,1),opacity .14s}#lgpp.on .lgppb{transform:none;opacity:1}
.lgppb,.lgppb *{text-align:left}.sheet.lgtr{transition:min-height .34s cubic-bezier(.22,.9,.24,1)}.sheet.lgtall{max-height:none}
.lgps{position:sticky;top:-6px;z-index:1;display:flex;align-items:center;gap:8px;margin:-6px -6px 4px;padding:10px 12px;background:var(--card);border-bottom:1px solid var(--line2)}.lgps svg{width:17px;height:17px;color:var(--muted);flex:none}.lgps input{flex:1;min-width:0;border:0;background:var(--line2);border-radius:10px;padding:8px 10px;font:inherit;font-size:16px;color:var(--ink);outline:none}.lgps input::-webkit-search-cancel-button{-webkit-appearance:none}.lgpnone{padding:14px 10px;font-size:14px;color:var(--muted)}
.lgpph{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:10px 10px 4px}
.lgpo{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;border-radius:12px;padding:8px 10px;font:inherit;color:var(--ink);cursor:pointer}.lgpo:active,.lgpo.on{background:var(--pri-soft)}
.lgpo .t{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:700;flex:none}.lgpo .t{text-align:center}
.lgpo .n{flex:1;min-width:0;display:flex;flex-direction:column}.lgpo b{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lgpo small{font-size:12px;color:var(--muted)}.lgpo svg{width:16px;height:16px;color:var(--pri);flex:none}
.lg1sw{position:relative;border-radius:14px;background:none;touch-action:pan-y;overflow:hidden}.lg1sw.swiping,.lg1sw.open{background:var(--line2)}.lg1sw:not(.swiping):not(.open) .lg1del{visibility:hidden}.lg1sw .lg1pt{touch-action:pan-y}.lg1del{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:6px;height:42px;padding:0 13px;border:0;border-radius:12px;background:var(--red);color:#fff;font:inherit;font-size:14px;font-weight:600;cursor:pointer;opacity:.85;transition:opacity .15s,transform .15s}.lg1del svg{width:17px;height:17px}.lg1sw.arm .lg1del{opacity:1}.lg1sw:not([data-lgsw]){background:none}.lg1sw:not([data-lgsw]) .lg1del{display:none}
.lg1pt{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 14px;border-radius:14px;border:1px solid var(--line);background:var(--card);position:relative;overflow:hidden;cursor:pointer;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.lg1pt.one{cursor:default}.lg1pt.at{border-color:var(--pri);background:var(--pri-soft)}.lg1st{position:absolute;left:0;top:0;bottom:0;width:4px}
.lg1ck{width:24px;height:24px;border-radius:50%;border:1.8px solid var(--faint);flex:none;display:grid;place-items:center;color:#fff;background:none;padding:0}.lg1ck.on{background:#2F6346;border-color:#2F6346}.lg1ck svg{width:13px;height:13px}button.lg1ck{cursor:pointer}
.lg1g{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lg1g b{font-size:14.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lg1g small{font-size:12.5px;color:var(--muted)}
.lg1h{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none}.lg1h em{font-style:normal;font-size:15px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.lg1pt.at .lg1h em{color:var(--pri)}.lg1h small{font-size:11px;font-weight:600;color:var(--pri);white-space:nowrap}
.lg1bill{display:flex;gap:6px;flex-wrap:wrap}.lg1bill .pill{min-height:36px;padding:0 13px}
.lg1cap{font-size:12px;color:var(--muted);margin:-6px 2px 0}
.lg1note{width:100%;box-sizing:border-box;border:1px dashed var(--line);border-radius:14px;padding:11px 12px;font:inherit;font-size:16px;background:transparent;color:var(--ink);resize:none;min-height:46px;field-sizing:content;max-height:160px}
.lg1go{flex-direction:column;gap:1px;height:auto;min-height:56px;padding:9px 18px}.lg1go small{display:block;font-size:12px;font-weight:400;opacity:.85}
.lg1away{border:0;background:none;font:inherit;font-size:14px;color:var(--red);padding:6px 10px;align-self:center;cursor:pointer}
.lgproj{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
/* uploading */
.flin{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.flfab{position:fixed;right:20px;bottom:calc(22px + env(safe-area-inset-bottom, 0px));z-index:15;display:inline-flex;align-items:center;gap:8px;min-height:54px;padding:0 22px 0 18px;border:0;border-radius:999px;background:var(--pri);color:var(--pri-ink);font:inherit;font-size:16px;font-weight:500;box-shadow:0 8px 22px rgba(27,40,48,.22),0 2px 6px rgba(27,40,48,.12);cursor:pointer;-webkit-tap-highlight-color:transparent}
.flfab:active{transform:scale(.97)}
.flfab svg{width:20px;height:20px}
.flfabpad{height:84px}
.flpick{cursor:pointer;min-height:62px}
#layer .sbody label.item.flpick{flex-direction:row;align-items:center;gap:12px;padding:10px 14px 10px 12px;margin:0;font-size:inherit;color:var(--ink)}
.sbody .flcard,.sbody .flsec{flex:none}
.sbody .flsec{margin:6px 2px -8px}
.flpick > svg{width:18px;height:18px;color:var(--faint);flex:none}
.flpick.flsug .flth{background:var(--pri-soft);color:var(--pri)}
.flpick.flsug .m{color:var(--pri)}
.flup{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:13px 15px 14px;margin:0 0 14px;display:flex;flex-direction:column;gap:10px}
.flupt{display:flex;align-items:center;gap:12px}
.flupt b{display:block;font-size:15.5px;font-weight:600}
.flupt .clip{display:block;font-size:13px;color:var(--muted);margin-top:1px}
.flupic{width:38px;height:38px;border-radius:12px;flex:none;display:grid;place-items:center;background:var(--pri-soft);color:var(--pri)}
.flupic svg{width:19px;height:19px}
.flupic.spin svg{animation:flupgo 1.3s ease-in-out infinite}
.flupic.ok{background:var(--pop-ok);color:var(--pop-ok-ink)}
.flupp{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}
.flupbar{height:6px;border-radius:3px;background:var(--line2);overflow:hidden}
.flupbar i{display:block;height:100%;border-radius:3px;background:var(--pri);transition:width .4s ease}
.flupf{display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.4;color:var(--ink)}
.flupf b{font-weight:600}
.flupf .chips{justify-content:flex-end;margin-top:4px}
@keyframes flupgo{0%,100%{transform:translateY(1px)}50%{transform:translateY(-2px)}}
@media (prefers-reduced-motion: reduce){.flupic.spin svg{animation:none}.flupbar i{transition:none}}
.flpick .flth.k-img{height:40px;border-radius:12px}
#layer .sbody label.item.flpick.flkid{min-height:50px;padding-left:34px}
.flpick.flkid .flth{width:30px;height:30px;border-radius:9px}
.flpick.flkid .flth svg{width:15px;height:15px}
.flpick.flkid .t{font-size:15px}
/* the Uploads sheet */
.flup{position:relative}
.flupgo{position:absolute;inset:0;border:0;background:transparent;border-radius:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.flupt > svg{width:16px;height:16px;color:var(--faint);flex:none}
.flupf{position:relative;z-index:1}
.flupic.bad{background:var(--pop-bad);color:var(--pop-bad-ink)}
.upqhd{display:flex;flex-direction:column;gap:12px;flex:none}
.upqtop{display:flex;align-items:center;gap:12px}
.upqtop b{display:block;font-size:17px;font-weight:600}
.upqtop .clip{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}
.upqhd .flupbar{height:8px;border-radius:4px}
.upqnote{font-size:13px;line-height:1.45;color:var(--muted)}
.upqlist{flex:none}
.upqrow{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 12px;min-height:64px;border-bottom:1px solid var(--line2)}
.upqrow:last-child{border-bottom:0}
.upqth{width:44px;height:44px;border-radius:10px;flex:none;display:grid;place-items:center;overflow:hidden;position:relative;background:var(--line2);color:var(--muted)}
.upqth.im{background:var(--pop-ok);color:var(--pop-ok-ink)}
.upqth b{font-size:10px;font-weight:600;letter-spacing:.06em}
.upqth svg{width:18px;height:18px}
.upqth img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.upqrow .t{display:block;font-size:15px}
.upqrow .m{display:block;font-size:12.5px;color:var(--muted);margin-top:1px;font-variant-numeric:tabular-nums}
.upqbar{display:block;height:3px;border-radius:2px;background:var(--line2);overflow:hidden;margin-top:6px}
.upqbar i{display:block;height:100%;background:var(--pri);border-radius:2px;transition:width .4s ease}
.upqrow.st-wait .upqbar,.upqrow.st-fail .upqbar,.upqrow.st-done .upqbar{visibility:hidden}
.upqrow.st-wait .t{color:var(--muted)}
.upqrow.st-fail .m{color:var(--red);white-space:normal}
.upqst{width:22px;height:22px;flex:none;display:grid;place-items:center;color:var(--faint)}
.upqst svg{width:18px;height:18px}
.upqst i{width:8px;height:8px;border-radius:50%;background:var(--line)}
.upqrow.st-up .upqst i{width:16px;height:16px;background:none;border:2px solid var(--pri-soft);border-top-color:var(--pri);animation:upqspin .8s linear infinite}
.upqrow.st-done .upqst{color:var(--pop-ok-ink)}
.upqrow.st-fail .upqst{color:var(--red)}
.upqacts{margin-top:auto !important;position:sticky;bottom:calc(-24px - env(safe-area-inset-bottom));margin:0 -20px calc(-24px - env(safe-area-inset-bottom));padding:12px 20px calc(14px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line2);display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none;z-index:2}
.upqacts .upqr{display:flex;gap:10px}
.upqacts .btn{min-height:48px}
.upqacts label.btn{position:relative;cursor:pointer}
@keyframes upqspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.upqrow.st-up .upqst i{animation:none}.upqbar i{transition:none}}
/* People */
  .pp-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
  .pp-count{font-size:14px;color:var(--muted);padding-bottom:6px}
  .pp-seg .pill{font-size:13.5px}
  .pp-same{display:flex;align-items:center;gap:12px;background:var(--amber-soft);color:var(--ink);border-radius:var(--radius);padding:12px 14px}
  .pp-same .ic{width:36px;height:36px;border-radius:12px;background:var(--card);color:var(--amber);display:grid;place-items:center;flex:none}.pp-same .ic svg{width:20px;height:20px}
  .pp-same b{font-weight:600}.pp-same .sub{font-size:13px;margin-top:1px}
  .pp-same .go{color:var(--amber);font-weight:600;font-size:14px;flex:none}
  .pp-h{display:flex;align-items:baseline;justify-content:space-between;margin:6px 2px -4px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
  .pp-h b{font-weight:500;letter-spacing:0;text-transform:none;font-size:13px;color:var(--faint)}
  .pp-row{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:70px}
  .pp-row + .pp-row{border-top:1px solid var(--line2)}
  .pp-row .av{width:42px;height:42px}
  .pp-row > svg{width:18px;height:18px;color:var(--faint);flex:none}
  .pp-row .nm{font-size:16px;line-height:1.3}
  .pp-row .mt{font-size:13px;color:var(--muted);margin-top:2px}
  .pp-row .rt{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
  .pp-row .when{font-size:12.5px;color:var(--faint)}
  .pp-tag{font-size:11.5px;font-weight:600;letter-spacing:.02em;border-radius:999px;padding:2px 8px;background:var(--line2);color:var(--muted)}
  .pp-tag.c{background:var(--pri-soft);color:var(--pri-dark)} .pp-tag.k{background:var(--pop-ok);color:var(--pop-ok-ink)} .pp-tag.g{background:var(--beige);color:var(--muted)} .pp-tag.p{background:var(--amber-soft);color:var(--amber)}
  .pp-wait{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--amber);font-weight:500}.pp-wait svg{width:13px;height:13px}
  .av.c{background:var(--pri-soft);color:var(--pri-dark)} .av.k{background:var(--pop-ok);color:var(--pop-ok-ink)} .av.g{background:var(--beige);color:var(--muted)}
  /* profile */
  .pp-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:6px 0 2px}
  .pp-hero .av{width:76px;height:76px;font-size:24px;font-weight:600}
  .pp-hero h1{font-size:28px;margin:6px 0 0}
  .pp-hero .sub{font-size:14.5px}
  .pp-tags{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:2px}
  .pp-acts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
  .pp-acts button{display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:var(--card);box-shadow:var(--shadow);border-radius:16px;padding:12px 4px 10px;font:inherit;font-size:12.5px;color:var(--ink)}
  .pp-acts .ic{width:40px;height:40px;border-radius:13px;background:var(--pri-soft);color:var(--pri);display:grid;place-items:center}.pp-acts .ic svg{width:20px;height:20px}
  .pp-acts .p .ic{background:var(--pri);color:var(--pri-ink)}
  #ppctx{position:fixed;inset:0;z-index:90;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
  #ppctx .pcx-menu .back{border-bottom:0}#ppctx .pcx-menu .back + .pcx-find{margin-top:2px}
  #ppctx .pcx-bg{position:absolute;inset:0;background:var(--scrim);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);opacity:0;transition:opacity .22s ease}
  #ppctx.on .pcx-bg{opacity:1}
  #ppctx .pcx-pill{position:absolute;box-sizing:border-box;display:flex;align-items:center;gap:9px;border:0;font:inherit;color:var(--ink);text-align:left;background:var(--card);border-radius:999px;padding:6px 14px 6px 6px;box-shadow:var(--shadow);transition:transform .34s cubic-bezier(.2,1.5,.4,1),box-shadow .25s ease;-webkit-tap-highlight-color:transparent}
  #ppctx .pcx-pill .av{width:34px;height:34px;font-size:12px}
  #ppctx .pcx-pill > span:last-child{display:flex;flex-direction:column;line-height:1.2}#ppctx .pcx-pill b{font-size:14px;font-weight:500;white-space:nowrap}#ppctx .pcx-pill small{font-size:11.5px;color:var(--muted);white-space:nowrap}
  #ppctx.on .pcx-pill{transform:scale(1.08);box-shadow:0 12px 32px rgba(0,0,0,.22)}
  #ppctx .pcx-menu{position:absolute;width:min(270px,calc(100vw - 32px));background:var(--card);border-radius:14px;box-shadow:0 14px 44px rgba(0,0,0,.26);overflow:hidden;opacity:0;transform:scale(.35);transition:transform .34s cubic-bezier(.2,1.2,.4,1),opacity .16s ease}
  #ppctx.on .pcx-menu{opacity:1;transform:none}
  #ppctx .pcx-menu button{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;font:inherit;font-size:16px;color:var(--ink);text-align:left;padding:11px 16px;min-height:48px;-webkit-tap-highlight-color:transparent}
  #ppctx .pcx-menu button + button{border-top:1px solid var(--line)}
  #ppctx .pcx-menu button:active{background:var(--line2)}
  #ppctx .pcx-menu .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
  #ppctx .pcx-menu .meta{font-size:12.5px;color:var(--muted)}
  #ppctx .pcx-menu svg{width:20px;height:20px;flex:none;color:var(--muted)}
  #ppctx .pcx-menu .bad,#ppctx .pcx-menu .bad svg{color:var(--red)}
  #ppctx .pcx-menu .back{font-weight:600}#ppctx .pcx-menu .back svg{color:var(--pri)}
  #ppctx .pcx-menu .on svg{color:var(--pri)}
  #ppctx .pcx-sep{height:8px;background:var(--line2)}
  #ppctx .pcx-menu.wide{width:min(320px,calc(100vw - 32px))}
  #ppctx .pcx-find{display:flex;align-items:center;gap:8px;margin:0 12px 10px;padding:0 12px;border-radius:10px;background:var(--line2);color:var(--muted)}
  #ppctx .pcx-find svg{width:17px;height:17px;flex:none}
  #ppctx .pcx-find input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:16px;color:var(--ink);padding:10px 0;outline:none;-webkit-user-select:text;user-select:text}
  #ppctx .pcx-list{max-height:var(--pcxh,360px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-top:1px solid var(--line)}
  #ppctx .pcx-list button{min-height:44px;padding:9px 16px;font-size:15.5px}
  #ppctx .pcx-gh{position:sticky;top:0;z-index:1;background:var(--card);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:12px 16px 6px;border-top:1px solid var(--line)}
  #ppctx .pcx-list > .pcx-gh:first-child{border-top:0}
  #ppctx .pcx-list .pcx-use,#ppctx .pcx-list .pcx-use svg{color:var(--pri)}
  #ppctx .pcx-list .pcx-reset .meta{display:block}
  #ppctx .pcx-note{font-size:12.5px;color:var(--muted);padding:10px 16px 12px;border-top:1px solid var(--line);line-height:1.4}
  .pp-strip button{-webkit-touch-callout:none}
  @media (prefers-reduced-motion: reduce){#ppctx .pcx-bg,#ppctx .pcx-pill,#ppctx .pcx-menu{transition:none}}
  .pp-onp{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 12px 12px 16px}
  .pp-onp .grow{min-width:0;display:flex;flex-direction:column;gap:2px}.pp-onp .nm{font-weight:600;font-size:15px}.pp-onp .mt{font-size:13px;color:var(--muted)}.pp-onp .btn{flex:none;white-space:nowrap}
  .pp-sum{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:15px 16px 13px}
  .pp-sum .hd{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--pri)}.pp-sum .hd svg{width:16px;height:16px}
  .pp-sum .hd .ed{margin-left:auto;color:var(--faint);letter-spacing:0;text-transform:none;font-size:13px;display:inline-flex;gap:4px;align-items:center}.pp-sum .hd .ed svg{width:14px;height:14px}
  .pp-sum p{margin:9px 0 0;font-size:15.5px;line-height:1.5;color:var(--ink);text-wrap:pretty}
  .pp-sum .src{margin-top:10px;font-size:12.5px;color:var(--faint)}
  .pp-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .pp-tiles div{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:12px 14px;display:flex;flex-direction:column;gap:3px}
  .pp-tiles b{font-size:21px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
  .pp-tiles span{font-size:12.5px;color:var(--muted)}
  .pp-tiles .warn b{color:var(--amber)}
  .pp-lock{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--faint);margin:-2px 2px 0}
  .pp-lock svg{width:13px;height:13px}
  .pp-wl .pp-row{min-height:60px}
  .pp-wl .ic{width:36px;height:36px;border-radius:11px;background:var(--amber-soft);color:var(--amber);display:grid;place-items:center;flex:none}.pp-wl .ic svg{width:18px;height:18px}
  .pp-proj .ph{font-size:12px;color:var(--pri);font-weight:500}
  .pp-tl{display:flex;flex-direction:column;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px 16px}
  .pp-tl .e{display:flex;gap:12px;padding:11px 0;position:relative}
  .pp-tl .e + .e{border-top:1px solid var(--line2)}
  .pp-tl .k{width:30px;height:30px;border-radius:10px;background:var(--line2);color:var(--muted);display:grid;place-items:center;flex:none}.pp-tl .k svg{width:16px;height:16px}
  .pp-tl .k.m{background:var(--pri-soft);color:var(--pri)}   .pp-tl .k.pay{background:var(--pop-ok);color:var(--pop-ok-ink)}
  .pp-tl .t{font-size:14.5px;line-height:1.35}.pp-tl .t b{font-weight:600}
  .pp-tl .d{font-size:12.5px;color:var(--muted);margin-top:2px}
  .pp-bars{display:flex;flex-direction:column;gap:10px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}
  .pp-bar{display:grid;grid-template-columns:96px 1fr auto;gap:10px;align-items:center;font-size:13.5px}
  .pp-bar .tr{height:8px;border-radius:4px;background:var(--line2);overflow:hidden}.pp-bar .tr i{display:block;height:100%;border-radius:4px;background:var(--pri)}
  .pp-bar .v{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}
  .pp-bar.them .tr i{background:var(--hi)}
  /* same person */
  .pp-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .pp-two > div{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:14px 12px;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);min-width:0}
  .pp-two b{font-size:15.5px;color:var(--ink);font-weight:600}
  .pp-two .em{color:var(--ink);overflow-wrap:anywhere}
  .pp-why{background:var(--pri-soft);color:var(--pri-dark);border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.45}
  .pp-btns{display:flex;gap:8px}.pp-btns .btn{flex:1;min-height:50px}
  .pp-strip{display:flex;gap:10px;overflow-x:auto;margin:0 -20px;padding:2px 20px 4px;scrollbar-width:none}
  .pp-strip > div{flex:none;display:flex;align-items:center;gap:9px;background:var(--card);box-shadow:var(--shadow);border-radius:999px;padding:6px 14px 6px 6px}
  .pp-strip .av{width:34px;height:34px;font-size:12px}
  .pp-strip b{display:block;font-size:14px;font-weight:500}.pp-strip small{display:block;font-size:11.5px;color:var(--muted)}
  
  /* People, live */
  button.pp-row,.pp-row .pp-go,.pp-strip button,.pp-same,.pp-tl button.e{border:0;background:none;font:inherit;color:inherit;text-align:left;width:100%;cursor:pointer;-webkit-tap-highlight-color:transparent}
  button.pp-row:active,.pp-row .pp-go:active,.pp-tl button.e:active{background:var(--line2)}
  .pp-row .grow{display:flex;flex-direction:column;min-width:0}
  .pp-row .nm,.pp-row .mt{display:block}
  .pp-row .ph{font-size:12.5px;color:var(--pri);font-weight:500;flex:none}
  .pp-row .when{flex:none}
  .pp-wl .pp-row{padding:0 10px 0 0;gap:6px}
  .pp-wl .pp-go{display:flex;align-items:center;gap:12px;padding:10px 6px 10px 16px;flex:1;min-width:0}
  .pp-clr{flex:none;border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;font:inherit;font-size:13px;padding:0 12px;min-height:34px}
  .pp-same{display:flex;text-align:left}
  .pp-same .grow{display:flex;flex-direction:column}
  .pp-tag.o{background:var(--line2);color:var(--muted)} .av.o{background:var(--line2);color:var(--muted)} .av.p{background:var(--amber-soft);color:var(--amber)}
  .pp-acts a{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--card);box-shadow:var(--shadow);border-radius:16px;padding:12px 4px 10px;font-size:12.5px;color:var(--ink);text-decoration:none}
  .pp-acts a.p .ic{background:var(--pri);color:var(--pri-ink)}
  .pp-acts button{cursor:pointer}
  .pp-sum .hd .ed{border:0;background:none;font:inherit;padding:4px 0 4px 8px;cursor:pointer}
  .pp-sum p.none{color:var(--muted);font-size:14.5px}
  .pp-tl .e{width:100%;align-items:flex-start}
  .pp-tl .e .grow{display:flex;flex-direction:column;min-width:0}
  .pp-tl .t,.pp-tl .d{display:block}
  .pp-tl .k svg{width:16px;height:16px}
  .pp-kv{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:0 16px;border-top:0}
  .pp-kv > div > span:last-child{text-align:right;overflow-wrap:anywhere;min-width:0}
  .pp-kv > div:last-child{border-bottom:0}
  .pp-btns{margin-top:6px;margin-bottom:24px}
  .pp-btns .btn.ghost{flex:.8}
  .pp-foot{display:flex;justify-content:center;align-items:center;gap:4px;font-size:13px;color:var(--faint);margin:8px 0 4px}
  .pp-foot button{border:0;background:none;color:var(--pri);font:inherit;padding:6px 2px}
  .pp-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 20px 20px}
  .pp-empty .ic{width:56px;height:56px;border-radius:18px;background:var(--pri-soft);color:var(--pri);display:grid;place-items:center}.pp-empty .ic svg{width:28px;height:28px}
  .pp-empty b{font-size:18px;font-weight:600}.pp-empty .sub{max-width:36ch;line-height:1.45}
  .pp-strip{margin:2px -20px 0}
  .pp-strip button{flex:none;width:auto;display:flex;align-items:center;gap:9px;background:var(--card);box-shadow:var(--shadow);border-radius:999px;padding:6px 14px 6px 6px}
  .pp-strip button > span:last-child{display:flex;flex-direction:column;line-height:1.2}
  .pp-two .av.sm{width:34px;height:34px;font-size:12px;margin-bottom:6px}
  .sheet .pp-two,.sheet .pp-why,.sheet .pp-btns{flex:none}
  .pmname{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--pri);cursor:pointer;min-width:0;text-align:left;position:relative;z-index:2}
  .pp-same{background:var(--amber-soft);width:100%}

/* the section bar's More sits on the left now: its menu opens from there */
.psw .pmenu{left:auto;right:0;transform-origin:top right}
/* (v472) project header B */
.pjhd.pjb{display:flex;align-items:center;gap:10px;padding:calc(var(--sat, env(safe-area-inset-top, 0px)) + 6px) 14px 10px;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6)}
.pjhd.pjb .pjbk{margin:0;width:40px;height:40px;padding:0;justify-content:center;flex:none;color:var(--ink)}
.pjhd.pjb .pjbk svg{width:19px;height:19px}
.pjmid{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center}
.pjhd.pjb .pjnm{max-width:100%}
.pjhd.pjb .pjnm b{margin:0;height:auto;padding:2px 4px 0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:16.5px;font-weight:600;letter-spacing:-.2px}
.pjhd.pjb .pjsec{margin:0;height:22px;padding:0 8px;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:12.5px;font-weight:500;color:var(--muted);gap:2px}
.pjhd.pjb .pjsec svg{width:12px;height:12px}
.pjav{flex:none;border:0;background:none;padding:0;cursor:pointer;touch-action:manipulation;transition:transform .12s}
.pjav:active{transform:scale(.94)}
.pjav .pjic{width:40px;height:40px;border-radius:50%;font-size:13px}
.pjlead{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-radius:16px;background:var(--beige);text-align:left}
.pjlead>div{min-width:0}
.pjlead b{display:block;font-size:14px;font-weight:600}
.pjlead small{display:block;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pjlb{margin-left:auto;flex:none;height:36px;padding:0 13px;border:0;border-radius:11px;background:var(--pri);color:var(--pri-ink);font:inherit;font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.pjlb svg{width:14px;height:14px}
.bkp .bktabs{margin-top:2px}.bkp .bktabs .pill{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.bkp .bkbadge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--amber);color:#fff;font-size:11px;font-weight:700}
.bkp .bkday{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:4px 4px -2px}
.bkp .bkcards{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
@media (min-width:860px){.bkp .bkcards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.bkp .bksc{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:12px}
.bkp .bksh{display:flex;gap:12px;align-items:flex-start}
.bkp .bkic{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--pri) 11%,var(--card));color:var(--pri-dark)}
.bkp .bkic svg{width:20px;height:20px}
.bkp .bksc h3{font-size:16px;font-weight:600;margin:0}.bkp .bksc p{font-size:13.5px;line-height:1.45;color:var(--muted);margin:3px 0 0}
.bkp .bkurl{font-size:12px;color:var(--faint);background:var(--beige);border-radius:10px;padding:8px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bkp .bksc .btn{margin:0}
.bkp .bksrc{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13.5px;color:var(--muted)}.bkp .bksrc select{font:inherit;font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:7px 10px}
.iklk{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:600;background:color-mix(in srgb,var(--pri) 12%,var(--card));color:var(--pri-dark);vertical-align:2px}
.ikq{width:100%;font:inherit;font-size:16px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);margin-top:4px}
.bkp .bkik{margin:6px 0 2px;padding:10px 12px;border-radius:12px;background:var(--beige);font-size:14px;line-height:1.45}
.bkp .bkst{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--beige);color:var(--muted);flex:none}
.bkp .bkst.req{background:color-mix(in srgb,var(--amber) 16%,var(--card));color:var(--amber)}
.bkp .bkst.ok{background:color-mix(in srgb,var(--pri) 12%,var(--card));color:var(--pri-dark)}
.bkp .bkd{padding:2px 18px 16px;display:flex;flex-direction:column;gap:9px;border-top:1px solid var(--line)}
.bkp .bkdr{display:flex;gap:12px;font-size:13.5px;line-height:1.4}
.bkp .bkdr b{flex:none;width:96px;font-weight:500;color:var(--muted)}
.bkp .bkdr span{min-width:0;overflow-wrap:anywhere}
.bkp .bkdr a{color:var(--pri-dark)}
.bkp .bkln{display:flex;align-items:center;gap:12px;padding:12px 14px 12px 18px;border-top:1px solid var(--line)}
.bkp .bkln:first-child{border-top:0}
.bkp .bkln small{display:block;font-size:12px;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bkp .bkkr{padding:12px 16px;border-top:1px solid var(--line)}
.bkp .bkkr:first-child{border-top:0}
.bkp .bkkr>b{display:block;font-size:14px;font-weight:600;margin-bottom:8px}
.bkp .bkg{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.bkp .bkg label,.bkp .bkvr label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--muted);min-width:0}
.bkp .bkin{width:100%;min-width:0;height:40px;border:1px solid var(--line);border-radius:11px;background:var(--card);color:var(--ink);font:inherit;font-size:16px;padding:0 10px}
.bkp .bkin:focus{outline:0;border-color:var(--pri)}
.bkp .bkplus{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:var(--muted)}
.bkp .bkvr{padding:12px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.bkp .bkvr:first-child{border-top:0}
.bkp .bkvh{display:flex;align-items:center;gap:10px}
.bkp .bkvh img{width:72px;height:40px;border-radius:8px;object-fit:cover;background:var(--beige);flex:none}
.bkp .bkvh small{font-size:12px;color:var(--faint)}
.bkp .bkx{margin-left:auto;width:32px;height:32px;border-radius:50%;border:0;background:var(--beige);color:var(--muted);font-size:17px;flex:none}
.bkp .bkv2{display:grid;grid-template-columns:2fr 1fr;gap:8px}
.schcal{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.schcal small{text-align:center;font-size:11px;color:var(--faint);font-weight:600}
.schcal span,.schcal button{position:relative;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;border:0}
.schcal span{color:var(--faint);opacity:.55}.schcal span.early{opacity:.4;text-decoration:line-through}
.schcal button{background:var(--card);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink)}
.schcal button.off{background:color-mix(in srgb,var(--red) 10%,var(--card));box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--red) 55%,var(--line));color:var(--red);text-decoration:line-through}
.schcal i{position:absolute;top:2px;left:5px;font-style:normal;font-size:9px;color:var(--muted);text-decoration:none}
.schd{height:44px;border:1px solid var(--line);border-radius:12px;padding:0 12px;font:inherit;font-size:16px;background:var(--card);color:var(--ink)}
.schg{display:inline-flex;gap:6px;align-items:center}.schg i{font-style:normal;font-size:16px;line-height:1;opacity:.8}.schgadd{flex:none;width:28px;height:28px;border-radius:50%;background:var(--beige);display:flex;align-items:center;justify-content:center}.schgadd svg{width:16px;height:16px}
#schGr .title,#schGr .meta{display:block}
.schgq{width:100%;font-size:16px;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card,#fff);color:inherit}
.schlink{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:16px;background:var(--beige)}
.schlink>.clip{font-size:13px;color:var(--pri-dark);font-weight:600}.schlink.stale>.clip{opacity:.45;text-decoration:line-through}
