/* Layout: a time ledger. Phone-first single column with a fixed tab bar (Now · Day · To do · Goals · Metrics, settings behind a gear); on wide screens the tabs move to the header and the Day planner gets a side tray. Day grid: 10-minute rows, Plan column beside Actual column. */
:root{
  --bg:#edf1ee; --surface:#ffffff; --sunk:#f5f8f6; --ink:#17221c; --muted:#5b6a62; --faint:#93a29a;
  --line:#d3dcd6; --line-2:#e6ece8;
  --accent:#1f7a4d; --accent-ink:#ffffff; --accent-soft:#dcefe4;
  --hot:#c8492c; --hot-soft:#fbe6df; --warn:#a86b12; --warn-soft:#fbefd9;
  --display:"Archivo","Arial Narrow",Arial,sans-serif; /* TARA logo only */
  /* Type system: one family, 5 text styles (size x weight) -
     caption 12/400 · label 12/700 (CAPS for card titles) · body 15/400 · strong 15/700 · heading 24/700.
     Further hierarchy is color only: --tx-1 primary, --tx-2 secondary gray, --tx-ok accent green, --tx-bad red. */
  --ff:"Atkinson Hyperlegible","Segoe UI",Helvetica,Arial,sans-serif;
  --body:var(--ff); --mono:var(--ff);
  --fs-sm:12px; --fs-md:15px; --fs-lg:24px;
  --panel-h:94px; /* fixed height of the bottom Right Now dock band (incl. its 1px top border) and of the top Right Now panel: 3 compact lines at 375px (owner 11/1) */
  --fw-reg:400; --fw-bold:700; --ls-caps:.08em;
  /* Shape + spacing: square-ish controls, one 4px spacing scale, one gap between buttons */
  --r-btn:3px; --r-card:5px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --gap-btn:var(--sp-1);
  --btn-h:40px; --btn-h-sm:32px; --slider-h:28px; /* every slider / segmented control */
  --tx-1:var(--ink); --tx-2:var(--muted); --tx-ok:var(--accent); --tx-bad:var(--hot);
  --r:16px; --shadow:0 10px 30px rgba(15,30,22,.16); --plan-soft:#e3ecfa; --plan-ink:#2f5fa8;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0e1411; --surface:#16201b; --sunk:#121a16; --ink:#e2ebe5; --muted:#98a89f; --faint:#66766d;
  --line:#26332c; --line-2:#1e2924; --accent:#52c48a; --accent-ink:#06210f; --accent-soft:#183a28;
  --hot:#f07a5a; --hot-soft:#3a221b; --warn:#e0a54a; --warn-soft:#382a14; --shadow:0 10px 30px rgba(0,0,0,.5); --plan-soft:#16243a; --plan-ink:#8fb4ee; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0e1411; --surface:#16201b; --sunk:#121a16; --ink:#e2ebe5; --muted:#98a89f; --faint:#66766d;
  --line:#26332c; --line-2:#1e2924; --accent:#52c48a; --accent-ink:#06210f; --accent-soft:#183a28;
  --hot:#f07a5a; --hot-soft:#3a221b; --warn:#e0a54a; --warn-soft:#382a14; --shadow:0 10px 30px rgba(0,0,0,.5); --plan-soft:#16243a; --plan-ink:#8fb4ee; color-scheme:dark}

/* alert nudge colors: soft green by default; .dlq (very delinquent, >= DLQ minutes) switches to red */
:root{--nudge:var(--accent);--nudge-soft:color-mix(in srgb,var(--accent) 12%,var(--surface));--al:var(--nudge);--als:var(--nudge-soft)}
.dlq{--al:var(--hot);--als:var(--hot-soft)}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--ff);font-size:var(--fs-md);line-height:1.4;-webkit-tap-highlight-color:transparent}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--surface)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mono,.num{font-family:var(--ff);font-variant-numeric:tabular-nums lining-nums}
body *{font-variant-numeric:tabular-nums}
h1,h2,h3{font-family:var(--ff);font-weight:var(--fw-bold);margin:0;text-wrap:balance;text-align:left}
h1,h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md)}
small{font-size:var(--fs-sm)}b,strong,th{font-weight:var(--fw-bold)}
.card.warns>.lbl{justify-self:start!important;text-align:left!important}
.lbl{font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;background:var(--c,var(--faint))}

/* header + tabs */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--surface);border-bottom:1px solid var(--line);
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:10px;display:flex;align-items:center;gap:12px}
.brand{font-family:var(--display);font-stretch:75%;font-weight:800;font-size:22px;letter-spacing:.01em;text-transform:uppercase;flex:1;min-width:0}
.brand span{color:var(--accent)}
.gear{width:38px;height:38px;border-radius:var(--r-btn);display:grid;place-items:center;color:var(--muted);flex:none}.gear svg{width:21px;height:21px}.gear.on,.gear:hover{color:var(--accent);background:var(--accent-soft)}
.sync{font-size:var(--fs-sm);color:var(--muted);display:flex;align-items:center;gap:6px;white-space:nowrap}
.sync .dot{width:8px;height:8px}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:9;background:var(--surface);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);
  padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px));padding-block:var(--sp-1) calc(4px + env(safe-area-inset-bottom,0px))}
.tabs button{padding:var(--sp-2) 0 var(--sp-1);font-weight:var(--fw-bold);font-size:var(--fs-sm);color:var(--muted);display:grid;justify-items:center;gap:2px;border-radius:var(--r-btn)}
.tabs button svg{width:22px;height:22px}
.tabs button[aria-current="page"]{color:var(--accent);background:var(--accent-soft)}
@media (min-width:860px){
  .tabs{position:static;border:0;padding:0;display:flex;gap:var(--gap-btn);background:none}
  .tabs button{display:flex;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-md)}
  .tabs button svg{width:18px;height:18px}
}
main{padding-left:max(6px,env(safe-area-inset-left,0px));padding-right:max(6px,env(safe-area-inset-right,0px));padding-block:14px calc(72px + env(safe-area-inset-bottom,0px));max-width:1180px;margin:0 auto;display:grid;gap:14px}
@media (min-width:860px){main{padding-block:18px 12px}}

/* generic */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px;display:grid;gap:10px;min-width:0}
.row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;min-width:0}
.grow{flex:1 1 auto;min-width:0}
.btn{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-btn);font-weight:var(--fw-bold);background:var(--sunk);border:1px solid var(--line);white-space:nowrap}
.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.hot{background:var(--hot);border-color:var(--hot);color:#fff}
.btn.ghost{background:none}
.btn.sm{padding:var(--sp-1) var(--sp-2);font-size:var(--fs-sm);border-radius:var(--r-btn)}
.btn.big{padding:var(--sp-3) 22px;font-size:var(--fs-md);border-radius:var(--r-btn)}
.btn:disabled{opacity:.45;cursor:default}
.chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-btn);border:1px solid var(--line);background:var(--surface);font-size:var(--fs-sm);font-weight:var(--fw-bold);white-space:nowrap;max-width:100%}
.chip.on{border-color:var(--accent);background:var(--accent-soft)}
.chip.warn{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}
.pill{font-family:var(--ff);font-size:var(--fs-sm);padding:1px var(--sp-2);border-radius:var(--r-btn);border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.banner{border-radius:var(--r-card);padding:10px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--warn-soft);border:1px solid var(--warn)}
.banner.hot{background:var(--hot-soft);border-color:var(--hot)}
.banner .grow{font-weight:var(--fw-bold)}
input[type=text],input[type=search],input[type=number],input[type=time],input[type=date],input[type=password],select,textarea{padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-btn);background:var(--sunk);width:100%;min-width:0}
input[type=color]{width:36px;height:32px;padding:2px;border:1px solid var(--line);border-radius:var(--r-btn);background:var(--sunk);flex:none}
textarea{resize:vertical;min-height:70px}
.f{display:grid;gap:var(--sp-1);min-width:0}
.f>span{font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.seg{display:flex;gap:var(--gap-btn);flex-wrap:wrap}
.seg button{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-btn);border:1px solid var(--line);background:var(--sunk);font-family:var(--ff);font-size:var(--fs-sm)}
.seg button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.check{width:24px;height:24px;border-radius:var(--r-btn);border:2px solid var(--line);display:grid;place-items:center;flex:none;background:var(--surface)}
.check.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.check svg{width:14px;height:14px}
.empty{color:var(--muted);border:1px dashed var(--line);border-radius:var(--r-card);padding:14px}

/* team + modes */
.teamrow{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px solid var(--line-2);flex-wrap:wrap}
.teamrow:first-child{border-top:0}
.teamrow .grow b{display:block}
.ovgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 14px}
.ovgrid label{cursor:pointer}
.banner.view{background:var(--accent-soft);border-color:var(--accent)}
/* Now */
.clockline{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.clockline h1{font-size:var(--fs-lg);font-weight:var(--fw-bold)}
.objs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@media (max-width:620px){.objs{grid-template-columns:1fr}}
.obj{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2);border-radius:var(--r-card);border:1px solid var(--line);background:var(--sunk);min-width:0;text-align:left}
.obj .t{flex:1;min-width:0;overflow-wrap:anywhere;font-weight:var(--fw-bold)}
.obj.done .t{text-decoration:line-through;color:var(--muted)}
.obj.add{border-style:dashed;color:var(--muted);background:none;font-weight:var(--fw-bold)}
.run{border-radius:var(--r-card);padding:16px;display:grid;gap:12px;background:var(--surface);border:2px solid var(--line)}
.run.on{border-color:var(--c,var(--accent));background:color-mix(in srgb,var(--c,var(--accent)) 9%,var(--surface))}
.run .what{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.run .title{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-lg);line-height:1.05;overflow-wrap:anywhere}
.run .sub{color:var(--muted);font-size:var(--fs-md);margin-top:3px}
.run .timer{font-family:var(--ff);font-size:var(--fs-lg);line-height:1;letter-spacing:0}
.run .ends{font-size:var(--fs-sm);color:var(--muted);text-align:right}
.checklist{display:grid;gap:var(--sp-1)}
.checklist button{display:flex;align-items:center;gap:var(--sp-2);text-align:left;padding:var(--sp-1) 0}
.checklist button.on span:last-child{text-decoration:line-through;color:var(--muted)}
.next{display:grid;gap:6px}
.nrow{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);min-width:0}
.nrow .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shift{display:flex;align-items:center;gap:8px}
.shift button{width:48px;height:40px;border-radius:var(--r-btn);border:1px solid var(--line);background:var(--surface);font-weight:var(--fw-bold);font-size:var(--fs-md);touch-action:manipulation}
.shift .acc{font-family:var(--ff);min-width:56px;text-align:center;color:var(--muted)}
.quick{display:flex;gap:8px}
.quick input{flex:1}
.mic{width:44px;border-radius:var(--r-card);border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;flex:none}
.mic svg{width:20px;height:20px}
.mic.live{background:var(--hot);border-color:var(--hot);color:#fff}
.proposal{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;border-radius:var(--r-card);background:var(--accent-soft);border:1px solid var(--accent)}
.proposal .grow{font-weight:var(--fw-bold)}
.grp{display:grid;gap:6px}
.grp h3{font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--c);}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:6px}
.tile{display:flex;align-items:center;gap:8px;padding:12px 10px;border-radius:var(--r-card);border:1px solid var(--line);background:var(--surface);font-weight:var(--fw-bold);text-align:left;min-width:0;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.tile span:last-child{overflow-wrap:anywhere;min-width:0}
.tile.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 16%,var(--surface))}
.gap{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line-2)}
.gap:first-child{border-top:0}
.gap .t{flex:1 1 180px;font-family:var(--ff);font-size:var(--fs-md)}

