:root {
  --ground:#F6F7F4; --surface:#FFFFFF; --ink:#1B2530; --muted:#5B6773; --rule:#D3D9D4; --rule-soft:#E6EAE6;
  --stamp:#A8362B; --stamp-soft:#F6E4E1; --clinic:#2E6B5E; --clinic-soft:#E0EEE9; --amber:#8A6215; --amber-soft:#F5ECD6;
  --navy:#2F4A6D; --navy-soft:#E3EAF3;
  --display:"Spectral",Georgia,serif; --body:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif; --mono:"IBM Plex Mono",Menlo,monospace;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--ground); color:var(--ink); font-family:var(--body); font-size:15px; line-height:1.5; }
a { color:inherit; }
.top { display:flex; justify-content:space-between; align-items:center; padding:14px 32px; border-bottom:1px solid var(--rule); background:var(--surface); }
.brand { font-family:var(--display); font-weight:600; font-size:20px; text-decoration:none; letter-spacing:-0.01em; }
.top nav { display:flex; gap:18px; align-items:center; }
.top nav a { text-decoration:none; color:var(--muted); }
.wrap { max-width:1180px; margin:0 auto; padding:28px 32px 80px; }
h1 { font-family:var(--display); font-weight:600; font-size:34px; line-height:1.1; margin:0 0 8px; letter-spacing:-0.01em; }
h2 { font-family:var(--display); font-weight:600; font-size:23px; margin:34px 0 10px; }
h3 { font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin:24px 0 8px; }
.eyebrow { font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.lede { font-family:var(--display); font-style:italic; font-size:17px; color:var(--muted); margin:6px 0 0; max-width:70ch; }
.muted { color:var(--muted); } .small { font-size:12.5px; } .mono { font-family:var(--mono); font-size:.92em; }
.num { text-align:right; } .nowrap { white-space:nowrap; }
.btn { display:inline-block; background:var(--ink); color:#fff; border:1px solid var(--ink); padding:8px 16px; border-radius:3px; font:inherit; font-weight:500; cursor:pointer; text-decoration:none; }
.btn.small { padding:5px 11px; font-size:13px; }
.btn.ghost { background:transparent; color:var(--ink); }
.btn:disabled { opacity:.5; cursor:default; }
.page-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:18px; }
code { font-family:var(--mono); background:var(--rule-soft); padding:1px 5px; border-radius:2px; }

/* case list */
table.cases { width:100%; border-collapse:collapse; background:var(--surface); border:1px solid var(--rule); }
table.cases th { text-align:left; font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); padding:10px 12px; border-bottom:1px solid var(--rule); }
table.cases td { padding:12px; border-bottom:1px solid var(--rule-soft); vertical-align:top; }
table.cases tbody tr { cursor:pointer; } table.cases tbody tr:hover { background:var(--ground); }
.pill { display:inline-block; font-family:var(--mono); font-size:11px; letter-spacing:.04em; text-transform:uppercase; padding:2px 8px; border-radius:2px; background:var(--rule-soft); color:var(--muted); white-space:nowrap; }
.status-running, .status-queued, .status-retrying { background:var(--navy-soft); color:var(--navy); } .status-done { background:var(--clinic-soft); color:var(--clinic); } .status-error, .status-interrupted { background:var(--stamp-soft); color:var(--stamp); }
.rec-take { background:var(--clinic-soft); color:var(--clinic); } .rec-take_with_caution { background:var(--amber-soft); color:var(--amber); }
.rec-pass { background:var(--stamp-soft); color:var(--stamp); } .rec-need_more_records { background:var(--navy-soft); color:var(--navy); }
.flagcount { font-family:var(--mono); font-size:12px; } .flagcount.red { color:var(--stamp); } .flagcount.amber { color:var(--amber); }

/* intake form */
.intake { max-width:760px; display:grid; gap:16px; background:var(--surface); border:1px solid var(--rule); padding:26px; }
.intake label { display:grid; gap:5px; font-size:13px; font-weight:500; }
.intake input, .intake textarea, .intake select, .search, .ask-form textarea, #ask-role, #ask-role-custom, .head-actions select { font:inherit; padding:8px 10px; border:1px solid var(--rule); border-radius:3px; background:var(--surface); color:var(--ink); }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.check { display:inline-flex; gap:6px; align-items:center; font-weight:400; font-size:13px; }

