/* Summerized v2 visual system: charcoal surfaces, orange accent. Blue survives only as the Timeline marker and a chart series. */
:root {
  --bg:#16181d; --s1:#1e2127; --s2:#262a31; --s3:#2f343d; --s4:#383e48;
  --border:#3a414c; --border-soft:#2c313a;
  --text:#e8ebf0; --muted:#9aa3b1; --dim:#6f7886;
  --accent:#ff8a3d; --accent-hover:#ffa061; --accent-ink:#1a120b; --accent-soft:rgba(255,138,61,.14);
  --glow:0 0 0 3px rgba(255,138,61,.28);
  --good:#4ccf8a; --good-soft:rgba(76,207,138,.14);
  --warn:#ff6b6b; --warn-soft:rgba(255,107,107,.14);
  --review:#ffd166; --review-soft:rgba(255,209,102,.14);
  --blue:#5aa9ff; --blue-soft:rgba(90,169,255,.14);
  --aqua:#2ec4b6;
  --shadow:0 12px 32px rgba(0,0,0,.45), 0 2px 6px rgba(0,0,0,.3);
  --r:8px; --r-lg:12px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --dur:.18s; --ease:cubic-bezier(.2,.7,.2,1);
  --panel-w:400px;
  color-scheme:dark;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --bg:#f2f3f6; --s1:#ffffff; --s2:#f5f6f8; --s3:#eaecf0; --s4:#dfe2e8;
    --border:#d3d7de; --border-soft:#e3e6eb;
    --text:#1b1e24; --muted:#5d6673; --dim:#8a919c;
    --accent:#d9611a; --accent-hover:#ef7328; --accent-ink:#fff; --accent-soft:rgba(217,97,26,.12);
    --glow:0 0 0 3px rgba(217,97,26,.25);
    --good:#1f8f55; --good-soft:rgba(31,143,85,.12);
    --warn:#c62828; --warn-soft:rgba(198,40,40,.1);
    --review:#a36a00; --review-soft:rgba(163,106,0,.12);
    --blue:#2a6fd6; --blue-soft:rgba(42,111,214,.12);
    --aqua:#0f8f83;
    --shadow:0 12px 32px rgba(20,24,32,.16), 0 2px 6px rgba(20,24,32,.08);
    color-scheme:light;
  }
}
@media (prefers-reduced-motion: reduce) { :root { --dur:0s; } }

/* ---------- base ---------- */
*,*::before,*::after { box-sizing:border-box; }
html,body { margin:0; padding:0; }
body { background:var(--bg); color:var(--text); font:14px/1.45 var(--font); -webkit-font-smoothing:antialiased; min-height:100vh; }
a { color:var(--text); text-decoration:none; }
a:hover { color:var(--accent-hover); }
h1 { font-size:20px; margin:0 0 6px; font-weight:650; letter-spacing:-.01em; }
h2 { font-size:15px; margin:0 0 10px; font-weight:650; }
h3 { font-size:12px; margin:0 0 6px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600; }
.muted { color:var(--muted); } .dim { color:var(--dim); }
.small { font-size:12px; } .tiny { font-size:11px; }
.mono, .num { font-family:var(--mono); font-variant-numeric:tabular-nums; }
.num { text-align:right; }
.caps { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600; }
.spacer { flex:1; }
.inline { display:inline; }
.hide { display:none !important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.page { max-width:1500px; margin:0 auto; padding:16px 18px 40px; }
.page.wide { max-width:none; }
.noprint {}
:focus-visible { outline:none; box-shadow:var(--glow); border-radius:6px; }

/* ---------- top bar ---------- */
.topbar { display:flex; align-items:center; gap:14px; height:44px; padding:0 14px; background:var(--s1); border-bottom:1px solid var(--border-soft); position:sticky; top:0; z-index:40; }
.brand { display:flex; align-items:center; gap:8px; font-weight:700; letter-spacing:-.01em; }
.brand .dot { width:14px; height:14px; border-radius:4px; background:var(--accent); box-shadow:0 0 12px rgba(255,138,61,.55); }
.nav { display:flex; gap:2px; }
.nav a { padding:5px 10px; border-radius:6px; color:var(--muted); font-size:13px; }
.nav a:hover { color:var(--text); background:var(--s2); }
.nav a.on { color:var(--text); background:var(--s3); box-shadow:inset 0 -2px 0 var(--accent); }
.who { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--muted); }
.who b { color:var(--text); font-weight:600; }
.role { font-size:10px; text-transform:uppercase; letter-spacing:.06em; padding:1px 6px; border-radius:4px; background:var(--s3); color:var(--muted); }
.role.viewer { background:var(--blue-soft); color:var(--blue); }