/* Now (focused) */
.nowwrap{display:grid;gap:14px;width:100%}
.nowtop{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;font-size:var(--fs-md)}
.objchip{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-btn);background:var(--surface);border:1px solid var(--line);font-weight:var(--fw-bold);font-size:var(--fs-sm)}
.objchip.done{color:var(--accent);border-color:var(--accent)}
.objchip.wide{width:100%;text-align:left;border-radius:var(--r-btn);padding:var(--sp-2) var(--sp-3);color:var(--muted)}
.hero{background:var(--surface);border-radius:var(--r-card);padding:26px 20px 20px;display:grid;gap:10px;text-align:center;justify-items:center;box-shadow:0 1px 0 var(--line)}
.hero.on{background:color-mix(in srgb,var(--c) 7%,var(--surface))}
.hero .title{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-lg);line-height:1.05;overflow-wrap:anywhere;text-wrap:balance}
.hero .sub{color:var(--muted);font-size:var(--fs-md)}
.hero .timer{font-family:var(--ff);font-size:var(--fs-lg);line-height:1;letter-spacing:0;margin-top:6px}
.hero .checklist{width:100%;text-align:left;max-width:380px}
.btn.huge{width:100%;max-width:420px;padding:var(--sp-4);font-size:var(--fs-lg);border-radius:var(--r-btn);margin-top:var(--sp-1)}
.row.center{justify-content:center}
.nextline{display:flex;align-items:center;gap:10px;padding:4px 6px;font-size:var(--fs-md);min-width:0}
.nextline .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nextline .shift button{width:38px;height:34px;font-size:var(--fs-md)}
.nextline .shift .acc{min-width:40px;font-size:var(--fs-sm)}
.actionbar{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.actionbar .btn{padding:var(--sp-4);font-size:var(--fs-md);border-radius:var(--r-btn);background:var(--surface)}
.gatecard{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:var(--r-card);background:var(--warn-soft)}
.tiles.big{grid-template-columns:repeat(2,minmax(0,1fr))}.tiles.big .tile{padding:16px 12px;font-size:var(--fs-md)}
.chip.on{border-color:var(--accent);background:var(--accent-soft)}
.menu{display:grid;gap:6px}.menu button{display:grid;gap:2px;text-align:left;padding:var(--sp-3) var(--sp-3);border-radius:var(--r-btn);background:var(--sunk)}.menu span{color:var(--muted);font-size:var(--fs-sm)}
.planseg{justify-self:start}
/* block-centred Now */
.dayobj{display:grid;gap:2px;padding:10px 14px;border-radius:var(--r-card);background:var(--surface);box-shadow:0 1px 0 var(--line)}
.mini{display:flex;align-items:center;gap:9px;min-width:0;padding:3px 0;font-size:var(--fs-md);text-align:left}
.mini .t{flex:1;min-width:0;overflow-wrap:anywhere;text-align:left}
.mini.done .t{text-decoration:line-through;color:var(--muted)}
.mini.add{color:var(--muted);font-weight:var(--fw-bold);font-size:var(--fs-sm);padding:5px 0}
.check.sm{width:20px;height:20px;border-radius:var(--r-btn)}.check.sm svg{width:12px;height:12px}
.blockcard{background:var(--surface);border-radius:var(--r-card);padding:16px;display:grid;gap:10px;box-shadow:0 1px 0 var(--line)}
.bname{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-lg);line-height:1.1}
.prog{height:6px;border-radius:3px;background:var(--line-2);overflow:hidden}.prog i{display:block;height:100%;background:var(--accent)}
.minis{display:grid;gap:0}
.sbs{display:grid;gap:6px}
.sb{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-card);background:var(--sunk);min-width:0;text-align:left;width:100%}
.sb .t{text-align:left;min-width:0;overflow-wrap:anywhere}
.sbt{font-size:var(--fs-sm);color:var(--muted);width:62px;flex:none;white-space:nowrap}
.sb.cur{background:color-mix(in srgb,var(--c) 13%,var(--surface));border:2px solid var(--c);padding:12px}
.sb.cur b{font-size:var(--fs-md)}
.timer.sm{font-family:var(--ff);font-size:var(--fs-lg);letter-spacing:0}
.sb.open{background:none;border:1.5px dashed var(--line);color:var(--muted)}
.nextcard{display:grid;gap:6px}.nextcard .nextblock{box-shadow:none;border:1px solid var(--line-2);background:var(--sunk)}.nextcard .nexttools{padding:0}
.nextblock{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r-card);background:var(--surface);box-shadow:0 1px 0 var(--line);text-align:left;width:100%;font-size:var(--fs-md)}
.nextblock .tw svg{width:14px;height:14px;transition:transform .15s}
/* Coming Up rows: fixed-width time column sits right next to the block title */
.nextblock{cursor:pointer;gap:6px!important}.nextblock .nbtime{flex:none;min-width:5.4em;font-weight:var(--fw-bold);white-space:nowrap}.nextblock .nbmain{min-width:0}
.nextblock .nbtitle{cursor:text;border-bottom:1px dashed transparent}.nextblock .nbtitle:hover{border-bottom-color:var(--line)}.nextblock .nbtitle.empty{font-weight:var(--fw-bold);color:var(--muted)}
.nextblock .nbtin{font:inherit;font-weight:var(--fw-bold);width:min(100%,260px);padding:0 2px!important;border-bottom:1px solid var(--accent)!important}.nextblock .tw.open svg{transform:rotate(90deg)}
.nextlist{display:grid;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3) var(--sp-2)}
.tray-item{display:flex;gap:var(--sp-2);align-items:center;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-card);background:var(--sunk);text-align:left;width:100%}
.shift{display:flex;align-items:center;gap:6px}.shift button{width:38px;height:34px;border-radius:var(--r-btn);border:1px solid var(--line);background:var(--surface);font-weight:var(--fw-bold);font-size:var(--fs-md)}.shift .acc{font-family:var(--ff);font-size:var(--fs-sm);min-width:36px;text-align:center;color:var(--muted)}
/* five-block day */
.blknav{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.blknav .btn{min-width:56px}
.blkrange{text-align:center;font-size:var(--fs-sm);color:var(--muted)}
.blkrange select{width:auto;padding:var(--sp-1) var(--sp-1);font-size:var(--fs-md);display:inline-block}
.datebar{display:flex;align-items:center;justify-content:center;gap:8px}
.tri{width:44px;height:44px;border-radius:var(--r-card);display:grid;place-items:center;color:var(--accent);background:var(--surface);box-shadow:0 1px 0 var(--line);flex:none}.tri svg{width:18px;height:18px}
.dparts{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;justify-content:center;font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-lg);min-width:0}
.dparts .wd{color:var(--muted);font-weight:var(--fw-bold)}.dparts .wd.s{display:none}.dparts .wd.today{color:var(--accent)}.dparts .cm{margin-left:-6px}
@media (max-width:520px){.dparts{font-size:var(--fs-md);gap:5px}.dparts .wd.l{display:none}.dparts .wd.s{display:inline}.dparts .cm{margin-left:-5px}.tri{width:40px;height:40px}}
.dp{font:inherit;color:var(--ink);border-bottom:2px dotted var(--accent);padding:0 1px;line-height:1.1}.dp:hover{color:var(--accent)}
.dparts .pill{align-self:center;font-family:var(--ff);font-weight:var(--fw-bold)}
.pickgrid{display:grid;gap:6px}.pickgrid.c3{grid-template-columns:repeat(3,1fr)}.pickgrid.cal{grid-template-columns:repeat(7,1fr);text-align:center}
.pickgrid button{padding:var(--sp-3) var(--sp-1);border-radius:var(--r-btn);background:var(--sunk);font-weight:var(--fw-bold)}.pickgrid button.on{background:var(--accent);color:var(--accent-ink)}.pickgrid button.td{outline:2px solid var(--accent);outline-offset:-2px}
.pickgrid .wdh{font-size:var(--fs-sm);color:var(--muted);font-weight:var(--fw-bold);padding:4px 0}
.blknav.dates{align-items:center}
.blkgrid{display:grid;gap:10px}
@media (min-width:1000px){.blkgrid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:start}.blkdiv,.blkrt{display:none}}
.blk{background:var(--surface);border-radius:var(--r-card);padding:12px;display:grid;gap:6px;box-shadow:0 1px 0 var(--line);min-width:0}
.blk.now{outline:2px solid var(--accent)}.blk.past{opacity:.7}
.blkh{display:flex;align-items:center;gap:8px;font-size:var(--fs-md)}
.nowpill{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.blkrow{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2);border-radius:var(--r-card);background:var(--sunk);min-width:0;font-size:var(--fs-md);text-align:left;width:100%;border-left:3px solid var(--c,transparent)}
.blkrow .t{min-width:0;overflow-wrap:anywhere;text-align:left}
.blkrow.done .t{text-decoration:line-through;color:var(--muted)}
.blkrow.open{background:none;border:1.5px dashed var(--line);color:var(--muted)}
.blkdiv{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-md);padding:6px 2px 0}
.blkrt{font-size:var(--fs-sm);color:var(--muted);text-align:center;padding:2px}
/* window nav, unlogged, gates */
.winbar{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:nowrap}
.winbar .blkrange{flex:0 1 auto;white-space:nowrap}
.arr{width:40px;height:40px;border-radius:var(--r-card);display:grid;place-items:center;color:var(--accent);background:var(--surface);box-shadow:0 1px 0 var(--line);flex:none}.arr svg{width:18px;height:18px}
.arr.ic{color:var(--muted);margin-left:4px}.arr.ic svg{width:20px;height:20px}
.unlogged{position:absolute;left:3px;right:3px;border-radius:6px;z-index:1;border:1.5px solid var(--al);background:repeating-linear-gradient(45deg,var(--als) 0 6px,transparent 6px 12px);color:var(--al);font-size:var(--fs-sm);font-weight:var(--fw-bold);text-align:center;overflow:hidden}
.objgate{display:grid;gap:6px;padding:10px 14px;border-radius:var(--r-card);background:var(--surface);box-shadow:0 1px 0 var(--line)}
.objgate.inblock{box-shadow:none;padding:0;background:none}
.objgate input{padding:var(--sp-1) 2px var(--sp-1) 30px;font-size:var(--fs-md);border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;background-image:linear-gradient(var(--line),var(--line)),linear-gradient(var(--line),var(--line)),linear-gradient(var(--line),var(--line)),linear-gradient(var(--line),var(--line));background-size:20px 2px,20px 2px,2px 20px,2px 20px;background-position:0 calc(50% - 9px),0 calc(50% + 9px),0 50%,18px 50%;background-repeat:no-repeat}
.objgate input:focus{border-bottom-color:var(--accent);outline:none}
.objgate .btn{justify-self:start;padding:var(--sp-1) var(--sp-3);font-size:var(--fs-sm)}
.objgate p{font-size:var(--fs-sm)!important}
.minis{display:grid;gap:0}
.updown{display:flex;gap:6px;flex-wrap:wrap;width:100%;padding-left:32px}.updown .chip{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.node.task:has(.updown){flex-wrap:wrap}
.tree .node.on{background:var(--accent-soft)}
.why{font-size:var(--fs-sm);color:var(--muted);font-weight:var(--fw-reg);margin-top:1px}
.sb.cur{display:grid;gap:8px}.curtop{display:flex;gap:10px;align-items:flex-start;min-width:0}.curtop .grow{min-width:0}
.curbot{display:flex;align-items:baseline;gap:8px;padding-left:34px}.curbot .timer{font-family:var(--ff);font-size:var(--fs-lg);letter-spacing:0}.curbot .muted{font-size:var(--fs-sm);flex:1}.curbot .btn{align-self:center}
.timer.over{color:var(--hot)}
.navline{display:flex;align-items:center;justify-content:center;gap:3px;flex-wrap:nowrap;min-width:0}
.nb{width:32px;height:36px;border-radius:var(--r-btn);display:grid;place-items:center;color:var(--accent);background:var(--surface);box-shadow:0 1px 0 var(--line);flex:none}.nb svg{width:15px;height:15px}
.nb.tri{color:var(--ink)}
.navtext{display:flex;align-items:center;gap:4px;padding:0 4px;font-weight:var(--fw-bold);font-size:var(--fs-md);white-space:nowrap;min-width:0;flex:none}
.navtext .dp{font-weight:var(--fw-bold)}.navtext .sep{color:var(--muted)}
.tsel{flex:none;min-width:4.2em;text-align:center;width:auto;padding:2px 2px;border:0;border-bottom:2px dotted var(--accent);border-radius:0;background:none;font-weight:var(--fw-bold);font-size:var(--fs-md);-webkit-appearance:none;appearance:none;color:var(--ink)}
@media (max-width:400px){.navtext{font-size:var(--fs-sm);padding:0 2px;gap:3px}.tsel{font-size:var(--fs-sm);min-width:3.8em}.nb{width:26px}.navline{gap:2px}}
.gcorner{display:grid;place-items:center;padding:2px!important}.corner{width:30px;height:30px;border-radius:var(--r-btn);display:grid;place-items:center;color:var(--muted)}.corner:hover{color:var(--accent);background:var(--accent-soft)}.corner svg{width:18px;height:18px}
.sb{border-left:4px solid var(--c,transparent)}.sb .t b,.curtop b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sb .t{min-width:0}.sb.cur{border-left-width:2px}
.pager{display:flex;align-items:center;justify-content:center;gap:10px}.pager .nb{font-weight:var(--fw-bold);font-size:var(--fs-md)}.pager .nb:disabled{opacity:.35}
.subpick{display:grid;gap:8px;padding:10px;border-radius:var(--r-card);background:var(--accent-soft)}.subpick .pickgrid button{display:grid;gap:2px;padding:var(--sp-2) var(--sp-1);font-size:var(--fs-sm)}.subpick .pickgrid button span{font-weight:var(--fw-reg);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subpick .pickgrid button.busy{opacity:.6}
.lblrow{display:flex;align-items:center;gap:var(--sp-1)}.lblrow .lbl{flex:1}
.lockb{width:24px;height:24px;border-radius:var(--r-btn);display:grid;place-items:center;color:var(--muted);flex:none}.lockb svg{width:14px;height:14px}.lockb.on{color:var(--accent);background:var(--accent-soft)}
.ghead .lblrow{padding:var(--sp-1) var(--sp-2)!important}
.col.locked{background-color:color-mix(in srgb,var(--faint) 8%,transparent)}
.inl{border:0;background:transparent;padding:2px 0;font:inherit;color:inherit;width:100%;min-width:0;border-bottom:1px solid transparent;border-radius:0}
.inl:hover{border-bottom-color:var(--line)}.inl:focus{outline:none;border-bottom-color:var(--accent)}
.node .inl.t{font-weight:inherit}.node.goal .inl{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-md)}
.inlsel{width:auto;padding:var(--sp-1) var(--sp-1);font-size:var(--fs-sm);font-family:var(--ff);border-radius:var(--r-btn);background:var(--sunk)}
.more{width:28px;height:28px;border-radius:var(--r-btn);color:var(--muted);font-weight:var(--fw-bold);flex:none}.more:hover{background:var(--sunk)}
.mini .inl{font-size:var(--fs-md)}
.selrect{position:absolute;left:3px;right:3px;z-index:4;border-radius:6px;background:color-mix(in srgb,var(--accent) 25%,transparent);border:2px solid var(--accent);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--accent);display:grid;place-items:center;pointer-events:none}
[data-col="act"],[data-col="plan"]{touch-action:none}
.gtree{gap:2px;padding:10px 8px}
.gnode{display:flex;align-items:center;gap:8px;padding:5px 6px 5px calc(6px + var(--dep)*var(--ind,22px));border-radius:var(--r-card);min-width:0;position:relative}
.gnode:hover{background:var(--sunk)}
.gnode .tw{width:22px;height:22px;display:grid;place-items:center;color:var(--muted);flex:none}.gnode .tw svg{width:13px;height:13px;transition:transform .15s}.gnode .tw.open svg{transform:rotate(90deg)}
.gnode .inl{flex:1}.gnode.goal .inl{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-md)}.gnode.smart .inl,.gnode.project .inl{font-weight:var(--fw-bold)}
.gnode.done .inl{text-decoration:line-through;color:var(--muted)}
.gnode .add{color:var(--accent);font-weight:var(--fw-bold);font-size:var(--fs-md);width:24px;height:26px;border-radius:8px;flex:none}.gnode .more{width:22px}
@media (max-width:520px){.gnode{--ind:16px}.gnode.goal .inl{font-size:var(--fs-md)}}
.gnode::before{content:"";position:absolute;left:calc(17px + (var(--dep) - 1)*var(--ind,22px));top:0;bottom:0;border-left:1px solid var(--line);display:var(--guide,block)}
.gnode[style*="--dep:0"]::before{display:none}
.stack{display:flex;height:16px;border-radius:8px;overflow:hidden;background:var(--line-2)}.stack i{display:block;height:100%}
.brk{display:grid;gap:2px}
.brow{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-1);border-radius:var(--r-card);text-align:left;width:100%;font-size:var(--fs-md)}.brow:hover{background:var(--sunk)}
.brow.sub{padding-left:28px;font-size:var(--fs-md)}.brow .num{min-width:58px;text-align:right}.brow .pct{min-width:40px}
.brow .tw{width:18px;display:grid;place-items:center;color:var(--muted)}.brow .tw svg{width:12px;height:12px;transition:transform .15s}.brow .tw.open svg{transform:rotate(90deg)}
.clbtn{position:relative}.cbadge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 var(--sp-1);border-radius:var(--r-btn);background:var(--hot);color:#fff;font-size:var(--fs-sm);font-weight:var(--fw-bold);display:grid;place-items:center;line-height:1}
.crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-weight:var(--fw-bold);font-size:var(--fs-md)}.crumbs button{color:var(--accent)}.crumbs span{color:var(--muted)}
.crumbin{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-lg);flex:1 1 160px;width:auto}
.clrow{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-1);border-radius:var(--r-card);min-width:0}.clrow:hover{background:var(--sunk)}.clrow .t{text-align:left;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clrow.moving{outline:2px dashed var(--accent);outline-offset:-2px}
.clic{width:22px;height:22px;display:grid;place-items:center;color:var(--muted);flex:none}.clic svg{width:18px;height:18px}
.mini.add .clic svg{opacity:.6}
.mini.step{padding-left:calc(var(--lv,0)*26px)}.ind{width:24px;height:24px;border-radius:var(--r-btn);color:var(--muted);font-size:var(--fs-sm);flex:none}.ind:disabled{opacity:.2}.ind:hover:not(:disabled){background:var(--sunk)}
.clrun{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-card);background:var(--surface);box-shadow:0 1px 0 var(--line)}.clrun.on{background:var(--accent-soft)}.clrun .btn{padding:var(--sp-3) 22px;font-size:var(--fs-md)}
.cbadge[hidden]{display:none!important}
.steptxt{text-align:left;padding:2px 0;line-height:1.3}
.sbs{gap:0!important}.sbs .sb.cur{margin:6px 0}.mini.slot .inl{flex:1}.mini.slot .inl::placeholder{color:var(--muted)}.mini.slot.past{opacity:.5}.mini.slot .more{width:24px;height:24px;color:var(--muted)}.mini .sbt{width:62px;flex:none;white-space:nowrap;font-size:var(--fs-sm);color:var(--muted)}.mini .sbd{font-size:var(--fs-sm);color:var(--muted)}.mini.sbrow .check{border-color:color-mix(in srgb,var(--c) 55%,var(--line))}
/* run strip, hold */
.brand{text-align:left;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:440px){.brand{font-size:19px}.top{gap:6px}.top .gear{width:34px}.sync span:last-child{display:none}}
.runstrip{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--r-card);background:color-mix(in srgb,var(--c) 12%,var(--surface));border-left:4px solid var(--c);font-size:var(--fs-md);min-width:0}
.runstrip .grow{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.runstrip .num{font-weight:var(--fw-bold)}
.runstrip.min{justify-self:end;padding:5px 12px;border-radius:var(--r-btn);border-left:0;gap:6px}.runstrip .dot{background:var(--c)}
.holdbtn{position:relative;overflow:hidden;display:grid;justify-items:center;gap:0;line-height:1.1}.holdbtn small{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);letter-spacing:var(--ls-caps);text-transform:uppercase}
.holdbtn::after{content:"";position:absolute;left:0;bottom:0;height:4px;width:0;background:var(--accent)}.holdbtn.holding::after{width:100%;transition:width .6s linear}
.mini.sbobj{padding:0 0 0 34px}.mini.sbobj .lbl{font-size:var(--fs-sm)}
/* day v2 */
.cont .cl{text-transform:none;letter-spacing:0}
.gstack.joined{gap:0}.gstack.joined .grid:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:0}.grid.contd{border-top:1px dashed var(--line);border-top-left-radius:0;border-top-right-radius:0}
.times .midnight{font-weight:var(--fw-bold);color:var(--accent);background:var(--surface);z-index:2}
.unlogged{display:grid;place-items:center;cursor:pointer;margin-top:1px}.unlogged span{font-size:var(--fs-sm);line-height:1.1;padding:0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.unlogged.planned{border:1.5px dashed var(--line);background:var(--sunk);color:var(--muted)}
.pinin{position:absolute;left:4px;right:4px;z-index:5;border:2px solid var(--accent);border-radius:6px;background:var(--surface);padding:2px 6px;font-size:var(--fs-sm);width:calc(100% - 8px)}
.navtext.fixed{flex-direction:column;align-items:center;gap:0;width:158px;flex:none}.navtext.fixed .trow{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted)}
.datefix{font-family:var(--ff);font-size:var(--fs-md);white-space:pre}.datefix.istoday{color:var(--accent)}
.pinbar{gap:6px;flex-wrap:wrap!important}.pincats{flex-basis:100%;display:grid;gap:6px;padding-top:6px;border-top:1px solid var(--line-2)}.pincats.need .lbl{color:var(--hot)}.pinbar .inlsel{max-width:110px}
@media (min-width:960px){.placebar.pinbar{display:flex;position:sticky;bottom:12px;border:1px solid var(--line);border-radius:var(--r-card)}}
.tdmeta{display:flex;gap:6px;flex-wrap:wrap;width:100%;padding-left:32px;align-items:center}.tdmeta input[type=date]{width:auto;padding:var(--sp-1) var(--sp-1);font-size:var(--fs-sm);border-radius:var(--r-btn)}
.pri5,.pri4{color:var(--hot)}
body.strike .gnode .check{display:none}.gtree{padding:4px 0!important}.gnode .tw{order:9}.gnode .add{order:8}.gnode .more{order:10}.gnode .pill{order:7}.gnode{padding:4px 0 4px calc(var(--dep)*14px)!important}.gnode::before{left:calc((var(--dep) - 1)*14px + 4px)!important}.gnode:not(.done) .check{margin-left:0}body.strike .gnode .t{cursor:pointer;-webkit-user-select:none;user-select:none}body.strike .gnode input.t,body.strike .gnode textarea.t{-webkit-user-select:text;user-select:text}.gnode.pressing{background:var(--accent-soft)}body.strike .gnode{touch-action:pan-y;transition:transform .12s}
/* strike-through mode: checkboxes shrink to a small dot you tap; done text is struck through */
body.strike .check{width:14px;height:22px;border:0!important;background:none!important;border-radius:0;display:grid;place-items:center}
body.strike .check svg{display:none}body.strike .check::before{content:"";width:7px;height:7px;border-radius:var(--r-btn);background:var(--line)}
body.strike .check.on::before{background:var(--accent)}body.strike .mini,body.strike .gnode,body.strike .node{gap:var(--sp-1)}
body.strike .gnode{--ind:14px}body.strike .mini.slot .check::before{background:none;border:1px dashed var(--line)}
body.strike .sb.cur .check::before{width:10px;height:10px;background:var(--c,var(--accent))}
body.strike .checklist button.on span:last-child,body.strike .obj.done .t{text-decoration:line-through}
.rvby{text-align:left;padding:0}.rvby:hover{color:var(--accent)}
.slide{justify-self:center;position:relative;display:grid;grid-template-columns:1fr 1fr;width:200px;height:30px;border-radius:var(--r-btn);background:var(--sunk);box-shadow:inset 0 0 0 1px var(--line);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted)}
.slide span{position:relative;z-index:1;display:grid;place-items:center;transition:color .15s}.slide span.cur{color:var(--accent-ink)}
.slide i{position:absolute;top:3px;left:3px;width:calc(50% - 3px);height:24px;border-radius:var(--r-btn);background:var(--accent);transition:transform .18s}.slide.on i{transform:translateX(100%)}
.pt{display:grid;gap:2px}.ptl{display:flex;align-items:center;gap:8px;min-width:0;padding:2px 0 2px 8px;border-left:3px solid var(--c,var(--line))}
.ptl .lbl{width:70px;flex:none}.ptl .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--fw-bold);font-size:var(--fs-md)}.ptl .inlsel{max-width:42%}
.tdform{display:grid;gap:8px}.tdform #tdIn{width:100%}.tdsel{flex-wrap:wrap}.duein{width:auto!important;padding:var(--sp-1) var(--sp-2)!important;font-size:var(--fs-sm);border-radius:var(--r-btn)!important;max-width:150px}
.estrow{display:flex;align-items:center;gap:var(--gap-btn);flex-wrap:nowrap;overflow:hidden}.estrow>*{flex:1 1 0;min-width:0;text-align:center}
.estb{padding:7px 2px;border-radius:var(--r-card);border:1px solid var(--line);background:var(--sunk);font-family:var(--ff);font-size:var(--fs-sm);-webkit-user-select:none;user-select:none;touch-action:manipulation}
.estb[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.estin{width:auto!important;padding:6px 8px!important;font-family:var(--ff);font-size:var(--fs-sm)}.estin.on{border-color:var(--accent)!important}
.inlsel.need{border:1.5px solid var(--hot);color:var(--hot)}
.alarm{display:grid;gap:12px;justify-items:center;text-align:center;padding:28px 16px;border-radius:var(--r-card);background:var(--hot-soft);border:2px solid var(--hot);max-width:520px;width:100%;margin:0 auto}
.alarm .alt{font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:1;color:var(--hot)}.alarm .altitle{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-lg);line-height:1.1}
/* Alarm check-in (activities screen): smaller time + title so the activity list starts higher; activity chips in 3 columns at a larger, fixed font (beats fitChips' inline shrink) */
.alarm{padding:14px 10px 16px;gap:8px}.alarm .alt{font-size:var(--fs-lg)}.alarm .altitle{font-size:var(--fs-lg)}
.alarm .alpick .swgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-btn)}.alarm .alpick .swgrid .chip{font-size:var(--fs-md)!important;min-height:42px;padding:var(--sp-1) var(--sp-1);line-height:1.1}
.alarm .alpick .swgrid .chip.wrap{overflow-wrap:anywhere}.alarm .alpick .swgrid .chip.cadd{font-size:var(--fs-md)!important}
.alctl{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.alctl.almute{margin-top:-4px}.alctl.almute .btn.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.sbopen{justify-self:center}.sbbox{display:grid;gap:6px;width:100%;max-width:520px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:8px 10px}
.sbrow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--sp-1);padding:var(--sp-1) 0;border-top:1px solid var(--line-2)}.sbrow:first-of-type{border-top:0}.sbrow.sel .sbt{color:var(--accent)}
.sbrow .sbt{font-size:var(--fs-sm);font-weight:var(--fw-bold);white-space:nowrap}.sbdurw{display:inline-flex;align-items:center;gap:3px}.sbdur{width:58px;padding:4px 6px!important;font-size:var(--fs-md);text-align:right}
.sbrow .sbcat{grid-column:1/-1;grid-row:2;justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis}.sbrow>.more{grid-column:3;grid-row:1}.sbrow .sbtt{grid-column:1/-1;grid-row:3;font-size:var(--fs-sm)}.sbbox input.sbdur{width:76px!important;min-height:0!important;padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-2)!important;text-align:center!important}
.sbfoot{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.sbdiff{color:var(--hot);font-weight:var(--fw-bold);font-size:var(--fs-sm)}
.sbrow .sbsel{background:none;border:0;padding:2px 0;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:inherit;text-align:left;cursor:pointer;justify-self:start}.sbrow .sbsel:hover{color:var(--accent)}
.sbrow .sbu{grid-column:1/-1;grid-row:4;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.uchips{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:stretch;gap:var(--gap-btn);width:100%;max-width:440px}
.sbrow .sbu .uchips{flex:1 1 240px;width:auto}
.uchip{display:inline-grid;justify-items:center;align-content:center;min-width:0;padding:var(--sp-1) 1px;border:1px solid var(--line);border-radius:var(--r-btn);background:var(--sunk);color:var(--ink);font:inherit;line-height:1.15;cursor:pointer}
.uchip b{font-size:var(--fs-md);font-weight:var(--fw-bold)}.uchip small{font-size:var(--fs-sm);color:var(--muted)}
.uchip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.uchip[aria-pressed="true"] small{color:inherit}
.ustep{min-width:0;min-height:36px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-md);line-height:1;cursor:pointer}
.uchip:disabled,.ustep:disabled{opacity:.35;cursor:default}
.mini.bobj .bdur.on{outline:2px solid var(--accent);outline-offset:-1px}
.bdurrow{display:flex;flex-wrap:wrap;gap:var(--sp-1);align-items:center;padding:var(--sp-1) 0 2px}
.alin{max-width:360px;font-size:var(--fs-md)!important;padding:12px!important;text-align:center}.alphrase{font-weight:var(--fw-bold);font-size:var(--fs-md);padding:6px 12px;border-radius:8px;background:var(--surface)}
@media (prefers-reduced-motion:no-preference){.alarm{animation:alp 1.2s ease-in-out infinite alternate}@keyframes alp{from{box-shadow:0 0 0 0 color-mix(in srgb,var(--hot) 40%,transparent)}to{box-shadow:0 0 0 14px transparent}}}
.tddiv{border:0;border-top:1px solid var(--line);margin:6px 0 0;width:100%}
[data-act=switch]{cursor:pointer}.runstrip [data-act=switch]:hover b,.ptl [data-act=switch]:hover{color:var(--accent)}
.lblin{width:84px;flex:none;border:0;border-bottom:1px dashed var(--line);background:transparent;padding:2px 2px;font-size:var(--fs-sm);border-radius:0;color:var(--muted)}.lblin:focus{outline:none;border-bottom-color:var(--accent);color:var(--ink)}
.ptl .inlsel{max-width:34%}.pinbar .lblin{width:70px}.lblrow2{padding-left:44px}
.hidegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:0 12px}
.pt{display:grid;gap:8px}.ptl{display:grid;gap:2px;padding:4px 0 4px 10px;border-left:3px solid var(--c,var(--line))}
.ptrow{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.ptrow .lbl{width:70px;flex:none}.ptrow .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--fw-bold);font-size:var(--fs-md)}
.ptclock{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--muted);flex:none}.ptclock.over{color:var(--hot)}
.ptclock.big{font-size:var(--fs-lg);padding:4px 10px;border-radius:var(--r-card);background:var(--sunk);color:var(--ink);min-width:74px;text-align:center}.ptclock.big.on{background:color-mix(in srgb,var(--c,var(--accent)) 14%,var(--surface))}
.ptmeta{display:flex;gap:8px;align-items:center;padding-left:78px}.ptmeta .inlsel{max-width:55%}
.sb.cur{padding:8px 10px}
.gaplist{display:grid;gap:var(--sp-2)}.gaprow{display:grid;gap:var(--sp-2)}.gplan{display:grid;gap:3px;font-size:var(--fs-sm);min-width:0}.gpseg{display:flex;align-items:baseline;gap:var(--sp-1);min-width:0}.gpseg .gpdot{align-self:center}.gpseg .num{color:var(--muted);white-space:nowrap;flex:none}.gpdot{width:9px;height:9px;border-radius:50%;background:var(--c);flex:none}.gpseg.none .gpdot{border:1px dashed var(--faint)}.gpseg.none .gpn{color:var(--muted)}.gpn{min-width:0;overflow-wrap:anywhere}.gaprow .sbbox{max-width:none}
.swgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap-btn)}.swgrid .chip,.swgrid .chip.addchip{justify-content:center;text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;padding:var(--sp-1) var(--sp-1);gap:0;border-radius:var(--r-btn);font-size:var(--fs-md);min-height:36px}.swgrid .chip{border:1px solid var(--line);border-radius:var(--r-btn);background:var(--surface);font-weight:var(--fw-reg);box-shadow:none}.swgrid .chip.on{border-color:var(--accent);color:var(--accent);font-weight:var(--fw-bold);background:var(--surface)}.swgrid .chip.pick{border-color:var(--ink,currentColor);background:var(--surface)}.swgrid .chip.addchip{border-style:dashed}.swgrid .chip .dot{display:none}.swgrid .chip.wrap{white-space:normal;line-height:1.1;word-break:keep-all;overflow-wrap:normal}
.runwrap{display:grid;gap:6px}.rs2{display:grid;gap:1px;padding:6px 10px;border-left:4px solid var(--c);border-radius:0 var(--r-card) var(--r-card) 0;background:color-mix(in srgb,var(--c) 10%,var(--surface));min-width:0}.rs2.plan{border-left-style:dashed;background:var(--surface)}.rs2.bad{background:var(--als)}.rs2top{display:flex;align-items:center;gap:8px}.rs2top .ptk2{flex:1;font-size:var(--fs-sm);letter-spacing:var(--ls-caps);text-transform:uppercase;font-weight:var(--fw-bold)}.rs2.bad .ptk2{color:var(--al)}.rs2time{font-size:var(--fs-md);font-weight:var(--fw-bold);font-family:var(--ff)}.rs2name{font-size:var(--fs-md);min-width:0;overflow-wrap:anywhere;cursor:pointer}.rs2name b{text-decoration:underline dotted;text-underline-offset:4px;text-decoration-thickness:1.5px}.rs2.plan .rs2name b:not(.badtxt){text-decoration:none}.runstrip.plan{background:var(--surface);border-left-style:dashed}.runstrip .pb{text-decoration:none!important}.badtxt{color:var(--al);font-weight:var(--fw-bold)}.runstrip.bad,.ptl.bad{background:var(--als)}.runstrip.bad .dot{background:var(--al)}.ptl.bad.act .ptk,.ptl.bad.plan .ptk{color:var(--al)!important}
.mini.pnslot{display:grid!important;grid-template-columns:1fr;gap:6px;align-items:start;padding-left:0}.pnslot .sbt{width:auto!important;min-width:0!important;font-size:var(--fs-sm)}.pnslot input{width:100%}.pnslot .slotcat{display:block!important;margin-left:0!important;max-width:100%!important;width:100%}
.resmode{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r-card);font-size:var(--fs-md);border:1px solid}.resmode svg{width:20px;height:20px;flex:none}.resmode b{font-family:var(--ff);letter-spacing:0}
.resmode.ul{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.resmode.up{background:var(--plan-soft);color:var(--plan-ink);border-color:color-mix(in srgb,var(--plan-ink) 45%,transparent)}
.reslink{display:block;width:100%;margin-top:4px;padding:12px 8px;background:none;border:0;font:inherit;font-weight:var(--fw-bold);text-align:center;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.reslink.ul{color:var(--accent)}.reslink.up{color:var(--plan-ink)}
/* Log Time grid (owner 11/1): time | assign slot | planned, fixed columns, one text style, 4px slots */
.lthdr{display:flex;align-items:center;gap:var(--sp-2,8px);min-height:var(--btn-h,40px)}.lthdr h2{flex:1;min-width:0;margin:0;text-align:left}
.lthdr .ltmode{font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);color:var(--accent)}
.ltcount{display:flex;align-items:center;gap:var(--sp-2,8px);min-height:32px;color:var(--muted);font-size:var(--fs-md)}
.ltlink{background:none;border:0;padding:6px 0;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer;white-space:nowrap}
.ltgrid{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1fr);column-gap:var(--sp-2,8px);align-items:center;font-size:var(--fs-md)}
.ltgrid>.ltday,.ltgrid>.lthead,.ltgrid>.ltrow,.ltgrid>.ltpick,.ltgrid>.dockpick{grid-column:1/-1}
.ltday{padding-top:var(--sp-3,12px)}
.lthead{display:flex;align-items:center;gap:var(--sp-2,8px);min-height:32px;margin-top:var(--sp-2,8px);border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--fs-sm);font-weight:var(--fw-bold)}
.ltgrid .ltrow{display:grid;grid-template-columns:subgrid;align-items:center;min-height:44px;gap:0 var(--sp-2,8px)}
@supports not (grid-template-columns:subgrid){.ltgrid .ltrow{grid-template-columns:40px minmax(0,1fr) minmax(0,1fr)}}
.ltt{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}
.ltcell{display:flex;gap:4px;min-width:0}
.ltslot{flex:1;min-width:0;height:var(--btn-h,40px);padding:0 10px;border:1px dashed var(--line);border-radius:var(--r-btn,4px);background:none;font:inherit;font-size:var(--fs-md);text-align:left;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.ltslot .ltph{color:var(--muted);font-size:var(--fs-sm)}
.ltslot.set{border-style:solid;border-color:color-mix(in srgb,var(--c,var(--muted)) 55%,transparent);background:color-mix(in srgb,var(--c,var(--muted)) 16%,var(--surface))}
.ltrow.pk .ltslot{border-style:solid;border-color:var(--accent)}
.ltdown{flex:none;width:var(--btn-h,40px);height:var(--btn-h,40px);border:1px solid var(--line);border-radius:var(--r-btn,4px);background:var(--surface);font:inherit;font-weight:var(--fw-bold);color:var(--accent);cursor:pointer}
.ltp{color:var(--muted);font-size:var(--fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ltpick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-btn,6px);padding:4px 0 8px 48px}
.ltc{height:var(--btn-h,40px);min-width:0;padding:0 6px;border:1px solid var(--line);border-left:4px solid var(--c,var(--line));border-radius:var(--r-btn,4px);background:var(--surface);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.upslot{display:flex;align-items:center;gap:8px;padding:4px 0;border-top:1px solid var(--line-2)}.upslot:first-of-type{border-top:0}.upslot .sbt{width:68px;flex:none;color:var(--muted);font-size:var(--fs-sm)}.upslot input{flex:1;min-width:0;font-size:var(--fs-md)!important}.upslot input::placeholder{color:var(--muted)}.upblock.past{opacity:.85}
.limrow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2);padding:var(--sp-1) 0;border-top:1px solid var(--line-2)}.limrow .inlsel{max-width:180px}
.blockcard .bname{font-size:var(--fs-md)!important;white-space:nowrap}.nextcard .nextblock{font-size:var(--fs-md)!important;padding:8px 12px}
.blockcard .shift button{width:28px;height:26px;font-size:var(--fs-sm);border-radius:var(--r-btn)}.blockcard .shift .acc{min-width:28px;font-size:var(--fs-sm)}.blockcard .shiftlbl{font-size:var(--fs-sm)!important}
.blockcard .mini,.blockcard .mini .inl,.blockcard .mini .t,.blockcard .mini input{font-size:var(--fs-md)!important;font-weight:var(--fw-reg)!important}.blockcard .mini .sbt{font-size:var(--fs-sm)!important}
main .card,main .blockcard,main .dayobj,main .setsec,main .goalscard{padding-top:8px!important;padding-bottom:12px!important}main .blockcard,main .dayobj{padding-left:14px;padding-right:14px}main .card>.lblrow:first-child,main .blockcard>.lblrow:first-child,main .dayobj>.lblrow:first-child{margin-top:0;min-height:22px}.dayhead{padding-top:8px!important}main .runwrap{gap:4px!important}
main .gtree .gnode .inl,main .gtree .gnode.goal .inl,main .gtree .gnode.area .inl{font-size:var(--fs-md)!important;line-height:1.3}.gnode.area .inl{font-weight:var(--fw-bold)!important}.gnode textarea.inl{resize:none;overflow:hidden;border:0;background:none;padding:var(--sp-1) var(--sp-1);min-height:0;white-space:pre-wrap;overflow-wrap:anywhere;display:block;width:100%;font-family:var(--ff)}.gnode span.t{white-space:normal;overflow-wrap:anywhere}.gnode{align-items:flex-start!important}.gnode .tw,.gnode .add,.gnode .more{margin-top:0}
.flbl{font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--muted);text-transform:none;letter-spacing:0}.estrow .estin{text-align:center}.estrow{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:var(--gap-btn)}.estrow>*{min-width:0;width:100%}.horizon{gap:8px!important}.hweek{display:grid;gap:4px;padding-top:6px;border-top:1px solid var(--line-2)}.hweek:first-of-type{border-top:0}.hwhead{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--fs-md)}.hwhead .muted{font-size:var(--fs-sm)}
.hgrid{display:grid;gap:2px}.hday{display:grid;grid-template-columns:52px 1fr;gap:6px;align-items:start;padding:3px 4px;border-radius:8px}.hday.today{background:var(--accent-soft)}.hday.past{opacity:.6}
.hdate{font-size:var(--fs-sm);color:var(--muted);padding-top:4px}.hdate b{font-size:var(--fs-md);color:var(--ink)}.hobjs{display:grid;gap:1px;min-width:0}
.hobj{border:0;background:none;padding:2px 4px;font-size:var(--fs-md);width:100%;min-width:0;border-bottom:1px dashed transparent;border-radius:0}.hobj:focus{border-bottom-color:var(--accent);outline:none}.hobj::placeholder{color:var(--muted)}.hobj.done{text-decoration:line-through;color:var(--muted)}
@media (min-width:860px){.hgrid{grid-template-columns:repeat(7,minmax(0,1fr))}.hday{grid-template-columns:1fr;border:1px solid var(--line-2)}.hobj{font-size:var(--fs-sm)}}
.rundock{position:fixed;left:0;right:0;margin:0 auto;width:calc(100% - 12px);max-width:808px;bottom:calc(var(--tabh,0px) + 6px);z-index:8;box-shadow:var(--shadow)!important;border:1px solid var(--line)!important;max-height:45vh;overflow:auto}
.rundock.min{left:0;right:0;width:100%;max-width:820px;margin:0 auto;bottom:var(--tabh,0px);box-shadow:none!important;border:0!important;overflow:visible;padding:0!important;background:none}.rundock.min .runstrip{box-shadow:var(--shadow)}
.runstrip.min.two{display:grid!important;grid-template-columns:1fr;width:min(300px,calc(100vw - 20px));gap:2px;padding:6px 12px;border-radius:var(--r-card);background:var(--surface);max-width:min(340px,calc(100vw - 20px));text-align:left}
.runstrip.two .mrow{display:flex;align-items:center;gap:var(--sp-1);min-width:0;font-size:var(--fs-sm)}.runstrip.two .mrow .dot{background:var(--c);flex:none}.runstrip.two .mk{color:var(--muted);flex:none}.runstrip.two .mn{font-weight:var(--fw-bold);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.runstrip.two .num{flex:none;margin-left:8px}.runstrip.two .mrow.bad .mn{color:var(--al)}.runstrip.two .mrow.bad .dot{background:var(--al)}
main{padding-bottom:calc(var(--tabh,0px) + var(--dockh,0px) + 14px)!important}
.placebar,.tray.sheetish{bottom:calc(var(--tabh,58px) + var(--dockh,0px))!important}.toast{bottom:calc(var(--tabh,0px) + var(--dockh,0px) + 12px)!important}
@media (min-width:860px){.rundock{bottom:10px}}
.dockpick{position:fixed;left:0;right:0;margin:0 auto;width:calc(100% - 12px);max-width:808px;bottom:calc(var(--tabh,0px) + var(--dockh,0px) + 2px);z-index:8;max-height:calc(100vh - var(--tabh,0px) - var(--dockh,0px) - 80px);overflow:auto;display:grid;gap:6px;padding:8px 10px 10px;border-radius:var(--r-card);box-shadow:var(--shadow);border:2px solid var(--line)}
.dockpick.plan{background:var(--plan-soft);border-color:var(--plan-ink)}.dockpick.plan>.lblrow .lbl{color:var(--plan-ink)}
.dockpick.act{background:var(--accent-soft);border-color:var(--accent)}.dockpick.act>.lblrow .lbl{color:var(--accent)}
.dockpick .swgrid .chip{background:var(--surface)}.dockpick .mini.pnslot{grid-template-columns:auto minmax(0,1fr)!important;column-gap:8px!important;row-gap:0!important;align-items:center!important;padding:0!important}.dockpick .pnslot .pngrp{grid-column:1/-1}.dockpick .pnslot .sbt{font-size:var(--fs-sm)!important;color:var(--plan-ink)}.dockpick .pnslot input{padding:var(--sp-1) var(--sp-2)!important}.dockpick .pnslot input{background:var(--surface);border-radius:var(--r-btn);padding:var(--sp-1) var(--sp-2)}
.rs2.plan.picking{outline:2px solid var(--plan-ink);outline-offset:-2px}
/* Right Now on plan / off plan */
.runwrap.onplan .rs2{background:var(--nudge-soft)!important}.runwrap.offplan{border-left:4px solid var(--warn)!important}.runwrap.offplan.red{border-left-color:var(--hot)!important}
.rnstat{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--fs-sm);min-height:22px}.rnstat.on{color:var(--nudge);font-weight:var(--fw-bold)}
.rnck{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:var(--nudge);color:var(--accent-ink);font-size:var(--fs-sm);line-height:1}
.rntag{font-weight:var(--fw-bold);color:var(--warn);background:var(--warn-soft);border-radius:var(--r-btn);padding:2px var(--sp-2)}.runwrap.red .rntag{color:var(--hot);background:var(--hot-soft)}.rnstat .btn.sm{padding:var(--sp-1) var(--sp-2)}
.runstrip.two.onplan{background:var(--nudge-soft)!important}.runstrip.two.offplan{border-left:4px solid var(--warn)!important}.runstrip.two.offplan.red{border-left-color:var(--hot)!important}.rs2.act.picking{outline:2px solid var(--accent);outline-offset:-2px}
@media (min-width:860px){.dockpick{bottom:calc(10px + var(--dockh,0px))}}
.dockpick.alpick{position:static;width:100%;max-width:520px;max-height:none;box-shadow:none;text-align:left;margin:0}
.pngrp{display:grid;gap:var(--gap-btn);margin-top:var(--sp-1)}.gbar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;padding:2px 0 6px;border-bottom:1px solid var(--line-2)}.gab{display:grid;justify-items:center;gap:2px;padding:var(--sp-1) 1px;border-radius:var(--r-btn);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);min-width:0}.gab svg{width:22px;height:22px}.gab span{font-size:var(--fs-sm);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gab.on{color:var(--accent);background:var(--accent-soft)}
.gslide{width:64px!important;flex:none;height:26px!important}.gslide i{height:20px!important}.gslide svg{width:13px;height:13px}.gst{flex:none;padding:4px 8px!important;font-size:var(--fs-sm)!important}.iconbtn.on{color:var(--accent);background:var(--accent-soft)}
.glist{display:grid;gap:0}.gl{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) 0 var(--sp-1) calc(var(--dep)*22px);min-width:0;font-size:var(--fs-md)}.gl .t{flex:1;min-width:0}.gl.done .t{text-decoration:line-through;color:var(--muted)}.gl.act{font-size:var(--fs-md)}.gl.act .inl{font-size:var(--fs-md)}
.gdue{width:auto!important;max-width:78px;text-align:center;padding:2px var(--sp-2)!important;font-size:var(--fs-sm)!important;border-radius:var(--r-btn)!important;flex:none;background:var(--sunk)}.gtw{display:flex;align-items:center;gap:3px;font-size:var(--fs-sm);color:var(--muted);flex:none;padding:4px}.gtw svg{width:12px;height:12px;transition:transform .15s}.gtw.open svg{transform:rotate(90deg)}
.gl.add .inl::placeholder{color:var(--muted)}.gl.add .inlsel{flex:none}.ghd{display:flex;align-items:center;gap:6px;margin-top:10px;padding-bottom:2px;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);text-transform:uppercase;letter-spacing:var(--ls-caps)}.ghd svg{width:16px;height:16px}.gaicon{flex:none;color:var(--muted);display:grid}.gaicon svg{width:16px;height:16px}.gaico svg{width:22px;height:22px;color:var(--muted)}
.horizon{gap:12px!important}.hwhead{width:100%;text-align:left;padding:4px 0}.hwhead .tw svg{width:12px;height:12px;transition:transform .15s;vertical-align:middle}.hwhead .tw.open svg{transform:rotate(90deg)}.hweek{gap:8px!important;padding-top:10px!important}.hgrid{gap:6px!important}.hday{padding:6px 8px!important;gap:8px!important}.hobjs{gap:4px!important}.hobj{padding:5px 6px!important;font-size:var(--fs-md)!important;border-bottom:1px dashed var(--line-2)!important}.hdate{padding-top:6px!important}
@media (min-width:860px){.hobj{font-size:var(--fs-sm)!important}}
.mini.bobj{border-left:3px solid var(--c,transparent);padding-left:6px;gap:6px}.mini.bobj.add{border-left-color:transparent}.mini.bobj.cur{background:color-mix(in srgb,var(--c) 12%,var(--surface));border-radius:0 8px 8px 0}.mini.bobj .bdur{flex:none}.mini.bobj .more{width:26px;height:26px;color:var(--accent)}
.metricsall{gap:0!important}main{gap:8px!important}main .card,main .blockcard,main .dayobj,main .setsec{padding-left:8px!important;padding-right:8px!important;padding-top:6px!important;padding-bottom:8px!important;border-radius:var(--r-card)!important;gap:6px!important}main .rs2{padding:4px 8px}main .warnbox{padding:5px 8px!important}main .dayobj .mini,main .blockcard .mini{padding-top:1px;padding-bottom:1px}main .nextcard .nextblock{padding:6px 10px}main .daycard>.dayhead{padding:6px 10px 0!important}main .daycard>.nav2{padding:4px 6px 6px!important}main .metricsall .card,main .setsec .card{padding-left:0!important;padding-right:0!important}@media (min-width:860px){main{padding-left:16px;padding-right:16px}}.metricsall .brk .brow{font-size:var(--fs-md)!important;column-gap:var(--sp-4)!important;grid-template-columns:12px minmax(0,1fr) 84px 84px 18px!important}.metricsall .brk .brow .grow,.metricsall .brk .brow .num{font-size:var(--fs-md)!important;font-weight:var(--fw-reg)}.metricsall .brk .brow .grow i{font-style:normal}.metricsall .brk .brow.sub .grow{font-size:var(--fs-md)!important}.metricsall .brk .tcell small{margin-left:5px;font-size:var(--fs-sm)}.metricsall .brk .brow.bhead .hcol{text-align:right}@media (max-width:520px){.metricsall .brk .brow{column-gap:var(--sp-3)!important;grid-template-columns:10px minmax(0,1fr) 60px 60px 14px!important}.metricsall .brk .tcell small{margin:2px 0 0}}.untr{display:grid;gap:6px;padding:8px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}.untrbtns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-btn)}.untrbtns .btn{white-space:nowrap;min-width:0;text-align:center}.untrbtns select.markas{appearance:none;-webkit-appearance:none;background-image:none;text-align:center;text-align-last:center;padding:var(--sp-1) var(--sp-1);font-weight:var(--fw-bold)}.brk .brow.wtot{border-top:1px solid var(--line-2);border-radius:0;margin-top:2px}.mhead .seg{display:flex!important;flex-wrap:nowrap!important;width:100%;flex:1 1 100%;gap:var(--gap-btn)}.mhead .seg button{flex:1 1 0;min-width:0;white-space:nowrap;padding:var(--sp-1) var(--sp-1);font-size:var(--fs-sm)}.metricsall .card{border:0!important;box-shadow:none!important;border-radius:0!important;background:none!important;padding:12px 0 4px!important;border-top:1px solid var(--line-2)!important}.metricsall>.card:first-child{border-top:0!important;padding-top:0!important}
.gmenu{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:2px 0 6px calc(var(--dep)*14px + 4px)}.gnode .more.on{color:var(--accent)}.gnode .pill{cursor:pointer;border:0;background:var(--sunk);order:7;align-self:center}
.warns{display:grid!important;grid-template-columns:1fr!important;gap:4px!important}.warns .warnbox{flex:none!important;width:100%}.warnbox{padding:6px 10px!important;gap:4px!important;font-size:var(--fs-sm)!important;border-radius:var(--r-card)!important}.warnbox .btn{padding:var(--sp-1) var(--sp-1)!important;min-height:0!important;height:26px;font-size:var(--fs-sm)!important;border-radius:var(--r-btn)!important}
@media (min-width:640px){.warnbox{grid-template-columns:auto 1fr;align-items:center}.warnbox .wacts{justify-self:end;width:min(100%,330px)}}
.lfbox{display:grid;gap:4px;padding:8px 10px;border-radius:var(--r-card);background:var(--als);border:1px solid color-mix(in srgb,var(--al) 40%,transparent);color:var(--al)}.lfbox .lfrow{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.lfbox .lfrow .grow{min-width:0}.lfbox p{margin:0;font-size:var(--fs-sm)}.lfbox.lfpin{margin:4px 8px 6px;padding:5px 8px;font-size:var(--fs-md)}.ffcard>.lfbox{margin:6px 8px}
.warns{position:static;display:flex;flex-wrap:wrap;gap:8px}.warnbox{flex:1 1 220px;display:grid;gap:6px;padding:8px 12px;border-radius:var(--r-card);background:var(--als);border:1px solid color-mix(in srgb,var(--al) 40%,transparent);color:var(--al);font-size:var(--fs-md)}.warnbox .wacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-btn)}.warnbox .mutecus{min-width:0;height:26px;padding:2px var(--sp-1)!important;font-size:var(--fs-sm)!important;border-radius:var(--r-btn)!important;text-align:center}.warnbox .btn.on{background:var(--al);color:var(--surface)}.warnbox .wacts .btn{white-space:nowrap;overflow:visible;padding-left:var(--sp-1);padding-right:var(--sp-1);font-size:var(--fs-sm);min-width:0}@media (max-width:420px){.warnbox .wacts .btn{font-size:var(--fs-sm)}}.warnbox .btn{color:var(--al);border-color:color-mix(in srgb,var(--al) 35%,transparent);background:var(--surface)}
.leaf.par{left:auto!important;width:46%;right:4px;opacity:.92;box-shadow:-2px 0 0 var(--bg)}
.swgrp{display:grid;gap:6px;padding:10px 12px;border-radius:var(--r-card);background:var(--surface);box-shadow:0 1px 0 var(--line)}
.chip.pick{border-color:var(--c);background:color-mix(in srgb,var(--c) 14%,var(--surface))}
.swlbl{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 0 0 4px;border-top:1px dashed var(--line)}
.mini-hero{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--r-card);background:var(--surface);border-left:4px solid var(--c,var(--line));font-size:var(--fs-md);min-width:0}
.mini-hero.on{background:color-mix(in srgb,var(--c) 12%,var(--surface))}.mini-hero .dot{background:var(--c,var(--line))}.mini-hero .grow{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini-hero .grow span[style*="block"]{display:inline!important;margin-left:6px}.mini-hero .ptclock.big{background:none;padding:0 2px;min-width:0;font-size:var(--fs-md);font-weight:var(--fw-bold)}
.inlsel.unset{color:var(--muted)}
.tdctl{display:grid;gap:8px}.tdctl label{flex-wrap:nowrap}.tdctl .lbl{width:52px;flex:none}.tdctl select{flex:1}
.gtree{padding:8px 4px!important}
.gnode{padding:4px 4px 4px calc(0px + var(--dep)*var(--ind,16px))!important;gap:4px!important}
.gnode .inl,.gnode.goal .inl,.gnode.smart .inl,.gnode.project .inl{font-family:var(--ff)!important;!important;font-weight:var(--fw-reg)!important;font-size:var(--fs-md)!important}
.gnode.goal .inl{font-size:var(--fs-md)!important}.gnode .tw{width:18px!important}
.gnode::before{left:calc(9px + (var(--dep) - 1)*var(--ind,16px))!important}
.subnav{position:sticky;top:calc(env(safe-area-inset-top,0px) + 57px);z-index:8;display:flex;align-items:center;gap:2px;overflow-x:auto;margin:-14px -16px 0;padding:6px 12px;background:var(--surface);border-bottom:1px solid var(--line)}
.subnav .subt{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);text-transform:uppercase;letter-spacing:var(--ls-caps);margin-right:6px;flex:none}
.subnav button{flex:none;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-btn);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted)}.subnav button[aria-current="page"]{color:var(--accent);background:var(--accent-soft)}
@media (min-width:860px){.subnav{margin:-18px 0 0;border-radius:0 0 var(--r-card) var(--r-card)}}
.setwrap .card h3{font-size:var(--fs-md)!important}
.sethead{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-md);color:var(--accent);padding:10px 2px 0;border-top:1px solid var(--line);margin-top:4px}
.clk{text-decoration:underline dotted;text-decoration-color:color-mix(in srgb,currentColor 55%,transparent);text-underline-offset:4px;text-decoration-thickness:1.5px;cursor:pointer}
.runstrip .clk{font-weight:var(--fw-bold);font-family:var(--ff)}.runstrip .grow b{text-decoration:underline dotted;text-underline-offset:4px;text-decoration-thickness:1.5px}
.setlist{display:grid;gap:var(--sp-3);max-width:640px;width:100%}
.setsec .card .lbl,.setsec .lbl{text-transform:none;letter-spacing:0;font-size:var(--fs-sm)!important;font-weight:var(--fw-bold);color:var(--muted)}.setsec .card h3{margin-bottom:2px!important}
.setsec{display:grid;gap:0;background:var(--surface);border-radius:var(--r-card);padding:12px 16px;box-shadow:0 1px 0 var(--line)}
.setsec .sethead{border-top:0;margin:0;padding:2px 0 6px}.setsec>.card{box-shadow:none!important;border:0;border-top:1px solid var(--line-2);border-radius:0;padding:12px 0;background:none}.setlist .two{grid-template-columns:1fr!important}
.ptl .lbl{display:flex;align-items:center;gap:4px;width:80px!important}.ptl .lbl svg{width:13px;height:13px;flex:none}
.ptl.plan{border-left-style:dashed;padding-top:2px;padding-bottom:2px}.ptl.plan .ptrow .t{font-weight:var(--fw-reg);color:var(--muted)}.ptl.plan .ptclock{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--muted)}.ptl.plan .ptclock small{font-size:var(--fs-sm);font-weight:var(--fw-reg)}
.ptl.act{border-radius:0 var(--r-card) var(--r-card) 0;padding:8px 10px 8px 12px}.ptl.act.on{background:color-mix(in srgb,var(--c) 12%,var(--surface));border-left-width:4px}.ptl.act .ptrow .t{font-size:var(--fs-md)}.ptl.act .lbl{color:var(--ink)}
.ptmeta{padding-left:88px!important}
.since{display:block;font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--muted);margin-top:1px}
.ptk{width:72px;flex:none;font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--muted)}.ptl.act .ptk{color:var(--ink)}.ptmeta{padding-left:80px!important}.ptk2{color:var(--muted);font-weight:var(--fw-bold)}
.nexttools{display:flex;align-items:center;gap:2px;padding:0 4px}.iconbtn{width:30px;height:28px;border-radius:var(--r-btn);display:grid;place-items:center;color:var(--muted);background:transparent}.iconbtn:hover{background:var(--sunk);color:var(--accent)}.iconbtn svg{width:15px;height:15px}
.mini.todo.sub{padding-left:28px;font-size:var(--fs-sm)}.mini.todo .check.sm{border-radius:var(--r-btn)}.tdc{font-weight:var(--fw-reg);opacity:.75}
.fillrow{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-2) var(--sp-2);border-radius:var(--r-card);background:var(--sunk)}.fillrow select{width:auto;flex:1 1 140px}
.newact{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:6px 0 0}.newact input{flex:1 1 140px;padding:var(--sp-1) var(--sp-2)}.newact .inlsel{max-width:140px}
.addchip{border-style:dashed;color:var(--muted)}
/* inline "+ Add category" in every category picker */
.swgrid .caddin,.pngrp .caddin{grid-column:1/-1;width:100%;min-width:0;font:inherit;font-size:var(--fs-md);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-btn);border:1px solid var(--accent);background:var(--surface);color:var(--ink)}
.caddtop .chip.addchip{width:100%;justify-content:center}.swgrid .chip.cadd{font-weight:var(--fw-bold)}
.cpsgrid{display:grid;gap:8px}.swcats{gap:8px}.bulkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}
.ghead,.gbody{grid-template-columns:1fr 1fr!important}.ghead .lblrow{padding:var(--sp-1) var(--sp-2)!important}.ghead .gcorner{display:inline-grid;padding:0!important;margin-right:2px}.ghead .gcorner .corner{width:26px;height:26px}
.ghead div+div{border-left:1px solid var(--line)}.gbody>.col:first-child{border-left:0}
.times.in{position:absolute;inset:0;pointer-events:none;z-index:0}.times.in div{padding:1px 0 0 4px;font-size:var(--fs-sm);color:var(--muted)}
.nowline{left:0!important}
.leaf{display:flex;flex-direction:column;justify-content:center;font-size:var(--fs-sm);padding:0 var(--sp-2);border-radius:7px}.leaf b{font-size:var(--fs-sm)}.leaf i{font-size:var(--fs-sm)}
.gbody.fit .leaf{font-size:var(--fs-sm);padding:0 var(--sp-1)}.gbody.fit .leaf b{font-size:var(--fs-sm)}
.tdsel{display:flex;gap:6px;flex-wrap:nowrap;align-items:center;min-width:0;width:100%}.tdsel>*{flex:1 1 0;min-width:0;max-width:none!important}
.tdmeta .tdsel{width:100%}
.nav2{display:grid;gap:4px;justify-items:center}.navrow{display:flex;align-items:center;gap:var(--sp-1);justify-content:center;flex-wrap:nowrap}
.navrow .trow{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--ink);min-width:150px;justify-content:center}
.datefix,.tsel,.navrow .trow{font-family:var(--ff)!important;font-size:var(--fs-md)!important;font-weight:var(--fw-bold)!important}.datefix{min-width:150px;text-align:center}
.mini.slot{flex-wrap:wrap}.mini.slot .slotcat{display:none;flex-basis:100%;margin-left:96px;max-width:calc(100% - 96px)}.mini.slot.typing .slotcat,.mini.slot:focus-within .slotcat{display:block}
.ptl{gap:4px}.ptk{display:block;width:auto!important;font-size:var(--fs-sm)!important;font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted)!important}.ptl.act .ptk{color:var(--ink)!important}
.ptrow{flex-wrap:wrap}.ptrow .ptk{flex-basis:100%}.ptmeta{padding-left:0!important}
/* type scale: one size up across the app */
body{font-size:var(--fs-md)}.mini,.mini .inl{font-size:var(--fs-md)}.lbl{font-size:var(--fs-sm)}.inlsel{font-size:var(--fs-sm)}.chip{font-size:var(--fs-md)}.pill{font-size:var(--fs-sm)}
.seg button{font-size:var(--fs-md)}.sbt,.mini .sbt{font-size:var(--fs-sm)}.ptrow .t{font-size:var(--fs-md)}.ptl.act .ptrow .t{font-size:var(--fs-md)}.leaf b{font-size:var(--fs-md)}.leaf i{font-size:var(--fs-sm)}
.times.in div{font-size:var(--fs-sm)}.runstrip,.mini-hero{font-size:var(--fs-md)}.nextblock,.nextline{font-size:var(--fs-md)}.brow{font-size:var(--fs-md)}.gnode .inl{font-size:var(--fs-md)!important}.gnode.goal .inl,.gnode.area .inl{font-size:var(--fs-md)!important}
.ghead .lbl{font-size:var(--fs-sm)}
/* quieter surfaces */
.card{border-color:transparent;box-shadow:0 1px 0 var(--line)}
.tile{border-color:transparent;background:var(--surface);box-shadow:0 1px 0 var(--line)}

