:root{--bg:#F6F7F9;--panel:#fff;--ink:#18202B;--soft:#5B6574;--line:#DDE1E7;--accent:#C4122F;--accent-soft:#FBE9EC;--ok:#1F7A4D;--ok-soft:#E3F2EA;--warn:#9A5B00;--warn-soft:#FDF1DC;--chip:#EEF1F5;color-scheme:light dark}
@media (prefers-color-scheme:dark){:root{--bg:#12161C;--panel:#1A2029;--ink:#E7EAEF;--soft:#9AA3B0;--line:#2C3440;--accent:#F0566E;--accent-soft:#3A1C23;--ok:#5CC690;--ok-soft:#173326;--warn:#E9A94A;--warn-soft:#3A2B14;--chip:#232A35}}
*{box-sizing:border-box}
html{scrollbar-gutter:stable}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;padding:8px 16px 64px}
.wrap{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.wrap.wide{max-width:1280px}
nav{display:flex;gap:6px;flex-wrap:wrap}
nav a{color:var(--ink);text-decoration:none;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:5px 14px;font-size:13px;font-weight:600}
nav a[aria-current=page]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
h1{font-size:28px;line-height:1.2;margin:0}h2{font-size:15px;margin:0 0 10px}
.eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);font-weight:600}
.sub,.state,.foot{color:var(--soft);margin:0;font-size:13px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}
.empty{background:var(--panel);border:1px dashed var(--line);border-radius:12px;padding:24px;color:var(--soft);text-align:center}
a{color:inherit}
.stats{display:flex;flex-wrap:wrap;gap:10px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-width:120px;display:flex;flex-direction:column}
.stat b{font-size:22px;font-variant-numeric:tabular-nums}.stat span{font-size:12px;color:var(--soft)}.stat.alert b{color:var(--accent)}
.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.chip,.filters input,.filters select{font:inherit;font-size:13px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:6px 14px}
.chip{font-weight:600;cursor:pointer}.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.filters input{flex:1 1 12rem;min-width:0}
.list{display:flex;flex-direction:column;gap:12px}
.task{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;grid-template-columns:28px 1fr;gap:12px}
.task.done{opacity:.62}.task.done .ttl{text-decoration:line-through}
.task.back{outline:2px solid var(--accent);outline-offset:2px;transition:outline-color .6s}
.chk{width:22px;height:22px;margin:3px 0 0;accent-color:var(--ok)}
.body{min-width:0;display:flex;flex-direction:column;gap:10px}
.top{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ttl{font-size:17px;font-weight:600;margin:0;flex:1 1 280px}
.pill{font-size:12px;font-weight:600;border-radius:999px;padding:3px 10px;white-space:nowrap}
.pill.prop,.pill.soon{background:var(--chip)}.pill.overdue{background:var(--accent-soft);color:var(--accent)}.pill.today{background:var(--warn-soft);color:var(--warn)}.pill.doneP{background:var(--ok-soft);color:var(--ok)}
.why{margin:0;color:var(--soft);max-width:68ch}
.glabel{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);font-weight:600}
.links{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.links a,.links button,.copy{font:inherit;font-size:13px;text-decoration:none;border-radius:8px;padding:6px 11px;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;overflow-wrap:anywhere;text-align:left}
.links a.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.err{font-size:12px;color:var(--accent);align-self:center}
.contacts{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;margin-top:6px}
.contact{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.copy{font-family:ui-monospace,Menlo,monospace;font-size:12px;padding:3px 7px;background:var(--chip)}
.meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:12px;color:var(--soft)}
.meta input{font:inherit;font-size:12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);padding:2px 6px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:10px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}
.kpi b{display:block;font-size:26px;font-variant-numeric:tabular-nums}.kpi span{font-size:12px;color:var(--soft)}
.tablebox{max-height:34rem;overflow:auto}
table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
th{position:sticky;top:0;background:var(--panel);text-align:left;padding:0;border-bottom:1px solid var(--line)}
th button{all:unset;cursor:pointer;display:block;padding:5px 8px;color:var(--soft);white-space:nowrap}
th[aria-sort] button{color:var(--ink)}
td{padding:5px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.num{text-align:right}th.num button{text-align:right}
.s-new{color:var(--ok);font-weight:600}.s-price_drop{color:var(--warn);font-weight:600}.s-gone{color:var(--soft);text-decoration:line-through}
.chart{position:relative}.chart svg{width:100%;height:auto;display:block}
.dot{cursor:pointer;fill-opacity:.8}.dot.d{fill:#4C78A8}.dot.m{fill:#E08A3C}
.axis{stroke:var(--line)}.lbl{fill:var(--soft);font-size:11px}
.tip{position:absolute;pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:12px;max-width:16rem;display:none}
.legend[hidden]{display:none}.legend{display:flex;gap:14px;font-size:12px;color:var(--soft);margin-bottom:6px}
.sw{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.3rem}.sw.d{background:#4C78A8}.sw.m{background:#E08A3C}
@media (max-width:700px){.hide-n{display:none}}

td a.open{text-decoration:none;font-weight:600}td a.open:hover{text-decoration:underline}
body.noscroll{overflow:hidden}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;justify-content:flex-end;z-index:10}
.overlay[hidden]{display:none}header[hidden],h1[hidden]{display:none}
.panel{background:var(--panel);width:min(560px,100%);height:100%;overflow:auto;padding:22px 22px 40px;position:relative}
.close{position:absolute;top:10px;right:12px;font:inherit;font-size:26px;line-height:1;border:0;background:none;color:var(--soft);cursor:pointer}
.chead h2{font-size:22px;margin:4px 30px 8px 0}
.pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.pills .pill{background:var(--chip);color:var(--ink)}
.btn{display:inline-block;text-decoration:none;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600}
#card-body section{margin-top:18px}#card-body h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);margin:0 0 6px}
.kv{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:4px 12px;margin:0;font-size:14px}
.kv dt{color:var(--soft)}.kv dd{margin:0;overflow-wrap:anywhere}
.note{margin:0;font-size:14px;color:var(--soft);white-space:pre-wrap}
.login{max-width:380px;padding-top:12vh}.login.acct{padding-top:0}
.login form{display:flex;flex-direction:column;gap:6px;margin-top:14px}
.login label{font-size:13px;font-weight:600;color:var(--soft);margin-top:6px}
.login input{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:9px 12px}
.login .btn,nav .out{font:inherit;font-weight:600;cursor:pointer;border-radius:8px}
.login .btn{margin-top:14px;border:0;background:var(--ink);color:var(--bg);padding:10px}
.login .btn:disabled{opacity:.6}
.err{color:var(--accent);min-height:1.4em;margin:6px 0 0;font-size:13px}
nav .out{margin-left:auto;border:1px solid var(--line);background:none;color:var(--soft);padding:5px 14px;font-size:13px;border-radius:999px}
.err.ok{color:var(--ok)}
.below{font-size:13px;display:flex;gap:4px;align-items:center;color:var(--soft)}.filters .below input{flex:none;padding:0}
/* The menu has the same width and place on every page, whatever the page's own width, so its buttons never move when you switch pages. */
nav#nav{align-self:center;width:min(1280px,calc(100vw - 32px));box-sizing:border-box;position:sticky;top:0;z-index:30;background:var(--bg);padding:8px 0;margin:-8px 0 0;border-bottom:1px solid var(--line)}nav#nav a[aria-current=page]{box-shadow:0 0 0 2px var(--accent)}
.sb{display:inline-block;margin-left:6px;padding:0 7px;border-radius:9px;font-size:11px;font-weight:700;line-height:18px;color:#1a1a1a}.sb-new{background:#f5c518}.sb-active{background:#3fb950}.sb-running{background:#6aa9ff}.sbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sbar button{font:inherit;font-size:13px;padding:3px 10px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}.sbar button:disabled{opacity:.5;cursor:default}
.sb-error{background:#e5534b;color:#fff}
.ptabs .tabn{margin-left:6px;font-size:12px;font-weight:600;opacity:.85}.ptabs .tabn b{color:var(--accent)}.ptabs button[aria-selected=true] .tabn b{color:inherit}
.crumb{font-size:13px;color:var(--soft);margin:0}
#reply{z-index:40;justify-content:center;align-items:center}.panel.dlg{height:auto;max-height:92vh;width:min(640px,94vw);border-radius:12px;display:flex;flex-direction:column;gap:6px}
.dlg label{font-size:12px;font-weight:600;color:var(--soft);margin-top:6px}.dlg input,.dlg textarea{font:inherit;font-size:14px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:7px 10px;width:100%}
.rbtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.rbtn{font:inherit;font-size:13px;font-weight:600;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;padding:7px 14px;cursor:pointer}
.rbtn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.rbtn:disabled{opacity:.5;cursor:not-allowed}
.bro .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:6px 0;font-size:14px}.bro .chipx{font-size:12px;border:1px solid var(--line);border-radius:999px;padding:1px 8px;color:var(--soft)}.bro .ok{color:var(--ok)}.bro .err{color:var(--accent)}.bro input[type=file]{font-size:13px;max-width:100%}
nav .naskeep{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--soft);cursor:pointer;padding:0 4px}nav .naskeep input{margin:0;cursor:pointer}
.nasdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle;background:#8b949e}.nas-up{background:#3fb950}.nas-starting{background:#f5c518}.nas-stopped{background:#8b949e}
.build{margin-left:12px;font-size:11px;opacity:.55}
nav .navtitle{margin:0 0 0 10px;font-size:18px;align-self:center;white-space:nowrap}
/* Task management: broker contacts, their answers and the inbox */
.sec{display:flex;flex-direction:column;gap:10px}.sec[hidden]{display:none}.sec>.bar h2{font-size:18px;margin:0}.sec>.bar .filters{margin:0}
.answers{display:flex;flex-direction:column;gap:12px;margin-top:6px}
.answer{border-left:3px solid var(--line);padding:2px 0 2px 12px;display:flex;flex-direction:column;gap:4px}.answer.unseen{border-left-color:var(--warn)}
.mailhead{font-size:12px;color:var(--soft);font-weight:600;overflow-wrap:anywhere}
.mailbox{display:flex;flex-direction:column;gap:10px;margin-top:4px}.mailbox[hidden]{display:none}
.mail{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--bg)}.mail.mine{opacity:.8}
.mailtext{white-space:pre-wrap;font-size:14px;overflow-wrap:anywhere;max-height:28rem;overflow:auto;margin-top:4px}
.task.read{opacity:.72}.task.read .ttl{text-decoration:none}
.state.err{color:var(--accent)}
.mailhead.flagged{color:var(--accent)}