/* ---------- surfaces ---------- */
.card { background:var(--s1); border:1px solid var(--border-soft); border-radius:var(--r-lg); padding:14px 16px; margin-bottom:14px; }
.card.tight { padding:8px 12px; }
.row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.stack { display:flex; flex-direction:column; gap:10px; }
.grid { display:grid; gap:12px; }
.g2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.g3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.block { padding:8px 10px; border:1px solid var(--border-soft); border-radius:var(--r); background:var(--s2); margin-bottom:6px; }
.q { padding:8px 10px; border-left:3px solid var(--review); background:var(--review-soft); border-radius:6px; font-size:13px; margin:6px 0; }
.hero { font-size:34px; font-weight:700; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.warnlist { margin:0; padding-left:18px; }
.warnlist li.error { color:var(--warn); } .warnlist li.warn { color:var(--review); }
details summary { cursor:pointer; color:var(--muted); }
details[open] summary { color:var(--text); }

/* ---------- pills, chips, badges ---------- */
.pill { display:inline-flex; align-items:center; gap:4px; padding:1px 8px; border-radius:999px; font-size:11px; font-weight:600; background:var(--s3); color:var(--muted); line-height:18px; white-space:nowrap; }
.pill.good { background:var(--good-soft); color:var(--good); }
.pill.warn { background:var(--warn-soft); color:var(--warn); }
.pill.review { background:var(--review-soft); color:var(--review); }
.pill.blue { background:var(--blue-soft); color:var(--blue); }
.pill.accent { background:var(--accent-soft); color:var(--accent); }
.pill.imported { background:var(--blue-soft); color:var(--blue); }
.pill.proposed { background:var(--accent-soft); color:var(--accent); }
.chips { display:flex; gap:8px; flex-wrap:wrap; }
.chip { background:var(--s2); border:1px solid var(--border-soft); border-radius:var(--r); padding:6px 12px; min-width:96px; }
.chip .l { font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600; }
.chip .v { font-size:17px; font-weight:650; font-variant-numeric:tabular-nums; }
.chip.accent { border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent), 0 0 18px rgba(255,138,61,.12); }
.chip.accent .v { color:var(--accent); }
.tag { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:6px; font-size:11px; background:var(--s3); color:var(--muted); border:1px solid transparent; cursor:pointer; user-select:none; }
.tag:hover { color:var(--text); border-color:var(--border); }
.tag.on { background:var(--accent-soft); color:var(--accent); border-color:rgba(255,138,61,.4); }
.tag .x { opacity:.7; margin-left:2px; }
.st { display:inline-flex; align-items:center; gap:5px; font-size:12px; }
.st::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--dim); }
.st.good::before { background:var(--good); } .st.warn::before { background:var(--warn); } .st.review::before { background:var(--review); } .st.blue::before { background:var(--blue); } .st.accent::before { background:var(--accent); }
.st.good { color:var(--good); } .st.warn { color:var(--warn); } .st.review { color:var(--review); } .st.blue { color:var(--blue); }
.tl-dot { color:var(--blue); font-size:9px; vertical-align:middle; }