/* Day */
.daybar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.daybar h2{font-size:var(--fs-lg);font-weight:var(--fw-bold);flex:1 1 auto;min-width:0}
.dayshell{display:grid;gap:14px;align-items:start}
@media (min-width:960px){.dayshell{grid-template-columns:minmax(0,1fr) 330px}}
main{max-width:820px}main.wide{max-width:1180px}
main h2:not(.ask),main .card h3,main .blockcard h3{font-family:inherit!important;font-stretch:normal!important;font-size:var(--fs-sm)!important;font-weight:var(--fw-bold)!important;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted);margin:0!important;line-height:1.3}
main .lbl{color:var(--muted)}.shift{position:relative;display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}.shiftlbl{flex-basis:100%;text-align:right;width:auto!important;font-size:var(--fs-sm)!important}
.dayhead{padding:12px 16px 0}.daycard>.dayhead+.nav2,.daycard>.dayhead+.navline{padding-top:4px}
html.snapday{overscroll-behavior-y:none}html.isday main{padding-bottom:8px!important}@media (max-width:859px){html.isday main{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))!important}}
.daycard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;min-width:0}.daycard>.nav2,.daycard>.navline{padding:10px 8px;border-bottom:1px solid var(--line);background:var(--surface)}.daycard .grid{border:0;border-radius:0}.daycard .gstack{gap:0}
.grid{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}
.ghead{display:grid;grid-template-columns:48px 1fr 1fr;border-bottom:1px solid var(--line)}
.ghead div{padding:8px 10px}
.ghead div+div{border-left:1px solid var(--line)}
.gstack{display:grid;gap:10px;min-width:0}.gtitle{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-md);padding:8px 12px 0}
.gbody{position:relative;display:grid;grid-template-columns:48px 1fr 1fr;overflow:hidden}
.gbody.fit .leaf{font-size:var(--fs-sm);padding:0 var(--sp-1);line-height:1.15}.gbody.fit .cont .cl{font-size:var(--fs-sm)}
.times{position:relative}
.times div{position:absolute;left:0;right:0;font-family:var(--ff);font-size:var(--fs-sm);color:var(--muted);padding:1px 0 0 6px}
.col{position:relative;border-left:1px solid var(--line);
  background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--r)*6 - 1px),var(--line-2) calc(var(--r)*6 - 1px),var(--line-2) calc(var(--r)*6))}
.cont{position:absolute;left:0;right:0;border-top:1px solid var(--line);background:color-mix(in srgb,var(--c,var(--faint)) 7%,transparent)}
.cont.block{background:color-mix(in srgb,var(--accent) 5%,transparent);border-top:2px solid color-mix(in srgb,var(--accent) 40%,transparent)}
.cont .cl{position:absolute;right:4px;top:1px;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);letter-spacing:var(--ls-caps);text-transform:uppercase;background:none;max-width:70%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.leaf{position:absolute;left:4px;right:4px;border-radius:6px;padding:1px var(--sp-1);overflow:hidden;font-size:var(--fs-sm);line-height:1.2;text-align:left;
  background:color-mix(in srgb,var(--c) 20%,var(--surface));border-left:4px solid var(--c);color:var(--ink);z-index:1}
.leaf b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:var(--fw-bold)}
.leaf i{font-style:normal;color:var(--muted);font-size:var(--fs-sm);white-space:nowrap}
.leaf.done{opacity:.55}
.leaf.done b{text-decoration:line-through}
.leaf.routine,.leaf.sleep{opacity:.9}
.leaf.live{outline:2px solid var(--c);outline-offset:-1px}
.leaf.none{--c:var(--faint);background:repeating-linear-gradient(45deg,var(--sunk) 0 6px,var(--surface) 6px 12px)}
.cursor{position:absolute;left:2px;right:2px;height:var(--r);border:2px dashed var(--accent);border-radius:6px;z-index:2;pointer-events:none}
.nowline{position:absolute;left:48px;right:0;border-top:2px solid var(--hot);z-index:3;pointer-events:none}
.tray{display:grid;gap:10px;align-content:start}
@media (min-width:960px){.tray{position:sticky;top:calc(env(safe-area-inset-top,0px) + 70px);max-height:calc(100vh - 90px);overflow:auto}}
.tray .item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2);border-radius:var(--r-card);border:1px solid var(--line);background:var(--surface);text-align:left;width:100%;min-width:0}
.tray .item .t{flex:1;min-width:0;overflow-wrap:anywhere}
.tray .item.action{font-weight:var(--fw-bold)}
.tray .kids{display:grid;gap:4px;padding-left:16px}
.placebar{position:fixed;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:8;display:flex;gap:8px;align-items:center;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:8px;background:var(--surface);border-top:1px solid var(--line)}
@media (min-width:960px){.placebar{display:none}}
.tray.sheetish{position:fixed;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom,0px));max-height:55vh;overflow:auto;z-index:8;background:var(--surface);border-top:1px solid var(--line);box-shadow:var(--shadow);
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:12px}