/* case head */
.case-head { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; margin-bottom:22px; }
.head-actions { display:flex; gap:10px; align-items:center; flex-shrink:0; } .inline { display:inline-flex; gap:8px; align-items:center; }

/* progress */
.progress { background:var(--surface); border:1px solid var(--rule); padding:18px 22px; margin-bottom:24px; }
.stages { display:flex; flex-wrap:wrap; gap:6px 18px; margin-bottom:12px; }
.stage { font-size:13px; color:var(--muted); display:flex; align-items:center; gap:6px; }
.stage .dot { width:9px; height:9px; border-radius:50%; border:1.5px solid var(--rule); }
.stage.on { color:var(--ink); } .stage.on .dot { background:var(--clinic); border-color:var(--clinic); }
.log { list-style:none; margin:0; padding:0; font-size:13px; max-height:160px; overflow:auto; }
.log li { padding:3px 0; border-top:1px solid var(--rule-soft); } .log li.err { color:var(--stamp); }
.progress[data-status="running"] .stage.on:last-of-type .dot { animation:pulse 1s infinite alternate; }
@keyframes pulse { from { opacity:.4 } to { opacity:1 } }

/* tabs */
.tabs { display:flex; gap:4px; border-bottom:1px solid var(--rule); margin-bottom:22px; }
.tabs a { padding:10px 14px; text-decoration:none; color:var(--muted); border-bottom:2px solid transparent; margin-bottom:-1px; font-weight:500; }
.tabs a.on { color:var(--ink); border-bottom-color:var(--stamp); }
.tabs .count { font-family:var(--mono); font-size:11px; background:var(--rule-soft); padding:1px 6px; border-radius:8px; }