/* ---------- buttons & inputs ---------- */
button, .btn { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:var(--r); border:1px solid var(--border); background:var(--s2); color:var(--text); font:inherit; font-size:13px; cursor:pointer; line-height:1.3; transition:background var(--dur), border-color var(--dur), transform var(--dur); white-space:nowrap; }
button:hover, .btn:hover { background:var(--s3); border-color:var(--s4); color:var(--text); }
button:active, .btn:active { transform:translateY(1px); }
button:disabled { opacity:.5; cursor:default; transform:none; }
button.primary, .btn.primary { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); font-weight:600; }
button.primary:hover, .btn.primary:hover { background:var(--accent-hover); border-color:var(--accent-hover); color:var(--accent-ink); }
button.ghost, .btn.ghost { background:transparent; border-color:transparent; color:var(--muted); }
button.ghost:hover, .btn.ghost:hover { background:var(--s3); color:var(--text); }
button.danger:hover { color:var(--warn); border-color:var(--warn); }
button.small, .btn.small { padding:3px 9px; font-size:12px; border-radius:6px; }
button.icon { padding:4px 7px; }
input, select, textarea { width:100%; background:var(--s2); color:var(--text); border:1px solid var(--border); border-radius:6px; padding:6px 8px; font:inherit; font-size:13px; transition:border-color var(--dur), box-shadow var(--dur); }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--accent); box-shadow:var(--glow); }
input[type=checkbox], input[type=radio] { width:auto; accent-color:var(--accent); }
input[type=time], input[type=date] { font-family:var(--mono); }
textarea { resize:vertical; min-height:60px; }
select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%); background-position:calc(100% - 13px) 55%,calc(100% - 8px) 55%; background-size:5px 5px; background-repeat:no-repeat; padding-right:22px; }
label.f { display:flex; flex-direction:column; gap:3px; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-weight:600; }
label.f input, label.f select, label.f textarea { text-transform:none; letter-spacing:0; font-weight:400; color:var(--text); }
.f > span { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-weight:600; }
.seg { display:inline-flex; background:var(--s2); border:1px solid var(--border); border-radius:8px; padding:2px; gap:2px; }
.seg-opt, .seg button { padding:4px 10px; border-radius:6px; font-size:12px; cursor:pointer; color:var(--muted); border:none; background:transparent; display:inline-flex; align-items:center; gap:5px; }
.seg-opt:has(input:checked), .seg button.on { background:var(--s4); color:var(--text); }
.seg-opt input { display:none; }
.seg-opt small { color:var(--dim); }
.login { max-width:380px; margin:12vh auto; }

/* ---------- generic tables ---------- */
.tablewrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:13px; }
th { text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600; padding:6px 8px; border-bottom:1px solid var(--border); white-space:nowrap; }
th.num { text-align:right; }
td { padding:6px 8px; border-bottom:1px solid var(--border-soft); vertical-align:middle; }
tr.total td { font-weight:700; border-top:2px solid var(--border); }
tbody tr:hover td { background:rgba(255,255,255,.02); }

/* ---------- toasts ---------- */
.toasts { position:fixed; right:14px; bottom:14px; display:flex; flex-direction:column; gap:6px; z-index:200; }
.toast { background:var(--s3); border:1px solid var(--border); border-left:3px solid var(--accent); padding:8px 12px; border-radius:8px; font-size:13px; box-shadow:var(--shadow); animation:rise var(--dur) var(--ease); max-width:380px; }
.toast.err { border-left-color:var(--warn); } .toast.ok { border-left-color:var(--good); }
@keyframes rise { from { transform:translateY(8px); opacity:0; } }

/* ---------- charts ---------- */
.chart text { fill:var(--muted); font-size:10px; font-family:var(--font); }
.chart .axis { stroke:var(--border); }
.legend { display:flex; gap:14px; font-size:12px; color:var(--muted); margin-bottom:6px; }
.legend i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:5px; vertical-align:-1px; }
.tip { position:absolute; background:var(--s3); border:1px solid var(--border); padding:6px 9px; border-radius:6px; font-size:12px; pointer-events:none; box-shadow:var(--shadow); z-index:5; }