/* Goals */
.tree{display:grid;gap:2px}
.node{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2);border-radius:var(--r-card);min-width:0}
.node:hover{background:var(--sunk)}
.node .tw{width:22px;height:22px;display:grid;place-items:center;color:var(--muted);flex:none}
.node .tw svg{width:14px;height:14px;transition:transform .15s}
.node .tw.open svg{transform:rotate(90deg)}
.badge{font-family:var(--ff);font-size:var(--fs-sm);font-weight:var(--fw-bold);width:22px;height:20px;border-radius:var(--r-btn);display:grid;place-items:center;flex:none;background:var(--sunk);border:1px solid var(--line);color:var(--muted)}
.node .t{flex:1;min-width:0;overflow-wrap:anywhere;text-align:left}
.node.goal .t{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-md)}
.node.smart .t,.node.project .t{font-weight:var(--fw-bold)}
.node.done .t{text-decoration:line-through;color:var(--muted)}
.node .nums{font-family:var(--ff);font-size:var(--fs-sm);color:var(--muted);white-space:nowrap}
.node .add{color:var(--accent);font-weight:var(--fw-bold);font-size:var(--fs-lg);width:28px;height:28px;border-radius:8px;flex:none}
@media (max-width:560px){.node .nums{display:none}}

/* Review */
.rv{display:grid;gap:8px}
.rvrow{display:grid;grid-template-columns:minmax(110px,1.2fr) minmax(0,2fr) auto;gap:var(--sp-2);align-items:center;font-size:var(--fs-md)}
.rvrow .n{display:flex;align-items:center;gap:8px;min-width:0;text-align:left}
.rvrow .n span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rvrow.sub{font-size:var(--fs-sm);padding-left:var(--sp-4)}
.bars{display:grid;gap:3px}
.bar{height:7px;border-radius:4px;background:var(--line-2);overflow:hidden}
.bar i{display:block;height:100%;background:var(--c)}
.bar.p i{background:color-mix(in srgb,var(--c) 40%,transparent)}
.rvrow .v{font-family:var(--ff);font-size:var(--fs-sm);text-align:right;white-space:nowrap}
.wtrow{display:grid;gap:var(--sp-1);margin-top:var(--sp-2)}.brk .brow{display:grid!important;grid-template-columns:12px minmax(0,1fr) 92px 92px 18px;align-items:center;column-gap:var(--sp-2)}.brk .brow .num{text-align:right;white-space:nowrap}.brk .tcell small{color:var(--muted);font-size:inherit;margin-left:6px}.brk .brow .grow{overflow-wrap:normal;word-break:normal;line-height:1.25}.brk .brow.lblrow2 .grow{font-size:var(--fs-md)}.brk .brow.bhead{padding-top:0;padding-bottom:0}.brk .brow.bhead .hcol{text-align:right}@media (max-width:520px){.brk .brow{grid-template-columns:10px minmax(0,1fr) 56px 56px 14px;column-gap:var(--sp-1);font-size:var(--fs-md)}.brk .tcell small{display:block;margin:0;font-size:var(--fs-sm)}.brk .brow.bhead .hcol{font-size:var(--fs-sm)!important;letter-spacing:0}}
.brk .brow.bhead{padding-top:0;padding-bottom:0}.brk .brow .num{text-align:right}
.slide.wide2{width:260px;justify-self:end}
.wtbar{display:flex;height:18px;border-radius:var(--r-card);overflow:hidden;background:var(--sunk)}.wtbar i{display:block;height:100%}.wtnums{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--fs-md)}.wtnums .dot{width:8px;height:8px;margin-right:4px;vertical-align:middle}
.totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (max-width:620px){.totals{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tot{padding:10px 12px;border-radius:var(--r-card);background:var(--sunk);border:1px solid var(--line-2)}
.tot b{display:block;font-family:var(--ff);font-size:var(--fs-lg)}
.note{display:grid;gap:3px;padding:10px 0;border-top:1px solid var(--line-2);text-align:left;width:100%}
.note:first-child{border-top:0}
.note .meta{font-size:var(--fs-sm);color:var(--muted)}

/* Setup */
.ctree{display:grid;gap:4px}
.crow{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-1) 0;border-top:1px solid var(--line-2)}
.crow.l1{padding-left:22px}.crow.l2{padding-left:44px}
.crow input[type=text]{flex:1 1 140px;width:auto;padding:var(--sp-1) var(--sp-2)}
.crow.l0 input[type=text]{font-family:var(--ff);font-weight:var(--fw-bold);font-size:var(--fs-md)}
.crow .lim{width:84px;flex:none}
.rt{display:grid;gap:6px}
.rtrow{display:grid;grid-template-columns:minmax(0,1fr) 70px auto;gap:var(--sp-1);align-items:center}

/* sheet + toast */
.scrim{position:fixed;inset:0;z-index:20;background:rgba(8,16,12,.45);display:flex;align-items:flex-end;justify-content:center}
@media (min-width:700px){.scrim{align-items:center}}
.sheet{background:var(--surface);width:100%;max-width:560px;max-height:90vh;overflow:auto;border-radius:var(--r-card) var(--r-card) 0 0;box-shadow:var(--shadow);display:grid;gap:12px;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:16px calc(16px + env(safe-area-inset-bottom,0px))}
@media (min-width:700px){.sheet{border-radius:var(--r-card)}}
.sheet h3{font-size:var(--fs-lg);font-weight:var(--fw-bold)}
.acts{display:flex;gap:var(--gap-btn);flex-wrap:wrap;justify-content:flex-end}
.acts .left{margin-right:auto;display:flex;gap:8px;flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:30;background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:var(--r-card);font-size:var(--fs-md);display:flex;gap:12px;align-items:center;box-shadow:var(--shadow);max-width:calc(100% - 32px)}
.toast button{color:var(--accent);font-weight:var(--fw-bold);filter:brightness(1.4)}
@media (min-width:700px){.sheet.wide{max-width:880px}}
.bk{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 6px;max-height:52vh;overflow:auto;padding:2px}
.bkh{font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted);padding:2px 2px 4px}
.bk input{padding:var(--sp-2) var(--sp-2);font-size:var(--fs-md);border-radius:var(--r-btn)}
.bks{grid-column:1/-1;font-size:var(--fs-sm);margin:-1px 2px 5px;color:var(--muted);min-height:0}
.bks:empty{display:none}.bks.err{color:var(--hot)}.bks.new{color:var(--accent)}.bks.update{color:var(--warn)}
@media (prefers-reduced-motion:no-preference){.sheet{animation:up .16s ease-out}@keyframes up{from{transform:translateY(20px);opacity:.6}}}
main .dayobj{gap:0!important;padding-top:4px!important;padding-bottom:6px!important}main .dayobj .mini{padding:0!important;min-height:0}main .dayobj .mini .inl,main .dayobj .mini .t{padding-top:1px!important;padding-bottom:1px!important;line-height:1.25}main .dayobj>.lblrow{min-height:20px!important}
.rundock{gap:3px!important;padding-top:4px!important;padding-bottom:5px!important}.rundock>.lblrow{min-height:0!important}.rundock>.lblrow .iconbtn{height:20px}.rundock .rs2{padding:2px 8px!important;gap:0}.rundock .rs2top{line-height:1.15}.rundock .rs2top .ptk2{font-size:var(--fs-sm)}.rundock .rs2name{font-size:var(--fs-md);line-height:1.25}
main{gap:5px!important}.nowwrap{gap:5px!important}.dayshell{gap:5px!important}.metricsall .card{padding-top:8px!important}main .card:not(.rundock),main .blockcard,main .dayobj{margin:0!important}
.mini.bobj .sbt{width:34px!important;font-size:var(--fs-sm)!important}.mini.bobj .bcat{flex:0 1 92px;max-width:92px;min-width:0;overflow:hidden;text-overflow:ellipsis}.mini.bobj .bdur{flex:0 0 auto}.mini.bobj .bsp{width:26px;flex:none}.mini.bobj .inl.t{min-width:60px}
main .daycard>.nav2{padding:2px 6px 4px!important;gap:0!important}.daycard .nav2 .nb{height:30px}.daycard .nav2 .navrow{gap:var(--sp-1)}.daycard>.dayhead{padding-top:4px!important}
.bnm{font-size:var(--fs-md)!important;font-weight:var(--fw-bold)!important;color:var(--ink,inherit);padding:1px 0!important}.bnm::placeholder{color:var(--muted)}.nextlist .bnm{margin-bottom:2px}
/* Goals | Objectives | Principles: one rounded track with a single thumb that slides to the picked option (owner 11/1: "I liked the slider") */.gvseg{position:relative;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:0!important;flex-wrap:nowrap!important;padding:var(--sp-1);border:1px solid var(--line);border-radius:var(--r-btn);background:var(--sunk);--i:0}.gvseg[data-i="1"]{--i:1}.gvseg[data-i="2"]{--i:2}.gvseg>i{position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px)/3);border-radius:var(--r-btn);background:var(--accent);box-shadow:0 1px 3px rgba(0,0,0,.14);transform:translateX(calc(100% * var(--i)));transition:transform .22s ease;pointer-events:none}.gvseg button,.gvseg button[aria-pressed]{position:relative;z-index:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:var(--sp-2) 2px;border:0!important;border-radius:var(--r-btn);background:none!important;color:var(--muted);font-family:var(--ff);font-weight:var(--fw-bold);transition:color .2s}.gvseg button[aria-pressed="true"]{color:var(--accent-ink)}@media (prefers-reduced-motion:reduce){.gvseg>i,.gvseg button{transition:none}}
.rundock.locked .rs2name{cursor:default}.rundock.locked .rs2name b{text-decoration:none}
/* Right Now dock, compact (owner 11/1): head = Status text + its action buttons + lock + minimize; each row ONE line "Label: value … time" */
.rundock .rnhead{display:flex;align-items:center;flex-wrap:nowrap;gap:4px;min-height:24px!important;min-width:0}.rundock .rnhead>.lbl{flex:none;margin-right:2px}
.rnstat{display:inline;flex:none;font-size:var(--fs-sm);font-weight:var(--fw-bold);min-height:0;background:none;border:0;padding:0;cursor:default;white-space:nowrap}.rnstat.on{color:var(--tx-ok)}.rnstat.off{color:var(--warn)}.runwrap.red .rnstat.off{color:var(--tx-bad)}
.rundock .rnact{flex:none;padding:2px 8px;white-space:nowrap;background:var(--surface);border:1px solid var(--line)}
.rundock .rnhead .lockb,.rundock .rnhead .iconbtn{height:24px;flex:none}.rundock .rnhead .iconbtn{width:24px}
.rundock .rnacts{display:flex;gap:var(--gap-btn);flex:none}
@media (max-width:599px){.rundock .rnhead.hasst>.lbl{display:none}}.rundock .rnhead>.rnstat{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.rundock .rnhead>.grow{min-width:0}
.rs2pair{display:grid;gap:3px;min-width:0}
@media (min-width:600px){html:not(.phonewide) .rundock .rs2pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}}
.rundock .rs2{display:flex!important;align-items:center;gap:6px;padding:3px 8px!important;white-space:nowrap;min-width:0}
.rundock .rs2>.ptk2{flex:none;font-size:var(--fs-sm);letter-spacing:0;text-transform:none;font-weight:var(--fw-bold);color:var(--tx-2)}
.rundock .rs2name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-md);line-height:1.35}.rundock .rs2name b{text-underline-offset:3px}
.rundock .rs2 .rs2since{font-size:var(--fs-sm)}.rundock .rs2.bad>.ptk2{color:var(--al)}
.rundock .rs2>.rs2time,.rundock .rs2>.opttake{flex:none;margin-left:auto}.rundock .rs2time,.rundock .siderow>.clk{font-size:var(--fs-md)!important;font-weight:var(--fw-bold)!important;font-family:var(--ff)!important;font-variant-numeric:tabular-nums;line-height:1.35}.rundock .mrow .num{font-size:inherit!important;font-weight:var(--fw-bold)!important;font-family:var(--ff)!important;font-variant-numeric:tabular-nums}.rundock .rs2>.opttake+.rs2time{margin-left:0}
.rundock .siderow{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);white-space:nowrap;min-width:0;border-left:4px solid var(--c);border-radius:0 var(--r-card) var(--r-card) 0;background:color-mix(in srgb,var(--c) 10%,var(--surface))}.rundock .siderow>.dot{display:none}
.rundock .siderow>.grow{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-md)}.rundock .siderow>.clk{flex:none;margin-left:auto;font-size:var(--fs-md);font-weight:var(--fw-bold);font-family:var(--ff)}
.hday{grid-template-columns:1fr!important;gap:0!important;padding:4px 6px!important}.hdate{padding-top:0!important;font-size:var(--fs-sm)}.hobj{padding-left:2px!important}
.ghead,.gbody{grid-template-columns:42px minmax(0,1fr) minmax(0,1fr)!important}.ghead .gtc{padding:0!important;border:0!important}
.times.gutter{position:relative;border-right:1px solid var(--line)}.times.gutter div{left:0;right:0;padding:0 5px 0 0!important;text-align:right;font-size:var(--fs-sm)!important;line-height:1;color:var(--muted);transform:translateY(-50%);white-space:nowrap}.times.gutter div[style="top:0px"]{transform:none}.times.gutter .midnight{transform:none!important;top:2px!important;line-height:1.15!important;font-size:var(--fs-sm)!important;color:var(--accent)!important;background:none!important;font-weight:var(--fw-bold)}.grid.contd .times.gutter div[style="top:0px"]:not(.midnight){display:none}
.gbody>.col:first-of-type{border-left:0}.nowline{left:0!important}
.tdquick{display:flex;gap:6px}.tdquick input{flex:1}.tdquick .btn{padding:var(--sp-1) var(--sp-3);display:grid;place-items:center}.tdquick .btn svg{width:18px;height:18px}
.tdmore{justify-self:start;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--accent);padding:2px 0}.tddet{display:grid;gap:8px}.tddet[hidden]{display:none!important}
.tdbar{display:flex;gap:6px;align-items:center;flex-wrap:nowrap;padding-top:4px;border-top:1px solid var(--line-2)}.tdseg{flex:1;flex-wrap:nowrap!important}.tdseg button{flex:1 1 0;padding:var(--sp-1) var(--sp-1)!important;font-size:var(--fs-sm)!important;font-family:var(--ff)!important;white-space:nowrap}.tdseg button .num{opacity:.7;font-size:var(--fs-sm)}.tdsort{flex:0 1 110px;max-width:110px}
.tdgrp{display:grid;gap:0}.tdgh{font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted);padding:8px 0 2px}.tdgh.hot{color:var(--hot)}
.tdrow{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) 0 var(--sp-1) var(--sp-1);border-left:3px solid var(--c,transparent);min-width:0;border-bottom:1px solid var(--line-2)}.tdrow .inl.t{flex:1;min-width:0;font-size:var(--fs-md)}.tdrow.done .inl{text-decoration:line-through;color:var(--muted)}.tdrow .dot{width:8px;height:8px}.tdrow .sbd{font-size:var(--fs-sm);color:var(--muted);flex:none}
.tdwhen{flex:none;cursor:pointer;background:var(--accent-soft);border-color:transparent;color:var(--accent)}.tdwhen.warn{background:var(--warn-soft);color:var(--warn)}
.tddetail{display:grid;gap:6px;padding:6px 0 8px 26px;border-bottom:1px solid var(--line-2)}.tddetail .row{gap:var(--sp-1)}.more.on{color:var(--accent)}
.gcyc{gap:0!important}.gcyc .ghd{margin-top:0}.gl{align-items:flex-start!important}.gl>.check,.gl>.gaicon,.gl>.gdue,.gl>.gtw,.gl>.more{margin-top:var(--sp-1)}.gl textarea.t{resize:none;overflow:hidden;border:0;background:none;padding:var(--sp-1) 0;min-height:0;white-space:pre-wrap;overflow-wrap:anywhere;display:block;font:inherit;line-height:1.3;width:100%}
.invrow{flex-wrap:nowrap!important;gap:var(--gap-btn)!important}.invrow .btn{flex:1 1 0;min-width:0;padding:var(--sp-1) var(--sp-1);font-size:var(--fs-md);white-space:normal;line-height:1.15;text-align:center}
.tshared{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.setlist .f{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0}.setlist .f>span{text-transform:none!important;letter-spacing:0!important;font-size:var(--fs-md)!important;font-weight:var(--fw-bold)!important;color:var(--ink)!important}.setlist .two{gap:2px!important}.setlist .f select,.setlist .f input{padding:var(--sp-1) var(--sp-2);font-size:var(--fs-md)}
.setsec{gap:0!important}.setsec>.card{padding:10px 0!important}.setsec>.card>h3{color:var(--muted)!important;margin-bottom:2px!important}
.setlink{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 10px;border-radius:var(--r-card);background:var(--sunk);margin-top:4px}.setlink b{display:block;font-size:var(--fs-md)}.setlink .muted{font-size:var(--fs-sm)}.setlink svg{width:14px;height:14px;color:var(--muted)}
.subhd{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ink);margin-top:8px;padding-top:8px;border-top:1px dashed var(--line-2)}
.dgrp{display:grid;gap:6px;padding:8px 0 2px;border-top:1px solid var(--line-2)}.dhd{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ink);cursor:pointer}.dbtns{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-btn)}.dbtns .btn{white-space:normal;font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-1);line-height:1.2}
.garow{display:grid;grid-template-columns:26px minmax(0,1fr) 92px 26px 26px;gap:var(--sp-1);align-items:center;padding:var(--sp-1) 0}.garow input,.garow select{padding:var(--sp-1) var(--sp-2);font-size:var(--fs-md)}
.catscr .ctree{display:grid;gap:8px}.cgrp{border:1px solid var(--line-2);border-radius:var(--r-card);overflow:hidden}
.catscr .crow{display:grid!important;grid-template-columns:34px minmax(0,1fr) auto;gap:var(--sp-1) var(--sp-2);align-items:center;padding:var(--sp-2) var(--sp-2)!important;border-top:1px solid var(--line-2);margin:0}.catscr .crow:first-child{border-top:0;background:var(--sunk)}.catscr .crow.l1{padding-left:24px!important}.catscr .crow.l2{padding-left:40px!important}
.catscr .crow input[type=text]{padding:var(--sp-1) var(--sp-2);font-size:var(--fs-md);width:100%}.catscr .crow.l0 input[type=text]{font-weight:var(--fw-bold)}.cord{display:flex;gap:2px}.cmeta{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:5px;align-items:center}.cmeta select,.cmeta .lim{width:auto;padding:var(--sp-1) var(--sp-1);font-size:var(--fs-sm)}.cmeta .lim{width:70px}.cmeta .btn{padding:var(--sp-1) var(--sp-2);font-size:var(--fs-sm)}
.catset{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px;border-radius:var(--r-card);background:var(--sunk)}.catset select{width:auto;flex:1 1 140px;padding:var(--sp-1) var(--sp-2)}
.rtgrid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
html main,html.isday main{padding-bottom:calc(var(--tabh,0px) + var(--dockh,0px) + 14px)!important}
.gsec{padding-left:calc(var(--dep)*22px + 4px);margin-top:4px;font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted)}
.garr{flex:none;color:var(--accent);font-weight:var(--fw-bold);margin-top:3px}

