:root{
  --plaster:#F4F1EB; --surface:#FBFAF7; --ink:#23211E; --stone:#6E675D;
  --line:#DDD7CC; --line-strong:#8C857A; --oak:#A07F4F; --oak-ink:#7A5C2E;
  --on-oak:#FFFFFF; --ok:#3F6B4A; --warn:#8F611A; --bad:#9A3B2E; --track:#EAE5DB;
  --display:"Quicksand","Varela Round",system-ui,sans-serif;
  --body:"Jost","Futura","Avenir Next","Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root{ --plaster:#23211E; --surface:#2D2B27; --ink:#F4F1EB; --stone:#B5AEA3;
    --line:#3A3732; --line-strong:#827B71; --oak:#CDB48A; --oak-ink:#CDB48A;
    --on-oak:#23211E; --ok:#7FB08B; --warn:#D9A54F; --bad:#E08573; --track:#3A3732; }
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--plaster);color:var(--ink);font-family:var(--body);font-size:16px;line-height:24px;-webkit-text-size-adjust:100%}
body{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
a{color:var(--oak-ink)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--oak-ink);outline-offset:2px}
main{max-width:560px;margin:0 auto;padding:calc(16px + env(safe-area-inset-top)) 16px 24px;display:flex;flex-direction:column;gap:16px}
.eyebrow{font-size:12px;line-height:16px;letter-spacing:.16em;font-weight:500;color:var(--stone);text-transform:uppercase}
h1{margin:0;font-family:var(--display);font-weight:500;font-size:32px;line-height:38px}
h1 .dot{color:var(--oak)}
h2{margin:0;font-family:var(--display);font-weight:600;font-size:19px;line-height:26px}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.head > div{display:flex;flex-direction:column;gap:4px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}
a.card{text-decoration:none;color:var(--ink)}
.row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.muted{color:var(--stone);font-size:14px}
.small{font-size:13px}
.num{font-variant-numeric:tabular-nums}
.big{font-family:var(--display);font-size:28px;font-weight:500}
.bar{height:8px;background:var(--track);border-radius:999px;overflow:hidden;display:flex}
.bar > span{display:block;height:100%}
.ok{color:var(--ok)} .warn{color:var(--warn)} .bad{color:var(--bad)}
.dot-s{display:inline-block;width:8px;height:8px;border-radius:999px;margin-right:6px;vertical-align:middle}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 16px;border-radius:6px;border:1px solid var(--line-strong);background:var(--surface);text-decoration:none;color:var(--ink);font-size:16px;cursor:pointer}
.btn.primary{background:var(--oak-ink);border-color:var(--oak-ink);color:var(--on-oak);font-weight:500}
.btn.big{min-height:56px;font-family:var(--display);font-weight:600;font-size:18px}
.btn:disabled{opacity:.45}
.btn.sm{min-height:40px;font-size:14px;padding:0 12px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
label.field{display:flex;flex-direction:column;gap:6px}
input,select,textarea{min-height:48px;padding:10px 12px;border-radius:6px;border:1px solid var(--line-strong);background:var(--surface);width:100%}
textarea{min-height:110px;resize:vertical}
.list{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 16px}
.list > *{border-bottom:1px solid var(--line)}
.list > *:last-child{border-bottom:none}
.li{display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 0}
.li .grow{flex:1;min-width:0;display:flex;flex-direction:column}
.check{width:22px;height:22px;accent-color:var(--oak-ink);flex-shrink:0}
.stepper{display:flex;align-items:center;gap:4px}
.stepper button{width:44px;height:44px;border-radius:6px;border:1px solid var(--line-strong);background:var(--surface);font-size:20px}
.stepper span{width:52px;text-align:center;font-family:var(--display);font-size:20px;font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{min-height:40px;padding:0 12px;border-radius:6px;border:1px solid var(--line);background:var(--surface);font-size:14px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--plaster);border-color:var(--ink)}
.photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.photos img,.photos .ph{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;background:var(--track);display:block}
.photo-add{aspect-ratio:1;border-radius:6px;border:1px dashed var(--line-strong);background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--stone);cursor:pointer}
.badge{font-size:12px;border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:var(--stone);white-space:nowrap}
.empty{text-align:center;color:var(--stone);padding:24px 8px}
.back{font-size:14px;text-decoration:none;display:inline-flex;align-items:center;gap:4px;min-height:32px}
nav#tabs{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line);background:var(--surface);padding:6px 4px calc(8px + env(safe-area-inset-bottom));z-index:5}
nav#tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;font-size:11px;text-decoration:none;color:var(--stone)}
nav#tabs a[aria-current="page"]{color:var(--oak-ink);font-weight:500}
nav#tabs svg{width:22px;height:22px}
#toast{position:fixed;left:16px;right:16px;bottom:calc(96px + env(safe-area-inset-bottom));max-width:528px;margin:0 auto;background:var(--ink);color:var(--plaster);border-radius:6px;padding:12px 16px;font-size:15px;z-index:9}
table.pay{width:100%;border-collapse:collapse;font-size:14px}
table.pay th{font-weight:500;color:var(--stone);text-align:left;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:8px 4px}
table.pay td{padding:10px 4px;border-top:1px solid var(--line)}
table.pay td.r,table.pay th.r{text-align:right}
.day{display:flex;gap:12px}
.day .d{width:42px;flex-shrink:0;display:flex;flex-direction:column;align-items:center}
.day .d b{font-family:var(--display);font-size:22px;font-weight:600}
.today{border-color:var(--oak-ink)}
@media (prefers-reduced-motion:no-preference){ main{animation:in .18s ease-out} @keyframes in{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}} }