/* =================================================================== workspace */
body.ws { height:100dvh; overflow:hidden; display:flex; flex-direction:column; }
body.ws .topbar { flex:none; }
.ws-shell { flex:1; display:flex; flex-direction:column; min-height:0; }
.periodbar { flex:none; display:flex; align-items:center; gap:10px; padding:6px 14px; background:var(--s1); border-bottom:1px solid var(--border-soft); z-index:30; }
.periodbar h1 { font-size:16px; margin:0; white-space:nowrap; }
.periodbar .datepick { width:auto; padding:3px 6px; font-size:12px; }
.scope { display:flex; gap:4px; align-items:center; }
.strip { flex:none; display:flex; gap:0; align-items:stretch; padding:0 14px; background:var(--s1); border-bottom:1px solid var(--border-soft); overflow-x:auto; }
.strip .k { padding:7px 14px 6px 0; margin-right:14px; border-right:1px solid var(--border-soft); min-width:84px; }
.strip .k:last-child { border-right:none; }
.strip .k .l { font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600; white-space:nowrap; }
.strip .k .v { font-size:16px; font-weight:650; font-variant-numeric:tabular-nums; white-space:nowrap; }
.strip .k.accent .v { color:var(--accent); }
.strip .k.sub .v { font-size:13px; color:var(--muted); font-weight:500; }
.strip .k .v small { font-size:11px; color:var(--muted); font-weight:500; }
.ws-grid { flex:1; display:grid; grid-template-columns:minmax(0,1fr) var(--panel-w); min-height:0; position:relative; }
.ws-grid.collapsed { grid-template-columns:minmax(0,1fr) 44px; }
.ws-grid.noassist { grid-template-columns:minmax(0,1fr); }          /* viewers: no assistant, no chat, no Timeline */
.ws-grid.noassist .assist, .ws-grid.noassist ~ .viewseg { display:none !important; }
.ws-main { position:relative; min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.toolbar { flex:none; display:flex; align-items:center; gap:8px; padding:8px 14px; border-bottom:1px solid var(--border-soft); background:var(--bg); flex-wrap:wrap; }
.toolbar .search { width:220px; padding:5px 9px; font-size:13px; }
.toolbar .fil { width:auto; padding:4px 22px 4px 8px; font-size:12px; }
.tablescroll { flex:1; overflow:auto; min-height:0; }
.wt { width:100%; min-width:720px; table-layout:fixed; border-collapse:separate; border-spacing:0; }
.wt thead th { position:sticky; top:0; z-index:3; background:var(--s2); border-bottom:1px solid var(--border); padding:6px 8px; cursor:pointer; user-select:none; overflow:hidden; text-overflow:ellipsis; }
.wt thead th:hover { color:var(--text); }
.wt thead th .rz { position:absolute; right:0; top:0; bottom:0; width:6px; cursor:col-resize; }
.wt thead th .rz:hover { background:var(--accent); opacity:.6; }
.wt thead th.sorted { color:var(--accent); }
.wt td { padding:4px 8px; border-bottom:1px solid var(--border-soft); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; height:34px; }
.wt td.wrap { white-space:normal; }
.wt tr.r-day td { background:var(--s2); font-weight:600; border-top:1px solid var(--border-soft); height:36px; }
.wt tr.r-day td:first-child { border-left:3px solid var(--accent); }
.wt tr.r-group td { background:var(--s2); font-weight:600; height:32px; }
.wt tr.r-group td:first-child { border-left:3px solid var(--dim); }
.wt tr.r-sub td { background:rgba(255,255,255,.015); color:var(--muted); font-size:12px; white-space:normal; height:auto; }
.wt tr.r-sub td:first-child { border-left:3px solid var(--s4); }
.wt tr.r-nojob td { color:var(--muted); font-style:italic; }
.wt tr.r-nojob td:first-child { border-left:3px solid var(--review); }
.wt tr.r-attn td:first-child { border-left:3px solid var(--review); }
.wt tr.r-attn.error td:first-child { border-left-color:var(--warn); }
.wt tr.r-carried td:first-child, .wt tr.r-deferred td:first-child { border-left:3px solid var(--blue); }
.wt tbody tr { outline:none; }
.wt tbody tr:hover td { background:rgba(255,255,255,.025); }
.wt tbody tr.sel td { background:var(--accent-soft); }
.wt tbody tr.sel td:first-child { box-shadow:inset 3px 0 0 var(--accent); }
.wt tbody tr.flash td { animation:applied 1.1s var(--ease); }
@keyframes applied { 0% { background:rgba(76,207,138,.35); } 100% { background:transparent; } }
.wt tfoot td { position:sticky; bottom:0; background:var(--s2); border-top:1px solid var(--border); font-size:12px; color:var(--muted); z-index:2; height:30px; }
.wt tfoot td b { color:var(--text); }
.wt input, .wt select { padding:2px 5px; font-size:12px; height:26px; background:transparent; border-color:transparent; }
.wt input:hover, .wt select:hover { border-color:var(--border); background:var(--s2); }
.wt input:focus, .wt select:focus { background:var(--s2); }
.wt input[type=time] { width:86px; } .wt input[type=date] { width:118px; }
.wt input[type=number] { width:96px; text-align:right; }
.wt select.narrow { width:auto; max-width:100%; }
.cell { position:relative; }
.cell.saving::after, .cell.saved::after, .cell.error::after { content:""; position:absolute; right:3px; top:3px; width:6px; height:6px; border-radius:50%; }
.cell.saving::after { background:var(--review); animation:pulse .8s infinite; }
.cell.saved::after { background:var(--good); }
.cell.error::after { background:var(--warn); }
.cell.error { box-shadow:inset 0 0 0 1px var(--warn); }
@keyframes pulse { 50% { opacity:.3; } }
.twist { display:inline-block; width:14px; color:var(--muted); transition:transform var(--dur); }
.twist.open { transform:rotate(90deg); }
.who-cell { display:flex; align-items:center; gap:6px; min-width:0; }
.who-cell .nm { overflow:hidden; text-overflow:ellipsis; }
.who-cell .sub { color:var(--muted); font-size:11px; overflow:hidden; text-overflow:ellipsis; }
.link { color:var(--text); border-bottom:1px dotted var(--dim); cursor:pointer; }
.link:hover { color:var(--accent); border-bottom-color:var(--accent); }
.empty { padding:40px 20px; text-align:center; color:var(--muted); }
.empty b { color:var(--text); }
.colmenu { position:absolute; right:14px; top:44px; background:var(--s2); border:1px solid var(--border); border-radius:var(--r); padding:8px 10px; z-index:20; box-shadow:var(--shadow); display:grid; grid-template-columns:1fr 1fr; gap:2px 14px; }
.colmenu label { display:flex; align-items:center; gap:6px; font-size:12px; padding:2px 0; cursor:pointer; }

/* drawer */
.drawer { position:absolute; top:0; right:0; bottom:0; width:min(600px,100%); background:var(--s1); border-left:1px solid var(--border); box-shadow:var(--shadow); transform:translateX(102%); visibility:hidden; transition:transform var(--dur) var(--ease), visibility 0s linear var(--dur); z-index:25; display:flex; flex-direction:column; }
.drawer.open { transform:none; visibility:visible; transition:transform var(--dur) var(--ease), visibility 0s; }
.drawer .dh { flex:none; display:flex; align-items:center; gap:8px; padding:10px 14px; border-bottom:1px solid var(--border-soft); }
.drawer .dh h2 { margin:0; font-size:15px; }
.drawer .db { flex:1; overflow:auto; padding:12px 14px 24px; }
.drawer .sec { margin-bottom:16px; }
.drawer .sec h3 { margin-bottom:8px; }
.kv { display:grid; grid-template-columns:auto 1fr; gap:3px 12px; font-size:12px; }
.kv dt { color:var(--muted); } .kv dd { margin:0; }
.task { display:flex; align-items:flex-start; gap:8px; padding:5px 0; border-bottom:1px solid var(--border-soft); font-size:13px; }
.task.done { color:var(--dim); text-decoration:line-through; }
.check { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--muted); }
.ok-text { color:var(--good); } .bad-text { color:var(--warn); }