.rundock.min .runstrip.min.two{width:100%!important;max-width:none!important;border-radius:var(--r-card) var(--r-card) 0 0;border:1px solid var(--line);border-bottom:0;box-shadow:0 -2px 8px rgba(0,0,0,.06)!important;padding:5px 14px}
.gcyc input.cycdue{border:0!important;border-bottom:1px dashed var(--line-2)!important;background:none!important;padding:0 1px!important;font-size:var(--fs-sm)!important;color:var(--muted)!important;text-transform:none;letter-spacing:0;font-weight:var(--fw-reg)!important;width:auto!important;flex:0 1 auto;min-width:0;cursor:pointer;border-radius:0!important;min-height:0!important;height:20px!important;box-shadow:none!important;field-sizing:content}
.gcyc .ghd>span:nth-child(2){white-space:nowrap}
.gcyc input.cycdue[type=date]{color:var(--ink)!important;width:130px!important}
.ghd .lockb.sm{width:24px;height:24px;flex:none}.ghd .lockb.sm svg{width:13px;height:13px}
.gcyc .ghd{display:flex;align-items:center;gap:6px;min-width:0}.gcyc{grid-template-columns:minmax(0,1fr)!important}
.gblk{padding:1px 0}.gblk:has(>:nth-child(2)){border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:3px 0}.gblk:has(>:nth-child(2))+.gblk:has(>:nth-child(2)){border-top:0}.ghd+.gblk,.garhd+.gblk{border-top:0!important}
.garhd{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);min-width:0}.garhd svg{width:14px;height:14px;flex:none}.garhd+.gblk{border-top:0}
.gsym{color:var(--accent)}.gsym svg{width:15px;height:15px}.gsec .garr{margin:0;font-size:var(--fs-sm)}
.gbul{flex:none;display:grid;place-items:center;width:20px;min-height:24px;padding:0;border:0;background:none;color:var(--accent);cursor:pointer}.gbul .gaicon,.gbul .garr{margin:0!important}.gbul svg{width:15px;height:15px}.gl.done .gbul{color:var(--muted);opacity:.7}.gl.add{padding-left:calc(var(--dep)*22px + 25px)!important}
.gdash{font-weight:var(--fw-bold);font-size:var(--fs-md);line-height:1}.gtd{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--accent);white-space:nowrap}
.gl.act,.gl.act .t,.gl.act textarea.t,.gl.act .inl{font-size:var(--fs-md)!important;color:inherit}
.gobjp{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:2px 0 4px calc(var(--dep)*22px + 25px);padding:5px 8px;border-radius:var(--r-card);background:var(--accent-soft)}.gobjp .lbl{margin:0;flex:1 0 100%}.gobjp .gobjd{width:auto!important;min-height:0!important;height:30px!important;padding:2px 6px!important;font-size:var(--fs-sm)!important}
.gcyc button.cycdue.mbtn{border:0;border-bottom:1px dashed var(--line-2);background:none;padding:0 1px;font-size:var(--fs-sm);color:var(--muted);font-weight:var(--fw-reg);text-transform:none;letter-spacing:0;cursor:pointer;white-space:nowrap;min-height:0;height:20px;border-radius:0}
/* "by:" dates (owner 11/1): plain inline text after the goal, same font as the goal, muted; no pill or button look. Tap to type a new date in place */
.gby{flex:none;display:inline-flex;align-items:baseline;gap:.3em;padding:2px 0;font:inherit;line-height:1.3;color:var(--muted);cursor:text;white-space:nowrap}.gby.inh{display:none}.gl:focus-within>.gby.inh{display:inline-flex}.gby.late{color:var(--hot)}
.gl .gbyin{font:inherit!important;color:inherit!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;margin:0;min-height:0!important;height:auto!important;width:auto!important;max-width:9ch;line-height:inherit;field-sizing:content;min-width:2ch;outline:none;cursor:text}.gl .gbyin:focus{color:var(--ink)!important;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}.gl .gbyin::placeholder{color:var(--muted)}
.gcyc .cycby{display:inline-flex;align-items:baseline;gap:.3em;font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--muted);text-transform:none;letter-spacing:0;white-space:nowrap;cursor:text;min-width:0}.gcyc .cycby input.cycdue{border:0!important;font:inherit!important;color:inherit!important;height:auto!important;padding:0!important;max-width:9ch}.gcyc .cycby input.cycdue:focus{color:var(--ink)!important;outline:none;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}.gcyc button.cycdue.mbtn{border-bottom:0}
.gl>.gwhen{background:none;border:0;border-radius:0;padding:2px 0;font:inherit;line-height:1.3;align-self:flex-start}
.mcm{display:grid;gap:4px}.mcg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.mch{text-align:center;font-size:var(--fs-sm);color:var(--muted);font-weight:var(--fw-bold)}
.mcd{display:grid;place-items:center;gap:0;padding:4px 0;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;min-height:0}.mcd b{font-size:var(--fs-sm);font-weight:var(--fw-bold)}.mcd span{font-size:var(--fs-md);line-height:1.1}
.mcd.key{background:var(--sunk)}.mcd.today{border-color:var(--muted)}.mcd.on{background:var(--accent-soft);border:2px solid var(--accent)}.mcd:disabled{opacity:.35;cursor:default}
.gasgt{display:block;padding:5px 10px;border-radius:var(--r-card);background:var(--sunk)}.gasgt .muted{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:var(--ls-caps);font-weight:var(--fw-bold)}.gasgl{display:grid;grid-template-columns:1fr 1fr;gap:4px}.gasgd{display:flex;justify-content:center;gap:10px;padding:5px 8px;font-size:var(--fs-sm)!important;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);font-size:var(--fs-md);cursor:pointer}.gasgd.full{opacity:.45;cursor:default}
.gasgnav{display:flex;align-items:center;gap:6px}.gasgnav .btn{min-width:40px}.gasgty{display:flex;align-items:center;gap:8px}.gasgty .lbl{margin:0;white-space:nowrap}.gasgty input{flex:1;min-height:0!important;height:34px!important;padding:2px var(--sp-2)!important}
.gplist{display:grid;gap:2px}.gprow{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2) var(--sp-1) calc(var(--dep)*20px + 8px);border:0;border-radius:8px;background:none;text-align:left;font-size:var(--fs-md);cursor:pointer;width:100%}.gprow:hover{background:var(--sunk)}.gprow .gsym{color:var(--accent);display:grid}.gprow svg{width:15px;height:15px}.gprow.used{opacity:.45;cursor:default}
.gprow.ctx{cursor:default;color:var(--muted);font-size:var(--fs-sm);padding-top:var(--sp-1);padding-bottom:2px}.gprow.ctx:hover{background:none}.gprow.ctx .gsym{color:var(--muted)}
.gasgconv{display:flex;align-items:center;gap:8px}.gasgconv .lbl{margin:0;white-space:nowrap}
.hobjr{display:flex;align-items:center;gap:6px;min-width:0}.hnum{flex:none;width:20px;text-align:center;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted)}.hobjr .hobj{flex:1}
.hnum.mv{border:0;background:var(--sunk);border-radius:var(--r-btn);width:20px;height:20px;padding:0;text-align:center;cursor:pointer;color:var(--accent)}.hnum.mv:hover{background:var(--accent-soft)}
.sbtick{border:0;background:none;padding:0;cursor:pointer;color:inherit;font:inherit}.bobj.done .sbtick{text-decoration:line-through;color:var(--muted)}
/* one chevron style for every expand/collapse */
.tw,.gtw{color:var(--muted)}.tw svg,.gtw svg{width:13px!important;height:13px!important;transition:transform .15s;vertical-align:middle}
.tw.open svg,.gtw.open svg,details[open]>summary .tw svg{transform:rotate(90deg)}
summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}summary .tw{display:inline-grid;margin-right:4px}
.more.tw{display:grid;place-items:center}
/* grey caps heading only at the top of a container; labels further down are small dark sub-labels */
main :is(.card,.blockcard,.dayobj,section)>:not(:first-child) .lbl,main :is(.card,.blockcard,.dayobj,section)>.lbl:not(:first-child),main .shiftlbl{text-transform:none!important;letter-spacing:0!important;color:var(--ink,inherit)!important;font-size:var(--fs-sm)!important;font-weight:var(--fw-bold)!important}
main :is(.card,.blockcard,.dayobj,section)>:not(:first-child) .lbl.grow{flex:1}
main .rundock .lbl,main .dockpick .lbl{text-transform:uppercase!important;letter-spacing:var(--ls-caps)!important;font-size:var(--fs-sm);font-weight:var(--fw-bold)}
.mcbar{position:sticky;top:calc(var(--toph,56px) + 4px);z-index:3;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-card);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.mcbig{font-size:var(--fs-lg);line-height:1}.mcbar .muted{font-size:var(--fs-sm)}
.mcnav{display:flex;align-items:center;gap:6px}.mcnav .btn{min-width:40px}
.mcsc{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.mcsc::-webkit-scrollbar{display:none}
.mcsc>.mcm{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always}
.mcd.sel{border:2px solid var(--ink,#333)}
/* screen Back/Done rows stay in view */
main .row:has(>.btn.ghost:first-child[data-act]){position:sticky;top:var(--toph,0px);z-index:6;background:var(--surface);margin:-6px -12px 0;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-btn) var(--r-btn) 0 0;box-shadow:0 1px 0 var(--line)}
main>.row:has(>.btn.ghost:first-child[data-act]){background:var(--bg);margin:0;border-radius:0}
.mcbar{top:calc(var(--toph,0px) + 46px)!important}
/* To Do: keep every part inside the card */
.tdcard,.tdcard *{min-width:0;box-sizing:border-box}.tdcard{overflow:hidden}
.tdcard select,.tdcard input,.tdcard .btn{max-width:100%}
.tdbar{display:flex!important;flex-wrap:wrap;gap:6px;align-items:center}.tdbar .tdseg{flex:1 1 auto}.tdbar .tdsort{flex:1 1 100%;width:100%!important}
.tddetail{display:grid!important;grid-template-columns:minmax(0,1fr);gap:6px}.tddetail>.row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-1)}.tddetail>.row>*{width:100%!important;margin:0!important}
.tdsel{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.tdsel>*{width:100%!important}
.bnote{display:block;margin:-2px 0 4px 52px;font-size:var(--fs-sm)!important;padding:1px 0!important;color:var(--muted)}.bobj .bcat.grow{flex:1;min-width:0}
.minis.bplan{display:flex!important;flex-direction:column}.bobj select.bcat.grow{flex:1 1 auto!important;width:auto!important;max-width:none}.bobj.add .sbd{min-width:30px;text-align:right}
.sbtick{display:flex;flex-direction:column;align-items:flex-start;align-self:flex-start;padding-top:6px!important}.sbtick small{font-size:var(--fs-sm);color:var(--muted);line-height:1.9}.bobj:has(.sbtick small){align-items:flex-start}
.nexttools .chip.sm{padding:var(--sp-1) var(--sp-2);font-size:var(--fs-sm)}.nexttools .chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.nextlist{display:grid;gap:var(--sp-1);padding:var(--sp-1) 2px var(--sp-2)}
/* Day: no gutter, hour labels inside the plan column */
.ghead,.gbody{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}.times.gutter,.ghead>.gtc{display:none!important}
.col[data-col=plan]{position:relative}.hrs{position:absolute;inset:0;pointer-events:none;z-index:4}
.hrs div{position:absolute;left:2px;font-size:var(--fs-sm);line-height:1;padding:0 3px;border-radius:4px;background:color-mix(in srgb,var(--surface) 85%,transparent);color:var(--muted);font-family:var(--ff);white-space:nowrap}
.hrs div:not(:first-child){transform:translateY(-4px)}
.hrs .midnight{color:var(--accent);font-weight:var(--fw-bold)}
/* Day: time range on one clean line */
.navrow .trow{align-items:baseline;gap:var(--sp-1);border-bottom:2px dotted var(--accent);padding:0 2px;min-width:0}
.navrow .tsel{border:0!important;padding:0!important;min-width:0!important;height:auto!important;line-height:1.2;text-align:right;font-size:var(--fs-md)!important}
.navrow .trow>span{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--ink);white-space:nowrap}
/* shorter top bar */
header.top{padding-top:max(3px,env(safe-area-inset-top,0px))!important;padding-bottom:3px!important;min-height:0!important}
header.top .gear{height:32px!important;width:32px!important}header.top .gear svg{width:20px;height:20px}header.top .brand{font-size:18px!important}
.tdrow.tdr2{display:grid!important;gap:var(--sp-1);padding:var(--sp-1) 0 var(--sp-1) var(--sp-2)!important}.tdl1{display:flex;align-items:flex-start;gap:8px;min-width:0}.tdl1 .check{margin-top:var(--sp-1)}
.tdtitle{flex:1;resize:none;overflow:hidden;border:0;background:none;font:inherit;font-size:var(--fs-md);line-height:1.3;padding:2px 0;white-space:pre-wrap;overflow-wrap:anywhere;min-height:0;width:100%}
.tdrow.done .tdtitle{text-decoration:line-through;color:var(--muted)}
.tdl2{display:flex;align-items:center;flex-wrap:wrap;gap:4px 5px;padding-left:22px}.tdl2 .pill{padding:2px var(--sp-2);font-size:var(--fs-sm)}.tdl2 .sbd{font-size:var(--fs-sm)}.tdl2 .more{width:22px}.qgrp{display:inline-flex;gap:2px}
.qch{border:1px solid var(--line);background:var(--surface);border-radius:6px;font-size:var(--fs-sm);font-weight:var(--fw-bold);padding:1px 3px;min-width:22px;color:var(--muted);cursor:pointer;line-height:1.3}
.qch.on{background:var(--accent);border-color:var(--accent);color:#fff}
.tdg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-btn)}.tdg>*{width:100%!important;height:34px!important;min-height:0!important;margin:0!important;font-size:var(--fs-md)!important;padding:4px 10px!important;border-radius:var(--r-btn)!important;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tdg .tdgoal{grid-column:1/-1;border:1px solid var(--line);background:var(--sunk);color:var(--ink);cursor:pointer}
.cont .cl.tabox{left:50%!important;right:auto!important;transform:translateX(-50%);top:2px!important;max-width:86%;padding:1px 8px;border-radius:6px;font-size:var(--fs-sm)!important;letter-spacing:0;text-transform:none;color:#fff!important;background:var(--tc)!important;z-index:5}
.cont .cl.tabox.empty{background:var(--surface)!important;color:var(--muted)!important;border:1px dashed var(--line-2)}
.leaf.boxed{display:flex!important;align-items:flex-start;justify-content:center;padding-top:var(--sp-1)!important}
.leaf.boxed{text-align:center!important;place-items:start center!important}.leaf.boxed b{display:inline-block;margin:0 auto!important;align-self:flex-start;background:var(--c);color:#fff;border-radius:6px;padding:1px 8px;font-size:var(--fs-sm);max-width:92%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35}
.leaf.boxed.done b{opacity:.55;text-decoration:line-through}
.qch.qdue{display:inline-flex;align-items:center;gap:3px;min-width:30px;justify-content:center}.qch.qdue.late{border-color:var(--hot);color:var(--hot)}.qch.qdue.on:not(.late){background:var(--accent-soft);color:var(--ink);border-color:var(--accent)}
.tdcatb{border-left:4px solid var(--c)!important}.bobj button.bcat{text-align:center;cursor:pointer;border:1px solid var(--line);background:var(--sunk);border-radius:var(--r-btn);padding:var(--sp-1) var(--sp-3);font-size:var(--fs-md)}.bobj button.bcat.unset{color:var(--muted)}
.tdg>select,.tdg>button{width:100%!important;height:34px!important}
.placebar.pinbar.mini{position:fixed;left:0;right:0;margin:0 auto;max-width:820px;display:flex!important;align-items:center;gap:8px;padding:8px 12px!important;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -2px 10px rgba(0,0,0,.08);z-index:9;flex-wrap:nowrap}
.pinbar.mini .pt{font-size:var(--fs-sm);font-weight:var(--fw-bold);white-space:nowrap;flex:none}.pinbar.mini .pbname{flex:1;min-width:0;font-size:var(--fs-md)!important;font-weight:var(--fw-bold);border-bottom:1px solid var(--line)!important}
.pinbar.mini .pbcat{flex:1 1 auto!important;width:auto!important;min-width:0;text-align:center;border:1px solid var(--line);border-left:4px solid var(--c);background:var(--sunk);border-radius:var(--r-btn);padding:var(--sp-1) var(--sp-3);font-size:var(--fs-md);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pinbar.mini .pbcat.unset{color:var(--muted);border-left-color:var(--line)}
.unl{display:grid;gap:2px}.unrow{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) 0;border-bottom:1px solid var(--line);font-size:var(--fs-md);min-width:0}.unrow .grow{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unrow:last-child{border-bottom:0}
.qch.sm{padding:0 3px;font-size:var(--fs-sm);min-width:0;cursor:default}.bobj .tdbtn{flex:none;padding:var(--sp-1) var(--sp-2);font-size:var(--fs-sm)}
.dockpick.bsheet{max-height:min(55vh,calc(100vh - var(--tabh,0px) - var(--dockh,0px) - 120px));z-index:11}
.view-day .placebar.pinbar.mini{bottom:calc(var(--tabh,58px) + var(--dockh,0px))!important}
.totb{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);cursor:pointer;text-align:left;display:grid;gap:2px;padding:8px 10px;position:relative}.totb .tw{position:absolute;right:8px;top:8px}.totb.on{border-color:var(--accent);background:var(--accent-soft)}
.mdrow{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) 2px;border-bottom:1px solid var(--line);font-size:var(--fs-md)}.mdrow:last-child{border-bottom:0}
.wtrow .wtbar{height:12px}
/* Weight (Metrics): Today's Weight entry line + Past Days list, all inline (owner 11/1: "The weigh-in should be in Metrics") */
.wcard .wrow .wlbl{flex:1 1 auto;min-width:0;font-weight:var(--fw-bold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wcard .wrow.wtoday{padding:2px 0 var(--sp-1)}.wcard .wrow.wtoday .wlbl{font-size:var(--fs-md)}
.wpast{display:grid;gap:0}.wpasthd{display:flex;align-items:center;gap:6px;padding-bottom:2px}.wpasthd .wrng{font-size:var(--fs-sm)}.wpasthd .btn{padding:var(--sp-1) var(--sp-2)}.wpasthd .btn:disabled{opacity:.35}
.wpast .wrow{min-height:36px;border-top:1px solid var(--line-2)}.wpast .wrow .wlbl{font-weight:var(--fw-reg);font-size:var(--fs-md)}.wcard button.wval.wadd{color:var(--muted);font-weight:var(--fw-reg)}
.wcard{padding:10px 16px}.wcard .wrow{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.wcard .wwhen{font-size:var(--fs-sm);letter-spacing:0;text-transform:none;font-weight:var(--fw-reg)}
.wcard .wnum{font:inherit;font-size:var(--fs-md);font-weight:var(--fw-bold);width:5.5em;flex:none;text-align:right;color:var(--ink);padding:2px 0;line-height:1.3}
.wcard input.wnum{border-bottom:1px solid var(--line)}.wcard input.wnum:focus{outline:none;border-bottom-color:var(--accent)}.wcard input.wnum::placeholder{color:var(--muted)}
.wcard button.wval{border:0;background:transparent;cursor:pointer;border-bottom:1px solid transparent;border-radius:0}.wcard .wu{color:var(--muted);font-size:var(--fs-md)}
.wmet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.wtile{display:grid;gap:2px;align-content:start;min-width:0}.wtile b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.wtile b small{font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--muted)}.wtile .muted{font-size:var(--fs-sm);overflow-wrap:anywhere}
@media (max-width:420px){.wtile b{font-size:var(--fs-md)}}
.wspark{display:grid;gap:4px}.wsphd{display:flex;align-items:baseline;gap:8px}.wsphd .muted{font-size:var(--fs-sm)}.wspark svg{width:100%;height:auto;display:block;overflow:visible}
.wspark .wline{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.wspark .wdot{fill:var(--accent);stroke:var(--surface);stroke-width:2}.wspark .wbase{stroke:var(--line);stroke-width:1}
/* Metrics cleanup */
.mhead .mseg{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-1)}.mhead .mseg button{padding:var(--sp-1) 0!important;font-size:var(--fs-sm)!important}
.mtog{font-size:var(--fs-sm)!important;padding:var(--sp-1) var(--sp-2)!important}.mtog.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.seg.mini2{display:inline-flex!important;gap:var(--gap-btn)}.seg.mini2 button{padding:var(--sp-1) var(--sp-2)!important;font-size:var(--fs-sm)!important}
.totb b{font-size:var(--fs-lg)}.totb .lbl{font-size:var(--fs-sm)}
.wtrow{display:grid!important;grid-template-columns:62px minmax(0,1fr)!important;align-items:center;gap:var(--sp-2);margin:0!important}.wtrow .lbl{margin:0;font-size:var(--fs-sm)!important}.wtrow .stack{height:12px}
.brk .brow{display:grid!important;grid-template-columns:12px minmax(0,1fr) 84px 84px 14px!important;align-items:center;gap:var(--sp-1);padding:var(--sp-2) 0!important;min-height:0!important}
.brk .brow .grow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-md)}
.brk .tcell{text-align:right;font-size:var(--fs-sm);white-space:nowrap}.brk .tcell small{display:inline!important;font-size:var(--fs-sm);color:var(--muted);margin-left:2px}
.brk .bhead{padding:2px 0!important}.brk .bhead .hcol{text-align:right;font-size:var(--fs-sm)!important}
.pinbar.mini.two{flex-direction:column;align-items:stretch!important;gap:6px!important}.pinbar.mini .pbrow{display:flex;align-items:center;gap:var(--sp-2);min-width:0}
.pbadj{display:flex;align-items:center;justify-content:center;gap:4px;font-size:var(--fs-md)}.pbadj .nb{width:28px;height:28px;padding:0;border-radius:var(--r-btn);border:1px solid var(--line);background:var(--sunk)}
.gbody .col{touch-action:pan-y}
.dueq{display:flex;align-items:center;flex-wrap:wrap;gap:var(--gap-btn)}.dueq .lbl{margin:0 4px 0 0}.qch.dq{font-size:var(--fs-sm);padding:3px 6px;min-width:0}.dueq{flex-wrap:nowrap!important;gap:var(--gap-btn)!important}
.qch.dq.req:not(.on){border-color:var(--hot);color:var(--hot)}.dueq .lbl{min-width:52px;font-size:var(--fs-sm)}
.mdetail{border:1px solid var(--accent);background:var(--accent-soft);border-radius:var(--r-card);padding:6px 10px}.mdetail .mdt{font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:0;color:var(--accent)}
.daytog{display:grid!important;grid-template-columns:1fr 1fr;gap:var(--sp-1);margin-bottom:var(--sp-1)}.daytog button{padding:var(--sp-1) 0!important;font-size:var(--fs-sm)!important}
.bdnav{display:flex!important;align-items:center;gap:8px;padding:6px 8px!important}.bdnav .nb{width:34px;height:34px;border-radius:var(--r-btn);border:1px solid var(--line);background:var(--sunk);font-size:var(--fs-md)}.bddate{border:0;background:none;font-weight:var(--fw-bold);font-size:var(--fs-md);cursor:pointer}.bddate.today{color:var(--accent)}
.bdline{font-size:var(--fs-sm);color:var(--muted);padding:2px 8px}
.bdcard{display:grid;gap:5px;cursor:pointer;user-select:none;-webkit-user-select:none}.bdcard.now{border-color:var(--accent)!important;box-shadow:0 0 0 1px var(--accent)}.bdcard.past{opacity:.6}
.bdhead{display:flex;align-items:baseline;gap:8px;min-width:0}.bdhead b{font-size:var(--fs-md);white-space:nowrap}.bdname{font-weight:var(--fw-bold);font-size:var(--fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bdhint{font-size:var(--fs-sm)}
.bdobj{display:grid;gap:1px;font-size:var(--fs-md)}.bdobj .done{text-decoration:line-through;color:var(--muted)}
.bdbar{display:flex;gap:3px;min-width:0}.bdseg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--c);color:#fff;border-radius:var(--r-btn);padding:var(--sp-1) var(--sp-1);font-size:var(--fs-sm);font-weight:var(--fw-bold);text-align:center}.bdseg.done{opacity:.55}.bdseg.open{background:var(--sunk);color:var(--muted);border:1px dashed var(--line-2);font-weight:var(--fw-reg)}
.blockcard.focus{border:2px solid var(--accent)!important}
.tdactl{margin-top:4px}.tdactl .req{color:var(--hot);text-transform:none;letter-spacing:0}.tdactg .pngrp{margin-top:2px}.tdactg .swgrid{gap:var(--gap-btn)}.tdactg .chip{padding:var(--sp-1) var(--sp-1);font-size:var(--fs-sm)}
.unpl{position:absolute;left:3px;right:3px;border:1px dashed color-mix(in srgb,var(--al) 45%,transparent);background:color-mix(in srgb,var(--al) 7%,transparent);border-radius:6px;color:color-mix(in srgb,var(--al) 70%,var(--muted));font-size:var(--fs-sm);font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1;overflow:hidden}
.duepick{width:auto!important;flex:0 1 160px;height:30px!important;min-height:0!important;padding:2px 8px!important;font-size:var(--fs-md)!important}.dueguess{font-size:var(--fs-sm)}
.tdareas{display:flex;flex-wrap:wrap;gap:4px}.qch.area{border-left:4px solid var(--c)}.qch.area.on{background:var(--c);border-color:var(--c);color:#fff}
.tdacts{margin-top:var(--sp-1)}.tdacts .chip{padding:var(--sp-1) var(--sp-1);font-size:var(--fs-sm)}
.dueq{flex-wrap:wrap!important}
.tdaddbtn{width:100%;margin-top:var(--sp-1)}.tdin1{width:100%}
.tdcard .dueq .qch.dq{flex:1 1 auto;text-align:center;white-space:nowrap}.tdcard .dueq{flex-wrap:nowrap!important}.tdcard .dueq .duepick{flex:1 1 auto}.tdcard .dueq .qch[data-act=tdDueNew]{flex:0 0 auto}.tdcard .dueq .dueguess{flex:0 0 auto}
.tdcard .dueq .duepick{height:auto!important;min-height:0!important;padding:3px 8px!important;font-size:var(--fs-sm)!important;font-weight:var(--fw-bold)!important;border-radius:6px!important;text-align:center;cursor:pointer;font-family:inherit}
.tdcard .dueq.tdrow2{align-items:flex-start;flex-wrap:nowrap!important}.tdcard .dueq.tdrow2 .lbl{padding-top:4px}.tdcard .tdrow2 .tdareas{flex:1;min-width:0}.tdcard .tdrow2 .qch.dq{flex:0 1 auto}
.tdrow.tdr3{display:flex!important;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-1) var(--sp-2) var(--sp-2)!important;cursor:pointer}.tdrow.tdr3.asg{background:var(--accent-soft)}
.tdmain{flex:1;min-width:0}.tdt{font-size:var(--fs-md);line-height:1.3;overflow-wrap:anywhere}.tdrow.done .tdt{text-decoration:line-through;color:var(--muted)}
.tdmeta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 5px;padding-left:0;width:auto;font-size:var(--fs-sm);color:var(--muted);margin-top:1px}.tdmeta i{font-style:normal;opacity:.6}.tdmeta .late{color:var(--hot);font-weight:var(--fw-bold)}.tdmeta .mcat{color:var(--c);font-weight:var(--fw-bold)}
.tdedit{font-size:var(--fs-md);width:28px!important}.tdedit.on{background:var(--accent-soft);color:var(--accent)}
.tdasg{display:grid;gap:6px;padding:6px 8px 10px 36px;background:var(--accent-soft);border-radius:0 0 var(--r-card) var(--r-card);margin-top:-2px}.tdasgl{display:grid;grid-template-columns:1fr 1fr;gap:4px}.tdasgl .gasgd{padding:5px 8px;font-size:var(--fs-sm)}
.tdasgl .gasgd.on{background:var(--accent);border-color:var(--accent);color:#fff}.tdasgl .gasgd.on .muted{color:#fff}
.rtrow{display:flex!important;align-items:center;gap:var(--sp-1);border-bottom:1px solid var(--line);padding:2px 0}.rtrow .inl.t{flex:1;min-width:0}.rtrow .rtm{width:44px!important;flex:none;padding:3px 4px!important;text-align:center;font-size:var(--fs-md);border-radius:8px;height:28px}.rtu{font-size:var(--fs-sm);margin-left:-4px}
.tdday{display:flex!important;align-items:center;gap:6px}.tdday input[type=date]{width:auto!important;flex:1;max-width:170px;padding:var(--sp-1) var(--sp-2)!important;font-size:var(--fs-md);height:32px}
.rtrow input[type=text].inl{border:0!important;background:none!important;padding:var(--sp-1) 0!important;border-radius:0;font-size:var(--fs-md)}.rtrow .btn.ghost{border:0!important;background:none!important;color:var(--muted)}
.alview{display:grid;gap:12px;min-width:0}.alview .card h3{font-size:var(--fs-md);margin:0}.alhead{display:flex;align-items:center;gap:10px}.alhead h3{flex:1}.alev{display:grid}.alrow{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px solid var(--line-2);font-size:var(--fs-md);cursor:pointer}.alrow:first-child{border-top:0}.swi{appearance:none;-webkit-appearance:none;width:42px;height:24px;border-radius:var(--r-btn);background:var(--line);position:relative;flex:none;margin:0;cursor:pointer;transition:background .15s}.swi::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:var(--r-btn);background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.3);transition:left .15s}.swi:checked{background:var(--accent)}.swi:checked::after{left:21px}.swi:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
textarea.wrapta{resize:none;overflow:hidden;display:block;min-height:0;height:auto;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;font:inherit;line-height:1.3;box-sizing:border-box}.rtrow textarea.wrapta.inl{border:0!important;background:none!important;padding:var(--sp-1) 0!important;border-radius:0;font-size:var(--fs-md);flex:1;min-width:0}.rtrow{align-items:flex-start!important}.rtrow .rtm,.rtrow .rtu,.rtrow .btn{margin-top:2px}.rtrow .rtu{line-height:28px}.mini.step{align-items:flex-start}.mini.step>.check,.mini.step>.ind,.mini.step>.more{margin-top:1px}.mini.step .steptxt{white-space:normal;overflow-wrap:anywhere}
.obq{display:grid;gap:8px;margin:4px 0 6px}.obq input[type=time]{width:auto!important;padding:var(--sp-1) var(--sp-2)!important;height:34px}
.gwhen{flex:none;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);background:var(--sunk);border:1px solid var(--line);border-radius:var(--r-btn);padding:1px var(--sp-2);white-space:nowrap;align-self:center}.gwhen.tday{color:var(--accent);border-color:var(--accent)}.gwhen.late{color:var(--hot);border-color:var(--hot)}
html,body{overscroll-behavior:none}
@media (max-width:859px) and (pointer:coarse){body.kbopen .tabs,body.kbopen .tafbar{visibility:hidden}}
/* tighter cells */
main .card:not(.rundock),main .goalscard,main .dayobj,main .blockcard{padding:6px 12px 8px!important;gap:4px!important}
.gl{padding-top:0!important;padding-bottom:0!important;gap:var(--sp-1)}
.gl textarea.t,.gl .inl.t{padding:2px 0!important}
.gl .gtw,.gl .more{height:24px;margin-top:2px!important}
.gl>.check{margin-top:var(--sp-1)!important}
.hday{padding:2px 6px!important}
.hobjs{gap:0!important}.hobj{padding:2px 6px!important;line-height:1.3}input.hobj{min-height:0!important;height:auto!important}
.gcyc .ghd{margin:0 0 2px}
/* Nothing floats over page content: the Right Now dock stays above the tab bar but main reserves its height (--dockh); the Day place bar/tray and toasts sit in the page flow and push content down */
.placebar,.placebar.pinbar.mini,.view-day .placebar.pinbar.mini,.tray.sheetish{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;top:auto!important;width:auto!important;max-width:none!important;margin:0!important;max-height:none!important;transform:none!important;z-index:auto!important}
.placebar.pinbar.mini,.tray.sheetish{box-shadow:none!important;border:1px solid var(--line)!important;border-radius:var(--r-card)!important}
html main,html.isday main{padding-bottom:calc(var(--tabh,0px) + var(--dockh,0px) + var(--dockp,0px) + 14px)!important}header.top:has(#toastRoot:not(:empty)){flex-wrap:wrap}.clcard>*{min-width:0}.clcard .clrun{box-shadow:none;padding:8px 10px;background:var(--sunk)}.clcard .clrun.on{background:var(--accent-soft)}.clcard>.dayobj{border:0!important;background:none!important;padding:0!important;box-shadow:none!important}.clcard>.dayobj+.dayobj{border-top:1px solid var(--line-2)!important;padding-top:6px!important}
#toastRoot{flex:1 0 100%;width:100%;order:99}#toastRoot:empty{display:none}
.toast{position:static!important;left:auto!important;bottom:auto!important;transform:none!important;width:100%;max-width:820px;margin:4px auto 0;box-sizing:border-box;justify-content:space-between;box-shadow:none!important}
/* Daily Objectives: vertical list, a card per day, one objective per full-width row */
.hzlist{display:grid;gap:var(--sp-1);min-width:0}.hzlist>.hweek{border-top:0!important;padding-top:6px!important}
.hzlist .hday{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:2px!important;border:0}
.hzlist .hday.today{background:var(--surface);box-shadow:0 0 0 2px var(--accent)}.hzlist .hday.past{opacity:.7}
.hzlist .hdate{font-size:var(--fs-sm)!important;color:var(--muted)}.hzlist .hdate b{font-size:var(--fs-md);color:var(--ink)}
.hzlist .hobjs{display:grid;gap:0!important;min-width:0}
.hzlist .hobjr{display:flex;align-items:flex-start;gap:8px;min-width:0;padding:3px 0;border-top:1px solid var(--line-2)}.hzlist .hobjr:first-child{border-top:0}
.hzlist .hobjr>.check,.hzlist .hobjr>.hnum{margin-top:var(--sp-1)}.hzlist .hmin{flex:none;font-size:var(--fs-sm);color:var(--muted);margin-top:4px}
.hzlist textarea.hobj{flex:1;min-width:0;width:auto;min-height:0!important;border:0!important;background:none!important;font-size:var(--fs-md)!important;padding:var(--sp-1) 2px!important}
.hzlist .hobjr.done textarea.hobj{text-decoration:line-through;color:var(--muted)}
.hzlist .hnum{width:24px;height:24px;border-radius:var(--r-btn);margin-top:1px!important;display:grid;place-items:center;padding:0;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--muted);-webkit-user-select:none;user-select:none}
.hzlist button.hnum{border:0;background:var(--sunk);color:var(--accent);cursor:pointer;touch-action:none}.hzlist button.hnum:hover{background:var(--accent-soft)}
.hzlist .hobjr.done button.hnum{background:none;color:var(--muted)}
.hzlist .hobjr,.gblk{-webkit-touch-callout:none}
.hzlist .hobjr.dragging,.gblk.dragging{background:var(--accent-soft);border-radius:8px;box-shadow:var(--shadow);position:relative;z-index:2}
.gnum{flex:none;min-width:22px;height:24px;display:grid;place-items:center;padding:0;border:0;background:none;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--accent);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}
.gl.done>.gnum{color:var(--muted)}.gcyc.locked .gnum{touch-action:auto}
.gcyc.nodrop{position:relative;outline:2px dashed var(--line-2);outline-offset:-2px}.gcyc.nodrop::after{content:'Unlock to move';position:absolute;right:12px;bottom:8px;font-size:var(--fs-sm);color:var(--muted);background:var(--surface);padding:2px 8px;border-radius:8px;box-shadow:0 0 0 1px var(--line)}
html.tdragging,html.tdragging *{-webkit-user-select:none!important;user-select:none!important;cursor:grabbing!important}
/* principles: Principles card on the Goals tab */
.prcard{gap:8px!important}.prhd{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}.prtog{display:flex;align-items:center;gap:var(--sp-1);border:0;background:none;padding:0;color:inherit;cursor:pointer;min-width:0}.prtog h2{font-size:var(--fs-lg);margin:0}.prtog .tw{width:20px;display:grid;place-items:center;color:var(--muted)}.prtog .tw svg{width:13px;height:13px;transition:transform .15s}.prtog .tw.open svg{transform:rotate(90deg)}
.prread{display:inline-flex;align-items:center;gap:var(--sp-1);flex:none;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:var(--r-btn);padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-1);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-bold);cursor:pointer;white-space:nowrap}.prread .prbox{width:14px;height:14px;border:2px solid var(--line);border-radius:4px;box-sizing:border-box}.prread.on{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);padding-left:var(--sp-2)}
.prsec{display:grid;gap:6px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-card);padding:10px 12px;min-width:0}.prgrp{display:grid;gap:2px;min-width:0;border-radius:8px}.prgrp+.prgrp{margin-top:6px}
.prgh{display:flex;align-items:flex-start;gap:6px;min-width:0}.prgn{flex:1;min-width:0;font:inherit;font-size:var(--fs-sm)!important;font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted);padding:3px 0!important;border:0;background:none;overflow-wrap:anywhere}textarea.prgn{border:0!important;background:none!important}
.prrow{display:flex;align-items:flex-start;gap:var(--sp-1);min-width:0;padding:2px 0;border-radius:8px}button.prrow.add{border:0;background:none;font:inherit;font-size:var(--fs-md);cursor:pointer;text-align:left;color:inherit}
.prnum{flex:none;min-width:22px;height:24px;display:grid;place-items:center;padding:0;border:0;background:none;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--accent);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.prcard:not(.locked) .prnum[data-prnum]{cursor:grab;touch-action:none}
.prtx{flex:1;min-width:0;display:grid;gap:0}.prt,.prq{font:inherit;color:inherit;border:0!important;background:none!important;padding:3px 0!important;margin:0;width:100%;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.3}#prcard .prt{font-size:var(--fs-md);font-style:normal;color:var(--ink)}#prcard .prq{font-size:var(--fs-sm);font-style:italic;color:var(--muted);padding-top:0!important}#prcard textarea.prgn{font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted)}textarea.prt::placeholder,textarea.prq::placeholder,textarea.prgn::placeholder{color:var(--muted);font-style:italic}
.prx{flex:none;width:24px;height:24px;border:0;background:none;color:var(--muted);font-size:var(--fs-md);cursor:pointer;display:grid;place-items:center}.pradd{justify-self:start}.prempty{display:grid;gap:8px;justify-items:start}.prempty p{margin:0}.propt{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--muted)}
.prrow.dragging,.prgrp.dragging{background:var(--accent-soft);box-shadow:var(--shadow);position:relative;z-index:2}.prrtl{border:0;background:none;padding:0;font:inherit;color:var(--accent);text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
/* objectives read bold both while typing and after saving (same weight in the edit box and the saved text) */
/* objectives read bold everywhere, typing or not */
html body .objt.objt.objt,html body .objt.objt.objt:focus,html body .objt.objt.objt:not(:focus),html body .objt.objt.objt::placeholder,html body textarea.hobj.hobj,html body input.hobj.hobj,html body .hobj.hobj:focus{font-weight:var(--fw-bold)!important}
.hzlist textarea.hobj,.hzlist textarea.hobj:focus,.hzlist textarea.hobj:not(:focus){font-family:var(--ff)!important;font-weight:var(--fw-bold)!important;line-height:1.3!important;letter-spacing:0}
/* Dock pickers (category pickers opened from the Right Now dock) sit docked directly on top of the dock: tab bar, then dock, then picker, one stack; main reserves their height (--dockp) */
.dockpick:not(.alpick){bottom:calc(var(--tabh,0px) + var(--dockh,0px) - 2px)!important;border-radius:var(--r-card) var(--r-card) 0 0!important;border-bottom-width:0!important;box-shadow:0 -6px 18px rgba(15,30,22,.12)!important;max-height:min(46vh,calc(100vh - var(--tabh,0px) - var(--dockh,0px) - var(--toph,0px) - 16px))!important;overscroll-behavior:contain}
body:has(.rundock.min) .dockpick:not(.alpick){bottom:calc(var(--tabh,0px) + var(--dockh,0px) - 8px)!important}
body:has(.dockpick:not(.alpick)) .rundock:not(.min){border-top-left-radius:0!important;border-top-right-radius:0!important}
/* Phone layout on computers: html.phonewide (set by the head script on windows 600px+) draws the app in a 430px column */
html.phonewide{background:#dde2de;min-height:100%}
@media (prefers-color-scheme:dark){html.phonewide:not([data-theme="light"]){background:#070a08}}
html.phonewide[data-theme="dark"]{background:#070a08}
html.phonewide body{max-width:430px;margin:0 auto;min-height:100vh;min-height:100dvh;overflow-x:clip;box-shadow:0 0 0 1px rgba(0,0,0,.06),0 8px 40px rgba(0,0,0,.12)}
html.phonewide body::before,html.phonewide .tabs{left:max(0px,calc(50% - 215px))!important;right:auto!important;width:min(100%,430px)!important}
html.phonewide .rundock,html.phonewide .dockpick{max-width:418px!important}html.phonewide .rundock.min{max-width:430px!important}
html.phonewide .tash{max-width:430px!important}
html.phonewide .tash.tagate{left:max(0px,calc(50% - 215px))!important;right:auto!important;width:min(100%,430px)!important;max-width:none!important;padding-left:24px!important;padding-right:24px!important}
/* Popups insert into the page: an open sheet replaces the screen (page flow, Back button at the top) instead of covering it */
html.sheetopen main{height:0!important;min-height:0!important;overflow:hidden!important;visibility:hidden!important;padding:0!important;margin:0 auto!important}
#sheetRoot:not(:empty){padding:8px max(6px,env(safe-area-inset-left,0px)) calc(var(--tabh,0px) + 14px) max(6px,env(safe-area-inset-right,0px))}
#sheetRoot .scrim{position:static;inset:auto;z-index:auto;background:none;display:block;padding:0}
#sheetRoot .sheet{max-width:820px;width:100%;max-height:none;overflow:visible;margin:0 auto;border-radius:var(--r-card);box-shadow:0 1px 0 var(--line);animation:none;padding-top:6px;padding-bottom:16px}
#sheetRoot .sheet.wide{max-width:880px}
#sheetRoot .sheet>.row:first-child{position:sticky;top:var(--toph,0px);z-index:6;background:var(--surface);margin:0 -16px;padding:var(--sp-1) var(--sp-4);flex-wrap:nowrap}
#sheetRoot .sheet>.row:first-child>h3{min-width:0}
.sheetbk{flex:none;padding-left:8px!important;padding-right:10px!important}
/* Day tab: the date bar (.daypin) stays pinned under the app header while the timeline scrolls; By Block snaps block starts under it */
html.isday .daycard,html.isday .daycard .grid,html.isday .daycard .gbody{overflow:clip} /* clip, not hidden: hidden makes a scroll box that breaks the sticky bar and block snapping */
.daypin{position:sticky;top:var(--toph,0px);z-index:7;background:var(--surface);border-bottom:1px solid var(--line)}
main .daypin>.navline{padding:4px 6px 2px!important;border-bottom:0;background:none}
.dsrow{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:0 var(--sp-1) var(--sp-1);flex-wrap:nowrap;min-width:0}.dsrow .seg{flex:none!important;width:auto!important;gap:var(--gap-btn)!important}.dsrow .seg button{flex:none!important;padding:var(--sp-1) var(--sp-2)!important;font-size:var(--fs-sm)!important}.dssep{width:1px;height:20px;background:var(--line);flex:none}@media(max-width:369px){.dsrow{flex-wrap:wrap;row-gap:var(--sp-1)}}
html.isday.dsblock:not(.nosnap){scroll-snap-type:y proximity;scroll-padding-top:calc(var(--toph,0px) + var(--dpinh,0px))}
/* Checklist steps always show a square checkbox (even in strike-through mode, where other checks shrink to dots); sub-steps indent with the same box */
body.strike .clcard .mini.step .check{width:20px;height:20px;border:2px solid var(--line)!important;border-radius:var(--r-btn);background:var(--surface)!important;flex:none}
body.strike .clcard .mini.step .check::before{content:none}body.strike .clcard .mini.step .check svg{display:block}
body.strike .clcard .mini.step .check.on{background:var(--accent)!important;border-color:var(--accent)!important}body.strike .clcard .mini.add.step .check{border-style:dashed!important}
.clcard .mini.step{gap:8px}
/* Routines: Morning, Midday and Evening stack, each its own full-width card */
.rtgrid{grid-template-columns:minmax(0,1fr)!important;gap:10px!important}.rtgrid>.rt{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-card);padding:10px 12px;min-width:0}
/* Alerts: each alert is a card-style box with the same padding and radius */
.warns .warnbox{padding:10px 12px!important;border-radius:var(--r-card)!important;gap:6px!important}
/* Alerts: centered on every tab (label, alert text and the Dismiss / Mute / Resolve buttons) */
.warns{text-align:center}.warns>.lbl{justify-self:center}.warnbox{justify-items:center;text-align:center;grid-template-columns:minmax(0,1fr)!important}.warnbox>*{justify-self:center}.warnbox .wacts{justify-self:center!important;width:min(100%,360px);margin:0 auto}
/* Right Now panel (#rnTop): a fixed band between the header and the scrolling content, same height (--panel-h, defined once in :root and shared with the bottom dock) and place on every tab.
   Alerts tint it (green, red once delinquent); block objectives sit on the plain surface. Nothing in it can grow it: every line truncates. */
#rnTop{flex:none;width:100%;max-width:820px;margin:0 auto;box-sizing:border-box;position:sticky;top:var(--toph,0px);z-index:7;background:var(--surface)}#rnTop:empty{display:none}html.sheetopen #rnTop{display:none}
.rntop{height:var(--panel-h,94px);min-height:var(--panel-h,94px);max-height:var(--panel-h,94px);box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:4px 10px;border-bottom:1px solid var(--line);background:var(--surface);min-width:0}
.rntop.al{background:var(--als);color:var(--al);border-bottom-color:color-mix(in srgb,var(--al) 40%,transparent)}
.rntop .rnl1{display:flex;align-items:center;gap:8px;min-width:0}
.rntop .rntx{flex:1 1 auto;min-width:0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;font-size:var(--fs-md);font-weight:var(--fw-bold);line-height:1.3}
.rntop .rnmore{flex:none;border:0;cursor:pointer;padding:2px 9px;border-radius:var(--r-btn);background:var(--al);color:var(--surface);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-bold);line-height:1.4}
.rntop .wacts{display:flex;gap:var(--gap-btn);min-width:0;flex-wrap:nowrap;overflow:hidden}
.rntop .wacts>*{flex:1 1 0;min-width:0;height:28px;min-height:0;padding:0 8px;font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--al);border-color:color-mix(in srgb,var(--al) 35%,transparent);background:var(--surface)}
.rntop .wacts .mutecus{height:28px;width:auto;border:1px solid var(--line);border-radius:var(--r-btn);text-align:center;color:var(--ink)}
.rntop.ob{cursor:pointer;justify-content:center;gap:2px}
.rntop .rnhd{display:flex;align-items:baseline;gap:8px;min-width:0}.rntop .rnhd .lbl{flex:none}
.rntop .rnmeta{flex:1 1 auto;min-width:0;text-align:right;color:var(--muted);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rntop .rnobj{list-style:none;margin:0;padding:0;display:grid;gap:0;min-width:0}
.rntop .rnobj li{font-size:var(--fs-md);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.rntop .rnobj li.done{text-decoration:line-through;color:var(--muted)}
.rntop .rnobj li.muted{font-size:var(--fs-sm);line-height:1.5}
/* Day: the pinned date bar sits flush under the Right Now panel (no strip of scrolling grid between them) */
html.isday body>main#main{padding-top:0!important}html.isday main .daypin{top:0!important}
.warnbox .wacts{grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
/* Optional sub-blocks */
.opttag{display:inline-block;flex:none;font-size:var(--fs-sm);font-weight:var(--fw-bold);line-height:1;padding:var(--sp-1) var(--sp-1);border-radius:var(--r-btn);border:1px dashed var(--line);color:var(--muted);background:var(--surface);white-space:nowrap;vertical-align:middle}
.leaf .opttag{font-size:var(--fs-sm);padding:1px var(--sp-1);font-weight:var(--fw-bold)}
.mini.bobj .sbmb{flex:none;width:22px}.sbmb.on{color:var(--accent)}
.sbmore,.optoffer{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:var(--r-card);background:var(--sunk);font-size:var(--fs-sm);min-width:0}.sbmore .grow{min-width:0}
.optoffer .btn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.optoffer>.muted{flex:none}
.rs2name .opttake{margin-left:6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.unpl.optz{background:repeating-linear-gradient(45deg,transparent 0 6px,color-mix(in srgb,var(--muted) 10%,transparent) 6px 12px)!important;color:var(--muted)!important;border-color:var(--line)!important}
.optadd{display:flex;gap:6px}.optadd input{flex:1;min-width:0}.optl{display:grid;gap:4px}.optrow{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;border-top:1px solid var(--line-2);min-width:0}.optrow .grow{min-width:0;overflow-wrap:anywhere}.optn{width:1.6em;flex:none;color:var(--muted);text-align:right}
.optmet{font-size:var(--fs-md);padding:6px 0 2px}
html.isday.dsblock body{scroll-snap-align:start}html.isday.dsblock main{scroll-snap-align:end}html.isday.dsblock .gbody .cont{scroll-snap-align:start}

/* Button system: two sizes only (normal 40px, small 32px tall), same side padding per size, 4px corners */
.btn{min-height:var(--btn-h)!important;padding-inline:var(--sp-3)!important;padding-block:var(--sp-1)!important;border-radius:var(--r-btn)!important}
.btn.sm{min-height:var(--btn-h-sm)!important;padding-inline:var(--sp-2)!important;padding-block:0!important;font-size:var(--fs-sm)}
.btn.big,.btn.huge{font-size:var(--fs-md)!important}
.chip{border-radius:var(--r-btn)!important}
/* Sliders + segmented controls: one shared height (--slider-h), small label text, 2px thumb inset */
.seg button,.mtog{height:var(--slider-h)!important;min-height:0!important;padding-block:0!important;padding-inline:var(--sp-2);font-size:var(--fs-sm)!important;line-height:1;border-radius:var(--r-btn)!important}
.gvseg,.ffslide .seg{height:var(--slider-h);padding:2px!important;align-items:stretch}
.gvseg button,.ffslide .seg button{height:auto!important}
.gvseg>i{top:2px;bottom:2px;left:2px;width:calc((100% - 4px)/3)}
/* Timers are body text: same size as the Right Now text around them (alarm check-in time may use the heading size) */
.timer,.run .timer,.hero .timer,.timer.sm,.curbot .timer{font-size:var(--fs-md)!important;font-weight:var(--fw-bold)}
.seg button,button.chip,select,input:is([type=text],[type=search],[type=number],[type=time],[type=date],[type=password]):not(.inl){min-height:var(--btn-h-sm)}

/* App column (owner 11/1: "the timer should not float ... you should not be able to see anything scroll behind it"):
   header, then the scrolling content (main), then the Right Now dock (#dock), then the tab bar. Only main scrolls (an open sheet scrolls in #sheetRoot);
   the dock is an opaque band with a plain top border, so content ends at its top edge and never passes under it. */
html,html body{height:100%;overflow:hidden!important}
html body{display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0!important;box-sizing:border-box;padding-bottom:var(--tabh,0px)!important}
html body>header.top{position:relative!important;top:auto!important;flex:none}
html body>main#main{flex:1 1 auto;min-height:0;width:100%;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding-bottom:14px!important;align-content:start}
html body>#sheetRoot:not(:empty){flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding-bottom:14px!important}
html.sheetopen body>main#main{display:none!important}html.sheetopen #dock{display:none}
#dock{flex:none;display:flex;flex-direction:column;min-width:0;width:100%;max-width:820px;margin:0 auto;background:var(--surface);border-top:1px solid var(--line)}#dock:empty{display:none}
#dock .rundock{position:static!important;order:2;inset:auto!important;width:auto!important;max-width:none!important;margin:0!important;box-shadow:none!important;border:0!important;border-radius:0!important;max-height:none;overflow:visible;padding:4px 8px 5px!important;gap:3px!important;background:var(--surface)}
#dock .rundock.min{padding:0!important}#dock .rundock.min .runstrip.min.two{border:0!important;border-radius:0!important;box-shadow:none!important}
#dock .dockpick,#dock .dockpick.bsheet{position:static!important;order:1;inset:auto!important;width:auto!important;max-width:none!important;margin:0!important;box-shadow:none!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;max-height:min(46vh,calc(100dvh - var(--tabh,0px) - var(--dockh,0px) - 120px))!important;overflow-y:auto;overscroll-behavior:contain}
#dock>:not(.rundock):not(.dockpick){order:3}
#dock .rundock:not(.min):not(.xtra){height:calc(var(--panel-h) - 1px);box-sizing:border-box;overflow:hidden;align-content:center}#dock .rundock.xtra{min-height:calc(var(--panel-h) - 1px);box-sizing:border-box;max-height:45vh;overflow-y:auto}
#dock .rundock .lbl,#dock .dockpick .lbl{text-transform:uppercase!important;letter-spacing:var(--ls-caps)!important;font-size:var(--fs-sm);font-weight:var(--fw-bold)}
html.isday.dsblock:not(.nosnap) body>main#main{scroll-snap-type:y proximity;scroll-padding-top:var(--dpinh,0px)}
html.isday.dsblock main#main>:first-child{scroll-snap-align:start}html.isday.dsblock main#main>:last-child{scroll-snap-align:end}
main .subnav{top:0!important}html.isday body>main#main{padding-top:0!important}html.isday main .daypin{top:0!important}
/* Day tab (docs/STYLE.md §3 Day + Decisions 11/1/26). Loaded after 00-base.css; everything is scoped to .dayv so other tabs are untouched.
   Buttons 3px corners, cards 5px, no pills, no shadows, no solid green; selected = accent-soft fill, accent text, accent outline. */
.dayv{--d-btn:3px;--d-card:5px;display:grid;gap:5px;min-width:0}
.dayv .card,.dayv.dayshell>.daycard,.dayv .daycard{border-radius:var(--d-card)!important;box-shadow:none!important}
.dayv .btn,.dayv .btn.sm{border-radius:var(--d-btn)!important;background:var(--surface);border:1px solid var(--muted);color:var(--ink);box-shadow:none;min-height:28px}
.dayv .btn.pri,.dayv .btn.on,.dayv .btn[aria-pressed="true"]{background:var(--accent-soft)!important;color:var(--accent)!important;border:1px solid var(--accent)!important}

/* Date bar: "‹ Sun 11/1 ›" · 15 | 30 · Now, then the Blocks | Free Form | Calendar slider. Pinned under the header (it does not float over content). */
.dayv .daypin{background:var(--surface);border:1px solid var(--line);border-radius:var(--d-card);padding:2px 6px 0;display:grid;gap:2px}
.dayv .daycard>.daypin{border:0;border-bottom:1px solid var(--line);border-radius:0}
.dayv .dhead{display:flex!important;align-items:center;justify-content:flex-start!important;gap:4px!important;min-height:36px;padding:0!important;flex-wrap:nowrap}
.dayv .dhead .dnav{width:32px;min-width:32px;padding:0!important;font-size:18px!important;line-height:1}
.dayv .dhdate{background:none;border:0;padding:0 4px;font-weight:700;font-size:15px;color:var(--ink);min-width:72px;text-align:center;white-space:nowrap}
.dayv .dhdate.istoday{color:var(--accent)}
.dayv .dhead .grow{flex:1;min-width:0}
.dayv .dhead .dnowb{padding:0 10px!important}

/* Underline sliders: options muted; selected ink with a 2px accent underline; 1px track. */
.dayv .seg{display:flex!important;flex-wrap:nowrap;gap:0!important;background:none!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;padding:0!important}
.dayv .seg button{flex:1 1 auto;min-height:28px;background:none!important;border:0!important;border-bottom:2px solid transparent!important;border-radius:0!important;margin-bottom:-1px;color:var(--muted)!important;font-size:12px!important;font-weight:700;padding:2px 8px!important}
.dayv .seg button[aria-pressed="true"]{color:var(--ink)!important;border-bottom-color:var(--accent)!important}
.dayv .seg.dayslide{border-bottom:0!important}
.dayv .seg.dayslide button{flex:1 1 0;font-size:15px!important;min-height:32px}
.dayv .seg.dsub{flex:none!important;width:auto!important}
.dayv .seg.dsub button{flex:none!important;padding:2px 10px!important;font-size:15px!important}
.dayv .dsrow{display:flex;align-items:center;gap:8px;min-width:0}
.dayv .dsrow.dcalrow,.dayv .dsrow.ffmrow{justify-content:flex-start;padding:2px 0 4px!important;flex-wrap:wrap}
.dayv .dsrow .dssep{display:none}
.dayv .daypin .lfbox{margin:0 0 4px;border-radius:var(--d-card)}

/* Block cards */
.dayv .dblks{display:grid;gap:5px}
.dayv .dblk{padding:4px 6px!important;gap:2px!important;display:grid;border:1px solid var(--line)}
.dayv .dline{font-size:12px;color:var(--muted);padding:0 6px}
.dayv .dfold,.dayv .dbh{display:flex;align-items:baseline;gap:8px;width:100%;min-height:28px;padding:3px 0;background:none;border:0;text-align:left;color:var(--ink);font-size:15px;cursor:pointer}
.dayv .dfold{align-items:center}
.dayv .dft{flex:0 0 74px;font-weight:700;white-space:nowrap}
.dayv .dfn{flex:1;min-width:0;overflow-wrap:anywhere;color:var(--muted)}
.dayv .dfn b{color:var(--ink)}
.dayv .dnone{color:var(--plan-ink)}
.dayv .dfa{flex:none;color:var(--muted);font-weight:700}
.dayv .dchev{flex:none;color:var(--muted);width:12px;text-align:center}
.dayv .dchev.open{transform:rotate(90deg)}
.dayv .dbt{white-space:nowrap}
.dayv .dblk.now .dbt,.dayv .dblk.now .dft{color:var(--accent)}
.dayv .dbn{min-width:0;overflow-wrap:anywhere}
.dayv .dobj{display:grid;gap:0;font-size:15px;padding:0 0 2px}.dayv .dobj .done{text-decoration:line-through;color:var(--muted)}

/* Time | Plan | Actual grid */
.dayv .dgrid{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);column-gap:6px;row-gap:2px;align-items:center}
.dayv .dgrid>.lbl{padding:2px 0;border-bottom:1px solid var(--line-2)}
.dayv .dgrid>.lbl.dplanh{color:var(--plan-ink)}
.dayv .dt{font-size:15px;color:var(--muted);min-height:26px;display:flex;align-items:center}
.dayv .dt.cur{color:var(--accent);font-weight:700}
.dayv .dacol{display:grid;gap:2px;min-width:0}
.dayv .dcell{display:flex;align-items:center;gap:6px;min-height:26px;min-width:0;width:100%;padding:2px 6px;border-radius:var(--d-btn);font-size:15px;text-align:left;background:none;border:1px solid transparent;color:var(--ink)}
.dayv .dcell .dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--c,var(--muted))}
.dayv .dcell .dcn{flex:1;min-width:0;overflow-wrap:anywhere}
.dayv .dcell .dcd{flex:none;color:var(--muted);font-size:12px}
.dayv .dplan.done .dcn{text-decoration:line-through;color:var(--muted)}
.dayv .dcont{border-left:2px solid var(--c,var(--line));border-radius:0;margin-left:9px;width:auto;min-height:26px}
.dayv .dslot{border:1px dashed var(--plan-ink);color:var(--plan-ink);font-size:12px;font-weight:700}
.dayv .dslot.opt{border-color:var(--line);color:var(--muted)}
.dayv .dslot.on{background:var(--plan-soft);border-style:solid}
.dayv .dempty{color:var(--faint)}
.dayv .dact.off{color:var(--warn)}
.dayv .dact .dnow{flex:none;font-size:12px;font-weight:700;color:var(--accent)}
.dayv .dun{background:var(--warn-soft);border:1px solid var(--warn);color:var(--warn);font-size:12px;font-weight:700}
.dayv .dgrid.locked .dslot{opacity:.6}
.dayv .dprow{grid-column:1/-1}
.dayv .dplanner{display:grid;gap:4px;padding:4px 6px;margin:2px 0;background:var(--plan-soft);border:1px solid var(--plan-ink);border-radius:var(--d-card)}
.dayv .dplanner .lbl{color:var(--plan-ink)}
.dayv .dpq{min-height:32px;border:1px solid var(--muted);border-radius:var(--d-btn);padding:4px 8px;background:var(--surface);color:var(--ink);font:inherit;font-size:15px;width:100%}
.dayv .dpq::placeholder{color:var(--faint)}
.dayv .dpicks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.dayv .dpick{display:flex;align-items:center;gap:6px;justify-content:flex-start;white-space:normal;text-align:left;overflow-wrap:anywhere;font-size:12px}
.dayv .dpick .dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--c)}
.dayv .dpacts,.dayv .dbacts{display:flex;gap:4px;flex-wrap:wrap}
.dayv .dbacts{padding-top:2px}
.dayv .dedit{display:grid;gap:4px;border-top:1px solid var(--line-2);padding-top:4px}

/* Calendar (whole-day Plan / Actual timeline): plan header in plan ink */
.dayv.dcalv .ghead .lblrow:first-of-type .lbl{color:var(--plan-ink)}

/* Free Form (moved here from 21-day-view.js; restyled to 3px controls, underline slider) */
.ffcard .daypin{border-bottom:1px solid var(--line)}
.fflist{display:grid;gap:0;padding:4px 6px;container-type:inline-size}
.ffrow{display:grid;grid-template-columns:22px 76px 10px 76px minmax(0,1fr) 28px;grid-template-areas:"n s d e c x" ". t t t t t";align-items:center;column-gap:6px;row-gap:2px;padding:3px 0;border-bottom:1px solid var(--line-2)}
.ffrow .ffn{grid-area:n;color:var(--muted);font-size:12px;text-align:right}.ffrow [data-ff=s]{grid-area:s}.ffrow .ffdash{grid-area:d;color:var(--muted);text-align:center}.ffrow [data-ff=e]{grid-area:e}
.ffrow .ffcat{grid-area:c}.ffrow .fft{grid-area:t}.ffrow .ffx{grid-area:x}.ffrow .ffhint{grid-column:2/-1;font-size:12px;color:var(--warn)}.ffrow .ffhint.bad{color:var(--hot)}.ffrow .ffpick{grid-column:1/-1}
.ffin{font:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--muted);border-radius:3px;padding:4px 6px;min-height:32px;min-width:0;width:100%}
.ffin::placeholder{color:var(--faint)}
.ffin[data-ff=s],.ffin[data-ff=e]{font-variant-numeric:tabular-nums;text-align:center;padding:4px 2px}
.ffrow .fft{background:none;border-color:transparent;font-size:15px;padding:2px 6px;min-height:28px}.ffrow .fft:hover{border-color:var(--line)}.ffnew .fft{border-color:var(--line)}
.ffin:focus{outline:2px solid var(--ink);outline-offset:-1px;background:var(--surface)}
.ffcat{display:flex;align-items:center;gap:6px;min-width:0;min-height:32px;font:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--muted);border-radius:3px;padding:4px 8px;text-align:left}
.ffcat .dot{width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}.ffcat .ffcn{min-width:0;overflow-wrap:anywhere}.ffcat.unset{color:var(--faint)}.ffcat.open{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.ffx{width:28px;height:28px;border:0;background:none;color:var(--muted);font-size:20px;line-height:1;border-radius:3px}button.ffx:hover{background:var(--hot-soft);color:var(--hot)}
.ffrow.ovl [data-ff=s],.ffrow.ovl [data-ff=e]{border-color:var(--warn)}
.ffnew .ffin,.ffnew .ffcat{border-style:dashed}
.ffpick{background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:4px 6px;display:grid;gap:4px}
.ffhelp{font-size:12px;margin:4px 6px 6px}
.ffrow .ffu{grid-column:2/-1;display:none}.ffrow.usel .ffu,.ffnew .ffu{display:block}
@container (min-width:560px){.ffrow{grid-template-columns:24px 84px 10px 84px minmax(120px,220px) minmax(0,1fr) 28px;grid-template-areas:"n s d e c t x"}}
/* Goals tab (docs/STYLE.md: Goals, plus Decisions 11/1/26). Loaded after 00-base.css, so these win.
   Buttons 3px corners, cards 5px, no shadows, no pills, no solid green, small gray caps card titles, numbered rows with line-2 dividers. */

/* ---- Goals | Objectives | Principles: underline slider. Options muted; the selected one ink with a 2px accent underline
   that slides (the <i>); a 1px line track. Nothing moves with reduced motion. ---- */
.gvseg{background:var(--surface)!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;padding:0!important;height:var(--slider-h,28px)}
.gvseg>i{top:auto!important;bottom:-1px!important;left:0!important;height:2px!important;width:calc(100%/3)!important;border-radius:0!important;background:var(--accent)!important;box-shadow:none!important}
.gvseg button,.gvseg button[aria-pressed]{padding:0 2px!important;color:var(--muted)!important;font-size:var(--fs-md);font-weight:400;border-radius:0!important}
.gvseg button[aria-pressed="true"]{color:var(--ink)!important;font-weight:700}

/* ---- cards ---- */
.goalscard,.gcyc,.prcard,.hweek,.hday{border:1px solid var(--line)!important;border-radius:5px!important;box-shadow:none!important;background:var(--surface)}
.goalscard .lbl,.gcyc .ghd,.prcard .prhd h2,.prsec>.lbl{font-size:12px!important;line-height:16px;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase;color:var(--muted)!important;margin:0!important;font-family:var(--ff)!important}
.goalscard>.row{gap:4px;min-height:28px}

/* area filter: icon tiles, selected = light green tile with accent (never solid) */
.gbar{border-bottom:0!important;padding:0 0 2px!important}
.gab{border-radius:3px!important;border:1px solid transparent}
.gab.on{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)}
.goalscard .iconbtn,.goalscard .lockb,.gcyc .lockb{border-radius:3px!important;width:28px;height:28px}
.goalscard .iconbtn.on,.lockb.on{background:var(--accent-soft)!important;color:var(--accent)!important}