/* ===== monday-style boards (v4) ===== */
:root{ --s-green:#4F7A5A; --s-oak:#8E6E40; --s-amber:#9C6E22; --s-stone:#7A746A; --s-clay:#9A4636; --s-slate:#56677D; --hover:#F0ECE4; --side:#EFEBE3 }
@media (prefers-color-scheme: dark){ :root{ --hover:#34312C; --side:#282622 } }
aside#side{display:none}
.pill{display:inline-flex;align-items:center;justify-content:center;min-width:104px;min-height:32px;padding:0 12px;border:0;border-radius:4px;background:var(--pc);color:#fff;font-size:13px;font-weight:500;white-space:nowrap;cursor:default}
button.pill{cursor:pointer}
button.pill:hover{filter:brightness(1.08)}
.pop{position:absolute;z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.14);padding:8px;display:flex;flex-direction:column;gap:6px;min-width:160px}
.pop .pill{width:100%}
.boardhead{display:flex;flex-direction:column;gap:12px}
.boardhead .top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.views{display:flex;gap:4px;border-bottom:1px solid var(--line)}
.views a{padding:8px 12px;text-decoration:none;color:var(--stone);font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px}
.views a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--oak-ink);font-weight:500}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.toolbar input,.toolbar select{min-height:40px;width:auto;padding:6px 10px;font-size:14px}
.toolbar .btn{min-height:40px;font-size:14px}
.group{display:flex;flex-direction:column;gap:6px}
.group-h{display:flex;align-items:center;gap:8px;background:none;border:0;padding:4px 0;cursor:pointer;color:var(--gc);font-family:var(--display);font-weight:600;font-size:18px;text-align:left}
.group-h .cnt{font-family:var(--body);font-weight:400;font-size:13px;color:var(--stone)}
.group-h svg{transition:transform .15s}
.group-h[aria-expanded="false"] svg{transform:rotate(-90deg)}
.tbl-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--gc);border-radius:8px}
table.board{width:100%;border-collapse:collapse;font-size:14px;min-width:980px}
table.board th{font-weight:500;color:var(--stone);font-size:12px;text-align:center;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
table.board th:first-child,table.board td:first-child{text-align:left}
table.board td{padding:6px 10px;border-top:1px solid var(--line);text-align:center;white-space:nowrap;height:44px}
table.board tbody tr:hover td{background:var(--hover)}
table.board td.name a{color:var(--ink);text-decoration:none;font-weight:500}
table.board td.name a:hover{color:var(--oak-ink);text-decoration:underline}
table.board td.name .sub{display:block;font-size:12px;color:var(--stone)}
table.board td.r,table.board th.r{text-align:right}
table.board tfoot td{border-top:1px solid var(--line-strong);font-weight:500;background:var(--plaster)}
table.board td.edit{cursor:text}
table.board td.edit:hover{outline:1px dashed var(--line-strong);outline-offset:-4px}
table.board td input{min-height:32px;padding:4px 8px;font-size:14px;text-align:right;width:120px}
.mini{display:flex;align-items:center;gap:8px;justify-content:center}
.mini .bar{width:90px;height:8px}
.addrow{display:inline-flex;align-items:center;gap:6px;color:var(--stone);text-decoration:none;font-size:14px;padding:8px 0}
.addrow:hover{color:var(--oak-ink)}
.who{display:inline-flex;gap:2px;justify-content:center}
.av{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;background:var(--oak);color:var(--on-oak);font-size:11px;font-weight:600;border:2px solid var(--surface)}
/* kanban */
.kanban{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(260px,1fr));gap:12px;align-items:start;overflow-x:auto}
.kcol{background:var(--track);border-radius:8px;display:flex;flex-direction:column;min-height:120px}
.kcol-h{background:var(--pc);color:#fff;border-radius:8px 8px 0 0;padding:10px 12px;font-weight:500;display:flex;justify-content:space-between}
.kcol-b{padding:8px;display:flex;flex-direction:column;gap:8px;min-height:80px;flex:1}
.kcol.over .kcol-b{outline:2px dashed var(--pc);outline-offset:-4px;border-radius:6px}
.kcard{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;cursor:grab}
.kcard.drag{opacity:.4}
.kcard .meta{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--stone)}
.tag i{width:10px;height:10px;border-radius:3px;background:var(--jc);display:inline-block}
.kcard .pill{min-width:0;min-height:26px;font-size:12px;padding:0 10px}
.kadd{display:flex;flex-direction:column;gap:6px;padding:8px;border-top:1px solid var(--line)}
.kadd input,.kadd select{min-height:38px;font-size:14px;padding:6px 10px}
/* timeline */
.tl{display:grid;grid-template-columns:200px repeat(var(--days,14),minmax(48px,1fr));background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:auto;font-size:13px}
.tl > div{border-bottom:1px solid var(--line);border-right:1px solid var(--line);min-height:52px;display:flex;align-items:center;justify-content:center;padding:4px}
.tl .lab{justify-content:flex-start;padding:4px 12px;gap:8px;font-weight:500;position:sticky;left:0;background:var(--surface);z-index:1}
.tl .lab i{width:10px;height:28px;border-radius:3px;background:var(--jc)}
.tl .dh{flex-direction:column;min-height:48px;color:var(--stone);font-size:12px;gap:0}
.tl .dh b{color:var(--ink);font-size:15px;font-family:var(--display)}
.tl .wk{background:var(--plaster)}
.tl .now{box-shadow:inset 0 0 0 2px var(--oak-ink)}
.tl a.cell{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--stone);border-radius:4px}
.tl a.cell:hover{background:var(--hover)}
.tl a.cell.on{background:var(--jc);color:#fff;font-weight:600;font-size:12px}
.tl a.cell.on:hover{filter:brightness(1.08)}
.tl .ev{font-size:11px;background:var(--surface);border:1px solid var(--oak);color:var(--oak-ink);border-radius:999px;padding:1px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* timesheet */
table.ts{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:14px}
table.ts th{font-size:12px;font-weight:500;color:var(--stone);padding:8px;border-bottom:1px solid var(--line);text-align:center}
table.ts th:first-child,table.ts td:first-child{text-align:left;padding-left:14px}
table.ts td{border-top:1px solid var(--line);padding:6px;text-align:center}
table.ts td input{width:72px;min-height:36px;padding:4px 6px;text-align:center;font-size:15px}
table.ts tfoot td{font-weight:600;background:var(--plaster)}
table.ts .hb{color:var(--stone)}
.split{display:flex;flex-direction:column;gap:16px}

@media (min-width:1024px){
  body{display:grid;grid-template-columns:232px minmax(0,1fr);padding-bottom:0;min-height:100vh}
  aside#side{display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;background:var(--side);border-right:1px solid var(--line);padding:20px 12px;overflow-y:auto}
  aside#side[hidden]{display:none}
  aside#side .brand{font-family:var(--display);font-size:22px;font-weight:600;padding:4px 10px 16px}
  aside#side .brand span{color:var(--oak)}
  aside#side .sec{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);padding:14px 10px 4px}
  aside#side a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;text-decoration:none;color:var(--ink);font-size:15px}
  aside#side a svg{width:18px;height:18px;color:var(--stone)}
  aside#side a:hover{background:var(--hover)}
  aside#side a[aria-current="page"]{background:var(--surface);box-shadow:inset 3px 0 0 var(--oak-ink);font-weight:500}
  aside#side .me{margin-top:auto;padding:12px 10px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;font-size:14px}
  aside#side .me button{background:none;border:0;padding:0;color:var(--oak-ink);text-align:left;cursor:pointer;font-size:14px}
  nav#tabs{display:none}
  main{max-width:760px;width:100%;margin:0 auto;padding:28px 32px 48px}
  main.wide{max-width:none;margin:0}
  #toast{bottom:24px;left:auto;right:24px;max-width:420px}
  .split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .split > div{display:flex;flex-direction:column;gap:16px}
  .kanban{--minw:280px}
}
@media (max-width:1023px){
  .kanban{grid-template-columns:1fr;overflow:visible}
  .kcard{cursor:default}
}
table.board td.name{min-width:220px;max-width:280px;white-space:normal}
table.board td:nth-child(3){max-width:180px;overflow:hidden;text-overflow:ellipsis}

/* ===== themes (v5) ===== */
:root[data-theme="plaster"]{--plaster:#F4F1EB;--surface:#FBFAF7;--ink:#23211E;--stone:#6E675D;--line:#DDD7CC;--line-strong:#8C857A;--oak:#A07F4F;--oak-ink:#7A5C2E;--on-oak:#FFFFFF;--ok:#3F6B4A;--warn:#8F611A;--bad:#9A3B2E;--track:#EAE5DB;--hover:#F0ECE4;--side:#EFEBE3;color-scheme:light}
:root[data-theme="linen"]{--plaster:#FAF7F2;--surface:#FFFFFF;--ink:#2A2622;--stone:#6F665C;--line:#E6DFD4;--line-strong:#998F82;--oak:#B08955;--oak-ink:#7C5A2A;--on-oak:#FFFFFF;--ok:#3F6B4A;--warn:#8F611A;--bad:#9A3B2E;--track:#EFE9DF;--hover:#F5F0E8;--side:#F3EEE6;color-scheme:light}
:root[data-theme="sage"]{--plaster:#EFF2EC;--surface:#FAFBF8;--ink:#1F2620;--stone:#5D6A5F;--line:#D3DCD1;--line-strong:#7F8C80;--oak:#6E8B6F;--oak-ink:#3F5E45;--on-oak:#FFFFFF;--ok:#3F6B4A;--warn:#8F611A;--bad:#9A3B2E;--track:#E1E8DE;--hover:#E8EDE5;--side:#E6EBE2;color-scheme:light}
:root[data-theme="slate"]{--plaster:#EEF1F4;--surface:#FAFBFC;--ink:#1E232A;--stone:#5A6472;--line:#D5DBE2;--line-strong:#7E8896;--oak:#5C7591;--oak-ink:#38506B;--on-oak:#FFFFFF;--ok:#3D6B52;--warn:#8F611A;--bad:#9A3B2E;--track:#E0E5EB;--hover:#E7EBF0;--side:#E5E9EE;color-scheme:light}
:root[data-theme="bright"]{--plaster:#F6F7FB;--surface:#FFFFFF;--ink:#323338;--stone:#676879;--line:#E1E3EC;--line-strong:#A3A6B5;--oak:#6161FF;--oak-ink:#4B4BD8;--on-oak:#FFFFFF;--ok:#00854D;--warn:#B25E00;--bad:#D83A52;--track:#E6E9EF;--hover:#F0F2F8;--side:#FFFFFF;--s-green:#00A35C;--s-oak:#7A5AF8;--s-amber:#E08A00;--s-stone:#808394;--s-clay:#E2445C;--s-slate:#579BFC;color-scheme:light}
:root[data-theme="walnut"]{--plaster:#23211E;--surface:#2D2B27;--ink:#F4F1EB;--stone:#B5AEA3;--line:#3A3732;--line-strong:#827B71;--oak:#CDB48A;--oak-ink:#CDB48A;--on-oak:#23211E;--ok:#7FB08B;--warn:#D9A54F;--bad:#E08573;--track:#3A3732;--hover:#34312C;--side:#282622;color-scheme:dark}
:root[data-theme="night"]{--plaster:#16181C;--surface:#1F2228;--ink:#ECEEF2;--stone:#A3A9B4;--line:#2E323A;--line-strong:#6D7380;--oak:#8FB0D6;--oak-ink:#9DBBE0;--on-oak:#16181C;--ok:#7FC49A;--warn:#E3B062;--bad:#EF8A8A;--track:#2E323A;--hover:#272A31;--side:#1A1C21;color-scheme:dark}
:root[data-theme="forest"]{--plaster:#1C221E;--surface:#252C27;--ink:#EEF2EC;--stone:#AAB5AC;--line:#333C35;--line-strong:#738075;--oak:#A9C29B;--oak-ink:#B7CFA9;--on-oak:#1C221E;--ok:#8FC79C;--warn:#E0B060;--bad:#E8907F;--track:#333C35;--hover:#2C342E;--side:#202722;color-scheme:dark}
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.sw{border:2px solid var(--line);border-radius:10px;padding:0;overflow:hidden;cursor:pointer;background:none;text-align:left;display:flex;flex-direction:column}
.sw[aria-pressed="true"]{border-color:var(--oak-ink);box-shadow:0 0 0 2px var(--oak-ink)}
.sw .pv{height:70px;display:grid;grid-template-columns:28% 1fr}
.sw .pv i{display:block}
.sw .pv div{display:flex;flex-direction:column;gap:6px;padding:10px}
.sw .pv b{display:block;height:8px;border-radius:3px}
.sw span{padding:8px 10px;font-size:14px;color:var(--ink);background:var(--surface)}
/* job tabs, updates, tasks, gantt */
.jtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto}
.jtabs a{padding:8px 12px;text-decoration:none;color:var(--stone);font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.jtabs a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--oak-ink);font-weight:500}
.upd{display:flex;gap:12px;padding:14px 0;border-top:1px solid var(--line)}
.upd:first-child{border-top:0}
.upd .av{width:34px;height:34px;font-size:12px;flex-shrink:0}
.upd .body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.upd .body p{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.mention{color:var(--oak-ink);font-weight:500}
.att{display:flex;flex-wrap:wrap;gap:6px}
.att img{width:96px;height:96px;object-fit:cover;border-radius:6px;display:block}
.att a.file,.filerow a{display:inline-flex;align-items:center;gap:6px;font-size:14px}
table.tasks{width:100%;border-collapse:collapse;font-size:14px;background:var(--surface)}
table.tasks th{font-size:12px;font-weight:500;color:var(--stone);text-align:left;padding:8px;border-bottom:1px solid var(--line);white-space:nowrap}
table.tasks td{padding:4px 8px;border-top:1px solid var(--line);vertical-align:middle}
table.tasks tr:hover td{background:var(--hover)}
table.tasks input,table.tasks select{min-height:34px;padding:4px 8px;font-size:14px;border-color:transparent;background:transparent}
table.tasks input:hover,table.tasks select:hover,table.tasks input:focus,table.tasks select:focus{border-color:var(--line-strong);background:var(--surface)}
table.tasks td.t input{font-weight:500}
table.tasks .done input{color:var(--stone);text-decoration:line-through}
.tcard{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid var(--line)}
.gantt{display:grid;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:auto;font-size:12px;position:relative}
.gantt > div{border-bottom:1px solid var(--line);min-height:38px;display:flex;align-items:center}
.gantt .gl{position:sticky;left:0;background:var(--surface);z-index:2;padding:4px 10px;font-size:13px;border-right:1px solid var(--line);flex-direction:column;align-items:flex-start;justify-content:center;gap:0}
.gantt .gl small{color:var(--stone)}
.gantt .gh{color:var(--stone);justify-content:flex-start;padding-left:4px;font-size:11px;border-left:1px solid var(--line)}
.gantt .bar-cell{position:relative;padding:0}
.gantt .gbar{position:absolute;top:7px;bottom:7px;border-radius:5px;background:var(--pc);color:#fff;font-size:11px;font-weight:500;display:flex;align-items:center;padding:0 8px;white-space:nowrap;overflow:hidden}
.gantt .today{position:absolute;top:0;bottom:0;width:2px;background:var(--bad);opacity:.7;z-index:1}
.dash{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;align-items:start}
.hbar{display:grid;grid-template-columns:140px 1fr auto;gap:10px;align-items:center;font-size:14px}
.hbar .bar{height:10px}
.bell{position:relative}
.bell .n{position:absolute;top:2px;right:2px;min-width:18px;height:18px;border-radius:999px;background:var(--bad);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;padding:0 4px}
aside#side a .cnt{margin-left:auto;background:var(--bad);color:#fff;border-radius:999px;font-size:11px;min-width:20px;text-align:center;padding:0 6px}
.note{display:flex;gap:10px;padding:12px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.note.unread b{color:var(--ink)}
.note .dot2{width:8px;height:8px;border-radius:999px;background:var(--oak-ink);margin-top:8px;flex-shrink:0}
.note:not(.unread) .dot2{background:transparent}
dialog{border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:20px;width:min(520px,calc(100vw - 32px))}
dialog::backdrop{background:rgba(0,0,0,.35)}
dialog form{display:flex;flex-direction:column;gap:12px}
.chipsel .chip{min-height:34px}
.li .n{background:var(--bad);color:#fff;border-radius:999px;font-size:12px;padding:0 7px}

/* ===== calendar (v6) ===== */
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.cal .dh{padding:8px;font-size:12px;color:var(--stone);text-align:center;border-bottom:1px solid var(--line);font-weight:500}
.cal .cd{min-height:118px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;display:flex;flex-direction:column;gap:3px;cursor:pointer;min-width:0}
.cal .cd:nth-child(7n){border-right:0}
.cal .cd:hover{background:var(--hover)}
.cal .cd.out{background:var(--plaster);opacity:.6}
.cal .cd .n{font-size:13px;font-weight:600;align-self:flex-start;min-width:24px;height:24px;border-radius:999px;display:flex;align-items:center;justify-content:center}
.cal .cd.now .n{background:var(--oak-ink);color:var(--on-oak)}
.cal.week .cd{min-height:360px}
.ci{font-size:12px;line-height:16px;border-radius:4px;padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:0;text-align:left;cursor:pointer;color:var(--ink);background:none;display:block;width:100%}
.ci.mt{background:color-mix(in srgb,var(--s-slate) 18%,var(--surface));border-left:3px solid var(--s-slate)}
.ci.mt.app{background:color-mix(in srgb,var(--oak) 20%,var(--surface));border-left-color:var(--oak-ink)}
.ci.jb{background:var(--jc);color:#fff}
.ci.td{border:1px dashed var(--line-strong)}
.ci.dl{border-left:3px solid var(--s-green);background:color-mix(in srgb,var(--s-green) 12%,var(--surface))}
.ci.more{color:var(--stone)}
.agenda .day{display:flex;flex-direction:column;gap:6px;padding:12px 0;border-top:1px solid var(--line)}
.agenda .day:first-child{border-top:0}
.agenda .ci{font-size:14px;line-height:20px;padding:6px 10px;white-space:normal}
.legend{display:flex;gap:6px;flex-wrap:wrap}
.ci,.ci:hover{text-decoration:none}

/* ===== more themes (v8) ===== */
:root[data-theme="terracotta"]{--plaster:#F6EFE8;--surface:#FFFBF7;--ink:#2B211C;--stone:#76655A;--line:#E8DACD;--line-strong:#A08A7A;--oak:#C0704A;--oak-ink:#9A4F2C;--on-oak:#FFFFFF;--ok:#4A7253;--warn:#996418;--bad:#A53B2D;--track:#EFE3D7;--hover:#F3E9DF;--side:#F1E6DB;color-scheme:light}
:root[data-theme="olive"]{--plaster:#F2F1E8;--surface:#FBFBF5;--ink:#22231B;--stone:#666853;--line:#DCDCC9;--line-strong:#8E8F78;--oak:#8A8B3E;--oak-ink:#5E6024;--on-oak:#FFFFFF;--ok:#4B6E3E;--warn:#8F6418;--bad:#9A3B2E;--track:#E5E4D4;--hover:#ECEBDF;--side:#EAE9DC;color-scheme:light}
:root[data-theme="navy"]{--plaster:#F4F2EC;--surface:#FCFBF8;--ink:#1B2333;--stone:#5C6578;--line:#DEDBD2;--line-strong:#878E9C;--oak:#2F4A75;--oak-ink:#22385C;--on-oak:#FFFFFF;--ok:#3D6B52;--warn:#8F611A;--bad:#9A3B2E;--track:#E6E3DA;--hover:#EFEDE6;--side:#1F2B42;color-scheme:light}
:root[data-theme="navy"] aside#side{color:#EEF0F5}
:root[data-theme="navy"] aside#side a{color:#E4E8F0}
:root[data-theme="navy"] aside#side a svg,:root[data-theme="navy"] aside#side .sec,:root[data-theme="navy"] aside#side .muted{color:#9FAAC0}
:root[data-theme="navy"] aside#side a:hover{background:#2A3854}
:root[data-theme="navy"] aside#side a[aria-current="page"]{background:#33456A;color:#fff;box-shadow:inset 3px 0 0 #E2B866}
:root[data-theme="navy"] aside#side .brand span{color:#E2B866}
:root[data-theme="navy"] aside#side .me{border-color:#33456A}
:root[data-theme="navy"] aside#side .me button{color:#E2B866}
:root[data-theme="sand"]{--plaster:#F3ECE0;--surface:#FBF7F0;--ink:#2E271F;--stone:#73685A;--line:#E3D8C6;--line-strong:#9D9180;--oak:#B98F55;--oak-ink:#86642F;--on-oak:#FFFFFF;--ok:#557547;--warn:#956418;--bad:#A0412F;--track:#EBE1D1;--hover:#F0E8DB;--side:#EDE3D3;color-scheme:light}
:root[data-theme="blush"]{--plaster:#F7F0EE;--surface:#FFFBFA;--ink:#2C2224;--stone:#7A6669;--line:#EBDCDA;--line-strong:#A68E90;--oak:#B9737A;--oak-ink:#8E4A52;--on-oak:#FFFFFF;--ok:#4C7258;--warn:#956418;--bad:#A53B3B;--track:#F0E3E1;--hover:#F4EAE8;--side:#F2E6E4;color-scheme:light}
:root[data-theme="ocean"]{--plaster:#EEF4F5;--surface:#FAFDFD;--ink:#16262B;--stone:#577078;--line:#D3E1E4;--line-strong:#7C959B;--oak:#2F7F8A;--oak-ink:#1F5E67;--on-oak:#FFFFFF;--ok:#2F7353;--warn:#966414;--bad:#A23A33;--track:#DDE9EB;--hover:#E6EFF1;--side:#E3EDEF;color-scheme:light}
:root[data-theme="contrast"]{--plaster:#FFFFFF;--surface:#FFFFFF;--ink:#000000;--stone:#3A3A3A;--line:#BDBDBD;--line-strong:#5A5A5A;--oak:#000000;--oak-ink:#000000;--on-oak:#FFFFFF;--ok:#1B5E20;--warn:#7A4A00;--bad:#B00020;--track:#E0E0E0;--hover:#F2F2F2;--side:#F5F5F5;color-scheme:light}
:root[data-theme="espresso"]{--plaster:#1E1915;--surface:#28211C;--ink:#F3ECE4;--stone:#B8AA9B;--line:#3A312A;--line-strong:#7E7064;--oak:#D79A5B;--oak-ink:#E3A96B;--on-oak:#1E1915;--ok:#8CC49A;--warn:#E5B163;--bad:#EC8E7B;--track:#3A312A;--hover:#30281F;--side:#191512;color-scheme:dark}
:root[data-theme="copper"]{--plaster:#191B1D;--surface:#222528;--ink:#EDEEEF;--stone:#A9AEB3;--line:#33373B;--line-strong:#6F757B;--oak:#C77D4E;--oak-ink:#D98E5F;--on-oak:#191B1D;--ok:#86C29A;--warn:#E3B062;--bad:#EF8A7D;--track:#33373B;--hover:#2A2E32;--side:#141618;color-scheme:dark}
:root[data-theme="midnight"]{--plaster:#0F1626;--surface:#172036;--ink:#E8ECF5;--stone:#9AA6BF;--line:#26314B;--line-strong:#5E6B88;--oak:#E2B866;--oak-ink:#EBC57A;--on-oak:#0F1626;--ok:#82C7A0;--warn:#E8B76A;--bad:#F08C8C;--track:#26314B;--hover:#1E2840;--side:#0B111E;color-scheme:dark}
:root[data-theme="sitenight"]{--plaster:#000000;--surface:#121212;--ink:#FFFFFF;--stone:#C8C8C8;--line:#333333;--line-strong:#8A8A8A;--oak:#FFC233;--oak-ink:#FFC94D;--on-oak:#000000;--ok:#7EE2A0;--warn:#FFC94D;--bad:#FF8A80;--track:#2A2A2A;--hover:#1C1C1C;--side:#0A0A0A;color-scheme:dark}
.swatches h3{grid-column:1/-1;margin:8px 0 0;font-family:var(--display);font-size:16px;font-weight:600}

/* ===== colorful light themes (v9): light page, colored sidebar ===== */
:root[data-theme^="c-"]{color-scheme:light;--surface:#FFFFFF;--ink:#22201D;--stone:#6B665E;--line-strong:#8F8A82;--on-oak:#FFFFFF;--ok:#3F6B4A;--warn:#8F611A;--bad:#A3372C}
:root[data-theme="c-forest"]{--plaster:#EEF3EE;--line:#D6E2D7;--track:#DFE9E0;--hover:#E7EFE8;--oak:#2F6B45;--oak-ink:#245738;--side:#1F4D33;--sb-ink:#EAF3EC;--sb-muted:#A9C6B2;--sb-hover:#2A5E40;--sb-cur:#357650;--sb-acc:#F2C14E}
:root[data-theme="c-brick"]{--plaster:#F8F0EC;--line:#ECDCD4;--track:#F1E3DC;--hover:#F5EAE5;--oak:#A3442E;--oak-ink:#8A3522;--side:#7E3121;--sb-ink:#FBEDE7;--sb-muted:#DDB3A6;--sb-hover:#93402D;--sb-cur:#A84F3A;--sb-acc:#F6C77A}
:root[data-theme="c-teal"]{--plaster:#ECF5F4;--line:#D2E5E3;--track:#DCECEA;--hover:#E5F1EF;--oak:#16807A;--oak-ink:#0F6862;--side:#0E5753;--sb-ink:#E7F5F4;--sb-muted:#9CCAC6;--sb-hover:#146A65;--sb-cur:#1B7F79;--sb-acc:#FFD27A}
:root[data-theme="c-plum"]{--plaster:#F5F0F5;--line:#E5D9E6;--track:#ECE2ED;--hover:#F1EAF1;--oak:#7A3E7E;--oak-ink:#653168;--side:#4E2752;--sb-ink:#F6ECF6;--sb-muted:#C4A6C6;--sb-hover:#5E3263;--sb-cur:#724077;--sb-acc:#F4B8C9}
:root[data-theme="c-mustard"]{--plaster:#FBF6E8;--line:#EDE3C4;--track:#F2EAD0;--hover:#F7F0DC;--oak:#A97A12;--oak-ink:#86600A;--side:#C9961E;--sb-ink:#2B2210;--sb-muted:#5E4A1C;--sb-hover:#D6A532;--sb-cur:#E3B548;--sb-acc:#2B2210}
:root[data-theme="c-sky"]{--plaster:#EEF5FB;--line:#D4E3F0;--track:#DDEAF5;--hover:#E6EFF8;--oak:#2B6CB0;--oak-ink:#22588F;--side:#2B6CB0;--sb-ink:#F0F6FC;--sb-muted:#BBD3EC;--sb-hover:#3479C0;--sb-cur:#4A8BCF;--sb-acc:#FFE08A}
:root[data-theme="c-coral"]{--plaster:#FCF2EF;--line:#F0DCD5;--track:#F5E4DE;--hover:#F9ECE8;--oak:#C9553E;--oak-ink:#A8432E;--side:#BD5440;--sb-ink:#FFF4F0;--sb-muted:#F8D3C8;--sb-hover:#C9624D;--sb-cur:#D7745F;--sb-acc:#FFF0B3}
:root[data-theme="c-lavender"]{--plaster:#F4F2FA;--line:#E0DCF0;--track:#E8E4F5;--hover:#EFECF8;--oak:#6B5BB5;--oak-ink:#574899;--side:#6B5BB5;--sb-ink:#F6F4FD;--sb-muted:#CBC4EC;--sb-hover:#7868C2;--sb-cur:#8778CF;--sb-acc:#FFE29A}
:root[data-theme="c-mint"]{--plaster:#EFF8F3;--line:#D3EADD;--track:#DDF0E5;--hover:#E7F4EC;--oak:#2E8A5C;--oak-ink:#22704A;--side:#5FB88A;--sb-ink:#123524;--sb-muted:#235C40;--sb-hover:#6FC497;--sb-cur:#86D0A8;--sb-acc:#123524}
:root[data-theme="c-tangerine"]{--plaster:#FDF4EB;--line:#F2E0CC;--track:#F7E8D7;--hover:#FAEEE1;--oak:#D2691E;--oak-ink:#AD5414;--side:#C8621A;--sb-ink:#FFF6EE;--sb-muted:#FBD9BE;--sb-hover:#D47128;--sb-cur:#E0833A;--sb-acc:#1F2A44}
:root[data-theme="c-denim"]{--plaster:#F1F3F7;--line:#D9DFEA;--track:#E2E7F0;--hover:#EAEEF4;--oak:#3E5C8A;--oak-ink:#314B72;--side:#3E5C8A;--sb-ink:#EEF2F8;--sb-muted:#B4C3DB;--sb-hover:#4A6A9A;--sb-cur:#5A7BAB;--sb-acc:#F6C35B}
:root[data-theme="c-rose"]{--plaster:#FBF1F3;--line:#F0D9DF;--track:#F5E2E7;--hover:#F8EAEE;--oak:#B83A5E;--oak-ink:#982B4B;--side:#B83A5E;--sb-ink:#FFF1F5;--sb-muted:#EDB6C6;--sb-hover:#C64B6E;--sb-cur:#D3617F;--sb-acc:#FFE3A3}
@media (min-width:1024px){
  :root[data-theme^="c-"] aside#side{color:var(--sb-ink);border-right-color:transparent}
  :root[data-theme^="c-"] aside#side a{color:var(--sb-ink)}
  :root[data-theme^="c-"] aside#side a svg,:root[data-theme^="c-"] aside#side .sec,:root[data-theme^="c-"] aside#side .muted{color:var(--sb-muted)}
  :root[data-theme^="c-"] aside#side a:hover{background:var(--sb-hover)}
  :root[data-theme^="c-"] aside#side a[aria-current="page"]{background:var(--sb-cur);box-shadow:inset 3px 0 0 var(--sb-acc);font-weight:600}
  :root[data-theme^="c-"] aside#side .brand span{color:var(--sb-acc)}
  :root[data-theme^="c-"] aside#side .me{border-color:var(--sb-hover)}
  :root[data-theme^="c-"] aside#side .me button{color:var(--sb-ink);text-decoration:underline}
}
/* phone: colored tab bar */
@media (max-width:1023px){
  :root[data-theme^="c-"] nav#tabs{background:var(--side);border-top-color:transparent}
  :root[data-theme^="c-"] nav#tabs a{color:var(--sb-muted)}
  :root[data-theme^="c-"] nav#tabs a[aria-current="page"]{color:var(--sb-ink);font-weight:600}
}

/* ===== soft color light themes (v10): pale tinted sidebar, dark text ===== */
:root[data-theme="c-soft-sage"]{--plaster:#F5F7F3;--line:#E1E7DE;--track:#E8EEE5;--hover:#EEF2EB;--oak:#5E8063;--oak-ink:#486A4E;--side:#E3EBDF;--sb-ink:#25302A;--sb-muted:#6A7A6E;--sb-hover:#D6E1D1;--sb-cur:#FFFFFF;--sb-acc:#5E8063}
:root[data-theme="c-soft-sky"]{--plaster:#F4F7FA;--line:#DFE6EE;--track:#E6EDF4;--hover:#EDF2F7;--oak:#4F7AA6;--oak-ink:#3D6590;--side:#E0EAF4;--sb-ink:#1F2A36;--sb-muted:#66768A;--sb-hover:#D2E0EE;--sb-cur:#FFFFFF;--sb-acc:#4F7AA6}
:root[data-theme="c-soft-lavender"]{--plaster:#F7F6FA;--line:#E5E2EE;--track:#ECE9F3;--hover:#F1EFF6;--oak:#7A6CAE;--oak-ink:#655896;--side:#E9E5F3;--sb-ink:#28243A;--sb-muted:#736D8A;--sb-hover:#DDD7EC;--sb-cur:#FFFFFF;--sb-acc:#7A6CAE}
:root[data-theme="c-soft-blush"]{--plaster:#FAF6F5;--line:#EEE2DF;--track:#F2E8E5;--hover:#F6EFED;--oak:#B0727A;--oak-ink:#965A63;--side:#F3E4E2;--sb-ink:#33262A;--sb-muted:#86706F;--sb-hover:#EBD6D3;--sb-cur:#FFFFFF;--sb-acc:#B0727A}
:root[data-theme="c-soft-sand"]{--plaster:#F9F6F0;--line:#EAE3D6;--track:#EFE9DE;--hover:#F4F0E8;--oak:#A88553;--oak-ink:#8A6A3B;--side:#EFE6D6;--sb-ink:#2F281F;--sb-muted:#7C7060;--sb-hover:#E6DAC5;--sb-cur:#FFFFFF;--sb-acc:#A88553}
:root[data-theme="c-soft-mint"]{--plaster:#F4F9F6;--line:#DDEBE3;--track:#E5F1EA;--hover:#ECF5F0;--oak:#4C8C6C;--oak-ink:#3A7558;--side:#DDF0E5;--sb-ink:#1F3128;--sb-muted:#62786C;--sb-hover:#CFE8DA;--sb-cur:#FFFFFF;--sb-acc:#4C8C6C}
:root[data-theme="c-soft-clay"]{--plaster:#FAF5F2;--line:#EEE1DA;--track:#F2E8E2;--hover:#F6EEE9;--oak:#B26F52;--oak-ink:#97583D;--side:#F3E2D9;--sb-ink:#33251E;--sb-muted:#866F63;--sb-hover:#EBD3C6;--sb-cur:#FFFFFF;--sb-acc:#B26F52}
:root[data-theme="c-soft-teal"]{--plaster:#F3F8F8;--line:#DCE9E8;--track:#E4EFEE;--hover:#EBF4F3;--oak:#3F8582;--oak-ink:#2F6E6B;--side:#DCEEED;--sb-ink:#1C2F2E;--sb-muted:#5E7877;--sb-hover:#CDE6E4;--sb-cur:#FFFFFF;--sb-acc:#3F8582}
:root[data-theme="c-soft-butter"]{--plaster:#FBF8EE;--line:#EDE6CF;--track:#F2ECD9;--hover:#F7F2E3;--oak:#A88A2E;--oak-ink:#86701F;--side:#F5EDCF;--sb-ink:#2E2A1A;--sb-muted:#7C7458;--sb-hover:#EEE3BC;--sb-cur:#FFFFFF;--sb-acc:#A88A2E}
:root[data-theme="c-soft-stone"]{--plaster:#F6F6F4;--line:#E3E3DF;--track:#EAEAE6;--hover:#EFEFEC;--oak:#6E7377;--oak-ink:#565B5F;--side:#E8E8E4;--sb-ink:#25272A;--sb-muted:#6E7175;--sb-hover:#DCDCD7;--sb-cur:#FFFFFF;--sb-acc:#6E7377}
@media (min-width:1024px){ :root[data-theme^="c-soft"] aside#side{border-right-color:var(--line)} :root[data-theme^="c-soft"] aside#side .me button{text-decoration:none;color:var(--oak-ink)} }

/* ===== Claude look (v12): the app default ===== */
:root{--plaster:#FAF9F5;--surface:#FFFFFF;--ink:#3D3929;--stone:#73726C;--line:#E8E6DC;--line-strong:#A8A69C;--oak:#D97757;--oak-ink:#C15F3C;--on-oak:#FFFFFF;--ok:#3F6B4A;--warn:#8F611A;--bad:#B5382C;--track:#EDEBE3;--hover:#F0EEE6;--side:#F5F4EE;color-scheme:light}
@media (prefers-color-scheme: dark){
  :root:not([data-theme]){--plaster:#262624;--surface:#30302E;--ink:#ECEAE3;--stone:#A6A39A;--line:#3E3E3A;--line-strong:#7A7870;--oak:#D97757;--oak-ink:#E08A6C;--on-oak:#1F1E1D;--ok:#86C29A;--warn:#E3B062;--bad:#EF8A7D;--track:#3E3E3A;--hover:#353533;--side:#1F1E1D;color-scheme:dark}
}
:root[data-theme="claude"]{--plaster:#FAF9F5;--surface:#FFFFFF;--ink:#3D3929;--stone:#73726C;--line:#E8E6DC;--line-strong:#A8A69C;--oak:#D97757;--oak-ink:#C15F3C;--on-oak:#FFFFFF;--ok:#3F6B4A;--warn:#8F611A;--bad:#B5382C;--track:#EDEBE3;--hover:#F0EEE6;--side:#F5F4EE;color-scheme:light}
:root[data-theme="claude-dark"]{--plaster:#262624;--surface:#30302E;--ink:#ECEAE3;--stone:#A6A39A;--line:#3E3E3A;--line-strong:#7A7870;--oak:#D97757;--oak-ink:#E08A6C;--on-oak:#1F1E1D;--ok:#86C29A;--warn:#E3B062;--bad:#EF8A7D;--track:#3E3E3A;--hover:#353533;--side:#1F1E1D;color-scheme:dark}

/* ===== Tool green (v13): charcoal + tool green ===== */
:root[data-theme="c-tool"]{--plaster:#F0F1F0;--surface:#FFFFFF;--ink:#1F2421;--stone:#5F6661;--line:#DADDDA;--line-strong:#8A908B;--oak:#6AA032;--oak-ink:#4F8220;--on-oak:#FFFFFF;--ok:#4F8220;--warn:#8F611A;--bad:#B5382C;--track:#E2E5E2;--hover:#E8EBE8;--side:#2B302D;--sb-ink:#F1F3F1;--sb-muted:#A3ABA5;--sb-hover:#373D39;--sb-cur:#434A45;--sb-acc:#7DBB3C}
:root[data-theme="tool-dark"]{--plaster:#1D2120;--surface:#272C2A;--ink:#EEF1EE;--stone:#A3ABA5;--line:#363C39;--line-strong:#6E7671;--oak:#7DBB3C;--oak-ink:#8CCB48;--on-oak:#16200D;--ok:#8CCB48;--warn:#E3B062;--bad:#EF8A7D;--track:#363C39;--hover:#2F3532;--side:#161918;color-scheme:dark}
/* Tool green → Pantone 368 C (#78BE20). Dark text on the green for readability; darker 368 shade for text links. */
:root[data-theme="c-tool"]{--oak:#78BE20;--oak-ink:#4E7F14;--on-oak:#16200D;--ok:#4E7F14;--sb-acc:#78BE20}
:root[data-theme="tool-dark"]{--oak:#78BE20;--oak-ink:#8FD13A;--on-oak:#16200D;--ok:#8FD13A}
.btn.primary{color:var(--on-oak)}
:root[data-theme="c-tool"] .btn.primary,:root[data-theme="tool-dark"] .btn.primary{background:var(--oak);border-color:var(--oak);color:#16200D;font-weight:600}
:root[data-theme="c-tool"] .cal .cd.now .n,:root[data-theme="tool-dark"] .cal .cd.now .n{background:var(--oak);color:#16200D}
/* Tool green v15: exact colors from festoolusa.com (green #23AA08, ink #191E2B, slate #445667, blue-gray #D1DAE0, border #536877) */
:root[data-theme="c-tool"]{--plaster:#F2F4F6;--surface:#FFFFFF;--ink:#191E2B;--stone:#536877;--line:#D1DAE0;--line-strong:#536877;--oak:#23AA08;--oak-ink:#1A8406;--on-oak:#FFFFFF;--ok:#1A8406;--track:#E3E8EC;--hover:#EAEEF1;--side:#191E2B;--sb-ink:#FFFFFF;--sb-muted:#A9B6C1;--sb-hover:#2A3142;--sb-cur:#445667;--sb-acc:#23AA08}
:root[data-theme="tool-dark"]{--plaster:#191E2B;--surface:#222839;--ink:#F2F4F6;--stone:#A9B6C1;--line:#33394A;--line-strong:#536877;--oak:#23AA08;--oak-ink:#3CC51E;--on-oak:#FFFFFF;--ok:#3CC51E;--track:#33394A;--hover:#2A3142;--side:#121620}
:root[data-theme="c-tool"] .btn.primary,:root[data-theme="tool-dark"] .btn.primary{background:#23AA08;border-color:#23AA08;color:#FFFFFF;font-weight:600}
:root[data-theme="c-tool"] .cal .cd.now .n,:root[data-theme="tool-dark"] .cal .cd.now .n{background:#23AA08;color:#FFFFFF}
:root[data-theme="c-tool"] .btn{border-radius:8px}
.modebtn{display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;background:none;border-radius:6px;color:inherit;font-size:15px;cursor:pointer;text-align:left}
.modebtn:hover{background:var(--hover)}
@media (min-width:1024px){ :root[data-theme^="c-"] aside#side .modebtn{color:var(--sb-ink)} :root[data-theme^="c-"] aside#side .modebtn:hover{background:var(--sb-hover)} }
.modebtn-li{display:flex;gap:10px;align-items:center}
[data-mode] svg{flex-shrink:0}

/* v19 material costs */
.costgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.costgrid .btn{width:100%;justify-content:center;min-height:48px}
@media (min-width:1024px){.costgrid{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}}
table.tasks.costs .sub{display:block;font-size:12px;color:var(--muted)}
table.tasks.costs .sub.ok{color:var(--ok)}
table.tasks.costs td{vertical-align:middle}
/* v21 billing */
[hidden]{display:none!important}
table.pay .sub{display:block;font-size:12px;color:var(--muted);font-weight:400}
table.pay tfoot td{border-top:1px solid var(--line-strong);padding-top:8px}
@media (max-width:1023px){.bstats{grid-template-columns:1fr!important}.bstats .big{font-size:26px}}

/* v22 brand lettering */
aside#side .brand,.brandname{font-family:Archivo,'Helvetica Neue',Arial,sans-serif!important;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
aside#side .brand{font-size:24px}
aside#side .brand span,.brandname span{font-family:Karla,Jost,sans-serif;font-weight:700;font-size:.5em;letter-spacing:.32em;vertical-align:middle;margin-left:4px;color:var(--oak)}
.brandname{font-size:40px}

/* v25 Stille Forest (matches the app icon) */
:root[data-theme="c-stille"]{--plaster:#F3EEE8;--surface:#FDFCF8;--ink:#1F1C17;--stone:#6B665E;--line:#E4DED4;--line-strong:#A9A396;--oak:#2F3B2C;--oak-ink:#2F3B2C;--on-oak:#F3EEE8;--ok:#3F6B4A;--warn:#8F611A;--bad:#A3442E;--track:#EAE6DB;--hover:#EEEAE0;--side:#2F3B2C;--sb-ink:#F3EEE8;--sb-muted:#B9BFAE;--sb-hover:#3A4836;--sb-cur:#46573F;--sb-acc:#E3D3A4;color-scheme:light}
:root[data-theme="stille-dark"]{--plaster:#1A1F19;--surface:#232A21;--ink:#F3EEE8;--stone:#B5B2A8;--line:#333C31;--line-strong:#6E786A;--oak:#E3D3A4;--oak-ink:#E3D3A4;--on-oak:#1F1C17;--ok:#9CC79F;--warn:#E0B060;--bad:#E8907F;--track:#333C31;--hover:#2A3228;--side:#151914;color-scheme:dark}
:root[data-theme="stille-dark"] aside#side .brand span{color:#E3D3A4}

/* v26 punch list */
.punchgrid{display:grid;gap:10px}
@media (min-width:1024px){.punchgrid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}
.pcheck{width:34px;height:34px;min-height:34px;flex:none;border-radius:50%;border:2px solid var(--line-strong);background:var(--surface);color:var(--on-oak);font-weight:700;font-size:18px;display:grid;place-items:center;cursor:pointer;padding:0}
.punch.is-done .pcheck{background:var(--ok);border-color:var(--ok)}
.punch.is-done b{text-decoration:line-through;color:var(--stone)}
.pthumbs{grid-template-columns:repeat(4,minmax(0,1fr))}

/* v28 phone Today */
.qagrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.qa{flex-direction:column;gap:6px;min-height:84px;font-weight:600;background:var(--surface);border:1px solid var(--line)}
.qa svg{width:26px;height:26px;color:var(--oak)}
a.card:hover{border-color:var(--line-strong)}