/* assistant */
.assist { position:relative; display:flex; flex-direction:column; min-height:0; background:var(--s1); border-left:1px solid var(--border-soft); }
.assist .grip { position:absolute; left:-3px; top:0; bottom:0; width:6px; cursor:col-resize; z-index:5; }
.assist .grip:hover, .assist .grip.on { background:var(--accent); opacity:.5; }
.assist .ah { flex:none; display:flex; align-items:center; gap:6px; padding:8px 10px; border-bottom:1px solid var(--border-soft); }
.assist .ah b { font-size:13px; }
.assist.rail { align-items:center; }
.assist.rail .ah, .assist.rail .msgs, .assist.rail .foot { display:none; }
.rail-btn { writing-mode:vertical-rl; transform:rotate(180deg); padding:12px 6px; margin-top:10px; }
.msgs { flex:1; overflow:auto; padding:10px 10px 4px; display:flex; flex-direction:column; gap:10px; scroll-behavior:smooth; }
.msg { max-width:100%; }
.msg .b { padding:8px 11px; border-radius:10px; font-size:13px; line-height:1.5; white-space:pre-wrap; word-break:break-word; }
.msg.user .b { background:var(--s3); border-top-right-radius:3px; margin-left:24px; }
.msg.assistant .b { background:var(--s2); border:1px solid var(--border-soft); border-top-left-radius:3px; margin-right:12px; }
.msg.error .b { border-color:var(--warn); background:var(--warn-soft); }
.msg .b p { margin:0 0 6px; } .msg .b p:last-child { margin:0; }
.msg .b ul { margin:2px 0 6px; padding-left:18px; }
.msg .b code { font-family:var(--mono); font-size:12px; background:var(--s3); padding:0 4px; border-radius:4px; }
.msg .meta { font-size:10px; color:var(--dim); margin-top:3px; padding:0 4px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.msg.user .meta { justify-content:flex-end; }
.paste { border:1px solid var(--border-soft); border-radius:8px; background:var(--s2); margin-left:24px; }
.paste summary { padding:6px 10px; font-size:12px; color:var(--muted); list-style:none; display:flex; gap:6px; align-items:center; }
.paste summary::before { content:"\25B8"; color:var(--dim); }
.paste[open] summary::before { content:"\25BE"; }
.paste pre { margin:0; padding:8px 10px; font-size:11px; white-space:pre-wrap; max-height:260px; overflow:auto; border-top:1px solid var(--border-soft); font-family:var(--mono); }
.dcard { border:1px solid var(--border); border-radius:10px; background:var(--s1); margin:8px 12px 0 0; overflow:hidden; }
.dcard .dch { display:flex; align-items:center; gap:6px; padding:6px 10px; background:var(--s2); border-bottom:1px solid var(--border-soft); font-size:12px; }
.dcard .dcb { padding:6px 10px; font-size:12px; }
.dcard table { font-size:12px; }
.dcard td { padding:3px 6px; border-bottom:1px solid var(--border-soft); }
.dcard .dcf { display:flex; gap:6px; align-items:center; padding:6px 10px; border-top:1px solid var(--border-soft); flex-wrap:wrap; }
.diff { display:flex; gap:6px; align-items:baseline; flex-wrap:wrap; }
.diff .old { color:var(--dim); text-decoration:line-through; }
.diff .new { color:var(--good); font-weight:600; }
.ritem { display:grid; grid-template-columns:auto 1fr auto; gap:8px; align-items:start; padding:6px 0; border-bottom:1px solid var(--border-soft); font-size:12px; }
.ritem .ev { color:var(--dim); font-size:11px; font-style:italic; }
.ritem .ctl { display:flex; gap:4px; }
.ritem.applied { opacity:.7; } .ritem.rejected { opacity:.45; text-decoration:line-through; }
.kind { font-size:10px; text-transform:uppercase; letter-spacing:.05em; padding:1px 6px; border-radius:4px; background:var(--s3); color:var(--muted); white-space:nowrap; margin-top:2px; }
.kind.create_job, .kind.update_field, .kind.create_task { background:var(--accent-soft); color:var(--accent); }
.kind.question { background:var(--review-soft); color:var(--review); }
.kind.conflict { background:var(--warn-soft); color:var(--warn); }
.kind.duplicate { background:var(--s3); color:var(--dim); }
.foot { flex:none; padding:8px 10px 10px; border-top:1px solid var(--border-soft); background:var(--s1); }
.foot textarea { min-height:58px; max-height:200px; }
.attach { display:inline-flex; align-items:center; gap:6px; padding:3px 8px; border-radius:6px; background:var(--blue-soft); color:var(--blue); font-size:12px; margin-bottom:6px; }
.attach .bar { width:80px; height:4px; background:var(--s3); border-radius:2px; overflow:hidden; }
.attach .bar i { display:block; height:100%; background:var(--blue); width:30%; animation:slide 1s infinite; }
@keyframes slide { 0% { margin-left:-30%; } 100% { margin-left:100%; } }
.thinking { display:inline-flex; gap:3px; align-items:center; }
.thinking i { width:5px; height:5px; border-radius:50%; background:var(--accent); animation:pulse 1s infinite; }
.thinking i:nth-child(2) { animation-delay:.2s; } .thinking i:nth-child(3) { animation-delay:.4s; }

/* view switcher (mobile) */
.viewseg { display:none; }
.mobile-only { display:none !important; }
@media (max-width: 900px) {
  .viewseg { display:inline-flex; }
  .mobile-only { display:inline-flex !important; }
  .hide-m { display:none !important; }
  .ws-grid, .ws-grid.collapsed { grid-template-columns:1fr; }
  .ws-grid[data-view="chat"] .ws-main { display:none; }
  .ws-grid[data-view="work"] .assist { display:none; }
  .assist { border-left:none; }
  .assist .grip { display:none; }
  .topbar { overflow-x:auto; gap:10px; }
  .periodbar { gap:6px; padding:6px 8px; flex-wrap:wrap; }
  .periodbar h1 { font-size:14px; }
  .periodbar .datepick { font-size:11px; padding:2px 4px; }
  .viewseg { flex:1 1 100%; }
  .viewseg button { flex:1; justify-content:center; }
  .strip .k { min-width:70px; padding-right:10px; margin-right:10px; }
  .strip .k .v { font-size:14px; }
  .drawer { width:100%; }
  .toolbar .search { width:100%; }
  .page { padding:12px 10px 30px; }
  .g2, .g3 { grid-template-columns:1fr; }
  .wt { min-width:640px; }
  .nav a { padding:5px 7px; font-size:12px; }
}

/* review desk: chat is the main column, numbers on the side */
.ws-grid.desk { grid-template-columns:minmax(0,1fr) 380px; }
.desk-chat { border-left:none; border-right:1px solid var(--border-soft); }
.desk-chat .msgs .dcard { margin:8px 0 0; }
.desk-chat .msgs .msg.user .b { margin-left:120px; }
.glance .card.tight { margin-bottom:10px; }
.glance table td { padding:3px 6px; font-size:12px; }
@media (max-width: 900px) {
  .ws-grid.desk { grid-template-columns:1fr; }
  .ws-grid.desk[data-view="chat"] .glance { display:none; }
  .ws-grid.desk[data-view="glance"] .desk-chat { display:none; }
  .desk-chat .msgs .msg.user .b { margin-left:24px; }
}

/* review page */
.rev-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
.filters { display:flex; gap:6px; flex-wrap:wrap; }