/* card title line: "MONTHLY GOALS  November   by: 11/9 🌑   [lock]" */
.gcyc .ghd{gap:6px!important;min-height:24px}
.gcyc .ghd>svg{width:14px!important;height:14px!important;color:var(--muted)}
.gcap{font-size:12px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--muted);white-space:nowrap}
.gcyc .cycby,.gcyc button.cycdue.mbtn{font-size:12px!important;color:var(--muted)!important;text-transform:none;letter-spacing:0;font-weight:400!important}
.garhd{font-size:12px!important;color:var(--muted)!important;border-top:1px solid var(--line-2);padding-top:3px;margin-top:2px!important}

/* ---- numbered rows: muted "1." numbers, line-2 dividers ---- */
.gblk+.gblk,.garhd+.gblk~.gblk{border-top:1px solid var(--line-2)}
.gblk+.garhd{margin-top:0!important}
.gl{min-height:28px;padding-top:3px!important;padding-bottom:3px!important;align-items:flex-start!important}
.gnum{color:var(--muted)!important;font-weight:400!important;font-variant-numeric:tabular-nums;justify-content:end;place-items:center end!important;min-width:20px!important;padding-right:2px!important}
.gnum::after{content:"."}
.gl.done>.gnum{color:var(--accent)!important;font-weight:700!important}
.gl textarea.t,.gl .inl.t,.gl span.t{font-size:15px!important;line-height:22px!important;font-weight:400}
.gl.done .t{color:var(--muted);text-decoration:line-through}
.gby{line-height:22px!important;padding:3px 0!important;font-size:15px;color:var(--muted)}
.gby.late,.gby.late .gbyin{color:var(--hot)!important}
.gl>.gwhen{line-height:22px;color:var(--muted)}
.gl>.gwhen.late{color:var(--hot)}
.gsec{font-size:12px!important;letter-spacing:.08em;color:var(--muted)}

