:root{
  --bg:#f5f4f0;--card:#fff;--ink:#1d1d1b;--muted:#6b6a66;--faint:#9a988f;--line:#e4e2dc;--hover:#f0efe9;
  --accent:#2f5d50;--accent-ink:#fff;--accent-soft:#e3eeea;
  --warn:#a6461b;--warn-bg:#fbeee6;--ok:#2f6b3a;--ok-bg:#e7f2e8;--info:#2c4f86;--info-bg:#e8eef9;--na-bg:#efeeea;
  --amber:#8a5a00;--amber-bg:#fbf1dc;--violet:#5b3f8f;--violet-bg:#efe9f8;
  --shadow:0 1px 2px rgba(0,0,0,.05),0 2px 8px rgba(0,0,0,.04);
}
@media (prefers-color-scheme:dark){:root{
  --bg:#151514;--card:#1f1f1d;--ink:#ecebe6;--muted:#a19f97;--faint:#77756e;--line:#34332f;--hover:#282825;
  --accent:#7fb7a4;--accent-ink:#10201b;--accent-soft:#1d2e29;
  --warn:#f0a57f;--warn-bg:#3a241a;--ok:#93cf9c;--ok-bg:#1d3121;--info:#9db8ea;--info-bg:#1d2838;--na-bg:#2a2a27;
  --amber:#e9c27a;--amber-bg:#352a14;--violet:#c3aef0;--violet-bg:#2a2238;--shadow:none;}}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:14.5px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif}
button,select,input,textarea{font:inherit;color:var(--ink)}
a{color:var(--accent)}
button{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:6px 11px;cursor:pointer;white-space:nowrap}
button:hover{border-color:var(--faint)}
button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}
button.ghost{border-color:transparent;background:transparent;color:var(--muted)}
button.ghost:hover{background:var(--hover);color:var(--ink)}
button.small{padding:3px 8px;font-size:12.5px}
button:disabled{opacity:.5;cursor:default}
input,select,textarea{border:1px solid var(--line);border-radius:8px;background:var(--card);padding:6px 9px}
textarea{resize:vertical}
.muted{color:var(--muted)}.faint{color:var(--faint)}.warn{color:var(--warn)}.ok{color:var(--ok)}
.num{font-variant-numeric:tabular-nums}
/* layout */
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:10px 20px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{font-weight:700;font-size:16px;letter-spacing:-.01em;white-space:nowrap;cursor:pointer}
.top .search{flex:1;max-width:520px;position:relative}
.top .search input{width:100%;padding:7px 12px 7px 30px;border-radius:10px}
.top .search::before{content:"⌕";position:absolute;left:10px;top:5px;color:var(--faint);font-size:17px}
.top .sp{flex:1}
.shell{display:grid;grid-template-columns:200px 1fr;max-width:1500px;margin:0 auto}
nav.side{position:sticky;top:53px;align-self:start;padding:16px 10px;display:flex;flex-direction:column;gap:2px;height:calc(100vh - 53px)}
nav.side a{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border-radius:8px;color:var(--ink);text-decoration:none}
nav.side a:hover{background:var(--hover)}
nav.side a.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
nav.side .badge{font-size:12px;background:var(--warn-bg);color:var(--warn);border-radius:99px;padding:0 7px;font-weight:600}
nav.side .badge.n{background:var(--na-bg);color:var(--muted)}
nav.side .foot{margin-top:auto;font-size:12px;color:var(--faint);padding:8px 10px;line-height:1.5}
main{padding:18px 22px 90px;min-width:0}
h1.page{font-size:22px;margin:0;font-weight:680;letter-spacing:-.015em}
.pagehead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
/* chips */
.chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap;line-height:1.6}
.c-warn{background:var(--warn-bg);color:var(--warn)}.c-ok{background:var(--ok-bg);color:var(--ok)}
.c-info{background:var(--info-bg);color:var(--info)}.c-na{background:var(--na-bg);color:var(--muted)}
.c-amber{background:var(--amber-bg);color:var(--amber)}.c-violet{background:var(--violet-bg);color:var(--violet)}
.tag{display:inline-block;font-size:11.5px;color:var(--muted);background:var(--na-bg);border-radius:6px;padding:0 6px;line-height:1.7;white-space:nowrap;text-decoration:none}
/* focus pills */
.focus{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.fp{display:flex;align-items:baseline;gap:7px;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:6px 12px;cursor:pointer}
.fp b{font-size:18px;font-variant-numeric:tabular-nums}
.fp span{font-size:12.5px;color:var(--muted)}
.fp.hot b{color:var(--warn)}
.fp.on{outline:2px solid var(--accent);outline-offset:-1px;background:var(--accent-soft)}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--card);flex-wrap:wrap}
.seg button{border:none;border-radius:0;padding:5px 11px;background:transparent;color:var(--muted)}
.seg button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.toolbar label{font-size:13px;color:var(--muted);display:flex;gap:5px;align-items:center}
/* board */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:12px;overflow-x:auto;padding-bottom:10px;align-items:start}
.col{background:color-mix(in srgb,var(--na-bg) 55%,transparent);border-radius:12px;padding:8px;min-height:120px}
.col.drop{outline:2px dashed var(--accent);outline-offset:-2px}
.colhead{display:flex;justify-content:space-between;align-items:center;padding:4px 6px 8px;font-weight:650;font-size:13px}
.colhead .n{color:var(--muted);font-weight:500}
.icard{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 11px;margin-bottom:8px;cursor:pointer;box-shadow:var(--shadow);position:relative}
.icard:hover{border-color:var(--faint)}
.icard.sel{outline:2px solid var(--accent);outline-offset:-1px}
.icard.dragging{opacity:.4}
.icard .r1{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--faint);margin-bottom:3px}
.icard .r1 .sp{flex:1}
.icard .ttl{font-weight:620;line-height:1.3}
.icard .nx{color:var(--muted);font-size:13px;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.icard .r3{display:flex;gap:6px 9px;flex-wrap:wrap;align-items:center;margin-top:8px;font-size:12px;color:var(--muted)}
.selbox{width:16px;height:16px;margin:0;accent-color:var(--accent);cursor:pointer}
.icard .selbox{opacity:0}
.icard:hover .selbox,.icard.sel .selbox,.anysel .icard .selbox{opacity:1}
.stalebar{position:absolute;left:-1px;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--warn)}
/* list */
.group{margin-bottom:18px}
.ghead{display:flex;align-items:center;gap:8px;margin:0 0 6px;cursor:pointer;user-select:none}
.ghead h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.ghead .n{font-size:12px;color:var(--faint)}
.ghead .tw{color:var(--faint);font-size:11px;width:12px}
.rows{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.irow{display:grid;grid-template-columns:22px 1fr auto;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer;align-items:start}
.irow:last-child{border-bottom:none}
.irow:hover{background:var(--hover)}
.irow.sel{background:var(--accent-soft)}
.irow .main .ttl{font-weight:620}
.irow .main .nx{color:var(--muted);font-size:13px;margin-top:2px}
.irow .side{display:flex;gap:6px 9px;align-items:center;flex-wrap:wrap;justify-content:flex-end;font-size:12.5px;color:var(--muted);max-width:440px}
/* bulk bar */
#bulk{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:var(--ink);color:var(--bg);border-radius:12px;padding:8px 10px 8px 16px;display:none;gap:8px;align-items:center;z-index:6;box-shadow:0 6px 24px rgba(0,0,0,.25);max-width:calc(100% - 24px);flex-wrap:wrap}
#bulk.on{display:flex}
#bulk button,#bulk select{background:transparent;color:var(--bg);border-color:color-mix(in srgb,var(--bg) 35%,transparent)}
#bulk select option{color:#000}
/* issue page */
.crumb{display:flex;align-items:center;gap:8px;color:var(--muted);margin-bottom:8px;font-size:13px}
.ititle{width:100%;font-size:24px;font-weight:700;letter-spacing:-.015em;border:1px solid transparent;background:transparent;padding:2px 6px;margin-left:-7px;border-radius:8px}
.ititle:hover,.ititle:focus{border-color:var(--line);background:var(--card)}
.metaline{display:flex;gap:6px 14px;flex-wrap:wrap;align-items:center;margin:6px 0 14px;font-size:13px;color:var(--muted)}
.metaline .f{display:flex;align-items:center;gap:5px}
.metaline input,.metaline select{padding:3px 7px;font-size:13px}
.statusbar{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:16px}
.statusbar button{border-radius:99px;padding:3px 11px;font-size:12.5px;color:var(--muted)}
.statusbar button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.igrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}
.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:16px}
.panel>h3{margin:0 0 10px;font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.panel>h3 .r{text-transform:none;letter-spacing:0;font-weight:400;display:flex;gap:6px;flex-wrap:wrap}
.field{margin-bottom:10px}
.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}
.field textarea,.field input,.field select{width:100%}
.field textarea{min-height:64px}
.savebar{display:none;gap:8px;align-items:center;margin-top:4px}
.savebar.on{display:flex}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.logline{display:flex;gap:8px;margin-top:8px}
.logline input{flex:1;min-width:0}
/* threads */
.thread{border-bottom:1px solid var(--line);padding:9px 0}
.thread:last-child{border-bottom:none}
.thead{display:flex;gap:8px;align-items:baseline;cursor:pointer}
.thead .s{flex:1;font-weight:600;min-width:0}
.thead .d{font-size:12px;color:var(--faint);white-space:nowrap}
.tsub{font-size:12.5px;color:var(--muted);margin-top:2px}
.msgs{margin:6px 0 2px 4px;border-left:2px solid var(--line);padding-left:10px;display:none}
.thread.open .msgs{display:block}
.msg{display:flex;gap:8px;padding:4px 0;font-size:13px;cursor:pointer}
.msg:hover .w{color:var(--accent)}
.msg .d{color:var(--faint);white-space:nowrap;width:52px;flex:none}
.msg .w{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* thread cards + conversation */
.tcard{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;cursor:pointer;background:var(--card)}
.tcard:hover{border-color:var(--faint)}
.tc1{display:flex;gap:8px;align-items:baseline}
.tc1 .s{flex:1;font-weight:620;min-width:0}
.tc1 .d{font-size:12px;color:var(--faint);white-space:nowrap}
.ppl{display:flex;gap:3px;margin:6px 0 2px;flex-wrap:wrap;align-items:center}
.av{--h:200;width:26px;height:26px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;
  background:hsl(var(--h) 45% 88%);color:hsl(var(--h) 45% 28%)}
.av.sm{width:20px;height:20px;font-size:9.5px}
@media (prefers-color-scheme:dark){.av{background:hsl(var(--h) 30% 26%);color:hsl(var(--h) 50% 82%)}}
.sum{font-size:13px;background:var(--accent-soft);border-radius:8px;padding:7px 10px;margin-top:6px;line-height:1.45}
.sum b{color:var(--accent);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;margin-right:6px}
.latest{display:flex;gap:7px;align-items:flex-start;font-size:13px;margin-top:7px;color:var(--muted)}
.latest .tx{min-width:0}
#drawer.wide{width:min(860px,100%)}
.sumbox{background:var(--accent-soft);border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:13.5px}
.sumbox .lbl{font-size:11.5px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}
.sumbox textarea{width:100%;min-height:90px;margin-top:6px}
.convo{display:flex;flex-direction:column;gap:10px;padding-bottom:20px}
.dsep{text-align:center;font-size:12px;color:var(--faint);margin:6px 0 0;display:flex;align-items:center;gap:10px}
.dsep::before,.dsep::after{content:"";flex:1;border-top:1px solid var(--line)}
.cmsg{display:flex;gap:9px;align-items:flex-start;max-width:92%}
.cmsg.me{align-self:flex-end;flex-direction:row-reverse}
.bub{background:var(--card);border:1px solid var(--line);border-radius:4px 14px 14px 14px;padding:8px 12px;min-width:0;box-shadow:var(--shadow)}
.cmsg.me .bub{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:14px 4px 14px 14px}
.cmsg.focus .bub{outline:2px solid var(--accent);outline-offset:1px}
.bh{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:12.5px;margin-bottom:3px}
.bh .to{color:var(--faint);font-size:12px}
.bh a{font-size:12px;margin-left:auto;color:var(--faint)}
.bt{white-space:pre-wrap;word-wrap:break-word;font-size:14px;line-height:1.5}
.bt.clamp{max-height:21em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.bt:empty::before{content:"(no new text: open the original)";color:var(--faint);font-style:italic}
.more{border:none;background:none;color:var(--accent);padding:2px 0;font-size:12.5px}
.batt{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.batt a{font-size:12px;border:1px solid var(--line);border-radius:6px;padding:1px 7px;text-decoration:none;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* meetings */
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-bottom:22px}
.mcard{display:flex;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;box-shadow:var(--shadow)}
.mcard:hover{border-color:var(--faint)}
.mdate{flex:none;width:52px;text-align:center;border-radius:10px;background:var(--accent-soft);color:var(--accent);padding:5px 0;line-height:1.1}
.mdate b{display:block;font-size:22px}
.mdate span{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.mcard .mt{font-weight:650}
.mcard .ms{font-size:12.5px;color:var(--muted);margin-top:2px}
.mcard .mx{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px;font-size:12px;color:var(--muted);align-items:center}
.aitem{border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin-bottom:8px;background:var(--card)}
.ai1{display:flex;gap:8px;align-items:center}
.anum{flex:none;width:24px;height:24px;border-radius:50%;background:var(--na-bg);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.ait{flex:1;min-width:0;font-weight:620;border:1px solid transparent;background:transparent;padding:3px 6px}
.ait:hover,.ait:focus{border-color:var(--line);background:var(--bg)}
.ai-issue{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin:4px 0 0 32px}
.aitem textarea{width:calc(100% - 32px);margin:6px 0 0 32px;min-height:38px;font-size:13.5px}
.outc{margin:8px 0 0 32px;border-top:1px dashed var(--line);padding-top:8px}
.outc textarea{width:100%;margin:6px 0 0}
.outc .row3{display:grid;grid-template-columns:2fr 1fr 140px;gap:6px;margin-top:6px}
.outc .row3 input{min-width:0}
.dec-approved{color:var(--ok)}.dec-rejected,.dec-closed{color:var(--warn)}.dec-deferred{color:var(--amber)}
.ctl{display:flex;gap:2px;flex:none}
.ctl button{padding:1px 6px}
.saved{font-size:12px;color:var(--faint)}
.pick{display:flex;gap:8px;align-items:flex-start;padding:6px 4px;border-bottom:1px solid var(--line);font-size:13.5px;cursor:pointer}
.pick:last-child{border-bottom:none}
.pick input{margin-top:3px}
.pick.dis{opacity:.45;cursor:default}
.pgroup{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:12px 0 2px;font-weight:650}
.mline{display:flex;gap:8px;align-items:baseline;padding:5px 0;border-bottom:1px dashed var(--line);font-size:13px}
.mline:last-child{border-bottom:none}
@media (max-width:760px){.outc .row3{grid-template-columns:1fr}.aitem textarea,.outc,.ai-issue{margin-left:0;width:100%}}
/* people */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin-bottom:22px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);cursor:pointer}
.pcard:hover{border-color:var(--faint)}
.pcard.inactive{opacity:.55}
.ph{display:flex;gap:10px;align-items:center}
.ph .av{width:38px;height:38px;font-size:14px}
.ph .nm{font-weight:650}
.ph .rl{font-size:12.5px;color:var(--muted)}
.pc{margin-top:8px;font-size:13px;display:flex;flex-direction:column;gap:2px}
.pc a{text-decoration:none}
.pc .faint{font-size:12px}
.pst{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--muted)}
/* map */
.facgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-bottom:18px}
.fac{display:flex;gap:9px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 11px;cursor:pointer;min-height:52px}
.fac .ic{font-size:20px;flex:none}
.fac .fn{font-size:13px;font-weight:600;line-height:1.25;flex:1}
.fac .cnt,.utile .cnt{font-size:11.5px;font-weight:700;border-radius:99px;padding:0 6px;background:var(--na-bg);color:var(--muted)}
.hot2{border-color:color-mix(in srgb,var(--warn) 55%,var(--line))!important;background:color-mix(in srgb,var(--warn-bg) 70%,var(--card))!important}
.hot2 .cnt{background:var(--warn);color:var(--card)}
.hot1{border-color:color-mix(in srgb,var(--info) 45%,var(--line))!important;background:color-mix(in srgb,var(--info-bg) 70%,var(--card))!important}
.hot1 .cnt{background:var(--info);color:var(--card)}
.sel2{outline:2px solid var(--accent);outline-offset:1px}
.level{display:grid;grid-template-columns:86px 1fr;gap:10px;align-items:start;margin-bottom:8px}
.level .ln{font-size:12px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding-top:8px}
.units{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:4px}
.utile{position:relative;border:1px solid var(--line);background:var(--card);border-radius:7px;padding:6px 0;text-align:center;font-size:12.5px;font-variant-numeric:tabular-nums;cursor:pointer}
.utile:hover{border-color:var(--faint)}
.utile .cnt{position:absolute;top:-7px;right:-5px}
.utile.mine{font-weight:800}
.utile.mine::after{content:"★";position:absolute;left:3px;top:1px;font-size:9px;color:var(--accent)}
.utile.ec::before{content:"";position:absolute;left:50%;bottom:2px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--accent)}
.maplegend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:6px 0 14px}
.maplegend span{display:flex;gap:5px;align-items:center}
.sw{width:12px;height:12px;border-radius:3px;border:1px solid var(--line)}
.locchips{display:inline-flex;gap:4px;flex-wrap:wrap;align-items:center}
/* home */
.tiles2{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}
.t2{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 13px;cursor:pointer}
.t2:hover{border-color:var(--faint)}
.t2 .k{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.t2 .v{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:1px}
.t2 .d{font-size:12px;color:var(--muted)}
.t2.hot .v{color:var(--warn)}
.hl{display:flex;gap:9px;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--line);cursor:pointer;font-size:13.5px}
.hl:last-child{border-bottom:none}
.hl:hover .s{color:var(--accent)}
.hl .s{font-weight:600}
.hl .m{font-size:12.5px;color:var(--muted)}
.hl .r{margin-left:auto;white-space:nowrap;font-size:12px;color:var(--faint)}
/* timeline */
.tl{position:relative;margin-left:8px;border-left:2px solid var(--line);padding-left:16px}
.tle{position:relative;padding:5px 0 9px;font-size:13.5px}
.tle::before{content:"";position:absolute;left:-22px;top:9px;width:10px;height:10px;border-radius:50%;background:var(--card);border:2px solid var(--faint)}
.tle.email::before{border-color:var(--info)}.tle.change::before{border-color:var(--violet)}.tle.meeting::before{border-color:var(--ok)}.tle.quote::before{border-color:var(--amber)}.tle.start::before{background:var(--faint)}
.tle .when{font-size:12px;color:var(--faint)}
.tle .what{font-weight:600}
.tle .det{color:var(--muted);font-size:13px}
.tle.click{cursor:pointer}.tle.click:hover .what{color:var(--accent)}
/* performance */
.bars{display:flex;gap:6px;align-items:flex-end;height:140px;padding:6px 0 0;border-bottom:1px solid var(--line)}
.bars .b{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.bars .b i{display:block;width:70%;max-width:34px;border-radius:4px 4px 0 0;background:var(--accent);opacity:.8}
.bars .b span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.barx{display:flex;gap:6px}.barx span{flex:1;text-align:center;font-size:11px;color:var(--faint);min-width:0;overflow:hidden}
.pt td.n{font-variant-numeric:tabular-nums;white-space:nowrap}
/* site plan */
.planwrap{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card);cursor:default}
.planwrap.placing{cursor:crosshair}
.planwrap img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none}
.pin{position:absolute;transform:translate(-50%,-50%);min-width:22px;height:22px;border-radius:11px;padding:0 6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:var(--card);border:2px solid var(--faint);color:var(--ink);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.25);white-space:nowrap}
.pin.hot2{background:var(--warn);border-color:var(--warn);color:#fff}
.pin.hot1{background:var(--info);border-color:var(--info);color:#fff}
.pin.sel2{outline:2px solid var(--accent);outline-offset:2px}
/* drawn site map */
.sitemap{width:100%;height:auto;display:block;background:var(--card);border:1px solid var(--line);border-radius:12px}
.sitemap text{font-family:inherit;fill:var(--ink);pointer-events:none}
.sitemap .street{fill:var(--muted);font-size:20px;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.sitemap .flab{fill:var(--muted);font-size:15px;font-weight:600}
.sitemap .ulab{font-size:15px;font-weight:650;font-variant-numeric:tabular-nums}
.sitemap .ulab.sm{font-size:11.5px;font-weight:600}
.sitemap .cell{fill:var(--card);stroke:var(--faint);stroke-width:1.2;cursor:pointer}
.sitemap .cell:hover{fill:var(--hover)}
.sitemap .cell.hot2{fill:var(--warn-bg);stroke:var(--warn);stroke-width:2}
.sitemap .cell.hot1{fill:var(--info-bg);stroke:var(--info);stroke-width:2}
.sitemap .cell.mine{stroke:var(--accent);stroke-width:3}
.sitemap .cell.sel2{stroke:var(--accent);stroke-width:4}
.sitemap .cell.na{fill:url(#hatch);cursor:default}
.sitemap .gap{fill:var(--na-bg);stroke:var(--line);cursor:pointer}
.sitemap .feat{fill:var(--na-bg);stroke:var(--line);stroke-width:1.2;cursor:pointer}
.sitemap .feat.water{fill:color-mix(in srgb,var(--info-bg) 80%,var(--card));stroke:var(--info)}
.sitemap .feat.green{fill:color-mix(in srgb,var(--ok-bg) 70%,var(--card));stroke:color-mix(in srgb,var(--ok) 40%,var(--line))}
.sitemap .feat.hot2{stroke:var(--warn);stroke-width:2.5}.sitemap .feat.hot1{stroke:var(--info);stroke-width:2.5}
.sitemap .feat.sel2{stroke:var(--accent);stroke-width:4}
.sitemap .badge circle{stroke:var(--card);stroke-width:2}
.sitemap .badge.hot2 circle{fill:var(--warn)}.sitemap .badge.hot1 circle{fill:var(--info)}
.sitemap .badge text{fill:#fff;font-size:12px;font-weight:700}
.sitemap .bound{fill:none;stroke:var(--faint);stroke-dasharray:6 6}
.floorbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.sitemap.photo .cell{fill-opacity:.45}.sitemap.photo .cell.hot2,.sitemap.photo .cell.hot1{fill-opacity:.75}
.sitemap.photo .feat,.sitemap.photo .gap{fill-opacity:.25}
.sitemap.photo .ulab,.sitemap.photo .flab{paint-order:stroke;stroke:var(--card);stroke-width:3px;stroke-linejoin:round}
.sitemap .feat.road{fill:var(--na-bg);stroke:var(--muted);stroke-width:1.5;stroke-dasharray:7 5}
.sitemap .feat.park{fill:color-mix(in srgb,var(--na-bg) 60%,var(--card));stroke:var(--muted);stroke-width:1.5;stroke-dasharray:3 3}
.sitemap.photo .feat.road,.sitemap.photo .feat.park{fill:#fff;fill-opacity:.12;stroke:#fff;stroke-opacity:.9}
.sitemap .sitebound{fill:none;stroke:var(--faint);stroke-width:2;stroke-dasharray:8 6}
.sitemap.photo .sitebound{stroke:#fff;stroke-opacity:.8}
.aerialbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.aerialbar input[type=range]{width:110px}
/* unit records */
.ucard{display:grid;grid-template-columns:120px 1fr;gap:6px 12px;font-size:13.5px;margin:2px 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.ucard .k{color:var(--muted);font-size:12.5px}
.ucard a{text-decoration:none}
.occ{display:inline-block;border-radius:99px;padding:0 8px;font-size:12px;font-weight:600}
.occ-owner-occupied{background:var(--ok-bg);color:var(--ok)}.occ-rented{background:var(--amber-bg);color:var(--amber)}
.occ-vacant{background:var(--violet-bg);color:var(--violet)}.occ-unknown{background:var(--na-bg);color:var(--muted)}
.sitemap .cell.oc-owner-occupied{fill:var(--ok-bg);stroke:var(--ok)}.sitemap .cell.oc-rented{fill:var(--amber-bg);stroke:var(--amber)}
.sitemap .cell.oc-vacant{fill:var(--violet-bg);stroke:var(--violet)}
.sitemap.photo .cell.oc-owner-occupied,.sitemap.photo .cell.oc-rented,.sitemap.photo .cell.oc-vacant{fill-opacity:.7}
/* update-request table */
.utbl{width:100%;border-collapse:collapse;font-size:13px}
.utbl th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:6px;border-bottom:2px solid var(--line);white-space:nowrap}
.utbl td{padding:5px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.utbl tr.off td{opacity:.45}
.utbl td:nth-child(2){width:24%}.utbl td:nth-child(3){width:42%}
.atbl td:nth-child(2){width:24px}.atbl td:nth-child(3){width:34%}.atbl td:nth-child(4){width:30%}.atbl td:nth-child(5){width:20%}
.atbl .ait{width:100%;margin:0;padding:3px 4px}
.atbl textarea[data-if=notes]{min-height:28px;font-size:12px;color:var(--muted)}
.atbl tr.arow td{border-bottom:none;padding-top:8px}.atbl tr.orow td{padding-top:0}
.atbl tr.arow + tr.arow td{border-top:1px solid var(--line)}
.atbl tr.orow + tr.arow td{border-top:1px solid var(--line)}
.atbl .ctl button{padding:1px 6px}
.utbl textarea{width:100%;min-height:42px;font-size:12.5px;padding:4px 6px;resize:vertical}
.utbl .it{font-weight:600}
.utbl .src{font-size:11.5px;color:var(--faint)}
/* files */
.file{display:flex;gap:8px;align-items:center;padding:5px 0;font-size:13px;border-bottom:1px dashed var(--line)}
.file:last-child{border-bottom:none}
.file a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}
.file a:hover{text-decoration:underline}
.file .ext{font-size:10.5px;font-weight:700;color:var(--muted);background:var(--na-bg);border-radius:4px;padding:1px 4px;min-width:34px;text-align:center}
.file .when{font-size:12px;color:var(--faint);white-space:nowrap}
/* quotes */
.qt{width:100%;border-collapse:collapse;font-size:13px}
.qt th{text-align:left;font-size:11.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:4px 6px;border-bottom:1px solid var(--line)}
.qt td{padding:7px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.qt tr.q{cursor:pointer}.qt tr.q:hover{background:var(--hover)}
.qt tr.q.hasnote td{border-bottom:none}
.bar{height:7px;border-radius:4px;background:var(--accent);opacity:.75;margin-top:4px}
.bar.base{background:var(--faint)}
.bar.est{background:repeating-linear-gradient(45deg,var(--accent),var(--accent) 4px,transparent 4px,transparent 7px);opacity:1}
/* generic tables (inbox) */
.tbl{width:100%;border-collapse:collapse}
.tbl th,.tbl td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr:last-child td{border-bottom:none}
.tbl tr.row{cursor:pointer}.tbl tr.row:hover{background:var(--hover)}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.scroll{overflow-x:auto}
.empty{padding:36px;text-align:center;color:var(--muted)}
.dl{display:grid;grid-template-columns:100px 1fr;gap:4px 14px;padding:10px 14px;border-bottom:1px solid var(--line);cursor:pointer}
.dl:hover{background:var(--hover)}.dl:last-child{border-bottom:none}
.md{padding:18px 22px;max-width:900px}
.md h1{font-size:20px}.md h2{font-size:16px;margin-top:22px}.md h3{font-size:14px}
.md code{font-size:12px;background:var(--na-bg);padding:1px 4px;border-radius:4px;word-break:break-all}
.md table{border-collapse:collapse;margin:8px 0;font-size:13.5px}.md td,.md th{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
pre.body{white-space:pre-wrap;word-wrap:break-word;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;margin:0}
/* drawer + modal */
#scrim{position:fixed;inset:0;background:rgba(0,0,0,.3);display:none;z-index:7}
#scrim.on{display:block}
#drawer{z-index:8;position:fixed;top:0;right:0;bottom:0;width:min(700px,100%);background:var(--bg);border-left:1px solid var(--line);transform:translateX(100%);transition:transform .18s;overflow:auto;padding:18px}
#drawer.open{transform:none}
#modal{z-index:9;position:fixed;left:50%;top:6vh;transform:translateX(-50%);width:min(640px,calc(100% - 24px));max-height:88vh;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:18px;display:none;box-shadow:0 10px 40px rgba(0,0,0,.25)}
#modal.on{display:block}
#modal h2{margin:0 0 12px;font-size:17px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.dhead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:8px;font-size:14px;display:none;z-index:20;max-width:calc(100% - 24px)}
@media (max-width:1000px){.igrid{grid-template-columns:1fr}}
@media (max-width:760px){
  .atbl thead{display:none}
  .atbl,.atbl tbody,.atbl tr,.atbl td{display:block;width:100%!important}
  .atbl tr.arow{border:1px solid var(--line)!important;border-radius:10px;margin-top:10px;padding:6px 8px;position:relative;background:var(--bg)}
  .atbl tr.orow{border:1px solid var(--line);border-top:none;border-radius:0 0 10px 10px;margin-top:-6px;padding:0 8px 6px;background:var(--bg)}
  .atbl td{border:none!important;padding:3px 0!important}
  .atbl td:nth-child(1){position:absolute;right:8px;top:8px;width:auto!important}
  .atbl td:nth-child(2){display:none}
  .atbl td[data-l]::before{content:attr(data-l);display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:4px 0 2px}
  .atbl td.ctl{display:flex;gap:4px;justify-content:flex-end}
  .atbl .ait{padding-right:28px}
  .utbl textarea{font-size:14px}
  .metaline .f{flex-wrap:wrap}.metaline input{max-width:100%}
  .statusbar{overflow-x:auto;flex-wrap:nowrap}
  .tiles2{grid-template-columns:1fr 1fr}
  .shell{grid-template-columns:1fr}
  nav.side{position:static;height:auto;flex-direction:row;overflow-x:auto;padding:8px 12px;gap:4px;border-bottom:1px solid var(--line)}
  nav.side a{white-space:nowrap;gap:6px}nav.side .foot{display:none}
  main{padding:14px 16px 90px}.top{padding:10px 16px}.top .hide-sm{display:none}
  .irow{grid-template-columns:22px 1fr}.irow .side{grid-column:2;max-width:none;justify-content:flex-start}
  .grid2{grid-template-columns:1fr}
}

.sendrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:13px}
.sendrow select{padding:3px 6px;font-size:13px}

#modal.wide{width:min(1240px,calc(100% - 24px))}
.cgrid{display:block}
#modal.wide .cgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:16px;align-items:start}
.cthread{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:10px 12px;max-height:74vh;overflow:auto;position:sticky;top:0}
.cthread .cmsg{max-width:100%}
.cthread .bt{font-size:13px}
.cth-head{display:flex;gap:8px;align-items:baseline;margin-bottom:8px;font-size:13px}
.cth-head a{margin-left:auto;font-size:12px}
@media (max-width:900px){#modal.wide .cgrid{display:flex;flex-direction:column-reverse}.cthread{max-height:240px;position:static}}

.whobox{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5}
#viewas-banner,#conflict-banner{position:sticky;top:0;z-index:20;padding:7px 14px;font-size:13px;display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}
#viewas-banner{background:#f5d48a;color:#3a2a00}
#viewas-banner a{color:#3a2a00;font-weight:600}
#conflict-banner{background:#f2b8b5;color:#410e0b}