/* verdict */
.verdict-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr 1fr; gap:12px; }
.verdict-card, .stat { background:var(--surface); border:1px solid var(--rule); padding:14px 16px; }
.verdict { font-family:var(--display); font-weight:600; font-size:30px; text-transform:capitalize; margin:4px 0; }
.verdict-card.rec-take { border-left:4px solid var(--clinic); } .verdict-card.rec-take_with_caution { border-left:4px solid var(--amber); }
.verdict-card.rec-pass { border-left:4px solid var(--stamp); } .verdict-card.rec-need_more_records { border-left:4px solid var(--navy); }
.stat .big { font-family:var(--display); font-size:30px; font-weight:600; margin-top:4px; } .big.red { color:var(--stamp); } .big.amber { color:var(--amber); }
.reasons { padding-left:20px; } .reasons li { margin-bottom:8px; max-width:90ch; }
.callout { background:var(--navy-soft); border-left:3px solid var(--navy); padding:12px 16px; margin:20px 0; max-width:100ch; }
.callout p { margin:6px 0 0; }
.prose { max-width:80ch; } .prose p { margin:0 0 12px; }
.flags { display:grid; gap:8px; }
.flag { background:var(--surface); border:1px solid var(--rule); border-left-width:4px; padding:10px 14px; }
.flag.red { border-left-color:var(--stamp); } .flag.amber { border-left-color:var(--amber); }
.flag-head { display:flex; gap:10px; align-items:baseline; } .flag .sev { font-family:var(--mono); font-size:11px; text-transform:uppercase; }
.flag.red .sev { color:var(--stamp); } .flag.amber .sev { color:var(--amber); } .flag .kind { margin-left:auto; color:var(--muted); font-size:11px; }
.flag-body { font-size:14px; margin-top:4px; color:#2c3944; } .pages { margin-top:4px; }
table.data { width:100%; border-collapse:collapse; background:var(--surface); border:1px solid var(--rule); font-size:14px; }
table.data th { text-align:left; padding:8px 10px; border-bottom:1.5px solid var(--ink); font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
table.data td { padding:9px 10px; border-bottom:1px solid var(--rule-soft); vertical-align:top; }
table.data tr.total td { font-weight:600; border-top:1.5px solid var(--ink); }
a.cite { font-family:var(--mono); font-size:12px; color:var(--stamp); text-decoration:none; border-bottom:1px dotted var(--stamp); margin-right:6px; white-space:nowrap; }
a.cite:hover { background:var(--stamp-soft); }

/* war room */
.themes { display:grid; grid-template-columns:1fr 1fr; gap:12px; } .theme.expert { grid-column:1 / -1; }
.theme { background:var(--surface); border:1px solid var(--rule); padding:12px 14px; border-top:3px solid var(--rule); } .theme p { margin:6px 0 0; font-size:14px; }
.theme.defense { border-top-color:var(--stamp); } .theme.plaintiff { border-top-color:var(--clinic); } .theme.expert { border-top-color:var(--navy); }
.score { display:flex; gap:8px; margin:16px 0 0; }
.lean-plaintiff { background:var(--clinic-soft); color:var(--clinic); } .lean-defense { background:var(--stamp-soft); color:var(--stamp); } .lean-toss_up { background:var(--amber-soft); color:var(--amber); }
.issues { display:grid; gap:6px; }
.issue { background:var(--surface); border:1px solid var(--rule); }
.issue summary { display:flex; gap:12px; align-items:center; padding:10px 14px; cursor:pointer; list-style:none; }
.issue summary::-webkit-details-marker { display:none; }
.issue .n { color:var(--muted); width:28px; } .issue .title { flex:1; font-weight:500; } .issue .strength { color:var(--muted); font-size:11px; }
.rounds { border-top:1px solid var(--rule-soft); padding:6px 14px 12px; display:grid; gap:10px; }
.round { padding:10px 12px 10px 14px; border-left:3px solid var(--rule); font-size:14px; } .round p { margin:0 0 6px; } .round ul { margin:0; padding-left:18px; } .round li { margin-bottom:3px; }
.round .who { font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:4px; }
.round.defense { border-left-color:var(--stamp); } .round.plaintiff { border-left-color:var(--clinic); } .round.expert { border-left-color:var(--navy); } .round.ruling { border-left-color:var(--ink); background:var(--ground); }
.pill.conceded { background:var(--clinic-soft); color:var(--clinic); }
.playbooks { display:grid; grid-template-columns:1fr 1fr; gap:28px; } .playbooks ol { padding-left:20px; } .playbooks li { margin-bottom:8px; }
.cols3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px; } .cols3 ul { padding-left:18px; font-size:14px; } .cols3 li { margin-bottom:6px; }

/* chronology */
.toolbar { display:flex; gap:18px; align-items:center; margin-bottom:12px; } .search { flex:1; max-width:320px; }
.tbl { overflow-x:auto; }
table.chron td.quote { font-family:var(--display); font-style:italic; font-size:14px; color:#35424d; max-width:32ch; }
table.chron tr.pre td { background:#FBF7F6; }
.tag { display:inline-block; font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:.04em; padding:1px 5px; border-radius:2px; margin-top:3px; margin-right:3px; background:var(--rule-soft); color:var(--muted); }
.tag.pre { background:var(--stamp-soft); color:var(--stamp); } .tag.flag-prior_injury, .tag.flag-inconsistent_history { background:var(--stamp-soft); color:var(--stamp); }
.tag.flag-treatment_gap, .tag.flag-delayed_onset { background:var(--amber-soft); color:var(--amber); }
tr.hide { display:none; }

/* ask */
.ask-toolbar { display:flex; gap:12px; align-items:center; margin-bottom:12px; } .ask-toolbar label { font-size:13px; display:flex; gap:8px; align-items:center; }
.chat { background:var(--surface); border:1px solid var(--rule); padding:16px; min-height:200px; max-height:60vh; overflow:auto; display:grid; gap:14px; align-content:start; }
.hint { color:var(--muted); font-size:14px; } .examples { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.ex { font:inherit; font-size:13px; background:var(--ground); border:1px solid var(--rule); border-radius:14px; padding:4px 10px; cursor:pointer; }
.msg { max-width:90ch; } .msg.q { font-weight:500; padding:8px 12px; background:var(--ground); border-radius:3px; } .msg.q .role { display:block; font-family:var(--mono); font-size:11px; color:var(--muted); text-transform:uppercase; }
.msg.a { padding:0 4px; } .msg.a p { margin:0 0 10px; } .msg.a table { border-collapse:collapse; font-size:13px; margin:8px 0; } .msg.a th, .msg.a td { border:1px solid var(--rule); padding:4px 8px; vertical-align:top; }
.msg.a h2, .msg.a h3 { font-family:var(--body); font-size:14px; text-transform:none; letter-spacing:0; color:var(--ink); margin:14px 0 6px; }
.ask-form { display:flex; gap:8px; margin-top:10px; } .ask-form textarea { flex:1; resize:vertical; }
.thinking { color:var(--muted); font-style:italic; }

/* page viewer */
.viewer[hidden] { display:none; }
.viewer { position:fixed; top:0; right:0; width:min(560px, 90vw); height:100vh; background:var(--surface); border-left:1px solid var(--rule); box-shadow:-8px 0 24px rgba(0,0,0,.08); display:flex; flex-direction:column; z-index:20; }
.viewer-head { display:flex; gap:8px; align-items:center; padding:10px 12px; border-bottom:1px solid var(--rule); }
.v-title { flex:1; display:flex; flex-direction:column; font-size:12px; } .v-title .mono { font-size:13px; font-weight:500; }
.viewer-body { flex:1; overflow:auto; background:#e9ebe8; padding:10px; } .viewer-body img { width:100%; display:block; box-shadow:0 1px 4px rgba(0,0,0,.2); background:#fff; }
@media (max-width:900px) { .verdict-grid, .themes, .playbooks, .cols3 { grid-template-columns:1fr; } .grid2 { grid-template-columns:1fr; } .case-head { flex-direction:column; } }

/* review */
.review-unreviewed { background:var(--rule-soft); color:var(--muted); } .review-in_review { background:var(--amber-soft); color:var(--amber); } .review-released { background:var(--clinic-soft); color:var(--clinic); }
.override { margin-top:6px; font-size:13px; color:var(--amber); }
.review-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.review-actions { display:flex; gap:8px; align-items:center; }
.blockers { margin:6px 0 12px; padding-left:18px; color:var(--stamp); font-size:13px; } .blockers:empty { display:none; }
.rv-reason[hidden] { display:none; }
.rv-meta label, .rv-reason { display:grid; gap:4px; font-size:13px; font-weight:500; margin-bottom:10px; }
.rv-meta input, .rv-meta select, .rv-reason input, .rv-note, .rv-add input, .rv-add textarea, #rv-notes { font:inherit; padding:7px 9px; border:1px solid var(--rule); border-radius:3px; background:var(--surface); color:var(--ink); width:100%; }
.rv-list { display:grid; gap:8px; }
.rv-item { display:grid; grid-template-columns:1fr 300px; gap:14px; background:var(--surface); border:1px solid var(--rule); border-left-width:4px; padding:10px 14px; }
.rv-item.flag.red { border-left-color:var(--stamp); } .rv-item.flag.amber { border-left-color:var(--amber); }
.rv-item.decided.confirmed { border-left-color:var(--clinic); } .rv-item.decided.removed { opacity:.6; } .rv-item.decided.corrected { border-left-color:var(--navy); }
.rv-item.added { grid-template-columns:1fr auto; border-left-color:var(--clinic); }
.rv-controls { display:grid; gap:6px; align-content:start; }
.seg { display:inline-flex; border:1px solid var(--rule); border-radius:3px; overflow:hidden; }
.seg button { font:inherit; font-size:12px; padding:4px 9px; border:0; border-right:1px solid var(--rule); background:var(--surface); color:var(--muted); cursor:pointer; }
.seg button:last-child { border-right:0; } .seg button.on { background:var(--ink); color:#fff; } .seg button:disabled { cursor:default; }
.rv-add { display:grid; gap:8px; margin:8px 0 4px; max-width:900px; }
.rv-chron tr.decided.removed td { opacity:.55; text-decoration:line-through; } .rv-chron tr.decided.confirmed td:first-child { border-left:3px solid var(--clinic); }
@media (max-width:820px) { .rv-item { grid-template-columns:1fr; } }

/* login, feedback */
.err { color:var(--stamp); }
.fb { display:grid; gap:12px; max-width:760px; } .fb label { display:grid; gap:5px; font-size:13px; font-weight:500; }
.fb textarea, .fb select { font:inherit; padding:7px 9px; border:1px solid var(--rule); border-radius:3px; background:var(--surface); color:var(--ink); }

/* checked strip, trend, search hits */
.checked { display:flex; flex-wrap:wrap; gap:6px 18px; align-items:baseline; margin:14px 0 0; padding:10px 14px; background:var(--surface); border:1px solid var(--rule); font-size:13px; }
.checked .eyebrow { width:100%; }
.profile { display:flex; flex-wrap:wrap; gap:6px 18px; align-items:baseline; margin:14px 0 0; padding:10px 14px; background:var(--surface); border:1px solid var(--rule); font-size:13px; }
.profile .eyebrow { width:100%; }
.profile b { font-weight:600; text-transform:capitalize; margin-right:4px; }
.tag.amber { background:#f8efd6; color:#9a6a12; }
.trend { margin:10px 0 0; padding:10px 14px; background:var(--surface); border:1px solid var(--rule); }
.trend-svg { width:100%; max-width:640px; height:auto; display:block; margin-top:6px; }
.trend-line { stroke:var(--stamp); stroke-width:2; fill:none; } .trend-dot { fill:var(--stamp); } .trend-axis { stroke:var(--rule); }
.trend-v { font-family:var(--mono); font-size:11px; fill:var(--ink); } .trend-d { font-family:var(--mono); font-size:9px; fill:var(--muted); }
.hits { display:grid; gap:6px; margin-bottom:14px; }
.hit { background:var(--surface); border:1px solid var(--rule); padding:8px 12px; font-size:13px; }
.hit mark { background:var(--amber-soft); color:inherit; padding:0 2px; }
.viewer .v-title .hl { color:var(--amber); font-family:var(--mono); font-size:11px; }

/* dashboard, upload, team, alerts */
.empty { text-align:center; padding:48px 0; }
.toolbar select { font:inherit; padding:7px 9px; border:1px solid var(--rule); border-radius:3px; background:var(--surface); color:var(--ink); }
.drop { border:2px dashed var(--rule); border-radius:4px; padding:22px; text-align:center; background:var(--surface); position:relative; cursor:pointer; }
.drop.over { border-color:var(--clinic); background:var(--clinic-soft); }
.drop input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; }
.drop-text { color:var(--muted); font-size:13px; }
.file-list { list-style:none; margin:10px 0 0; padding:0; text-align:left; font-family:var(--mono); font-size:12px; color:var(--muted); max-height:160px; overflow:auto; }
.upload-bar { position:relative; height:26px; border:1px solid var(--rule); border-radius:3px; background:var(--surface); overflow:hidden; }
.upload-bar .fill { position:absolute; inset:0 auto 0 0; width:0; background:var(--clinic-soft); transition:width .2s; }
.upload-bar span { position:relative; line-height:26px; padding-left:10px; font-size:12.5px; font-family:var(--mono); }
.btn.danger { color:var(--stamp); border-color:var(--stamp); }
.two-col { display:grid; grid-template-columns:1.2fr 1fr; gap:28px; } @media (max-width:820px) { .two-col { grid-template-columns:1fr; } }
.notif { position:relative; } .notif summary { list-style:none; cursor:pointer; color:var(--muted); } .notif summary::-webkit-details-marker { display:none; }
.notif .dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--stamp); margin-left:4px; vertical-align:2px; }
.notif-list { position:absolute; right:0; top:26px; width:320px; background:var(--surface); border:1px solid var(--rule); box-shadow:0 4px 16px rgba(0,0,0,.1); z-index:30; display:grid; padding:6px; }
.notif-list a { text-decoration:none; color:var(--ink); padding:8px 10px; border-bottom:1px solid var(--rule-soft); font-size:13px; display:grid; gap:2px; }
.notif-list a.unread { background:var(--clinic-soft); }
.callout code { display:block; margin-top:6px; word-break:break-all; }

.ok { color:var(--good, #35754a); }