/* numeric goals: current value and a thin bar */
.gval{flex:none;align-self:flex-start;line-height:22px;padding:3px 0;color:var(--muted);font-size:15px;white-space:nowrap;font-family:"IBM Plex Sans",var(--ff);font-variant-numeric:tabular-nums}
.gnbar{height:3px;margin:0 0 4px calc(var(--dep,0)*22px + 24px);background:var(--line-2);border-radius:0;overflow:hidden}
.gnbar>i{display:block;height:100%;background:var(--accent)}
.t-num{font-variant-numeric:tabular-nums}

/* ⋯ and the twisty: quiet line controls */
.gl .more.gmorebtn{flex:none;width:28px;height:28px;margin-top:0!important;border:0;background:none;color:var(--muted);border-radius:3px;font-size:16px;line-height:1;padding:0;display:grid;place-items:center}
.gl .more.gmorebtn.on{color:var(--accent);background:var(--accent-soft)}
.gl .gtw{height:28px!important;margin-top:0!important}

/* inline ⋯ row: inserted under the item (never a menu) */
.gmore{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:2px 0 5px calc(var(--dep,0)*22px + 24px)}
.gmore .btn.sm{min-height:28px;padding:2px 8px;border-radius:3px!important;background:var(--surface);border:1px solid var(--muted);color:var(--ink);font-size:12px;font-weight:700}
.gnumed{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.gnumed label{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}
.gnin{width:5.5ch;height:28px;padding:0 6px;border:1px solid var(--muted);border-radius:3px;background:var(--surface);color:var(--ink);font:inherit;font-size:15px}

/* add row: the goal, the date field and Add */
.gl.add{padding-left:calc(var(--dep)*22px + 24px)!important;align-items:center!important;gap:4px}
.gl.add .inl.t{min-height:32px;border:1px solid var(--muted)!important;border-radius:3px!important;background:var(--surface)!important;padding:4px 8px!important;font-size:15px}
.gl.add .inl.t::placeholder,.gaddd::placeholder{color:var(--faint)}
.gaddrow{flex-wrap:wrap}
.gaddrow .inl.t{flex:1 1 100%!important}
.gaddrow .inlsel{height:32px;border:1px solid var(--muted);border-radius:3px;background:var(--surface)}
.gaddby{display:inline-flex;align-items:center;gap:4px;flex:1 1 auto;color:var(--muted);font-size:15px}
.gaddd{width:8ch;flex:1 1 auto;min-width:6ch;height:32px;padding:0 8px;border:1px solid var(--muted);border-radius:3px;background:var(--surface);color:var(--ink);font:inherit;font-size:15px}
.gaddrow .btn.pri,.prcard .btn.pri{background:var(--accent-soft)!important;color:var(--accent)!important;border:1px solid var(--accent)!important;border-radius:3px!important;min-height:32px;font-weight:700}

/* Archived goals card: small caps title, outlined Restore */
.goalscard~details.card>summary.lbl{font-size:12px;letter-spacing:.08em;color:var(--muted)}

/* ---- Objectives view: week cards and day cards, numbered rows ---- */
.hwhead b{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hday.today{background:var(--surface)!important;border-color:var(--accent)!important}
.hdate{font-size:15px}
.hobjr+.hobjr{border-top:1px solid var(--line-2)}
.hnum{color:var(--muted);font-weight:400;font-variant-numeric:tabular-nums}
.hnum::after{content:"."}
.hobjr.done .hnum{color:var(--accent);font-weight:700}
.hobj{border-bottom:0!important}
.hobj::placeholder{color:var(--faint)}

/* ---- Principles ---- */
.prcard{gap:4px!important}
.prhd{min-height:28px}
.prhd .prtog{display:flex;align-items:center;gap:4px;background:none;border:0;padding:0;text-align:left}
.prread{border:1px solid var(--muted)!important;border-radius:3px!important;background:var(--surface)!important;color:var(--ink)!important;font-size:12px!important;font-weight:700;min-height:28px}
.prread .prbox{width:14px;height:14px;border:1px solid var(--muted)!important;border-radius:3px!important;display:inline-grid;place-items:center}
.prread.on{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)!important}
.prread .prbox.on{background:var(--accent);border-color:var(--accent)!important;color:var(--accent-ink)}
.prread .prbox.on svg{width:10px;height:10px}
.prsec{display:grid;gap:2px}
.prsec+.prsec{border-top:1px solid var(--line-2);padding-top:4px}
.prgh,.prgn{font-size:15px;font-weight:700}
.prrow{border-radius:0!important;padding:3px 0!important}
.prgrp>.prrow+.prrow{border-top:1px solid var(--line-2)}
.prnum{color:var(--muted)!important;font-weight:400!important;font-variant-numeric:tabular-nums}
.prrow:not(.add) .prnum::after{content:"."}
.prq{color:var(--muted);font-size:15px}
.prrow.dragging,.prgrp.dragging,.gblk.dragging{background:var(--accent-soft)!important;box-shadow:none!important}
.pradd{border:1px solid var(--muted)!important;border-radius:3px!important;background:var(--surface)!important;color:var(--ink)!important;justify-self:start}

/* number + its dot on one line, sized like the row text */
.gl>.gnum{display:inline-flex!important;align-items:center;justify-content:flex-end;height:28px!important;font-size:15px!important;line-height:22px}
.gaddd,.gnin,.gaddrow .inlsel{background:var(--surface)!important;border:1px solid var(--muted)!important;border-radius:3px!important}
.prsec{background:none!important;border:0!important;border-radius:0!important;padding:0!important;gap:2px!important}
.prsec>.lbl{padding-top:2px}
.prcard .prgn,#prcard textarea.prgn{font-size:15px!important;font-weight:700!important;letter-spacing:0!important;text-transform:none!important;color:var(--ink)!important}
.prgrp+.prgrp{border-top:1px solid var(--line-2);padding-top:2px}
.prrow>.prnum{display:inline-flex!important;align-items:center;justify-content:flex-end;height:28px!important;font-size:15px!important}
.prq{font-style:normal!important}
textarea.prt::placeholder,textarea.prq::placeholder,textarea.prgn::placeholder{font-style:normal!important;color:var(--faint)!important}
.propt{min-height:28px;font-size:15px!important;color:var(--ink)!important}
.propt .check.sm{width:20px;height:20px;border:1px solid var(--muted);border-radius:3px!important;background:var(--surface);display:inline-grid;place-items:center;flex:none}
.propt .check.sm.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.prhd .tw svg{color:var(--muted)}
#prcard .prsec>.lbl{font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.08em!important;color:var(--muted)!important}
#prcard .propt button.check{width:20px!important;height:20px!important;min-width:20px;border:1px solid var(--muted)!important;border-radius:3px!important;background:var(--surface)!important;padding:0!important}
#prcard .propt button.check.on{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--accent-ink)!important}
#prcard .propt button.check:not(.on)::before,#prcard .propt button.check:not(.on)::after{display:none!important}
/* Metrics tab (docs/STYLE.md §3 Metrics + Decisions 11/1/26). Everything is scoped to .metwrap (built in src/app/24-metrics.js).
   Cards 5px corners, 1px line border, no shadow, 4px/6px padding, 5px apart; buttons 3px corners, outlined; underline sliders;
   numbers in IBM Plex Sans tabular; 24/30 bold only for the Totals numbers. */
main .metwrap{display:grid;gap:5px;min-width:0;--met-num:"IBM Plex Sans",var(--ff);--met-r:3px;--met-rc:5px}
main .metwrap .num,main .metwrap .t-num{font-family:var(--met-num)!important;font-variant-numeric:tabular-nums lining-nums;font-size:inherit;font-weight:inherit}

/* Cards */
main .metwrap>.card{display:grid!important;gap:4px!important;margin:0!important;padding:4px 6px!important;background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--met-rc)!important;box-shadow:none!important;min-width:0}
main .metwrap .mettl{display:flex;align-items:center;gap:8px;min-height:28px}
main .metwrap .mettl>.lbl{flex:1 1 auto;font-size:12px!important;line-height:16px;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--muted)!important;text-align:left}
main .metwrap .metcap,main .metwrap .metnote,main .metwrap .metpar{font-size:12px;line-height:16px;font-weight:400;color:var(--muted)}
main .metwrap .metnote{margin:0;padding:2px 0}
main .metwrap .metk{font-size:12px;line-height:16px;font-weight:700;color:var(--muted)}

/* Buttons: outlined, 3px corners; small = 28px. Selected/primary = light green tint, never solid. */
main .metwrap .btn{border-radius:var(--met-r)!important;background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--muted)!important;box-shadow:none!important;font-weight:700}
main .metwrap .btn.sm{min-height:28px!important;height:28px;padding:0 8px!important;font-size:12px!important}
main .metwrap .btn[aria-pressed="true"],main .metwrap .btn.pri{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)!important}

/* Underline slider: muted options, selected = ink + 2px accent underline, 1px track. Only the underline changes. */
main .metwrap .seg.metseg{display:flex!important;flex-wrap:nowrap!important;width:100%;gap:0!important;height:28px;padding:0!important;background:none!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;align-items:stretch}
main .metwrap .seg.metseg button{flex:1 1 0!important;min-width:0;height:28px!important;min-height:0!important;padding:0 4px!important;margin-bottom:-1px;background:none!important;border:0!important;border-bottom:2px solid transparent!important;border-radius:0!important;color:var(--muted)!important;font-size:12px!important;font-weight:700;white-space:nowrap;box-shadow:none!important}
main .metwrap .seg.metseg button[aria-pressed="true"]{color:var(--ink)!important;border-bottom-color:var(--accent)!important}
main .metwrap .metctl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}

/* Custom range */
main .metwrap .metfromto{display:flex;flex-wrap:wrap;gap:4px 12px;padding:2px 0}
main .metwrap .metfromto label{display:flex;align-items:center;gap:6px}
main .metwrap .metfromto input{width:auto;min-height:32px;border:1px solid var(--muted);border-radius:var(--met-r);background:var(--surface);color:var(--ink);padding:0 6px;font-family:var(--met-num)}

/* Totals: three big numbers */
main .metwrap .mettots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
main .metwrap .mettot{display:grid;justify-items:start;align-content:start;gap:0;min-width:0;padding:2px 4px 4px;text-align:left;background:none;border:1px solid transparent;border-radius:var(--met-r);color:var(--ink)}
main .metwrap .mettot b{font-size:24px;line-height:30px;font-weight:700;white-space:nowrap}
main .metwrap .mettot .metcap{white-space:normal}
main .metwrap .mettot.on{border-color:var(--line);background:var(--sunk)}
main .metwrap .mettot.low b,main .metwrap .mettot.low .metcap{color:var(--warn)}
main .metwrap .mdetail{display:grid;gap:0;padding:2px 0!important;background:none!important;border:0!important;border-top:1px solid var(--line-2)!important;border-radius:0!important}
main .metwrap .mdetail .lblrow{display:flex;align-items:center;gap:6px;min-height:32px}
main .metwrap .mdetail .mdt{font-size:15px!important;font-weight:700;color:var(--ink)!important}
main .metwrap .mdrow{display:flex;align-items:center;gap:8px;min-height:28px;padding:3px 0!important;border:0!important;border-top:1px solid var(--line-2)!important;font-size:15px}
main .metwrap .optmet{font-size:15px;padding:3px 0;border-top:1px solid var(--line-2)}
main .metwrap .untr{display:grid;gap:4px;padding:3px 0;border-top:1px solid var(--line-2);border-bottom:0}
main .metwrap .metuntr{color:var(--al);font-size:15px}
main .metwrap .untrbtns{display:flex;flex-wrap:wrap;gap:4px}
main .metwrap .untrbtns select.markas{appearance:none;-webkit-appearance:none;background-image:none;text-align:center;font-weight:700;width:auto;min-width:96px}

/* Matched by Day (Week): 7 columns of bars, amber below target, with the % and "Low" in words */
main .metwrap .metweek{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding-top:2px}
main .metwrap .metday{display:grid;justify-items:center;gap:0;min-width:0}
main .metwrap .metcol{position:relative;width:100%;max-width:32px;height:72px;border-bottom:1px solid var(--line)}
main .metwrap .metcol::after{content:"";position:absolute;left:0;right:0;bottom:var(--tg);border-top:1px dashed var(--muted);pointer-events:none}
main .metwrap .metcol i{position:absolute;left:4px;right:4px;bottom:0;display:block;background:var(--accent);border-radius:2px 2px 0 0}
main .metwrap .metday.low .metcol i{background:var(--warn)}
main .metwrap .metpv{font-size:12px;line-height:16px;font-weight:700;color:var(--ink)}
main .metwrap .metday.low .metpv,main .metwrap .metlo{color:var(--warn)}
main .metwrap .metdn{font-size:12px;line-height:16px;color:var(--muted)}
main .metwrap .metday.today .metdn{color:var(--accent);font-weight:700}
main .metwrap .metlo{font-size:12px;line-height:16px;font-weight:700;min-height:16px}

/* Time by Area — Table: Planned | Actual columns with share % */
main .metwrap .brk{display:grid;gap:0}
main .metwrap .brk .brow{display:grid!important;grid-template-columns:8px minmax(0,1fr) 72px 72px 14px!important;column-gap:6px!important;align-items:center;min-height:28px;width:100%;padding:3px 0!important;border:0;border-top:1px solid var(--line-2);border-radius:0!important;background:none;text-align:left;font-size:15px!important;font-weight:400;color:var(--ink)}
main .metwrap .brk .brow:hover{background:none}
main .metwrap .brk .brow.bhead{border-top:0;min-height:20px;padding:0!important}
main .metwrap .brk .brow .hcol{text-align:right;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
main .metwrap .brk .brow .hcol.p{color:var(--plan-ink)}
main .metwrap .brk .brow .hcol.a{color:var(--accent)}
main .metwrap .brk .brow .dot{width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}
main .metwrap .brk .brow .grow{min-width:0;overflow-wrap:anywhere;line-height:22px;font-size:15px!important;font-weight:400}
main .metwrap .brk .brow.sub .grow{padding-left:12px}
main .metwrap .brk .brow .tcell{text-align:right;white-space:nowrap;font-size:15px!important}
main .metwrap .brk .tcell small{display:inline-block!important;min-width:30px;margin-left:4px!important;font-size:12px!important;color:var(--muted)}
main .metwrap .brk .brow .tw{width:14px;display:grid;place-items:center;color:var(--muted)}
main .metwrap .brk .brow .tw svg{width:12px;height:12px}
main .metwrap .brk .brow .tw.open svg{transform:rotate(90deg)}
main .metwrap .brk .brow.wtot .grow,main .metwrap .brk .brow.wtot .tcell{font-weight:700!important}
@media (max-width:400px){main .metwrap .brk .brow{grid-template-columns:8px minmax(0,1fr) 62px 62px 12px!important;column-gap:4px!important}main .metwrap .brk .tcell small{display:block!important;margin:0!important;line-height:14px}}

/* Time by Area — Bars: paired Planned (plan blue) and Actual (accent green) bars, words in the key */
main .metwrap .metbars{display:grid;gap:0}
main .metwrap .metkey{display:flex;align-items:center;gap:4px;font-size:12px;line-height:16px;color:var(--muted);padding:2px 0}
main .metwrap .metkey .mk{width:10px;height:10px;border-radius:2px;margin-left:8px}
main .metwrap .metkey .mk:first-child{margin-left:0}
main .metwrap .mk.p{background:var(--plan-ink)}
main .metwrap .mk.a{background:var(--accent)}
main .metwrap .metbrow{display:grid;gap:2px;padding:3px 0;border-top:1px solid var(--line-2)}
main .metwrap .metbn{display:flex;align-items:center;gap:6px;font-size:15px;line-height:22px;min-width:0}
main .metwrap .metbn .dot{width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}
main .metwrap .metb{display:grid;grid-template-columns:minmax(0,1fr) 52px;align-items:center;gap:6px}
main .metwrap .metb::before{content:"";grid-area:1/1;height:8px;background:var(--line-2);border-radius:2px}
main .metwrap .metb i{grid-area:1/1;display:block;height:8px;border-radius:2px;justify-self:start;min-width:0}
main .metwrap .metb.p i{background:var(--plan-ink)}
main .metwrap .metb.a i{background:var(--accent)}
main .metwrap .metb .num{text-align:right;font-size:12px;line-height:16px;color:var(--muted)}

/* Weight card (markup from weightMetric in 19-now.js): same card frame, Plex numbers */
main .metwrap .wcard{padding:4px 6px!important}
main .metwrap .wcard>.lbl{font-size:12px!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--muted)!important;min-height:28px;display:flex;align-items:center}
main .metwrap .wcard .wnum,main .metwrap .wtile b,main .metwrap .wrng,main .metwrap .wsphd .muted{font-family:var(--met-num)!important;font-variant-numeric:tabular-nums}
main .metwrap .wpasthd .btn.sm{min-width:28px;padding:0 6px!important}
/* ---------- Now tab (docs/STYLE.md §3 "Now", Decisions 11/1/26). Every section is a card (5px corners, 1px line, no shadow) with a small gray caps
   title; rows like a numbered list; buttons outlined with 3px corners. Loaded after 00-base.css. ---------- */
.nwwrap{gap:5px!important}
main .card.nw{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:5px!important;box-shadow:none!important;padding:4px 6px!important;gap:4px!important;margin:0!important;display:grid;min-width:0;text-align:left}
.nw .nwhead{display:flex;align-items:center;gap:4px;min-height:28px}
.nw .nwhead>.lbl{font-size:12px!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--muted)!important;line-height:16px}
.nw .nwcount{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
.nw .btn{border-radius:3px!important;background:var(--surface);border:1px solid var(--muted);color:var(--ink);box-shadow:none}
.nw .btn.sm{min-height:28px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.nw .btn.pri,.nw .btn[aria-pressed="true"]{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)!important}
.nw .iconbtn{width:28px;height:28px;display:grid;place-items:center;color:var(--muted);border-radius:3px}.nw .iconbtn svg{width:16px;height:16px}
.nw .lockb{width:28px;height:28px;border-radius:3px}
.nw .nwline{display:flex;align-items:center;gap:6px;min-height:28px;padding:3px 0;flex-wrap:wrap}
.nw .nwline .muted{font-weight:400}
.nw .nwsub{font-size:12px;font-weight:700;color:var(--muted);padding-top:4px}
.nw .nwdot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--c,var(--line));display:inline-block}
.nw .nwn{flex:none;min-width:18px;color:var(--muted);font-size:12px;font-weight:700}
.nw .nwadd{justify-self:start}
.nw .muted{color:var(--muted)}

/* Numbered lists and checklists: muted numbers, line-2 dividers. */
.nw .nwlist{display:grid;gap:0!important}
.nw .nwlist>.mini{border-top:1px solid var(--line-2);min-height:28px;padding:3px 0!important;gap:8px}
.nw .nwlist>.mini:first-child{border-top:0}
.nw .nwlist .inl,.nw .nwlist .t{font-size:15px!important}

/* An objective's number is its done checkbox: muted number in a 3px square, checked = accent. Everywhere objectives are listed. */
.check.objn,body.strike .check.objn{width:22px!important;height:22px!important;flex:none;border:1px solid var(--muted)!important;border-radius:3px!important;background:var(--surface)!important;color:var(--muted);font-size:12px;font-weight:700;display:inline-grid!important;place-items:center;padding:0}
.check.objn::before,.check.objn::after,body.strike .check.objn::before{content:none!important;display:none!important}
.check.objn.on,body.strike .check.objn.on{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--accent-ink)}
.mini.objrow.done .objt{text-decoration:line-through;color:var(--muted)}
.mini.objrow .objline{border-bottom:1px solid var(--line)!important;min-height:22px;flex:1}
.mini.objrow input.objt{background:none!important;border:0;border-radius:0;padding:2px 0!important}
.mini.objrow input.objline{border-bottom:1px solid var(--line)!important}

/* Square-box checklists (Block To-Dos, routines). */
.nw .nwtodos .check,body.strike .nw .nwtodos .check{width:20px!important;height:20px!important;border:1px solid var(--muted)!important;border-radius:3px!important;background:var(--surface)!important;display:grid!important;place-items:center}
.nw .nwtodos .check::before,body.strike .nw .nwtodos .check::before{content:none!important;display:none!important}
.nw .nwtodos .check.on,body.strike .nw .nwtodos .check.on{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--accent-ink)}
.nw .nwtodos .mini.done .t{text-decoration:line-through;color:var(--muted)}
.nw .nwtodos .sbd{color:var(--muted);font-size:12px}

/* Current Block: everything bold (SUG 103). */
main .card.nwcur,main .card.nwcur *{font-weight:700}
main .card.nwcur input::placeholder{font-weight:400;color:var(--faint)}
.nwcur .nwbname{display:flex;align-items:center;gap:6px;min-height:28px;flex-wrap:wrap;font-size:15px}
.nwcur .nwbname>.num{white-space:nowrap}
.nwcur .nwbname .bnm{flex:1;min-width:8em;font-size:15px!important;padding:2px 0!important;background:none!important;border:0!important;border-bottom:1px solid var(--line-2)!important;border-radius:0}
.nwstrip{display:flex;gap:2px;height:4px;margin:2px 0 4px}
.nwstrip i{flex:1;background:var(--line-2);border-radius:1px;overflow:hidden;display:block}
.nwstrip b{display:block;height:100%;background:var(--accent)}
.nwgrid{display:flex;flex-direction:column;min-width:0}
.nwrow{display:grid;grid-template-columns:66px minmax(0,1.15fr) minmax(0,1fr) 28px;align-items:center;column-gap:6px;min-height:26px;padding:2px 0;border-top:1px solid var(--line-2);font-size:15px}
.nwrow.nwh{border-top:0;min-height:20px;font-size:12px!important;color:var(--muted)}.nwrow.nwh .plan{color:var(--plan-ink)}
.nwrow .nwt{text-align:left;white-space:nowrap;font-size:15px;color:var(--ink);padding:0;background:none;border:0}
.nwrow.cur{background:var(--accent-soft)}.nwrow.cur .nwt{color:var(--accent)}
.nwrow.done .nwp .t{text-decoration:line-through;color:var(--muted)}
.nwrow .nwp,.nwrow .nwa{display:flex;align-items:center;gap:4px;min-width:0}
.nwrow .t{min-width:0;overflow-wrap:anywhere;text-align:left}
.nwrow .bcat{flex:1;min-width:0;padding:2px 0;background:none!important;border:0!important;color:var(--ink);font-size:15px;text-align:left;box-shadow:none}
.nwrow .bcat.unset{color:var(--plan-ink)}
.nwrow .nwnote{color:var(--muted)}
.nwrow .bdur,.nwrow .sbd{flex:none;min-width:34px;min-height:24px;padding:0 4px;border:1px solid var(--muted);border-radius:3px;background:var(--surface);font-size:12px;color:var(--ink);text-align:center}
.nwrow .sbd{border:0;color:var(--muted)}
.nwrow .bdur.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.nwrow .nwa.off,.nwrow .nwa.off .t{color:var(--warn)}
.nwrow .nwoff{font-size:12px;color:var(--warn);white-space:nowrap}
.nwrow .opttag{flex:none;font-size:12px;color:var(--muted);border:0;background:none;padding:0}
.nwrow .sbmb{width:28px;height:28px;border-radius:3px;color:var(--muted)}.nwrow .sbmb.on{color:var(--accent)}
.nwrow.gap.opt .bcat{color:var(--muted)}
.nwsubrow,.nwmore{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:3px 0 3px 72px}
.nwmore .bnote{flex:1;min-width:8em;padding:2px 6px!important;border:1px solid var(--muted)!important;border-radius:3px!important;background:var(--surface)!important;font-size:15px}
.nwcur .optoffer{border:0;background:none}
.nwfoot{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding-top:4px;border-top:1px solid var(--line-2)}
.nwshift{display:inline-flex;align-items:center;gap:4px}.nwshift .shiftlbl{font-size:12px!important;color:var(--muted)!important;letter-spacing:0!important;text-transform:none!important}
.nwshift .btn.sm{width:28px;padding:0}.nwshift .acc{font-size:12px;min-width:3em;text-align:center}
.nwcur.focus{border-color:var(--accent)!important}

/* Next: numbered rows; the first shows a countdown; unplanned blocks in plan blue with Plan It; untitled = dashed box. */
.nwnextcard .nexttools{padding:0!important}
main .nw .nextblock.nwnext{display:flex;align-items:center;gap:6px!important;min-height:28px;padding:3px 0!important;border:0!important;border-top:1px solid var(--line-2)!important;border-radius:0!important;background:none!important;box-shadow:none!important;font-size:15px!important;cursor:pointer;width:100%}
.nwnext .nwt{flex:none;min-width:66px;font-weight:700;white-space:nowrap}
.nwnext .nbmain{min-width:0;overflow-wrap:anywhere}
.nwnext .nbtitle{font-weight:400;cursor:text}
.nwnext .nbtitle.empty{display:inline-block;padding:0 6px;border:1px dashed var(--muted)!important;border-radius:3px;color:var(--muted);font-weight:400}
.nwnext .nwsum{color:var(--muted)}
.nwnext .nwin{flex:none;font-size:12px;font-weight:700;color:var(--accent);white-space:nowrap}
.nwnext.nwfree .nwt,.nwnext.nwfree .nwunpl{color:var(--plan-ink)}
.nwnext .nwunpl{font-size:12px}
.nwnext .nwplanit{flex:none;color:var(--plan-ink)!important;border-color:var(--plan-ink)!important;background:var(--plan-soft)!important}
.nwnext .tw{flex:none;color:var(--muted)}
.nwnextcard .nwline{border-top:1px solid var(--line-2);color:var(--muted)}
.nwnextcard .nwline .nwt{flex:none;min-width:66px;font-weight:700}
.nwopen{display:grid;gap:4px;padding:4px 0 6px 24px}
.nwopen.plan{border-left:2px solid var(--plan-ink);padding-left:8px;margin-left:16px}
.nwopen .bnm{font-size:15px!important;padding:2px 0!important;background:none!important;border:0!important;border-bottom:1px solid var(--line-2)!important;border-radius:0}

/* Track Now: just a filter box; matches appear as numbered rows. */
.nwtrack .nwq{min-height:32px;padding:4px 8px!important;border:1px solid var(--muted)!important;border-radius:3px!important;background:var(--surface)!important;font-size:15px}
.nwtrack .nwq::placeholder{color:var(--faint)}
.nwres{display:grid}.nwres:empty{display:none}
.nwpick{display:flex;align-items:center;gap:8px;min-height:28px;padding:3px 0;border-top:1px solid var(--line-2);text-align:left;width:100%;background:none;font-size:15px;color:var(--ink)}
.nwpick:first-child{border-top:0}
.nwempty{margin:0;padding:3px 0;color:var(--muted);font-size:15px}

/* Today So Far */
.nwkv{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:4px 8px;align-items:baseline;padding:3px 0}.nwkv span{color:var(--muted);font-size:12px;font-weight:700}
.nwfoot .nwshift{display:inline-flex!important;flex-wrap:nowrap!important;justify-content:flex-start!important}
.nwfoot .nwshift .shiftlbl{flex-basis:auto!important;text-align:left!important}
.nwfoot .nwshift button.btn.sm{width:28px!important;height:28px!important;font-size:15px!important}
.nwrow .nwp{flex-wrap:wrap;row-gap:0}.nwrow .bcat{flex:1 1 5em}
.nwrow .t{overflow-wrap:break-word!important;word-break:normal}
.nwrow .nwa{flex-wrap:wrap;row-gap:0}
.nwrow .sbd{display:inline-flex;align-items:center;justify-content:center}
.nw .uchip,.nw .ustep{border-radius:3px!important;box-shadow:none!important}
.nw .uchip[aria-pressed="true"]{background:var(--accent-soft)!important;color:var(--accent)!important;border:1px solid var(--accent)!important}
/* Settings (docs/STYLE.md, decisions 11/1/26): every section a card with a small gray caps title; rows = label · muted value · ›;
   sub-screens = "‹ Back" + gray caps title. Buttons 3px corners, cards 5px, no shadows, no pills, no solid green. */
.sx{display:grid;gap:5px;max-width:640px;width:100%}
.sx>.card,.sx .card{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:5px!important;box-shadow:none!important;padding:4px 6px!important;display:grid;gap:4px!important;margin:0!important}
.sxtitle{display:block;font-size:12px;line-height:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:2px 0;text-align:left}
.sxsub>.card>h3:first-child{display:none!important}
.sxrow{display:flex;align-items:center;gap:6px;min-height:36px;width:100%;text-align:left;font:inherit;font-size:15px;line-height:22px;color:var(--ink);background:none;border:0;border-top:1px solid var(--line-2);border-radius:0;padding:3px 0;margin:0;cursor:pointer}
.sxtitle+.sxrow{border-top:0}
.sxl{flex:1 1 auto;min-width:0}
.sxv{flex:0 1 auto;min-width:0;max-width:55%;color:var(--muted);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sxc{flex:none;width:12px;text-align:right;color:var(--muted);font-size:18px;line-height:1}
.sxrow:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
.sxhead{display:flex;align-items:center;gap:8px;min-height:36px;position:static!important;background:none!important;box-shadow:none!important;margin:0!important;padding:0!important}
.sxsync>.row{margin-top:0!important;padding-top:4px!important;border-top:1px solid var(--line-2)!important}
.sxbtns{display:flex;flex-wrap:wrap;gap:4px!important}
.sxn{flex:none;width:20px;font-size:12px}

/* Text: labels body 15/22 regular; help text caption 12/16 muted, sentence case. */
.sx .f{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:8px;padding:3px 0!important;border-top:1px solid var(--line-2)}
.sx .two{display:grid;grid-template-columns:1fr!important;gap:0!important}
.sx .two>.f:first-child{border-top:0}
.sx .f>span{font-size:15px!important;line-height:22px;font-weight:400!important;color:var(--ink)!important;text-transform:none!important;letter-spacing:0!important}
.sx p.muted,.sx .sxhelp{font-size:12px!important;line-height:16px;color:var(--muted);margin:0!important}
.sx .subhd,.sx .dhd{font-size:12px!important;line-height:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)!important;border-top:1px solid var(--line-2)!important;margin-top:4px;padding-top:4px}
.sx .dgrp{padding:4px 0 0!important;gap:4px!important}
.sx .dgrp>.dhd,.sx .dgrp>.row>.dhd{border-top:0!important;margin-top:0;padding-top:0}
.sx .dgrp{border-top:1px solid var(--line-2)!important}

/* Controls: 32px plain boxes, muted outline, 3px corners. */
.sx select,.sx input[type=text],.sx input[type=number],.sx input[type=time],.sx input[type=date],.sx input[type=password]{min-height:32px;padding:4px 8px!important;font-size:15px!important;border:1px solid var(--muted)!important;border-radius:3px!important;background:var(--surface)!important;color:var(--ink)}
.sx input[type=color]{border:1px solid var(--muted)!important;border-radius:3px!important}
.sx input::placeholder{color:var(--faint)}

/* Buttons: all outlined, 3px corners. Primary/selected = accent-soft fill, accent text and outline; secondary = surface, ink, muted outline. */
.sx .btn{border-radius:3px!important;box-shadow:none!important;background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--muted)!important;font-weight:700}
.sx .btn.pri,.sx .btn.on,.sx .btn[aria-pressed="true"]{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)!important}
.sx .btn.hot{background:var(--surface)!important;color:var(--hot)!important;border-color:var(--hot)!important}
.sx .btn.sm{min-height:28px}
.sx .pill{border-radius:3px!important}

/* Mode slider: underline style. */
.sx .seg{display:flex;flex-wrap:nowrap;gap:0!important;background:none!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;padding:0!important}
.sx .seg button{flex:1 1 0;min-width:0;min-height:28px;background:none!important;border:0!important;border-bottom:2px solid transparent!important;border-radius:0!important;color:var(--muted)!important;margin-bottom:-1px;font-size:15px}
.sx .seg button[aria-pressed="true"]{color:var(--ink)!important;border-bottom-color:var(--accent)!important;font-weight:700}

/* Areas & Activities screen can use the full width. */
.sxwide{max-width:820px}
/* To Do tab (docs/STYLE.md, decisions 11/1/26): cards 5px, buttons 3px, no pills, no shadows, no solid green.
   Numbered checklists: muted "1.", square boxes, line-2 dividers; checked = accent + strike-through. */
main .card.tdcard{--r-btn:3px;border:1px solid var(--line)!important;border-radius:5px!important;box-shadow:none!important;padding:4px 6px!important;gap:4px!important}
.tdcard .tdhead{display:flex;align-items:center;gap:6px;min-height:24px}
.tdcard .tdhead .muted{font-size:12px}
.tdcard .tdnote{margin:0;font-size:12px;line-height:16px;color:var(--muted)}

/* Buttons: outlined, 3px. Primary = accent-soft fill, accent text and outline. */
.tdcard .btn{border-radius:3px!important;min-height:32px;padding:0 10px;background:var(--surface);color:var(--ink);border:1px solid var(--muted);font-weight:700;font-size:15px;box-shadow:none}
.tdcard .btn.sm{min-height:28px;padding:0 8px;font-size:12px}
.tdcard .btn.pri,.tdcard .btn.on,.tdcard .btn[aria-pressed="true"]{background:var(--accent-soft)!important;color:var(--accent)!important;border:1px solid var(--accent)!important}

/* New item row: a 32px box with a muted outline and an Add button. */
.tdaddrow{display:flex;gap:4px;align-items:center;margin:0}
.tdaddrow input[type=text]{flex:1;min-width:0;height:32px;min-height:32px;padding:0 8px;border:1px solid var(--muted);border-radius:3px;background:var(--surface);color:var(--ink);font-size:15px}
.tdaddrow input::placeholder{color:var(--faint)}
.tdaddrow .btn{flex:none}

/* Details panel (in place, under the add row). */
.tdopts{display:grid;gap:4px;padding:4px 0;border-top:1px solid var(--line-2)}
.tdcard .dueq{display:flex;align-items:center;gap:4px;flex-wrap:wrap!important}
.tdcard .dueq>.lbl{flex:0 0 62px;font-size:12px}
.tdcard .qch{border-radius:3px!important;border:1px solid var(--muted);background:var(--surface);color:var(--ink);min-height:28px;padding:0 6px;font-size:12px;font-weight:700}
.tdcard .qch.on{background:var(--accent-soft)!important;border-color:var(--accent)!important;color:var(--accent)!important}
.tdcard .qch.area::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c,var(--muted));margin-right:4px;vertical-align:1px}
.tdcard .dueq .qch.dq{flex:0 1 auto}
.tdcard .dueguess{font-size:12px}
.tdcard .inlsel,.tdcard select{border:1px solid var(--muted);border-radius:3px;background:var(--surface);min-height:28px;font-size:12px}
.tdcard .tdareas{display:flex;flex-wrap:wrap;gap:4px;flex:1}
.tdcard .gasgd{border-radius:3px!important;border:1px solid var(--muted);background:var(--surface)}
.tdcard .gasgd.on{background:var(--accent-soft)!important;border-color:var(--accent)!important;color:var(--accent)!important}
.tdcard .gasgd.on .muted{color:var(--accent)!important}

/* Underline slider: Open | Unassigned | Done. */
.tdbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tdslide{display:flex;flex:1 1 auto;min-width:0;border-bottom:1px solid var(--line)}
.tdslide button{height:28px;padding:0 8px;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--muted);font-size:12px;font-weight:700;border-radius:0}
.tdslide button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.tdslide .num{font-weight:400}
.tdbar .tdsort{width:auto;flex:none}
.tdcard .fillrow{background:none;border-top:1px solid var(--line-2);border-radius:0;padding:4px 0;gap:4px}
.tdcard .tdchk{gap:4px;flex-wrap:nowrap;font-size:12px}

/* Numbered checklist rows. */
.tdgrp{display:grid;gap:0}
.tdgh{font-size:12px;line-height:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:6px 0 2px}
.tdgh.hot{color:var(--hot)}
.tdgh .num{font-weight:400}
.tdcard .tdrow.tdi{display:flex!important;align-items:center;gap:6px;min-height:28px;padding:3px 0!important;border-left:0!important;border-bottom:0;border-top:1px solid var(--line-2);background:none;cursor:default}
.tdgrp>.tdrow.tdi:first-child,.tdgh+.tdrow.tdi{border-top:0}
.tdrow.tdi.asg,.tdrow.tdi.lift{background:var(--accent-soft)}
.tdrow.tdi.lift{position:relative;z-index:1}
.tdnum{flex:0 0 22px;color:var(--muted);font-size:12px;text-align:right;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;align-self:stretch;display:flex;align-items:center;justify-content:flex-end}
.tdrow.lift .tdnum{cursor:grabbing}
.tdcard .check.tdbox{width:20px;height:20px;border:1px solid var(--muted)!important;border-radius:3px!important;background:var(--surface)!important;flex:none}
.tdcard .check.tdbox.on{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--accent-ink)}
.tdcard .check.tdbox::before,.tdcard .check.tdbox::after{content:none!important;display:none!important}
.tdcard .check.tdbox svg{display:block!important}
.tdrow.tdi .tdmain{flex:1;min-width:0}
.tdname{font-size:15px;line-height:22px;color:var(--ink);overflow-wrap:anywhere}
.tdrow.tdi.done .tdname{text-decoration:line-through;color:var(--muted)}
.tdrow.tdi .tdmeta{display:flex;flex-wrap:wrap;align-items:center;gap:0 4px;padding:0;margin:0;font-size:12px;line-height:16px;color:var(--muted)}
.tdrow.tdi .tdmeta i{font-style:normal}
.tdrow.tdi .tdmeta .late{color:var(--hot)}
.tdrow.tdi .tdmeta .mcat{display:inline-flex;align-items:center;gap:4px;background:none;border:0;padding:0;color:var(--muted)}
.tdrow.tdi .tdmeta .mcat::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c,var(--muted));flex:none}
.tdrow.tdi .tdwhen2{flex:none;font-weight:700}
.tdwhentx{flex:none;font-size:12px}
.tdcard .more.tdmore{width:28px;height:28px;border-radius:3px;color:var(--muted);flex:none;font-size:15px}
.tdcard .more.tdmore.on{color:var(--accent);background:var(--accent-soft)}

/* Inline rows under an item (⋯ and Assign). */
.tdcard .tddetail{padding:4px 0 6px 28px;border-top:1px solid var(--line-2);border-bottom:0;gap:4px}
.tdcard .tddetail .tdpath{font-size:12px}
.tdcard .tddetail textarea.tdtitle{font-size:15px;border-bottom:1px solid var(--line)}
.tdcard .tdl2,.tdcard .tdg{display:flex;flex-wrap:wrap;gap:4px}
.tdcard .tdl2 .qgrp{display:inline-flex;gap:4px}
.tdcard .tdasg{background:var(--accent-soft);border-radius:0;margin:0;padding:4px 6px 6px 28px;gap:4px}
@media (prefers-reduced-motion:reduce){.tdrow.tdi{transition:none}}
/* Keep cards full height inside the scrolling column; keep the sort and inline selects at their natural width. */
main .card.tdcard{flex-shrink:0;overflow:visible}
.tdbar .tdsort{width:auto!important;flex:0 1 auto;max-width:50%}
.tdcard .tddetail .tdg{display:flex!important;flex-wrap:wrap;gap:4px}
.tdcard .tddetail .tdg>*{width:auto!important;flex:0 1 auto;margin:0!important}
.tdcard .tddetail .tdl2 .qch{min-width:28px}
.tdcard .tddetail select{font-size:12px;min-height:28px}
/* Shared rules from the owner's 11/1 notes (lead-owned; loaded last). */

/* Numbers: IBM Plex Sans with even-width digits, everywhere (times, timers, durations, %, counts, dates). */
:root{--mono:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif}
.mono,.num,[data-elapsed],[data-left],[data-since]{font-family:var(--mono)!important;font-variant-numeric:tabular-nums}

/* TARA is always visible and never cut off. */
header.top .brand{flex:none!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;max-width:none!important}
.tash.tafull{top:max(var(--tafT,0px),var(--toph,44px))!important}

/* Sign-in and "Use Without an Account" sheets: one font, the app's sizes, nothing floating. */
.tash,.tash *:not(.num):not(svg):not(svg *){font-family:var(--ff,var(--body))!important}
.tash h1,.tash h2,.tash h3,.tash .tatitle{font-size:15px!important;font-weight:700!important;letter-spacing:0!important;text-transform:none!important}
.tash p,.tash label,.tash li,.tash .tamuted,.tash .tasub{font-size:15px!important;line-height:22px}
.tash small,.tash .small{font-size:12px!important}
.tash .tabtn,.tash button{border-radius:3px!important}
.tatoast{position:static!important;transform:none!important;left:auto!important;bottom:auto!important;max-width:none!important;margin:4px 0!important;background:var(--hot-soft)!important;color:var(--ink)!important;border:1px solid var(--hot);border-radius:3px!important;box-shadow:none!important;padding:4px 6px!important;font-size:15px!important;font-weight:700!important}
.tash input[type=checkbox]{width:22px!important;height:22px!important;flex:none;margin:0!important;accent-color:var(--accent);border-radius:3px}
.tash label:has(input[type=checkbox]){display:flex!important;align-items:flex-start;gap:8px;text-align:left}

/* Buttons: no solid green anywhere (sign-in buttons excepted). Primary = light green fill, green text, green outline. */
main .btn.pri,.dockpick .btn.pri,.tdock .btn.pri{background:var(--accent-soft)!important;color:var(--accent)!important;border:1px solid var(--accent)!important}

/* "Use TARA Without an Account?": one family, three styles only — gray caps title, regular 15px ink text, bold 15px for the one key line and buttons. */
.tash[data-panel="optout"] h3{font-size:12px!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--muted)!important;margin:8px 0 4px!important}
.tash[data-panel="optout"] .tabox{border:1px solid var(--line)!important;background:var(--surface)!important;border-radius:5px!important;padding:4px 6px!important}
.tash[data-panel="optout"] .tabox b{font-size:15px!important;font-weight:700!important;color:var(--ink)!important}
.tash[data-panel="optout"] p,.tash[data-panel="optout"] label{font-size:15px!important;font-weight:400!important;color:var(--ink)!important;line-height:22px!important;margin:4px 0!important}
.tash[data-panel="optout"] button{font-size:15px!important;font-weight:700!important}

/* ===== Buttons everywhere (STYLE.md): outlined, 32px (small 28px), 3px corners, 4px apart. Primary = light green fill,
   green text, green outline; secondary = white, ink text, muted outline. No solid green, no pills, no text links. ===== */
.btn,.tabtn{min-height:32px;border-radius:3px!important;box-shadow:none!important;font-weight:700}
.btn.sm{min-height:28px}
.btn:not(.pri):not(.on):not(.ghost),.tabtn:not(.pri):not(.tapick):not(.tagoogle){background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--muted)!important}
.btn.pri,.btn.on,.tabtn.pri,.tabtn.talnkbtn,.tabtn.talnkalt,.tabtn.tapick.on{background:var(--accent-soft)!important;color:var(--accent)!important;border:1px solid var(--accent)!important}
.tabtn{height:auto!important;min-height:44px}
.tabtn:disabled,.btn:disabled{opacity:.55}
/* "link" buttons become small outlined buttons ("Use without an account", "Forgot password?") */
.tabtn.link{min-height:28px!important;padding:2px 10px!important;font-size:12px!important;font-weight:700!important;color:var(--ink)!important;background:var(--surface)!important;border:1px solid var(--muted)!important;width:auto!important;text-decoration:none!important}
.tabtn.link.taskip{justify-self:center!important;margin-top:8px}

/* ===== Sign-in sheets look like the app: page background, white cards with a 1px line border, gray caps titles. ===== */
.tash.tafull,.tash.tagate{background:var(--bg)!important}
.tash .tacard,.tash .tabox{display:grid;gap:4px;background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:5px!important;padding:4px 6px!important;box-shadow:none!important}
.tash .talbl{font-size:12px!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--muted)!important}
.tash .tacard b{font-size:15px!important;font-weight:700!important;color:var(--ink)!important}
.tash .tacard p{font-size:15px!important;font-weight:400!important;color:var(--ink)!important;line-height:22px;margin:0!important}
.tash .tacheck{display:flex!important;flex-wrap:nowrap!important;flex-direction:row!important;align-items:flex-start;gap:8px;font-size:15px!important;font-weight:400!important;border-top:1px solid var(--line-2);padding-top:4px;margin:0}
.tash input[type=text],.tash input[type=email],.tash input[type=password],.tash input[type=tel],.tash input:not([type]){min-height:32px;border:1px solid var(--muted)!important;border-radius:3px!important;font-size:15px!important}

/* Set Up: two cards; buttons wrap rather than run off screen. */
.setupcard{display:grid;gap:4px}
.setupcard .row,.setupbtns{flex-wrap:wrap!important;gap:4px!important}
.setupcard .btn{white-space:normal;max-width:100%}
main .card>h2{font-size:12px!important;font-weight:700!important;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)!important;margin:0!important}

/* Edges: 4px from the screen edge to the cards on every screen (owner 11/1), 4px between cards. */
main,#main{padding-left:4px!important;padding-right:4px!important;gap:4px!important}
main>.card,main .nowwrap,main .dayshell{margin-left:0!important;margin-right:0!important}
.nowwrap,.dayshell,.metwrap{gap:4px!important}
.tash.tagate,.tash.tafull{padding-left:4px!important;padding-right:4px!important}
.tdock{padding-left:4px!important;padding-right:4px!important}
