/* Verillect Studio. One accent, quiet surfaces, colour only where it carries meaning. */
:root {
  --bg: #f8f8f9; --surface: #ffffff; --surface-2: #f9fafb; --sunken: #f1f3f5;
  --border: #e4e7eb; --border-strong: #cfd4da;
  --text: #16191d; --text-2: #4a5059; --muted: #7a818b;
  --accent: #202024; --accent-hover: #09090b; --accent-soft: #ededf0; --accent-text: #242428;
  --good: #1f8a5b; --good-soft: #e8f6ef; --warn: #b26a00; --warn-soft: #fdf4e3;
  --bad: #c93a3f; --bad-soft: #fdeeee; --violet: #7346c2; --violet-soft: #f3edfc;
  --needed: #1f8a5b; --optional: #5b6573; --unnecessary: #b26a00; --harmful: #c93a3f;
  --shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);
  --shadow-lg: 0 12px 40px rgba(16, 24, 40, .16);
  --radius: 12px; --radius-sm: 8px;
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Inter, Roboto, "Helvetica Neue", sans-serif;
  color-scheme: light;
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font: 14px/1.5 var(--font); -webkit-font-smoothing: antialiased; }
h1, h2, h3, p { margin: 0; }
h1 { font-size: 26px; letter-spacing: -.02em; font-weight: 650; }
h2 { font-size: 16px; font-weight: 640; letter-spacing: -.01em; }
h3 { font-size: 14px; font-weight: 620; display: flex; align-items: center; gap: 8px; }
button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
.icon { flex: none; }
.boot { display: grid; place-items: center; height: 100vh; color: var(--muted); }
.muted { color: var(--muted); }
.hint { color: var(--muted); font-size: 12.5px; line-height: 1.45; }
.warn-text { color: var(--warn); } .good-text { color: var(--good); } .bad-text { color: var(--bad); }
.row { display: flex; align-items: center; gap: 8px; }
.row.end { justify-content: flex-end; } .row.wrap { flex-wrap: wrap; }
.stack { display: grid; gap: 14px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }

/* ---------- inputs ---------- */
input, textarea, select {
  width: 100%; background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--radius-sm);
  padding: 8px 11px; outline: none; transition: border-color .12s, box-shadow .12s;
}
textarea { resize: none; min-height: 40px; line-height: 1.5; }
input:focus, textarea:focus, select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: .8; }
input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--accent); margin: 0; }
input[type="range"] { padding: 0; border: 0; accent-color: var(--accent); background: none; box-shadow: none; }
.field { display: grid; gap: 6px; }
.field-label { font-size: 12.5px; font-weight: 600; color: var(--text-2); }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 34px; padding: 0 14px;
  border-radius: var(--radius-sm); border: 1px solid var(--border-strong); background: var(--surface); font-weight: 560;
  white-space: nowrap; transition: background .12s, border-color .12s, transform .06s;
}
.btn:hover { background: var(--surface-2); border-color: var(--muted); }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn.primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.btn.ghost { border-color: transparent; background: transparent; color: var(--text-2); }
.btn.ghost:hover { background: var(--sunken); }
.btn.danger { background: var(--bad); border-color: var(--bad); color: #fff; }
.btn.ghost.danger { background: transparent; border-color: transparent; color: var(--bad); }
.btn.small { height: 28px; padding: 0 10px; font-size: 12.5px; }
.btn.large { height: 42px; padding: 0 22px; font-size: 15px; }
.btn.block { width: 100%; }
.btn[data-busy] { opacity: .7; cursor: progress; }
.btn[data-busy] { opacity: .88; position: relative; }
.btn[data-busy]::before, .loading-ring {
  content:""; display:inline-block; width:14px; height:14px; flex:none;
  border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:loading-turn .75s linear infinite;
}
.btn[data-busy] > .icon { display:none; }
.adot.gap { background:var(--warn-soft); color:var(--warn); border-color:var(--warn); }
.btn.adot.gap { width:23px; height:23px; padding:0; border-radius:50%; }
@keyframes loading-turn { to { transform:rotate(360deg); } }
.inline-loading { display:flex; align-items:center; gap:8px; }
.navigation-status { position:fixed; z-index:90; top:14px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:9px; padding:9px 15px; border:1px solid var(--border); border-radius:24px; background:var(--surface); color:var(--text-2); box-shadow:0 4px 18px #132c1d14; font-size:12px; pointer-events:none; }
.save-state.saving { display:inline-flex; align-items:center; gap:6px; }
.save-state.saving::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--accent); animation:assistant-pulse 1s ease-in-out infinite; }
button:not(:disabled):active, .library-row:active { transform:translateY(1px); }
button, .library-row { -webkit-tap-highlight-color:transparent; }
.icon-btn { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 7px; border: 0; background: transparent; color: var(--muted); }
.icon-btn:hover { background: var(--sunken); color: var(--text); }
.icon-space { display: inline-block; width: 14px; }
.link { background: none; border: 0; color: var(--accent-text); padding: 0; display: inline-flex; align-items: center; gap: 5px; font-weight: 550; }
.link:hover { text-decoration: underline; }
.kbd { font: 11px/1 var(--font); color: var(--muted); border: 1px solid var(--border); border-radius: 5px; padding: 4px 6px; }

/* segmented control */
.seg { display: inline-flex; background: var(--sunken); border: 1px solid var(--border); border-radius: 9px; padding: 2px; gap: 2px; }
.seg button { border: 0; background: transparent; padding: 5px 12px; border-radius: 7px; color: var(--text-2); font-weight: 540; display: inline-flex; align-items: center; gap: 6px; }
.seg button:hover { color: var(--text); }
.seg button.on { background: var(--surface); color: var(--text); box-shadow: var(--shadow); }
.seg.small button { padding: 3px 10px; font-size: 12.5px; }
.review-unread-badge { display:inline-flex; align-items:center; justify-content:center; min-width:19px; height:19px; padding:0 5px; border-radius:999px; background:#bc3347; color:white; font-size:11px; font-weight:650; line-height:1; }
.scrim.center.review-reminder-scrim { align-items:center; padding:24px 0; background:rgba(24,29,35,.28); backdrop-filter:blur(5px); }
.review-reminder-scrim .modal { width:min(440px,calc(100vw - 32px)); padding:40px 32px 30px; box-shadow:0 24px 90px rgba(22,30,40,.18); }
.review-reminder { display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; }
.review-reminder-icon { display:grid; place-items:center; width:58px; height:58px; border:1px solid #eadce0; border-radius:18px; background:linear-gradient(145deg,#fbf4f5,#f3e8eb); color:#a8364a; margin-bottom:6px; }
.review-reminder h2 { font-size:25px; font-weight:580; line-height:1.25; letter-spacing:-.65px; margin:0; max-width:330px; }
.review-reminder p { line-height:1.6; margin:0; max-width:305px; }
.review-reminder-actions { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:12px; }
.seg.cats button { padding: 3px 9px; font-size: 12px; }
.seg.cats button.on.c-needed { background: var(--good-soft); color: var(--needed); }
.seg.cats button.on.c-optional { background: var(--surface); color: var(--optional); }
.seg.cats button.on.c-unnecessary { background: var(--warn-soft); color: var(--unnecessary); }
.seg.cats button.on.c-harmful { background: var(--bad-soft); color: var(--harmful); }

.toggle { width: 34px; height: 20px; border-radius: 999px; border: 0; background: var(--border-strong); position: relative; padding: 0; flex: none; transition: background .15s; }
.toggle span { position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: transform .15s; }
.toggle.on { background: var(--accent); }
.toggle.on span { transform: translateX(14px); }
.radio { width: 18px; height: 18px; border-radius: 50%; border: 1.6px solid var(--border-strong); background: var(--surface); padding: 0; position: relative; flex: none; }
.radio.on { border-color: var(--accent); }
.radio.on::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--accent); }

.badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 560; background: var(--sunken); color: var(--text-2); white-space: nowrap; }
.badge.accent { background: var(--accent-soft); color: var(--accent-text); }
.badge.good { background: var(--good-soft); color: var(--good); }
.badge.warn { background: var(--warn-soft); color: var(--warn); }
.badge.bad { background: var(--bad-soft); color: var(--bad); }
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--border-strong); display: inline-block; flex: none; }
.dot.good { background: var(--good); } .dot.warn { background: var(--warn); } .dot.bad { background: var(--bad); }
.dot.violet { background: var(--violet); } .dot.muted { background: var(--border-strong); } .dot.live { background: var(--accent); }

.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.callout { background: var(--accent-soft); color: var(--accent-text); border-radius: var(--radius-sm); padding: 10px 12px; font-size: 13px; }
.callout.bad { background: var(--bad-soft); color: var(--bad); }

/* Pages, rather than an editor packed beside a case sidebar. */
.app { min-height:100vh; display:flex; flex-direction:column; }
.topbar { height:64px; flex:none; padding:0 40px; background:var(--surface); border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; }
.brand-button.btn { border:0; padding:0; font-size:19px; font-weight:700; letter-spacing:-.6px; background:none; }
.topbar-tools { display:flex; align-items:center; gap:22px; }
.mode-label { font-size:12px; color:var(--muted); }
.main { min-width:0; flex:1; }
.content { padding:36px 40px 72px; }
.library { max-width:1120px; margin:0 auto; }
.library-head { display:flex; justify-content:space-between; gap:20px; align-items:center; margin:30px 0 38px; }
.library h1 { font-size:34px; font-weight:630; letter-spacing:-1.1px; }
.library-sub { color:var(--muted); margin-top:9px; font-size:15px; }
.library-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.library-toolbar input { max-width:300px; background:var(--surface); }
.library-table { border-top:1px solid var(--border); }
.library-columns,.library-row { display:grid; grid-template-columns:minmax(0,1fr) 110px 150px 22px; gap:24px; align-items:center; }
.library-columns { padding:15px 18px; color:var(--muted); font-size:12px; }
.library-row { padding:24px 18px; border-top:1px solid var(--border); text-decoration:none; color:var(--text); transition:background .15s; }
.library-row:hover { background:var(--surface); }
.library-row > .icon { color:var(--muted); }
.library-case { display:grid; gap:5px; min-width:0; }
.library-case strong { font-size:16px; font-weight:570; overflow-wrap:anywhere; }
.library-case > span { font-size:12px; color:var(--muted); }
.library-split,.library-status { font-size:13px; color:var(--text-2); }
.library-status { display:flex; align-items:center; gap:8px; }
.library-empty { display:grid; justify-items:start; gap:12px; padding:50px 18px; border-top:1px solid var(--border); }
.library-footer { display:flex; justify-content:space-between; padding:22px 18px; border-top:1px solid var(--border); font-size:12px; color:var(--muted); }
.case-view { max-width:1240px; margin:0 auto; }
.workspace-header { padding:26px 40px 22px; }
.workspace-breadcrumb { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.back .icon { transform:rotate(180deg); }
.back.btn { padding-left:0; color:var(--muted); }
.workspace-title { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.workspace-title h1 { font-size:27px; font-weight:580; letter-spacing:-.65px; overflow-wrap:anywhere; }
.save-state { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:12px; }
.save-state.error { color:var(--bad); }
.save-state.saved::before { content:""; width:5px; height:5px; border-radius:50%; background:var(--good); }
.tabs { display:flex; gap:28px; margin:0 40px; border-bottom:1px solid var(--border); }
.tab { border:0; background:none; padding:13px 0; display:flex; align-items:center; gap:7px; position:relative; white-space:nowrap; color:var(--muted); }
.tab.on { color:var(--text); }
.tab.on::after { content:""; height:2px; background:var(--text); position:absolute; left:0; right:0; bottom:-1px; }
.tab-label { font-size:13px; font-weight:550; }
.tab .count { font-size:10px; min-width:17px; height:17px; background:var(--sunken); color:var(--text-2); border-radius:20px; padding:0 5px; display:grid; place-items:center; }
.new-page { max-width:720px; margin:0 auto; }
.new-sheet { margin-top:28px; background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:36px; }
.new-sheet h2 { font-size:26px; margin-bottom:12px; }
/* ---------- case tab ---------- */
.case-grid { display:grid; grid-template-columns:200px minmax(0,1fr); gap:48px; align-items:start; }
.section-nav { display:grid; align-content:start; gap:6px; padding-top:3px; position:sticky; top:24px; }
.section-link { border:0; background:none; text-align:left; padding:11px 10px; display:flex; align-items:center; gap:10px; color:var(--muted); border-radius:6px; font-size:13px; }
.section-link:hover { color:var(--text); background:var(--surface); }
.section-link.active { background:var(--surface); color:var(--text); box-shadow:0 0 0 1px var(--border); font-weight:570; }
.section-number { font-size:11px; font-variant-numeric:tabular-nums; color:var(--muted); width:16px; }
.section-tools { border-top:1px solid var(--border); margin-top:24px; padding-top:15px; display:grid; gap:5px; justify-items:start; }
.section-tools .btn { padding:0 10px; }
.editor { min-width:0; display:grid; gap:22px; max-width:810px; }
.editor-heading { display:flex; justify-content:space-between; gap:16px; align-items:center; }
.editor-heading h2 { font-size:22px; font-weight:570; letter-spacing:-.4px; }
.editor-position { color:var(--muted); font-size:12px; }
.editor-body { background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:28px; min-height:260px; }
.editor-footer { border-top:1px solid var(--border); padding-top:20px; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.editor-body.review-body { padding:0; border:0; background:transparent; }
.author-question-workspace { display:grid; gap:20px; min-width:0; }
.request-deck-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.request-deck-toolbar > div { display:grid; gap:3px; }
.request-count { font-size:19px; font-weight:580; letter-spacing:-.4px; }
.request-scan-status { display:flex; align-items:center; gap:9px; min-height:24px; color:var(--text-2); font-size:12px; }
.request-scan-status .loading-ring { width:12px; height:12px; }
.request-stack { position:relative; padding:0 0 18px; isolation:isolate; min-width:0; }
.request-stack-back { position:absolute; inset:8px 9px 8px; z-index:-1; border:1px solid #dfe3e9; border-radius:20px; background:#f9fafc; box-shadow:0 3px 10px #18263905; pointer-events:none; }
.request-stack-back.second { inset:16px 18px 0; background:#f0f2f6; }
.request-stack[data-depth="1"] .request-stack-back { display:none; }
.request-stack[data-depth="2"] .request-stack-back.second { display:none; }
.request-front { min-width:0; padding:30px; border:1px solid #dce1e8; border-radius:20px; background:linear-gradient(145deg,#fff 65%,#fbfcfe); box-shadow:0 10px 35px #17274408,0 1px 3px #17274404; animation:request-enter .28s cubic-bezier(.2,.7,.2,1); }
.request-front:focus { outline:none; }
.request-front:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.request-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:24px; }
.request-kind { padding:5px 10px; border:1px solid #e4e7ed; border-radius:20px; color:var(--text-2); font-size:11px; font-weight:550; }
.request-title { display:block; font-size:24px; line-height:1.35; font-weight:550; letter-spacing:-.5px; overflow-wrap:anywhere; }
.request-context { margin-top:12px; color:var(--muted); }
.request-branches { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:24px; }
.request-branch { display:flex; align-items:center; text-align:left; gap:12px; min-width:0; padding:16px; border:1px solid #dfe3ea; background:#fff; border-radius:12px; transition:background .16s,border-color .16s,box-shadow .16s; }
.request-branch > span { display:grid; gap:3px; }
.request-branch strong { font-size:14px; font-weight:580; }
.request-branch small { color:var(--muted); font-size:11px; }
.request-branch:hover { border-color:#a6b0c5; background:#fafbfe; }
.request-branch.selected { border-color:#8597c7; background:#f3f5fc; box-shadow:0 0 0 1px #8597c740; }
.request-branch-detail { display:grid; gap:20px; padding-top:24px; animation:request-detail .2s ease-out; }
.request-label-choices { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.request-label-choice { min-width:0; text-align:left; padding:13px 15px; display:grid; gap:4px; border:1px solid var(--border); border-radius:10px; background:#fafbfc; }
.request-label-choice strong { font-size:13px; font-weight:570; }
.request-label-choice span { color:var(--muted); font-size:11px; line-height:1.45; }
.request-label-choice.selected { background:#edf1fa; border-color:#95a3c7; }
.request-submit-row { display:flex; align-items:center; justify-content:space-between; gap:18px; border-top:1px solid var(--border); padding-top:20px; }
.request-submit-row > .hint { max-width:280px; }
.request-empty { padding:44px 26px; display:grid; justify-items:center; gap:14px; text-align:center; }
.request-empty > .icon { color:var(--good); }
.request-empty h3 { font-size:20px; font-weight:550; }
.request-footnote { color:var(--muted); font-size:11.5px; max-width:70ch; line-height:1.65; }
.request-saved-receipt { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:9px 13px; background:#eef5f0; border-radius:10px; color:#39634a; }
.request-saved-receipt > span { display:flex; align-items:center; gap:8px; font-size:12px; }
.request-directory { overflow:hidden; padding:4px 18px; }
.request-list-row { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 0; }
.request-list-row + .request-list-row { border-top:1px solid var(--border); }
.request-list-row > div { display:grid; gap:5px; min-width:0; }
.request-list-row strong { font-size:13px; font-weight:550; overflow-wrap:anywhere; }
.request-source-list { display:grid; gap:18px; padding:16px 0; }
.request-source { display:grid; gap:10px; }
.request-source blockquote { margin:5px 0 0; padding:12px 14px; border:1px solid var(--border); border-radius:8px; background:var(--surface); color:var(--text-2); white-space:pre-wrap; overflow-wrap:anywhere; }
.check-return { position:sticky; top:12px; z-index:18; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:13px 16px; background:#f2f5fbf5; border:1px solid #cfd8eb; border-radius:12px; box-shadow:0 6px 25px #1827440b; backdrop-filter:blur(12px); }
.check-return > div:first-child { display:grid; gap:2px; min-width:0; }
.check-return strong { font-size:13px; overflow-wrap:anywhere; }
.check-summary { display:flex; align-items:center; gap:13px; padding:18px; background:#f5f7fa; border-radius:12px; }
.check-summary > span { display:grid; place-items:center; width:35px; height:35px; flex:none; border-radius:50%; background:#fff; color:var(--text-2); }
.check-summary > span.complete-checkmark { color:var(--good); background:var(--good-soft); }
.check-summary strong { font-size:14px; font-weight:570; }
.check-summary .hint { margin-top:4px; }
.completion-finding { display:flex; gap:13px; align-items:center; padding:18px 0; transition:background .25s,color .25s,opacity .25s; scroll-margin:100px; }
.completion-finding > div { flex:1; min-width:0; }
.completion-finding .finding-status { flex:none; display:grid; place-items:center; width:25px; height:25px; border:1px solid var(--border-strong); border-radius:50%; color:var(--text-2); font-size:12px; }
.completion-finding.is-resolved { color:#7b8581; }
.completion-finding.is-resolved .finding-status { border-color:#dce9df; background:#f0f6f2; color:#6c8e75; }
.completion-finding.is-resolved .hint { color:#8c9590; }
.completion-finding .resolved-label { font-size:11px; color:#64816c; }
.completion-finding.just-returned { animation:check-return-highlight 1.3s ease-out; }
.excluded-finding { padding:18px; display:grid; gap:10px; }
@keyframes request-enter { from { opacity:0; transform:translateY(7px) scale(.995); } to { opacity:1; transform:none; } }
@keyframes request-detail { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }
@keyframes check-return-highlight { from { background:#edf3ed; } to { background:transparent; } }
@media(max-width:650px) {
  .request-front { padding:20px 17px; border-radius:16px; }
  .request-title { font-size:21px; }
  .request-card-top { margin-bottom:20px; }
  .request-branch { padding:13px 10px; gap:8px; }
  .request-branch small { font-size:10px; }
  .request-label-choice { padding:12px 10px; }
  .request-submit-row { align-items:stretch; flex-direction:column; gap:12px; }
  .request-branch-detail .seg { display:flex; flex-wrap:wrap; }
  .check-return { top:6px; }
  .check-return .row { width:100%; }
  .check-return .btn.primary { height:auto; min-height:34px; white-space:normal; }
  .completion-finding { gap:10px; }
}
@media(prefers-reduced-motion:reduce) {
  .request-front,.request-branch-detail,.completion-finding.just-returned { animation:none; }
  .request-branch,.completion-finding { transition:none; }
}
.side-card { padding: 16px; display: grid; gap: 10px; }
.side-card h3.ok { color: var(--good); } .side-card h3.bad { color: var(--bad); }
.section { padding: 20px 22px; display: grid; gap: 16px; }
.section.auto { border-color: var(--warn); box-shadow: 0 0 0 3px var(--warn-soft); }
.section-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.section-head h2 { display: flex; align-items: baseline; gap: 8px; }
.section-count { font-size: 12.5px; color: var(--muted); font-weight: 500; }
.section-hint { color: var(--muted); font-size: 13px; margin-top: 3px; max-width: 70ch; }
.auto-flag { display: flex; align-items: center; gap: 8px; color: var(--warn); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.draft { padding: 20px 22px; display: grid; gap: 14px; border-style: dashed; border-color: var(--accent); background: linear-gradient(var(--surface), var(--surface)) padding-box; }
.draft-head { display: flex; gap: 12px; color: var(--accent-text); }
.draft-head h2 { color: var(--text); }
.with-mic { position: relative; display: flex; gap: 8px; align-items: flex-start; }
.with-mic > textarea { flex: 1; }
.mic { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--border-strong); background: var(--surface); color: var(--text-2); display: inline-flex; align-items: center; justify-content: center; gap: 6px; transition: all .15s; }
.mic:hover { color: var(--accent); border-color: var(--accent); }
.mic.big { width: auto; height: 40px; border-radius: 999px; padding: 0 16px; font-weight: 580; }
.mic.rec { background: var(--bad); border-color: var(--bad); color: #fff; width: auto; border-radius: 999px; padding: 0 12px; animation: pulse 1.6s infinite; }
.mic-time { font-variant-numeric: tabular-nums; font-size: 12.5px; font-weight: 600; }
@keyframes pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(201, 58, 63, .35); } 50% { box-shadow: 0 0 0 7px rgba(201, 58, 63, 0); } }

.disclosure-btn { border: 0; background: none; color: var(--text-2); display: inline-flex; align-items: center; gap: 6px; padding: 2px 0; font-weight: 560; font-size: 13px; }
.disclosure-btn .icon { transition: transform .15s; }
.disclosure.open .disclosure-btn .icon { transform: rotate(90deg); }
.disclosure-body { padding-top: 12px; }

.dx-table { display: grid; gap: 4px; }
.dx-row { display: grid; grid-template-columns: 52px minmax(0, 1fr) 200px 76px 30px; align-items: center; gap: 12px; padding: 4px 6px; border-radius: 9px; }
.dx-row.head { font-size: 11.5px; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.dx-row.correct { background: var(--accent-soft); }
.dx-row .radio { margin-left: 14px; }
.dx-row input:not([type]) { border-color: transparent; background: transparent; padding: 6px 8px; }
.dx-row input:not([type]):hover { border-color: var(--border); }
.dx-row .toggle { margin-left: 18px; }
.prior { display: flex; align-items: center; gap: 14px; min-width: 0; }
.prior output { font-variant-numeric: tabular-nums; flex: 0 0 48px; text-align: right; font-size: 12.5px; color: var(--text-2); }
.prior input[type="range"] { appearance: none; -webkit-appearance: none; min-width: 0; width: 100%; height: 28px; cursor: ew-resize; outline-offset: 5px; }
.prior input[type="range"]::-webkit-slider-runnable-track { height: 7px; border-radius: 99px; background: linear-gradient(to right, transparent 0 var(--prior-position), var(--sunken) var(--prior-position) 100%), linear-gradient(90deg, #4c9c80, #dab15f 50%, #cc7377); box-shadow: inset 0 0 0 1px rgba(30,40,35,.05); }
.prior input[type="range"]::-moz-range-track { height: 7px; border-radius: 99px; background: linear-gradient(to right, transparent 0 var(--prior-position), var(--sunken) var(--prior-position) 100%), linear-gradient(90deg, #4c9c80, #dab15f 50%, #cc7377); }
.prior input[type="range"]::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin-top: -5.5px; border-radius: 50%; background: var(--surface); border: 1px solid var(--border-strong); box-shadow: 0 1px 4px rgba(25,35,30,.15); transition: box-shadow .15s, transform .15s; }
.prior input[type="range"]::-moz-range-thumb { width: 17px; height: 17px; border-radius: 50%; background: var(--surface); border: 1px solid var(--border-strong); box-shadow: 0 1px 4px rgba(25,35,30,.15); transition: box-shadow .15s, transform .15s; }
.prior input[type="range"]:hover::-webkit-slider-thumb { box-shadow: 0 0 0 4px rgba(116,136,124,.12), 0 1px 4px rgba(25,35,30,.15); }
.prior input[type="range"]:active::-webkit-slider-thumb { transform: scale(1.12); box-shadow: 0 0 0 6px rgba(116,136,124,.15); }
.prior input[type="range"]:active::-moz-range-thumb { transform: scale(1.12); box-shadow: 0 0 0 6px rgba(116,136,124,.15); }
.prior-distribution { height: 7px; display: flex; gap: 2px; overflow: hidden; border-radius: 99px; background: var(--sunken); margin: 0 0 3px; }
.prior-segment { min-width: 0; background: var(--prior-segment); transition: width .12s ease-out; }
.prior-empty { margin: 0; }
@media(prefers-reduced-motion:reduce) {
 .prior input[type="range"]::-webkit-slider-thumb { transition:none; transform:none!important; }
 .prior input[type="range"]::-moz-range-thumb { transition:none; transform:none!important; }
 .prior-segment { transition:none; }
}
.add-row { display: flex; gap: 8px; }
.add-row input { flex: 1; }
.add-row .btn { height: auto; }

.chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; border: 1px solid var(--border-strong); border-radius: var(--radius-sm); padding: 5px 7px; background: var(--surface); cursor: text; min-height: 38px; }
.chips:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.chips input { border: 0; box-shadow: none !important; padding: 3px 4px; flex: 1; min-width: 120px; width: auto; background: transparent; }
.chip { display: inline-flex; align-items: center; gap: 4px; background: var(--sunken); border: 1px solid var(--border); border-radius: 6px; padding: 2px 4px 2px 8px; font-size: 12.5px; }
.chip button { border: 0; background: none; color: var(--muted); padding: 2px; display: grid; border-radius: 4px; }
.chip button:hover { color: var(--text); background: var(--border); }
.toggle-chip { padding: 4px 10px; cursor: pointer; color: var(--text-2); }
.toggle-chip.on { background: var(--accent-soft); border-color: var(--accent); color: var(--accent-text); }
.req { display: flex; flex-wrap: wrap; gap: 6px; }

.fact-list { display: grid; gap: 6px; }
.fact { border: 1px solid var(--border); border-radius: 10px; background: var(--surface); transition: border-color .12s; }
.fact:hover { border-color: var(--border-strong); }
.fact.open { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.fact-sum { width: 100%; display: grid; grid-template-columns: 62px minmax(0, 1fr) auto 16px; align-items: center; gap: 12px; padding: 10px 12px; background: none; border: 0; text-align: left; }
.fact-sum > .icon { color: var(--muted); transition: transform .15s; }
.fact.open .fact-sum > .icon { transform: rotate(90deg); }
.kind { align-self: center; font-size: 11px; font-weight: 640; text-align: center; border-radius: 6px; padding: 2px 0; background: var(--sunken); color: var(--text-2); }
.kind.exam { background: var(--violet-soft); color: var(--violet); }
.fact-text { display: grid; min-width: 0; }
.fact-topic { font-weight: 560; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fact-topic::first-letter { text-transform: uppercase; }
.fact-reveal { color: var(--muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fact-tags { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; max-width: 300px; }
.fact-body { padding: 4px 16px 16px; display: grid; gap: 14px; border-top: 1px solid var(--border); padding-top: 16px; }
.switch-row { display: flex; gap: 12px; align-items: flex-start; }
.ev-chip { font-size: 11.5px; padding: 1px 7px; border-radius: 999px; white-space: nowrap; }
.ev-chip.up { background: var(--good-soft); color: var(--good); }
.ev-chip.down { background: var(--sunken); color: var(--text-2); }

.evidence { display: grid; gap: 4px; }
.ev-row { display: grid; grid-template-columns: 170px auto 1fr; align-items: center; gap: 12px; }
.ev-dx { font-size: 13px; color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev-scale { display: inline-flex; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: var(--sunken); }
.ev-opt { width: 36px; height: 28px; border: 0; border-right: 1px solid var(--border); background: transparent; color: var(--muted); font-size: 12.5px; font-weight: 600; }
.ev-opt:last-child { border-right: 0; }
.ev-opt:hover { background: var(--surface); color: var(--text); }
.ev-opt.on { color: #fff; }
.ev-opt.on.neutral { background: var(--border-strong); color: var(--text); }
.ev-opt.on.supports, .ev-opt.on.strongly_supports, .ev-opt.on.confirms { background: var(--good); }
.ev-opt.on.against, .ev-opt.on.strongly_against, .ev-opt.on.rules_out { background: var(--optional); }
.ev-opt.on.approx { outline: 2px dashed var(--surface); outline-offset: -4px; }
.ev-word { font-size: 12px; color: var(--muted); }

.orders { display: grid; gap: 2px; }
.order-legend { display: flex; gap: 14px; font-size: 12px; margin-bottom: 6px; flex-wrap: wrap; }
.legend { color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }
.legend::before { content: ""; width: 8px; height: 8px; border-radius: 3px; background: currentColor; }
.legend.c-needed { color: var(--needed); } .legend.c-optional { color: var(--optional); } .legend.c-unnecessary { color: var(--unnecessary); } .legend.c-harmful { color: var(--harmful); }
.order { border-radius: 9px; }
.order.open { background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--border); }
.order-line { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 5px 6px; border-radius: 9px; }
.order:not(.open) .order-line:hover { background: var(--surface-2); }
.order-name { display: flex; align-items: center; gap: 8px; background: none; border: 0; text-align: left; padding: 3px 0; min-width: 0; font-weight: 520; }
.order-name:disabled { cursor: default; }
.order-name .icon { color: var(--muted); transition: transform .15s; }
.order.open .order-name .icon { transform: rotate(90deg); }
.order.unlabeled .order-name { color: var(--muted); font-weight: 450; }
.cost { font-size: 11.5px; color: var(--muted); font-weight: 450; }
.order-cat { display: flex; align-items: center; gap: 4px; flex: none; }
.order-body { padding: 4px 14px 16px 34px; display: grid; gap: 14px; }

.todo { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; font-size: 13px; color: var(--text-2); }
.todo li { display: flex; gap: 9px; align-items: flex-start; }
.todo-dot { width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--warn); flex: none; margin-top: 2px; }
.preview-form input { margin-top: 2px; }
.preview-out { display: grid; gap: 8px; }
.bars { display: grid; gap: 6px; }
.bar-row { display: grid; grid-template-columns: 120px 1fr 42px; align-items: center; gap: 8px; font-size: 12px; }
.bar-label { color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bar { height: 8px; background: var(--sunken); border-radius: 4px; overflow: hidden; }
.bar span { display: block; height: 100%; background: var(--border-strong); border-radius: 4px; }
.bar-row.honest .bar span { background: var(--good); }
.bar-row.honest .bar-label { color: var(--text); font-weight: 600; }
.bar-row.flag .bar span { background: var(--bad); }
.bar-num { text-align: right; font-variant-numeric: tabular-nums; color: var(--text-2); }
.danger-zone { display: flex; justify-content: flex-end; padding-top: 4px; }

/* chat bubbles */
.bubble { padding: 9px 12px; border-radius: 12px; max-width: 88%; font-size: 13.5px; line-height: 1.45; width: fit-content; }
.bubble.patient { background: var(--sunken); border-top-left-radius: 4px; }
.bubble.patient.result { background: var(--violet-soft); color: var(--text); font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 12.5px; }
.bubble.doctor { background: var(--accent-soft); color: var(--text); margin-left: auto; border-top-right-radius: 4px; }
.who { display: block; font-size: 10.5px; color: var(--muted); font-weight: 600; margin-bottom: 2px; text-transform: uppercase; letter-spacing: .04em; }

/* ---------- runs ---------- */
.runs, .run-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; max-width: 980px; }
.run-head { padding: 22px; display: grid; gap: 16px; }
.run-title { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.progress { height: 4px; border-radius: 2px; background: var(--sunken); overflow: hidden; }
.progress span { display: block; height: 100%; background: var(--accent); transition: width .4s; }
.difficulty { display: grid; gap: 12px; }
.diff-main { display: flex; align-items: baseline; gap: 12px; }
.diff-label { font-size: 24px; font-weight: 680; letter-spacing: -.02em; }
.diff-label.good { color: var(--good); } .diff-label.warn { color: var(--warn); } .diff-label.violet { color: var(--violet); } .diff-label.muted { color: var(--muted); }
.diff-num { color: var(--text-2); }
.scale { position: relative; display: flex; height: 26px; border-radius: 7px; overflow: visible; font-size: 11px; font-weight: 600; margin-top: 18px; }
.zone { display: flex; align-items: center; padding-left: 8px; color: var(--muted); }
.zone:first-child { border-radius: 7px 0 0 7px; } .zone:nth-child(4) { border-radius: 0 7px 7px 0; }
.z-unsolved { background: var(--violet-soft); } .z-target { background: var(--good-soft); color: var(--good); } .z-easy { background: var(--warn-soft); color: var(--warn); } .z-solved { background: var(--sunken); }
.marker { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--text); border-radius: 1px; transform: translateX(-1px); }
.marker span { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); background: var(--text); color: var(--surface); padding: 1px 6px; border-radius: 4px; font-size: 11px; margin-bottom: 3px; }
.run-card > .card { padding: 18px 22px; }
.run-card > .card h3 { margin-bottom: 12px; }
.model-rows { display: grid; gap: 8px; }
.model-row { display: grid; grid-template-columns: minmax(160px, 260px) 1fr auto; align-items: center; gap: 14px; }
.model-name { font-weight: 560; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.model-score { color: var(--muted); font-variant-numeric: tabular-nums; font-size: 12.5px; }
.attempt-dots { display: flex; gap: 6px; flex-wrap: wrap; }
.adot { width: 24px; height: 24px; border-radius: 7px; border: 0; display: grid; place-items: center; color: #fff; padding: 0; font-size: 12px; font-weight: 700; }
.adot.pass { background: var(--good); } .adot.fail { background: var(--bad); } .adot.err { background: var(--warn); }
.adot.pending { background: var(--sunken); border: 1px dashed var(--border-strong); animation: breathe 1.4s infinite; }
.adot.small { width: 10px; height: 10px; border-radius: 3px; }
@keyframes breathe { 50% { opacity: .45; } }
.attempt-list { display: grid; margin-top: 14px; border-top: 1px solid var(--border); }
.attempt { display: grid; grid-template-columns: 10px 220px 1fr 52px 14px; align-items: center; gap: 12px; padding: 9px 4px; border: 0; border-bottom: 1px solid var(--border); background: none; text-align: left; font-size: 13px; }
.attempt:hover { background: var(--surface-2); }
.attempt:last-child { border-bottom: 0; }
.attempt-model { font-weight: 540; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attempt-why { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attempt-score { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.attempt .icon { color: var(--muted); }
.audit-mini { display: flex; gap: 14px; align-items: flex-start; color: var(--good); }
.audit-mini.flag { color: var(--bad); }
.audit-mini h3 { color: var(--text); margin-bottom: 4px !important; }
.next-step { display: flex !important; justify-content: space-between; align-items: center; gap: 16px; border-color: var(--accent); background: var(--accent-soft); }
.next-step h3 { margin-bottom: 2px !important; }
.run-history { padding: 18px 22px; }
.hist-row { display: grid; grid-template-columns: 40px 190px 10px 1fr auto; gap: 12px; align-items: center; padding: 6px 0; font-size: 13px; border-top: 1px solid var(--border); }
.empty-run { padding: 32px; display: grid; gap: 24px; justify-items: start; max-width: 980px; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; width: 100%; }
.step { display: grid; gap: 6px; align-content: start; }
.step p { color: var(--muted); font-size: 13px; }
.step-n { width: 26px; height: 26px; border-radius: 50%; background: var(--accent-soft); color: var(--accent-text); display: grid; place-items: center; font-weight: 700; font-size: 13px; }
.run-config { display: grid; gap: 8px; }

/* ---------- drawer ---------- */
.scrim { position: fixed; inset: 0; background: rgba(15, 18, 22, .32); z-index: 40; display: flex; justify-content: flex-end; animation: fade .15s; }
.scrim.center { justify-content: center; align-items: flex-start; padding-top: 9vh; }
@keyframes fade { from { opacity: 0; } }
.drawer { width: min(640px, 100vw); height: 100%; background: var(--surface); box-shadow: var(--shadow-lg); display: flex; flex-direction: column; animation: slide .2s ease-out; }
@keyframes slide { from { transform: translateX(30px); opacity: .6; } }
.drawer-head { display: flex; align-items: center; gap: 14px; padding: 18px 20px; border-bottom: 1px solid var(--border); }
.drawer-head > div { flex: 1; }
.total { font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; padding: 2px 10px; border-radius: 8px; }
.total.pass { background: var(--good-soft); color: var(--good); } .total.fail { background: var(--bad-soft); color: var(--bad); }
.drawer-body { flex: 1; min-height: 0; overflow-y: auto; padding: 18px 20px 40px; display: grid; gap: 14px; align-content: start; }
.opening { display: grid; gap: 6px; padding-bottom: 6px; border-bottom: 1px dashed var(--border); }
.turn { display: grid; gap: 6px; padding: 6px; border-radius: 10px; }
.turn.focus { background: var(--warn-soft); box-shadow: 0 0 0 1px var(--warn); }
.annot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 11.5px; padding-left: 2px; }
.gain { color: var(--good); font-weight: 650; }
.odds { display: inline-flex; gap: 10px; margin-left: auto; color: var(--muted); }
.odd { display: inline-flex; align-items: center; gap: 4px; }
.odd-bar { height: 4px; border-radius: 2px; background: var(--accent); display: inline-block; opacity: .7; }
.scorecard { border-top: 1px solid var(--border); padding-top: 16px; display: grid; gap: 8px; }
.sc-parts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 4px 0 8px; }
.sc-part { background: var(--sunken); border-radius: 9px; padding: 8px 10px; display: grid; }
.sc-part span { font-size: 11.5px; color: var(--muted); }
.sc-part strong { font-size: 17px; font-variant-numeric: tabular-nums; }
.sc-part:last-child { background: var(--accent-soft); color: var(--accent-text); }
.sc-line { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.sc-line.ok .icon { color: var(--good); } .sc-line.bad .icon { color: var(--bad); }
.sc-pts { margin-left: auto; color: var(--muted); font-variant-numeric: tabular-nums; }

/* ---------- questions ---------- */
.questions { max-width: 760px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.q-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.talk { border: 1px solid var(--border-strong); background: var(--surface); border-radius: 999px; padding: 6px 14px; display: inline-flex; align-items: center; gap: 7px; font-weight: 560; color: var(--text-2); white-space: nowrap; }
.talk.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.q-card { padding: 26px 28px; display: grid; gap: 18px; }
.q-card.followup { border-color: var(--accent); }
.q-meta { display: flex; justify-content: space-between; align-items: center; }
.q-prompt { font-size: 19px; line-height: 1.45; font-weight: 560; letter-spacing: -.01em; }
.q-context { display: flex; flex-wrap: wrap; gap: 16px; font-size: 13px; color: var(--muted); }
.unmatched { background: var(--sunken); border-radius: 9px; padding: 12px 14px; }
.unmatched ul { margin: 8px 0 0; padding-left: 18px; font-size: 13px; color: var(--text-2); }
.choices { display: grid; gap: 8px; }
.choice { display: flex; align-items: center; gap: 12px; text-align: left; border: 1px solid var(--border-strong); background: var(--surface); padding: 11px 14px; border-radius: 10px; font-weight: 540; transition: all .12s; }
.choice:hover { border-color: var(--accent); }
.choice.on { border-color: var(--accent); background: var(--accent-soft); box-shadow: 0 0 0 1px var(--accent); }
.with-mic.big textarea { font-size: 15px; min-height: 88px; }
.q-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.conf { display: flex; align-items: center; gap: 10px; }
.empty-q { padding: 40px; display: grid; justify-items: center; gap: 10px; text-align: center; color: var(--good); }
.empty-q h3 { color: var(--text); }
.answered { padding: 18px 22px; display: grid; gap: 4px; }
.ans { padding: 12px 0; border-top: 1px solid var(--border); display: grid; gap: 6px; }
.ans-q { color: var(--muted); font-size: 12.5px; }
.ans-a { font-size: 13.5px; }
.ans audio { height: 28px; max-width: 260px; }

/* ---------- peer ---------- */
.peer { max-width: 980px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.peer-start { padding: 26px; display: grid; grid-template-columns: 1.4fr 1fr; gap: 32px; }
.peer-copy { display: grid; gap: 10px; align-content: start; }
.peer-copy p { color: var(--text-2); }
.ticks { list-style: none; padding: 0; margin: 4px 0 0; display: grid; gap: 6px; font-size: 13px; color: var(--text-2); }
.ticks li { display: flex; gap: 8px; align-items: center; } .ticks .icon { color: var(--good); }
.peer-form { display: grid; gap: 12px; align-content: start; background: var(--surface-2); border: 1px solid var(--border); border-radius: 10px; padding: 18px; }
.peer-result { padding: 20px 22px; display: grid; gap: 14px; }
.peer-head { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.peer-stats { display: flex; gap: 24px; }
.peer-stats div { display: grid; text-align: right; }
.peer-stats strong { font-size: 20px; font-variant-numeric: tabular-nums; }
.peer-stats span { font-size: 11.5px; color: var(--muted); }
.peer-items { display: grid; }
.peer-item { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 8px 0; border-top: 1px solid var(--border); font-size: 13px; }
.pi-label::first-letter { text-transform: uppercase; }

/* blind solve: full screen, covers the case */
.solve-layer { position: fixed; inset: 0; z-index: 60; background: var(--bg); display: flex; flex-direction: column; animation: fade .2s; }
.solve { display: flex; flex-direction: column; height: 100%; }
.solve-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 28px; border-bottom: 1px solid var(--border); background: var(--surface); }
.solve-grid { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; padding: 20px 28px; max-width: 1200px; width: 100%; margin: 0 auto; }
.solve-left { display: flex; flex-direction: column; min-height: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.solve-chat { flex: 1; overflow-y: auto; overflow-anchor:none; padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.composer { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--border); background: var(--surface-2); align-items: center; }
.composer input, .composer select { flex: 1; }
.solve-right { padding: 18px; display: grid; gap: 12px; align-content: start; overflow-y: auto; }
.tx-list { display: grid; gap: 2px; }
.tx { display: flex; gap: 10px; align-items: center; padding: 6px 4px; font-size: 13px; border-radius: 6px; cursor: pointer; }
.tx:hover { background: var(--sunken); }
.solve-done { margin: 12vh auto; padding: 36px; display: grid; gap: 12px; justify-items: center; text-align: center; max-width: 480px; color: var(--good); }
.solve-done h2, .solve-done p { color: var(--text); }

/* ---------- modal ---------- */
.modal { width: min(560px, calc(100vw - 32px)); padding: 24px; box-shadow: var(--shadow-lg); animation: pop .16s ease-out; max-height: 84vh; overflow-y: auto; }
.modal.card { border: 0; }
@keyframes pop { from { transform: translateY(8px) scale(.98); opacity: 0; } }
.settings { width: 100%; }
.estimate { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.estimate > div { background: var(--sunken); border-radius: 10px; padding: 10px 12px; display: grid; }
.estimate strong { font-size: 18px; font-variant-numeric: tabular-nums; }
.est-row { display: flex; justify-content: space-between; font-size: 13px; }

#toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); background: var(--text); color: var(--surface); padding: 10px 16px; border-radius: 10px; font-size: 13px; box-shadow: var(--shadow-lg); opacity: 0; pointer-events: none; transition: all .2s; z-index: 80; max-width: min(560px, 92vw); }
#toast.show { opacity: 1; transform: translate(-50%, 0); }
#toast.error { background: var(--bad); color: #fff; }

/* Restrained colour, readable spacing, no decorative dashboard cards. */
:root { --bg:#f8f8f9; --surface:#fff; --surface-2:#fafafa; --sunken:#eeeeF0; --border:#e3e3e7; --border-strong:#d1d1d7; --text:#19191d; --text-2:#51515b; --muted:#6b6b75; --accent:#202024; --accent-hover:#09090b; --accent-soft:#ededf0; --accent-text:#242428; --radius:9px; --radius-sm:6px; --shadow:none; }
.btn { height:38px; font-size:13px; font-weight:550; }
.btn.small { height:31px; }
input,textarea,select { padding:10px 12px; border-radius:6px; }
.field-label { font-size:13px; font-weight:550; color:var(--text-2); }
.stack { gap:20px; }
.grid2 { gap:20px; }
.section-hint { margin-top:6px; color:var(--muted); font-size:13px; }
.disclosure-body { padding-top:16px; }
.disclosure-body .draft { margin-top:0; }
.draft-head { color:var(--text-2); }
.auto-flag { white-space:normal; font-size:12px; }
.dx-row { grid-template-columns:42px minmax(0,1fr) 150px 60px 28px; gap:8px; }
.dx-row.head { text-transform:none; letter-spacing:0; font-size:10.5px; }
.dx-row .radio { margin-left:9px; }
.dx-row .toggle { margin-left:10px; }
.fact-sum { grid-template-columns:54px minmax(0,1fr) auto 16px; padding:15px 14px; }
.fact-tags { max-width:120px; }
.fact-body { padding:22px; gap:22px; }
.ev-row { grid-template-columns:minmax(0,1fr) minmax(150px,240px); gap:12px; }
.ev-dx { white-space:normal; }
.order-legend { font-size:11px; flex-wrap:wrap; }
.order-line { gap:16px; padding:10px 0; }
.order-cat { flex:none; }
.order-cat select { width:160px; padding:7px 9px; font-size:12px; }
.order-name { min-width:0; text-align:left; flex-wrap:wrap; }
.order-body { padding:18px 8px; }
.modal { position:relative; padding:30px; }
.modal > .modal-close { position:absolute; right:10px; top:10px; width:30px; height:30px; padding:0; }
.modal > .stack > h2 { padding-right:20px; font-size:20px; }
.modal .side-card { box-shadow:none; }
.preview-form input { width:100%; }
.preview-form { display:grid; gap:10px; }
.preview-form > .btn { justify-self:end; }
.pass-rate-track { background:var(--sunken); }
.peer-start { gap:28px; }
.peer-copy p { font-size:14px; }
.results-toolbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; gap:15px; }
.runs,.questions,.peer { max-width:960px; margin:0 auto; }
.empty-run { padding:30px; }
.card { box-shadow:none; }
.q-prompt { font-size:20px; }
.solve-head { padding:16px 24px; }
@media(max-width:1000px) {
 .case-grid { grid-template-columns:170px minmax(0,1fr); gap:26px; }
 .content { padding:28px 26px 60px; }
 .workspace-header { padding:24px 26px; }
 .tabs { margin:0 26px; }
 .editor-body { padding:22px; }
 .dx-row { grid-template-columns:30px minmax(0,1fr) 110px 50px 24px; gap:4px; }
 .dx-row .toggle { margin-left:4px; }
 .peer-start { grid-template-columns:1fr; }
}
@media(max-width:720px) {
 .topbar { padding:0 20px; height:58px; }
 .topbar-tools { gap:10px; }
 .content { padding:24px 18px 50px; }
 .library-head { margin:14px 0 26px; }
 .library h1 { font-size:29px; }
 .library-sub { font-size:13px; max-width:220px; }
 .library-toolbar { align-items:stretch; flex-direction:column; gap:12px; }
 .library-toolbar input { max-width:none; }
 .library-toolbar .seg { align-self:flex-start; }
 .library-columns { display:none; }
 .library-row { grid-template-columns:minmax(0,1fr) auto; gap:10px; padding:21px 6px; }
 .library-case strong { font-size:14px; }
 .library-split { display:none; }
 .library-status { grid-column:1; grid-row:2; font-size:12px; }
 .library-row > .icon { grid-column:2; grid-row:1 / 3; }
 .library-footer { padding-left:6px; padding-right:6px; }
 .workspace-header { padding:18px 18px 12px; }
 .workspace-breadcrumb { margin-bottom:12px; }
 .workspace-title { gap:8px; align-items:start; }
 .workspace-title h1 { font-size:21px; }
 .workspace-title > .btn { flex-shrink:0; }
 .tabs { margin:0 18px; gap:22px; overflow-x:auto; }
 .tab-label { font-size:12px; }
 .case-grid { grid-template-columns:1fr; gap:25px; }
 .section-nav { position:static; display:flex; flex-wrap:wrap; gap:4px; }
 .section-link { font-size:11px; padding:8px; gap:5px; }
 .section-number { width:auto; }
 .section-tools { width:100%; display:flex; border-top:0; margin-top:5px; padding-top:0; }
 .editor-heading h2 { font-size:20px; }
 .editor-body { padding:18px; }
 .grid2,.grid3,.steps,.peer-start,.solve-grid { grid-template-columns:1fr; }
 .dx-row { grid-template-columns:26px minmax(0,1fr) 60px 28px; gap:5px; }
 .dx-row .prior,.dx-row.head > :nth-child(3) { display:none; }
 .dx-row.head > :nth-child(4) { font-size:10px; }
 .dx-row .radio { margin-left:2px; }
 .fact-sum { grid-template-columns:46px minmax(0,1fr) 14px; gap:8px; }
 .fact-tags { display:none; }
 .fact-body { padding:16px; }
 .ev-row { grid-template-columns:1fr; gap:5px; }
 .order-line { gap:8px; align-items:flex-start; }
 .order-cat select { width:120px; font-size:11px; }
 .order-name { font-size:12px; }
 .order-name .badge { display:none; }
 .order-cat { gap:0; }
 .editor-footer { flex-wrap:wrap; }
 .editor-footer > .row { margin-left:auto; }
 .model-row { grid-template-columns:1fr; gap:6px; }
 .attempt { grid-template-columns:10px minmax(0,1fr) 50px 14px; }
 .attempt-why { display:none; }
 .q-card { padding:20px; }
 .q-top,.q-foot,.peer-head { flex-wrap:wrap; }
 .q-prompt { font-size:17px; }
 .kbd { display:none; }
 .sc-parts { grid-template-columns:repeat(2,1fr); }
 .peer-item { grid-template-columns:10px minmax(0,1fr) auto; }
 .peer-item .muted { grid-column:2 / 4; }
 .solve-grid { overflow:auto; }
 .solve-left { min-height:55vh; }
 .composer { flex-wrap:wrap; }
 .composer .seg { width:100%; }
 .new-sheet { padding:24px; }
 .estimate { gap:6px; }
 .estimate strong { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important; } }

/* Diagnosis detail remains available without showing every scoring control. */
.dx-row { grid-template-columns:42px minmax(0,1fr) 66px 28px; }
.dx-row.head { font-size:11px; }
.dx-row .toggle { margin-left:12px; }
.prior-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(200px,48%); gap:20px; align-items:center; font-size:13px; }
@media(max-width:720px) {
 .dx-row { grid-template-columns:26px minmax(0,1fr) 52px 24px; }
 .dx-row.head > :nth-child(3) { display:block; }
 .dx-row .toggle { margin-left:4px; }
 .prior-row { grid-template-columns:1fr; gap:6px; }
 .prior-row .prior { display:flex; }
}

/* Focused finding editor. */
.finding-head { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.empty-run h2 { font-size:22px; font-weight:550; }
.run-card > .disclosure { padding:0 2px; }

/* Background authoring stays within the document, without moving focus. */
.brand-button { gap: 9px; }
.brand-mark { display: block; flex: none; }
.case-assistant { margin-top: 26px; padding: 16px 18px; border: 1px solid #dce4df; border-radius: 12px; background: #f7faf8; display: grid; gap: 11px; }
.assistant-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.assistant-heading strong { font-weight: 580; font-size: 13px; }
.assistant-dot { width: 7px; height: 7px; border-radius: 50%; background: #46725d; flex: none; }
.assistant-dot.working { animation: assistant-pulse 1.8s ease-in-out infinite; }
@keyframes assistant-pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .assistant-dot.working { animation: none; } }
.assistant-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: var(--text-2); }
.assistant-question { display: grid; gap: 10px; }
.guidance-detail { margin: 0; font-size: 13px; line-height: 1.55; color: var(--text-2); max-width: 68ch; }
.guidance-results { display: flex; flex-wrap: wrap; gap: 7px; }
.guidance-result { font-size: 11px; padding: 4px 8px; border: 1px solid var(--border); border-radius: 5px; }
.guidance-result.pass { color: #315c45; background: #edf5ef; }
.guidance-result.fail { color: #784d25; background: #fbf2e6; }
.assistant-question > p { font-size: 14px; line-height: 1.55; max-width: 66ch; }
.assistant-answer { border-top: 1px solid var(--border); padding-top: 15px; }
.assistant-trace { display: grid; gap: 14px; max-height: 300px; overflow-y: auto; border-top: 1px solid var(--border); padding-top: 14px; font-size: 12px; }
.assistant-trace strong { font-weight: 550; }
.assistant-trace p { color: var(--text-2); margin-top: 4px; }
.add-choices { display: grid; gap: 7px; }
.add-choice { width: 100%; display: flex; align-items: center; gap: 12px; text-align: left; border: 1px solid var(--border); background: white; padding: 13px; border-radius: 8px; }
.add-choice:hover { background: var(--surface-2); border-color: #9eb7a8; }
.add-choice > span { display: grid; gap: 2px; flex: 1; }
.add-choice strong { font-weight: 580; }
.add-picker { display: grid; gap: 6px; max-height: 360px; overflow: auto; }
.section-empty { padding: 25px 15px; text-align: center; border: 1px dashed var(--border-strong); border-radius: 8px; display: grid; gap: 6px; }
@media(max-width:640px) { .editor-heading { align-items: flex-start; gap: 12px; } .editor-heading > .row { flex-direction: column-reverse; align-items: flex-end; } .assistant-heading .row { flex-wrap: wrap; } .case-assistant { padding: 13px; } }

/* Account screens use the same restrained workspace styling. */
.auth-page { min-height:100dvh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:36px 20px; background:var(--bg, #f6f7f4); }
.auth-card { width:min(100%,420px); padding:36px; border:1px solid var(--line,#e2e6df); border-radius:18px; background:#fff; box-shadow:0 14px 48px #132c1d08; }
.auth-brand { display:flex; align-items:center; gap:10px; font-size:19px; font-weight:600; margin-bottom:12px; }
.auth-card h1 { font-size:26px; line-height:1.2; letter-spacing:-.6px; margin:0; }
.auth-card p { margin:0; line-height:1.55; }
.auth-card input { width:100%; min-height:44px; }
.auth-submit { width:100%; justify-content:center; margin-top:6px; min-height:44px; }
.auth-foot { font-size:12px; color:var(--muted,#68736b); margin-top:22px; text-align:center; }
.account-section { padding-top:20px; border-top:1px solid var(--line,#e2e6df); }
.account-person { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 0; }
.invite-code { font-family:ui-monospace,monospace; width:100%; font-size:12px; }
@media(max-width:600px) { .auth-card { padding:26px; } .topbar-tools { gap:4px; } .topbar-tools .mode-label { display:none; } }
.voice-control { display:contents; }
.voice-feedback { display:block; margin-top:8px; font-size:12px; color:var(--muted); }
.voice-feedback { line-height:1.5; }
.with-mic { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; }
.with-mic > textarea { min-width:0; width:100%; }
.voice-feedback { grid-column:1/-1; margin-top:0; }
.voice-spinner { display:inline-block; width:14px; height:14px; flex:none; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:voice-spin .75s linear infinite; }
@keyframes voice-spin { to { transform:rotate(360deg); } }
.voice-recording-dot { width:7px; height:7px; flex:none; border-radius:50%; background:var(--bad); animation:pulse 1.6s infinite; }
.voice-notice.is-recording { color:var(--bad); }
.voice-error { color:var(--bad); }
.voice-error .row { margin-top:5px; }
.voice-notice { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; padding:8px 20px; border-bottom:1px solid var(--border); background:var(--accent-soft); color:var(--accent-text); font-size:12px; }
.topbar-tools { min-width:0; }
.topbar-tools > .btn { min-width:0; }
.topbar-tools > .btn > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media(max-width:600px) { .topbar { flex-wrap:wrap; height:auto; min-height:64px; gap:10px; padding-top:12px; padding-bottom:12px; } .topbar-tools { margin-left:auto; max-width:100%; } .topbar-tools > .btn { max-width:160px; } }

.auth-options { display:flex; gap:4px; padding:4px; border-radius:9px; background:var(--bg,#f6f7f4); }
.auth-options .btn { flex:1; justify-content:center; min-height:38px; }
.auth-options .btn[aria-pressed="true"] { background:#fff; box-shadow:0 1px 4px #132c1d14; color:var(--text,#202820); }

/* Slow contour motion stays behind the form; no external assets or scripts. */
.auth-page { position:relative; isolation:isolate; overflow:clip; background:#eaf0e9; }
.auth-art { position:absolute; z-index:-1; inset:-32%; pointer-events:none;
  background:url('/auth-contours.svg') center/cover no-repeat; opacity:.48;
  animation:auth-contour-drift 18s ease-in-out -4.5s infinite alternate; }
.auth-page::after { content:""; position:absolute; z-index:-1; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at center,#eaf0e900 25%,#eaf0e980 100%); }
.auth-card { position:relative; flex-shrink:0; gap:16px; padding:30px; background:#fffffff7; border-color:#ffffff;
  box-shadow:0 24px 80px #294f3514,0 2px 8px #294f3505; }
.auth-footer { position:relative; display:flex; flex-direction:column; align-items:center; gap:10px; }
.auth-motion { border:0; padding:4px 8px; background:transparent; color:#607568; font-size:11px; border-radius:5px; }
.auth-motion:hover { color:#294d38; background:#ffffff80; }
.auth-motion:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.motion-paused .auth-art { animation-play-state:paused; }
.auth-spinner { display:inline-block; width:16px; height:16px; flex:none; border:2px solid currentColor;
  border-right-color:transparent; border-radius:50%; animation:auth-spin .8s linear infinite; }
.auth-loading { display:flex; align-items:center; gap:9px; font-size:13px; color:var(--muted); }
.auth-submit { gap:9px; }
.auth-card[aria-busy="true"] { cursor:progress; }
@keyframes auth-spin { to { transform:rotate(360deg); } }
@keyframes auth-contour-drift { from { transform:translate3d(-1.5%,-1%,0) rotate(-5deg); }
  to { transform:translate3d(1.5%,1%,0) rotate(5deg); } }
@media(prefers-reduced-motion:reduce) { .auth-art,.auth-spinner { animation:none; } }

.auth-card .auth-brand { margin-bottom:0; }
@media(max-width:600px) { .auth-page { padding:24px 16px; } .auth-card { padding:26px; } }

/* Feedback never becomes a layout item in the physician's input row. */
.dictation-feedback { padding:10px 14px; border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:0 5px 20px #17281e15; color:var(--muted); font-size:11px; line-height:1.5; font-weight:400; }
.dictation-feedback.dictation-error { color:var(--bad); }
[data-dictating="1"] { outline:2px solid var(--accent); outline-offset:2px; }
.voice-notice[hidden] { display:none; }

/* Fixed tools stay reachable while the physician works in a long case. */
.case-view .content { padding-bottom:132px; }
.editor-heading { position:sticky;top:0;z-index:6;background:var(--bg);padding:14px 0; }
.case-guidance-summary { display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 0 16px;color:var(--text-2);font-size:12px; }
.with-mic { grid-template-columns:minmax(0,1fr); }
.voice-control[hidden] { display:none; }
.question-dock { position:fixed;left:max(24px,env(safe-area-inset-left));bottom:max(24px,env(safe-area-inset-bottom));z-index:39;display:flex;flex-direction:column;align-items:flex-start;gap:12px;pointer-events:none; }
.question-dock > * { pointer-events:auto; }
.question-bubble { border:0;border-radius:28px 28px 28px 9px;min-height:52px;display:flex;align-items:center;gap:10px;padding:0 16px;background:#ae2f36;color:#fff;box-shadow:0 5px 20px #63262a24;font-size:13px;font-weight:600;transition:background .18s,transform .18s; }
.question-bubble:hover { background:#95262d;transform:translateY(-2px); }
.question-count { display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:14px;background:#fff;color:#a92c34;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums; }
.question-arrival { width:min(370px,calc(100vw - 32px));max-height:min(380px,calc(100dvh - 150px));overflow:auto;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:16px 16px 16px 5px;box-shadow:var(--shadow-lg);transform-origin:24px calc(100% + 36px);animation:question-unfold .32s cubic-bezier(.2,.8,.2,1); }
.question-arrival p { margin:14px 0 18px;font-size:14px;line-height:1.5; }
.question-arrival strong { font-size:13px; }
.question-arrival.retreating { animation:question-retreat .48s cubic-bezier(.5,0,.75,.3) forwards;pointer-events:none; }
.question-arrival .row.spread,.question-deck .row.spread,.question-inbox .row.spread { justify-content:space-between; }
.question-deck,.question-inbox { width:min(640px,calc(100vw - 32px));border-radius:16px;padding:28px;max-height:calc(100dvh - 40px);overflow:auto; }
.question-deck h2 { font-size:22px;line-height:1.35;margin:24px 0 12px; }
.question-deck .assistant-answer { margin-top:24px; }
.question-deck .q-card { border:0;padding:24px 0 0; }
.question-progress { display:flex;gap:5px;margin-top:14px; }
.question-progress span { height:3px;flex:1;border-radius:4px;background:var(--border); }
.question-progress span.on { background:var(--text); }
.question-disclosure { margin:22px 0 0;font-size:11px;color:var(--muted); }
.question-inbox { display:grid;gap:14px; }
.question-inbox h2 { font-size:20px; }
.question-list { display:grid;gap:8px; }
.question-list-item.btn { white-space:normal;height:auto;min-height:54px;padding:14px;text-align:left;justify-content:flex-start; }
.question-list-item > span { min-width:0;overflow-wrap:anywhere; }
.dictation-dock { position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:42;display:grid;gap:8px;justify-items:end;max-width:min(360px,calc(100vw - 32px)); }
.dictation-toggle { min-height:48px;max-width:100%;padding:10px 16px;border:1px solid var(--border-strong);border-radius:26px;background:var(--surface);box-shadow:0 5px 20px #17281e15;display:flex;align-items:center;gap:10px;color:var(--text-2);font-size:12px; }
.dictation-toggle > span:not(.voice-spinner):not(.voice-wave) { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.voice-audiogram { display:block;width:96px;height:20px;flex:0 0 96px; }
.voice-meter-fallback { display:block;width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#9d4444; }
.dictation-toggle:disabled { color:var(--muted);cursor:default; }
.transcribing .dictation-toggle,.voice-notice.transcribing {
 background:linear-gradient(105deg,#15151a 5%,#3d3d49 28%,#747482 48%,#3e3e4b 68%,#15151a 90%);
 background-size:260% 100%;border-color:#5d5d6c;color:#ffffff;
 animation:dictation-flow 2.6s linear infinite,dictation-glow 2.2s ease-in-out infinite;
}
.transcribing .dictation-toggle { cursor:progress; }
@keyframes dictation-flow { from {background-position:100% 50%} to {background-position:0% 50%} }
@keyframes dictation-glow { 0%,100% {box-shadow:0 0 0 1px #8b8b9b70,0 4px 20px #44445166} 50% {box-shadow:0 0 0 3px #a0a0b080,0 3px 30px #55556599} }
.recording .dictation-toggle { border-color:#dc8b8e;color:#a92c34;background:#fff8f8; }
.dictation-recovery { display:grid;gap:8px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-lg);font-size:12px; }
.question-scrim .dictation-dock { position:sticky;bottom:0;right:auto;margin-top:18px;padding-top:8px;background:var(--surface);max-width:none; }
.question-scrim .dictation-toggle { box-shadow:none; }
.activity-status { max-width:260px;font-size:11px;color:#784d25; }
@keyframes question-unfold { from {opacity:0;transform:translateY(25px) scale(.82,.55)} to {opacity:1;transform:translateY(0) scale(1)} }
@keyframes question-retreat { 40% {opacity:.9;transform:translateY(12px) scale(.8,.85)} to {opacity:0;transform:translateY(30px) scale(.08,.03)} }
@media(max-width:640px) {
 .question-dock { left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom)); }
 .question-bubble { min-height:48px;padding:0 13px; }
 .question-bubble-label { display:none; }
 .dictation-dock { right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));max-width:calc(100vw - 116px); }
 .dictation-toggle { padding:10px 12px; }
 .question-deck,.question-inbox { padding:22px; }
 .question-deck h2 { font-size:19px; }
 .editor-heading { gap:10px; }
 .editor-heading .section-hint { display:none; }
 .activity-status { max-width:140px; }
}
@media(prefers-reduced-motion:reduce) {
 .transcribing .dictation-toggle,.voice-notice.transcribing { animation:none;background-position:50% 50%;box-shadow:0 0 0 2px #237f7870,0 3px 18px #17685866; }
 .question-arrival { animation:none; }
 .question-arrival.retreating { opacity:0;animation:none; }
 .question-bubble { transition:none; }
}

/* Clinical feedback stays readable while the physician edits the case. */
.model-performance {margin:12px 0 20px;padding:16px 18px;border:1px solid #c9d9d2;border-radius:12px;background:#f2f7f4;}
.model-performance strong {font-size:13px;font-weight:600;}
.model-performance .hint {margin:8px 0 0;line-height:1.5;}
.performance-value {font-size:18px;font-variant-numeric:tabular-nums;color:#195347;}
.performance-bar {height:7px;margin-top:12px;border-radius:8px;background:#dce6e0;overflow:hidden;}
.performance-bar>span {display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#90909b,#27272e);transition:width .35s ease;}
.custom-action-form {padding:16px;border:1px solid var(--border);border-radius:10px;background:#f7f9f7;display:grid;gap:12px;}
.review-page {max-width:900px;display:grid;gap:18px;}
.review-page .card p {white-space:pre-wrap;line-height:1.6;}

/* Completed-case alternatives reuse the physician's authoring workspace. */
.alternatives-status {position:relative;overflow:hidden;margin:17px 40px 0;padding:13px 16px;border:1px solid #c9d8d0;border-radius:9px;background:#f2f7f3;display:flex;justify-content:space-between;align-items:center;gap:16px;color:#315b47;font-size:12px;min-height:48px;}
.alternatives-status>.row {align-items:center;gap:10px;position:relative;z-index:1;}
.alternatives-status>.btn {position:relative;z-index:1;}
.alternatives-workspace>.alternatives-status {margin:0 0 23px;}
.completion-sweep:before {content:"";position:absolute;inset:-1px;pointer-events:none;background:linear-gradient(110deg,transparent 15%,#c3c3d04d 35%,#a5a5b578 47%,#dedee77a 59%,transparent 77%);transform:translateX(-110%);animation:completion-acknowledgment .85s cubic-bezier(.18,.7,.35,1) 1;}
@keyframes completion-acknowledgment {to{transform:translateX(110%);}}
.alternatives-ready:after {background:var(--accent);}
.alternatives-heading {display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:0 0 22px;}
.alternatives-heading h2 {font-size:23px;}
.alternatives-heading .hint {margin:8px 0 0;}
.alternatives-preparing {padding:26px 0;max-width:600px;display:grid;gap:13px;}
.alternatives-preparing h2 {font-size:22px;}
.alternatives-preparing>p {font-size:13px;color:var(--text-2);line-height:1.65;}
.variant-difficulty-tabs {display:flex;gap:27px;border-bottom:1px solid var(--border);}
.variant-difficulty-tab {display:flex;align-items:center;gap:9px;padding:12px 1px 14px;border:0;border-radius:0;background:none;font-size:13px;color:var(--muted);position:relative;}
.variant-difficulty-tab:hover {background:none;color:var(--text);}
.variant-difficulty-tab.active {font-weight:600;color:var(--text);}
.variant-difficulty-tab.active:after {content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent);}
.variant-difficulty-tab .count {font-size:10px;min-width:17px;height:17px;padding:0 5px;background:var(--sunken);border-radius:4px;display:grid;place-items:center;color:var(--text-2);}
.variant-difficulty-note {display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0 24px;}
.variant-difficulty-note>.hint {font-size:11px;}
.variant-options {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;}
.variant-option {padding:23px;border:1px solid var(--border);border-radius:10px;background:var(--surface);display:flex;flex-direction:column;align-items:flex-start;gap:13px;min-height:220px;}
.variant-option>.row {width:100%;align-items:flex-start;}
.variant-option h3 {font-size:14px;line-height:1.5;}
.variant-option>p {font-size:12px;color:var(--text-2);line-height:1.65;}
.variant-option ul {padding-left:17px;margin:0;font-size:11px;color:var(--muted);line-height:1.7;}
.variant-option .btn {margin-top:auto;}
.variant-empty {border:1px dashed var(--border-strong);background:var(--surface);padding:25px;border-radius:9px;max-width:640px;display:grid;gap:12px;}
.variant-empty h3 {font-size:14px;}
.variant-empty p {font-size:12px;line-height:1.65;color:var(--muted);}
.variant-empty .btn {justify-self:start;}
.variant-change-summary {margin:16px 0 25px;padding:18px 20px;border:1px solid var(--border);border-radius:9px;background:var(--surface);display:grid;gap:9px;}
.variant-change-summary h2 {font-size:17px;}
.variant-change-summary>p:not(.hint) {font-size:13px;color:var(--text-2);}
.variant-legend {display:flex;gap:16px;flex-wrap:wrap;font-size:10px;color:var(--muted);}
.variant-legend>span:before {content:"";display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:5px;}
.variant-legend>.added:before {background:#629c76;}.variant-legend>.modified:before{background:#c29b4f;}.variant-legend>.removed:before{background:#c17b72;}
.variant-section-count {margin-left:auto;min-width:17px;height:17px;display:grid;place-items:center;font-size:10px;background:#fff0cf;color:#88621e;border-radius:4px;}
.variant-field .field-label {margin-bottom:7px;}
.variant-value {padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);font-size:13px;white-space:pre-wrap;line-height:1.6;overflow-wrap:anywhere;min-height:40px;}
.variant-finding {border:1px solid var(--border);border-radius:7px;background:var(--surface);overflow:hidden;}
.variant-finding-summary {width:100%;border:0;border-radius:0;display:flex;align-items:flex-start;gap:10px;background:transparent;padding:14px;text-align:left;}
.variant-finding-summary:hover {background:#f6f8f3;}
.variant-finding-copy {flex:1;min-width:0;}
.variant-finding-copy>strong {display:block;font-weight:550;font-size:13px;line-height:1.5;}
.variant-finding-preview {display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;line-height:1.6;color:var(--muted);margin-top:3px;}
.variant-finding-flags {display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:center;flex-shrink:0;max-width:180px;}
.variant-finding-flags>.icon {transition:transform .15s;}
.variant-finding.open .variant-finding-flags>.icon {transform:rotate(90deg);}
.variant-finding-body {padding:17px 16px;border-top:1px solid var(--border);display:grid;gap:17px;}
.variant-finding.added {border-color:#a4cbb1;background:#eff8f1;}.variant-finding.removed{border-color:#dfb0a7;background:#fdf0ec;}.variant-finding.modified{border-color:#dfc790;background:#fff8e8;}
.variant-finding.added .variant-finding-summary:hover{background:#e4f2e8;}.variant-finding.removed .variant-finding-summary:hover{background:#fae5df;}.variant-finding.modified .variant-finding-summary:hover{background:#fff0ce;}
.variant-change-tag {font-size:10px;padding:2px 6px;line-height:1.5;border-radius:4px;white-space:nowrap;}
.variant-change-tag.added{background:#dbeee0;color:#286643;}.variant-change-tag.removed{background:#f5d9d0;color:#9e4b3e;}.variant-change-tag.modified{background:#f6e5b8;color:#8a621e;}
.variant-change-details {display:grid;gap:9px;}
.variant-before-after {display:grid;grid-template-columns:1fr 18px 1fr;align-items:center;gap:10px;background:#fafbf8;border:1px solid var(--border);padding:13px;border-radius:7px;}
.variant-before-after .hint {display:block;font-size:10px;margin-bottom:5px;}
.variant-before-after strong {font-size:12px;font-weight:550;}
.variant-before-after>div:last-child strong {color:var(--accent);}
.variant-diagnoses {border:1px solid var(--border);border-radius:7px;overflow:hidden;}
.variant-diagnosis {padding:12px;display:flex;align-items:center;gap:10px;border-top:1px solid var(--border);font-size:13px;}
.variant-diagnosis:first-child {border-top:0;}.variant-diagnosis.correct{background:#f1f7f0;}.variant-diagnosis>span:first-child{flex:1;}
.variant-category.harmful {color:#9c5044;background:#f9eae4;}
.variant-category.optional {color:#8a7750;background:#f6f1e5;}
.variant-review {margin-top:29px;border-top:1px solid var(--border);padding-top:20px;}
.variant-review h3 {font-size:13px;}
.variant-review .hint {margin-top:5px;}
.variant-review-choice[aria-pressed="true"].accepted {border-color:#87b395;background:#edf7ef;color:#286643;}
.variant-review-choice[aria-pressed="true"].revision_requested {border-color:#c8a65d;background:#fff6df;color:#8a621e;}
.variant-review-choice[aria-pressed="true"].rejected {border-color:#cc9184;background:#fbece7;color:#9e4b3e;}
.variant-note {margin-top:14px;max-width:700px;}.variant-note>summary,.variant-metrics>summary{font-size:12px;color:var(--muted);cursor:pointer;width:fit-content;}.variant-note textarea{margin-top:10px;}
.variant-metrics {margin-top:19px;}.variant-metrics dl{display:grid;grid-template-columns:1fr auto;gap:8px 20px;max-width:430px;font-size:12px;margin:15px 0 12px;}.variant-metrics dt{color:var(--muted);}.variant-metrics dd{margin:0;font-variant-numeric:tabular-nums;}
.alternatives-next-step {margin-top:29px;border-top:1px solid var(--border);padding-top:20px;display:flex;justify-content:space-between;align-items:center;gap:18px;}
.variant-peer-editor {max-width:1120px;}
@media(max-width:900px){.alternatives-status{margin-left:26px;margin-right:26px;}.variant-finding-flags{max-width:145px;}}
@media(max-width:640px){.alternatives-status{margin-left:18px;margin-right:18px;align-items:flex-start;}.alternatives-status>.row{align-items:flex-start;}.alternatives-heading{gap:12px;}.alternatives-heading h2{font-size:20px;}.variant-options{grid-template-columns:1fr;}.variant-option{min-height:190px;padding:19px;}.variant-difficulty-tabs{gap:24px;}.variant-difficulty-note{align-items:flex-start;flex-direction:column;gap:7px;}.variant-finding-summary{padding:12px;gap:7px;}.variant-finding-copy>strong{font-size:12px;}.variant-finding-flags{max-width:112px;}.variant-finding-body{padding:14px 12px;}.variant-before-after{grid-template-columns:1fr;gap:11px;}.variant-before-after>.icon{display:none;}.variant-change-summary{padding:16px;}.alternatives-next-step{align-items:flex-start;flex-direction:column;}.variant-editor .editor-footer>.hint{max-width:120px;}.variant-review>.row{align-items:flex-start;gap:13px;}}
@media(prefers-reduced-motion:reduce){.completion-sweep:before{display:none;animation:none;}.variant-finding-flags>.icon{transition:none;}}

/* The guide has its own corner; it never takes over the editor or question inbox. */
.workflow-help-toggle { position:fixed;right:24px;bottom:24px;z-index:65;display:flex;align-items:center;gap:8px;border:1px solid #d2d9e3;border-radius:24px;background:#fff;color:#263848;padding:12px 16px;box-shadow:0 4px 18px #10243816;transition:transform .15s,box-shadow .15s; }
.workflow-help-toggle:hover {transform:translateY(-2px);box-shadow:0 8px 24px #10243825;}
.workflow-help-toggle:active {transform:translateY(0);}
.workflow-help-panel {position:fixed;z-index:65;right:24px;bottom:86px;width:370px;max-height:min(580px,calc(100dvh - 112px));display:flex;flex-direction:column;background:#fff;border:1px solid #dbe1e7;border-radius:18px;box-shadow:0 16px 60px #152b4325;overflow:hidden;animation:help-enter .18s ease-out;}
.workflow-help-head {display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border);background:linear-gradient(120deg,#f4f8f7,#f3f5fa);}
.workflow-help-messages {padding:18px;overflow:auto;overflow-anchor:none;min-height:130px;display:flex;flex-direction:column;gap:14px;overscroll-behavior:contain;}
.workflow-help-welcome {display:grid;gap:12px;}
.workflow-help-welcome>.btn {justify-self:start;}
.workflow-help-message {max-width:100%;padding:12px 14px;border:1px solid #e5e9ed;border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.55;}
.workflow-help-message.user {background:#f1f5fa;align-self:flex-end;border-color:transparent;}
.workflow-help-message.assistant {background:#fff;}
.workflow-help-message.error {border-color:var(--bad);}
.workflow-help-message-label {display:block;font-size:11px;color:var(--muted);margin-bottom:6px;}
.workflow-help-composer {padding:14px 18px;display:grid;gap:8px;border-top:1px solid var(--border);}
.workflow-help-composer textarea {max-height:120px;overflow:auto;}
.workflow-help-composer .field-label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
.dictation-dock {right:120px;max-width:min(320px,calc(100vw - 240px));}
.variant-assessment {display:grid;gap:12px;padding:22px 24px;margin-bottom:18px;}
.variant-assessment.warning {background:var(--surface);}
.variant-assessment .btn {justify-self:start;}
.review-start {max-width:820px;margin:0 auto;display:grid;gap:20px;}
.review-start .card {padding:26px;}
.review-start .btn.primary {justify-self:start;}
.eyebrow {font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
@keyframes help-enter {from {opacity:0;transform:translateY(8px);}to {opacity:1;transform:translateY(0);}}
@media(min-width:1280px){body:has(.workflow-help-panel) .app,body:has(.workflow-help-panel) .solve-layer {padding-right:398px;}}
@media(max-width:600px){.workflow-help-toggle {right:16px;bottom:16px;padding:12px;}.workflow-help-panel {right:12px;bottom:78px;width:calc(100vw - 24px);max-height:calc(100dvh - 108px);}.dictation-dock{right:110px;max-width:calc(100vw - 220px);}.dictation-toggle>span:not(.voice-spinner){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.workflow-help-toggle>span{display:inline;}}
@media(prefers-reduced-motion:reduce){.workflow-help-panel{animation:none;}.workflow-help-toggle{transition:none;}}

/* Completion review uses the same quiet cards as the writing workspace. */
.reference-section{border-top:1px solid var(--line,#e4e6e8);padding-top:24px;margin-top:12px}
.completion-page{display:grid;gap:18px;max-width:1040px;margin:0 auto}
.completion-check{display:grid;gap:20px;padding:24px}
.completion-check h2,.completion-check h3{margin:0 0 6px}
.completion-group{display:grid;gap:10px}
.completion-finding{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px;border:1px solid var(--line,#e4e6e8);border-radius:12px;background:var(--surface,#fff)}
.completion-finding p{margin:6px 0 0;max-width:70ch}
.completion-ready{display:flex;gap:8px;align-items:center;color:#216348;margin:0}
.diagnostic-alias{font-size:12px;color:var(--muted,#697078);line-height:1.5}
.variant-baseline-summary{padding:22px 24px;border:1px solid var(--line,#e4e6e8);border-radius:12px;background:var(--surface,#fff);margin-bottom:18px}
.variant-baseline-summary h2{margin:5px 0 8px;font-size:24px}
.variant-baseline-summary .hint{max-width:76ch}
.variant-unoffered{padding-left:20px}
.variant-unoffered>li{padding:12px 0;border-bottom:1px solid var(--line,#e4e6e8)}
.variant-result-line{font-size:14px;line-height:1.6;font-weight:500}
.variant-failure-reasons{font-size:13px;line-height:1.7;padding-left:20px}
@media(max-width:600px){.completion-check{padding:18px}.completion-check>.row{align-items:flex-start;flex-wrap:wrap}.completion-finding{gap:12px;align-items:flex-start}.completion-finding button{flex-shrink:0}.completion-check>.row.end{flex-wrap:wrap}.completion-finding p{font-size:13px}}

/* A clinical review is one focused step at a time. */
.protocol-review {max-width:1040px;padding-bottom:96px;}
.review-progress {display:flex;list-style:none;padding:0;margin:0 0 12px;gap:8px;flex-wrap:wrap;}
.review-progress li {display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);padding:8px 12px;border:1px solid var(--border);border-radius:24px;background:var(--surface);}
.review-progress li>span {font-variant-numeric:tabular-nums;font-size:11px;display:grid;place-items:center;width:20px;height:20px;background:var(--bg);border-radius:50%;}
.review-progress li.active {border-color:#97b8aa;background:#edf5f0;color:#244d3d;}
.review-progress li.done {color:#446752;}
.protocol-review .card {padding:22px;}
.protocol-review details.card>summary {cursor:pointer;font-size:15px;font-weight:600;padding:2px 0;}
.protocol-review details.card[open]>summary {margin-bottom:20px;}
.protocol-review .reference-review {padding-top:12px;}
.protocol-review .reference-review .card {box-shadow:none;}
.protocol-review .tabs {padding:0;margin-bottom:0;}
.review-fact {border-top:1px solid var(--border);padding:16px 0;display:grid;gap:8px;}
.review-fact:first-of-type {border-top:0;}
.review-fact p,.review-proposal p,.review-request p {margin:0;}
.review-proposal {border:1px solid var(--border);border-radius:10px;padding:17px;display:grid;gap:12px;background:var(--surface);}
.review-proposal h3 {font-size:15px;line-height:1.5;}
.proposal-before {color:var(--muted);}
.proposal-editor {border-color:#94b4a4;background:#fcfefc;scroll-margin:24px;}
.resolution-card .review-proposal {border:0;padding:0;background:transparent;}
.review-request {display:grid;gap:6px;padding:14px 0;border-bottom:1px solid var(--border);}
.review-request:last-child {border-bottom:0;}
.care-sequence {gap:18px;}
.sequence-facts {display:flex;flex-wrap:wrap;gap:8px;padding:14px;border:1px dashed #bdcbbf;border-radius:12px;background:#f7faf7;}
.sequence-fact {display:flex;gap:7px;align-items:center;border:1px solid #ced9d0;border-radius:7px;padding:9px 11px;background:var(--surface);font-size:12px;cursor:grab;max-width:100%;overflow-wrap:anywhere;transition:box-shadow .15s,transform .15s;}
.sequence-fact:hover {box-shadow:0 3px 10px #203e2814;transform:translateY(-1px);}
.sequence-fact:active {cursor:grabbing;}
.sequence-fact>span {color:#8c9e90;}
.sequence-action {border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:18px;display:grid;gap:16px;transition:border-color .15s,background .15s;}
.sequence-action.drag-over {border-color:#4c8870;background:#f0f8f3;outline:2px solid #4c887030;}
.sequence-action h3 {font-size:16px;margin:3px 0 0;}
.sequence-before {display:grid;gap:9px;padding:13px 14px;background:#f7f9f7;border-radius:8px;}
.sequence-before p {margin:0;}
.sequence-chips {display:flex;flex-wrap:wrap;gap:7px;}
.sequence-chip {display:flex;align-items:center;gap:4px;max-width:100%;padding:5px 9px;border:1px solid #c9d7cd;border-radius:6px;background:var(--surface);font-size:12px;overflow-wrap:anywhere;}
.sequence-chip .btn {padding:2px;min-height:22px;min-width:22px;}
.sequence-add {display:flex;align-items:center;gap:8px;}
.sequence-add select {flex:1;min-width:0;}
.sequence-order {display:grid;gap:12px;min-width:0;}
.sequence-order-head {display:flex;justify-content:space-between;align-items:center;gap:12px;}
.sequence-order-head h3 {margin:0;font-size:17px;}
.sequence-order>p {margin:0;line-height:1.5;}
.sequence-order-list {list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.sequence-order-card {position:relative;display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid #d4ddd8;border-radius:12px;background:var(--surface);min-width:0;transition:border-color .16s,box-shadow .16s,opacity .16s;}
.sequence-order-card:hover {border-color:#9bad9e;box-shadow:0 3px 12px #1b392408;}
.sequence-number {font-size:12px;font-variant-numeric:tabular-nums;color:#65796d;min-width:20px;}
.sequence-order-body {display:grid;gap:5px;flex:1;min-width:0;overflow-wrap:anywhere;}
.sequence-order-body strong {font-size:14px;line-height:1.4;font-weight:600;}
.sequence-order-body .eyebrow {font-size:10px;}
.sequence-order-requires {font-size:11px;color:#63766a;line-height:1.45;}
.sequence-drag-handle {border:0;background:transparent;color:#748d7d;font-size:26px;padding:0;width:34px;min-width:34px;height:42px;cursor:grab;touch-action:none;border-radius:7px;}
.sequence-drag-handle:hover,.sequence-drag-handle:focus-visible {background:#edf4ef;color:#244d37;outline:2px solid #91ad9c;outline-offset:2px;}
.sequence-drag-handle:active {cursor:grabbing;}
.sequence-move-buttons {display:flex;gap:3px;flex-shrink:0;}
.sequence-move-buttons .btn {width:34px;min-width:34px;min-height:36px;padding:5px;}
.sequence-move-buttons .btn:first-child .icon {transform:rotate(-90deg);}
.sequence-move-buttons .btn:last-child .icon {transform:rotate(90deg);}
.sequence-order-card.sequence-lifted {opacity:.3;}
.sequence-order-card.drop-before::before,.sequence-order-card.drop-after::after {content:"";position:absolute;left:8px;right:8px;height:3px;border-radius:3px;background:#477c60;box-shadow:0 0 0 3px #dcece1;}
.sequence-order-card.drop-before::before {top:-7px;}
.sequence-order-card.drop-after::after {bottom:-7px;}
.sequence-ghost {position:fixed;z-index:10000;pointer-events:none;box-shadow:0 16px 40px #18322430;border-color:#749d84;opacity:.96;}
.sequence-announcement {font-size:12px;color:#3c7151;min-height:18px;}
.sequence-rules {display:grid;gap:14px;border-top:1px solid var(--border);padding-top:16px;}
.sequence-rules[open]>.sequence-action {margin-top:12px;}
.sequence-rules>summary {font-weight:600;font-size:13px;cursor:pointer;}
.sequence-rules>p {line-height:1.5;}
.composer-gate {font-size:12px;line-height:1.45;color:#795c22;margin:8px 0 0;padding:10px 12px;background:#fffaec;border-radius:8px;}
.draft-handoff-note {display:grid;gap:5px;padding:14px 16px;border:1px solid #d8e4dc;background:#f4f9f6;border-radius:10px;font-size:13px;line-height:1.5;}
.draft-handoff-note strong {color:#355841;}
@media(max-width:600px){.sequence-order-head {align-items:flex-start;flex-direction:column;gap:5px;}.sequence-order-card {gap:8px;padding:11px 9px;}.sequence-move-buttons {flex-direction:column;gap:0;}.sequence-move-buttons .btn {width:32px;min-width:32px;min-height:29px;}.sequence-drag-handle {width:28px;min-width:28px;}.sequence-number {min-width:14px;}.sequence-order-body strong {font-size:13px;}}
@media(prefers-reduced-motion:reduce){.sequence-order-card {transition:none;}}
.differential-editor {display:grid;gap:12px;}
.differential-row {display:grid;gap:8px;padding:2px 0 8px;}
.differential-row>.row>.field {flex:1;min-width:0;}
.differential-row>.row>.btn {height:40px;min-width:28px;padding:8px;align-self:end;}
.differential-row .field {gap:5px;}
.differential-row .field-label {font-size:11px;}
.differential-row input {width:100%;}
.differential-row .prior {display:flex;align-items:center;gap:12px;}
.differential-row .prior output {min-width:50px;text-align:right;font-variant-numeric:tabular-nums;}
.proposal-original {padding:16px;background:var(--sunken);border:1px solid var(--border);border-radius:12px;gap:8px;}
.proposal-original h3,.proposal-original p {margin:0;}
.recorded-answer {white-space:pre-wrap;overflow-wrap:anywhere;}
.proposal-editor textarea {min-height:72px;}
.solve-right:has(.differential-editor) {padding:18px;}
.solve-grid:has(.differential-editor) {grid-template-columns:minmax(0,1fr) 380px;}
.question-rationale {display:grid;gap:10px;padding:15px;border:1px solid #d8c79c;background:#fffcf3;border-radius:10px;font-size:13px;}
.question-rationale.saved {border-color:#cbded1;background:#f4faf6;}
.question-rationale p {margin:0;line-height:1.5;}
.question-rationale textarea {width:100%;}
.question-rationale>.btn {justify-self:start;}
@media(max-width:760px){
 .protocol-review {padding-bottom:100px;}
 .protocol-review .card {padding:16px;}
 .review-progress {gap:5px;}
 .review-progress li {font-size:10px;padding:6px 8px;gap:4px;}
 .review-progress li>span {width:17px;height:17px;}
 .sequence-add {align-items:stretch;flex-direction:column;}
 .differential-row {gap:6px;}
 .solve-grid:has(.differential-editor) {grid-template-columns:1fr;}
 .solve-right:has(.differential-editor) {overflow:visible;}
 .sequence-action .row.spread {align-items:flex-start;flex-wrap:wrap;}
}
@media(prefers-reduced-motion:reduce){.sequence-fact,.sequence-action {transition:none;}.sequence-fact:hover {transform:none;}}
.review-panel-tabs {position:sticky;top:8px;z-index:3;background:var(--bg);padding:8px 0;}
.review-panel-tabs .seg {display:flex;}
.review-panel-tabs .seg>button {flex:1;}
@media(max-width:600px){.review-panel-tabs .seg>button {font-size:11px;padding:10px 8px;}}
/* Reserve an actual footer for dictation during the full-screen interview. */
.solve>.dictation-dock {position:static;flex:0 0 auto;align-self:flex-end;margin:0 118px 18px 28px;max-width:min(420px,calc(100vw - 170px));min-height:48px;}
@media(max-width:600px){.solve>.dictation-dock {margin:0 76px 16px 16px;max-width:calc(100vw - 110px);}.solve>.dictation-dock .dictation-toggle {font-size:10px;padding:10px;}}
/* Rebuilding an interview must not flash the underlying author screen. */
.solve-layer {animation:none;}
/* Keep the idle mobile microphone from covering review decisions. */
@media(max-width:600px){
 body:has(.protocol-review) .dictation-dock:not(.recording):not(.transcribing):not(:has(.voice-spinner)):not(:has(.dictation-recovery)) {right:116px;max-width:48px;}
 body:has(.protocol-review) .dictation-dock:not(.recording):not(.transcribing):not(:has(.voice-spinner)):not(:has(.dictation-recovery)) .dictation-toggle {width:48px;height:48px;padding:13px;}
 body:has(.protocol-review) .dictation-dock:not(.recording):not(.transcribing):not(:has(.voice-spinner)):not(:has(.dictation-recovery)) .dictation-toggle>span {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
}

/* Clinical connections: focus on one destination rather than a crowded canvas. */
.connection-panel {border-top:1px solid var(--border);padding-top:22px;min-width:0}
.connection-legend {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
.connection-legend>h3,.connection-legend-note {grid-column:1/-1}
.connection-legend-item {display:flex;gap:9px;align-items:flex-start;min-width:0}
.connection-legend-item strong {font-size:12.5px}
.connection-legend-item p,.connection-legend-note {font-size:12px;line-height:1.5;color:var(--text-2)}
.connection-swatch {display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;background:var(--connection-color);margin-top:4px}
.availability {--connection-color:#285ea5;--connection-soft:#eef5fd}
.safety {--connection-color:#b93243;--connection-soft:#fff1f2}
.connection-all-groups {font-size:12.5px;color:var(--text-2);padding:10px 12px;background:var(--sunken);border-radius:8px}
.connection-groups {display:grid;gap:10px}
.connection-group {padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.connection-type {font-size:12px;font-weight:650;color:var(--connection-color)}
.connection-preview {display:grid;grid-template-columns:minmax(0,1fr) 145px minmax(0,1fr);align-items:center;gap:10px;margin-top:12px;min-width:0}
.connection-preview-sources {display:grid;gap:6px;position:relative;min-width:0}
.connection-preview-sources::after {content:"";position:absolute;right:-6px;top:14px;bottom:14px;width:1.5px;background:var(--connection-color)}
.connection-source {position:relative;padding:7px 10px;background:var(--connection-soft);border:1px solid color-mix(in srgb,var(--connection-color) 22%,white);border-radius:7px;font-size:12px;overflow-wrap:anywhere}
.connection-source::after {content:"";position:absolute;right:-7px;top:50%;width:6px;height:1.5px;background:var(--connection-color)}
.connection-junction {display:flex;align-items:center;min-width:0;color:var(--connection-color);gap:5px}
.connection-line {height:1.5px;flex:1;background:currentColor;min-width:8px;position:relative}
.connection-line:last-child::after {content:"";position:absolute;right:0;top:-3px;border-left:5px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent}
.connection-threshold {padding:5px 8px;border:1px solid currentColor;border-radius:30px;font-size:11px;font-weight:650;white-space:nowrap;background:var(--connection-soft)}
.connection-destination {background:var(--surface-2);padding:10px;border:1px solid var(--border-strong);border-radius:8px;font-size:12px;overflow-wrap:anywhere}
.connection-empty {font-size:12.5px;color:var(--text-2);padding:18px;border:1px dashed var(--border-strong);border-radius:10px}
.connection-kind-choices {display:flex;flex-wrap:wrap;gap:8px}
.connection-kind {display:flex;align-items:center;gap:7px;border:1px solid var(--border-strong);border-radius:8px;padding:9px 12px;background:var(--surface);font-size:12.5px;transition:background .15s,border-color .15s}
.connection-kind.selected {border-color:var(--connection-color);background:var(--connection-soft);color:var(--connection-color);box-shadow:0 0 0 1px var(--connection-color)}
.connection-kind .connection-swatch {margin-top:0}
.connection-count-controls {display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,130px);gap:12px;align-items:start}
.connection-live-summary {padding:10px 12px;border-radius:8px;background:var(--accent-soft);font-size:12.5px;color:var(--accent-text)}
/* Spoken changes remain readable when device speech is unavailable. */
.change-color-legend {margin-top:14px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.change-legend-items {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:10px}
.change-legend-items>div {font-size:12px;min-width:0}
.change-legend-items>.added strong {color:#23734c}.change-legend-items>.modified strong {color:#9b6800}.change-legend-items>.removed strong {color:#b83243}
.change-legend-items p {margin-top:3px;color:var(--text-2)}
.variant-walkthrough {padding:18px 20px;margin:16px 0 20px;border:1px solid var(--border);border-radius:10px;background:var(--surface);min-width:0}
.variant-walkthrough>p {margin-top:8px}
.walkthrough-body {display:grid;gap:10px;margin-top:10px}
.walkthrough-status {color:var(--accent-text);font-size:12px}
.walkthrough-text {font-size:14px;line-height:1.75;color:var(--text);max-height:220px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.walkthrough-controls {padding-top:5px}
.variant-finding.walkthrough-active {outline:2px solid #3554ac;outline-offset:3px;box-shadow:0 0 0 7px #3554ac0b;transition:outline-color .25s,box-shadow .25s}
@media(max-width:720px){
 .connection-legend,.change-legend-items {grid-template-columns:1fr;gap:12px}
 .connection-legend-item p {margin-top:2px}
 .connection-preview {grid-template-columns:minmax(0,1fr);gap:9px}
 .connection-preview-sources::after,.connection-source::after {display:none}
 .connection-junction {justify-content:center}
 .connection-junction .connection-line {flex:0 1 50px}
 .connection-destination {text-align:center}
 .connection-count-controls {grid-template-columns:minmax(0,1fr) 90px}
 .variant-walkthrough {padding:14px}
 .walkthrough-controls .btn {height:auto;min-height:32px;white-space:normal}
}
@media(prefers-reduced-motion:reduce){.connection-kind,.variant-finding.walkthrough-active {transition:none}}
.connection-view-tabs {display:flex;gap:5px;padding:5px;background:var(--sunken);border:1px solid var(--border);border-radius:10px;width:fit-content;max-width:100%}
.connection-view-tab {display:flex;gap:10px;align-items:center;padding:8px 18px;background:transparent;border:1px solid transparent;border-radius:7px;color:var(--text-2);font-size:13px;transition:background .15s,box-shadow .15s}
.connection-view-tab.active {background:var(--surface);border-color:var(--border);color:var(--text);box-shadow:0 1px 4px #1626370b}
.care-sequence>.connection-panel {border-top:0;padding-top:5px}
.variant-walkthrough.is-active {position:fixed;top:12px;left:50%;transform:translateX(-50%);width:min(760px,calc(100vw - 32px));margin:0;z-index:50;box-shadow:0 8px 32px #233f6e25;max-height:calc(100dvh - 100px);overflow:auto}
.walkthrough-progress {font-size:12px;font-weight:550;color:var(--accent-text)}
.variant-walkthrough.is-active h3 {font-size:14px}
.variant-walkthrough.is-active .walkthrough-body {gap:6px;margin-top:6px}
@media(max-width:600px){.variant-walkthrough.is-active {padding:12px}.variant-walkthrough.is-active .walkthrough-text {max-height:64px;font-size:12px;line-height:1.55}.walkthrough-controls {gap:6px}.walkthrough-controls .btn {font-size:11px;padding:7px 9px}.dictation-dock{right:116px;max-width:calc(100vw - 144px)}}
.variant-walkthrough.is-active .walkthrough-text {max-height:88px}
.variant-finding {scroll-margin-top:230px}
.handoff-counts {display:flex;gap:8px;flex-wrap:wrap}
.handoff-state {font-size:12px;font-weight:600;color:var(--text-2);max-width:100%}
.handoff-change {min-width:0;overflow-wrap:anywhere}
.handoff-diff {padding-top:8px;border-top:1px solid var(--border)}
.handoff-diff-row {display:grid;gap:8px;padding-top:16px;min-width:0}
.handoff-diff-columns {display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}
.handoff-diff-columns>div {padding:12px;border:1px solid var(--border);border-radius:8px;min-width:0;overflow-wrap:anywhere}
.handoff-diff-columns .proposal-after {background:#f0f8f3;border-color:#cbded1}
.handoff-diff-columns .proposal-after.rejected {background:#fbf4f3;border-color:#ead5d1}
.handoff-diff-columns p {white-space:pre-wrap;line-height:1.6;margin:6px 0 0}
[data-review-proposal] {transition:box-shadow .2s,border-color .2s;scroll-margin-top:240px}
.review-walkthrough-active {border-color:var(--accent);box-shadow:0 0 0 3px #4265a21a}
@media(max-width:600px){.handoff-diff-columns{grid-template-columns:1fr}.handoff-state{font-size:11px}}
@media(prefers-reduced-motion:reduce){[data-review-proposal]{transition:none}}
@media(max-width:640px){
 .variant-finding-summary {display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start}
 .variant-finding-copy {min-width:0;overflow-wrap:anywhere}
 .variant-finding-flags {grid-column:1/-1;max-width:none;justify-content:flex-start;flex-shrink:1}
 .variant-finding-flags>.icon {margin-left:auto}
}

@media(max-width:600px){
 .workflow-help-toggle[aria-expanded="false"] {right:0;min-width:44px;min-height:44px;padding:10px 8px;border-radius:14px 0 0 14px;font-size:12px}
 .workflow-help-toggle[aria-expanded="false"]>.icon {display:none}
}

/* Connection groups are composed in one focused dialog. Section colors identify
   where a step was recorded; blue/red identify the environment rule. */
.connection-step-groups {display:grid;gap:10px;padding:16px;border:1px solid var(--border);border-radius:12px;min-width:0}
.connection-step-groups h4 {font-size:14px;overflow-wrap:anywhere;min-width:0}
.connection-section-tag,.connection-selected-chip {--section-color:#7154a4;--section-soft:#f5f0fb}
.connection-section-tag.history,.connection-picker-section.history,.connection-selected-chip.history {--section-color:#7154a4;--section-soft:#f5f0fb}
.connection-section-tag.diagnostics,.connection-picker-section.diagnostics,.connection-selected-chip.diagnostics {--section-color:#08758b;--section-soft:#edf8fa}
.connection-section-tag.treatment,.connection-picker-section.treatment,.connection-selected-chip.treatment {--section-color:#26774b;--section-soft:#eff8f2}
.connection-section-tag {display:inline-flex;align-items:center;gap:6px;width:fit-content;padding:4px 8px;border-radius:6px;background:var(--section-soft);color:var(--section-color);font-size:11px;font-weight:600;line-height:1.4}
.connection-section-tag::before,.connection-section-dot {content:"";width:7px;height:7px;border-radius:50%;background:var(--section-color);flex:none}
.modal.connection-dialog {width:min(820px,calc(100vw - 32px));padding:0;max-height:84dvh;overflow:hidden;display:flex;flex-direction:column;animation:none}
.scrim.connection-scrim {animation:none}
.scrim.connection-entering {animation:fade .15s ease-out}
.connection-entering>.connection-dialog {animation:pop .16s ease-out}
.connection-dialog-content {display:flex;flex-direction:column;min-height:0;max-height:84dvh}
.connection-dialog-header {padding:24px 30px 16px;border-bottom:1px solid var(--border);flex:none}
.connection-dialog-header h2 {font-size:20px;padding-right:25px}
.connection-dialog-progress {display:flex;list-style:none;padding:0;margin:16px 0 0;gap:24px;color:var(--text-2);font-size:12px}
.connection-dialog-progress li {display:flex;align-items:center;gap:7px}
.connection-dialog-progress li>span {display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:50%;width:23px;height:23px;font-size:11px}
.connection-dialog-progress li.active {color:var(--accent-text);font-weight:650}
.connection-dialog-progress li.active>span,.connection-dialog-progress li.done>span {background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}
.connection-dialog-body {display:flex;flex-direction:column;gap:10px;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px 30px 26px;scrollbar-gutter:stable}
.connection-dialog-body>h3 {font-size:16px;outline:none}
.connection-dialog-body::-webkit-scrollbar {width:6px}
.connection-dialog-body::-webkit-scrollbar-thumb {background:#c8d3cb;border-radius:6px}
.connection-dialog-footer {display:flex;justify-content:space-between;gap:10px;padding:16px 24px;border-top:1px solid var(--border);background:var(--surface);flex:none}
.connection-picker {display:grid;gap:20px}
.connection-picker-section {display:grid;gap:9px;min-width:0}
.connection-picker-section h4 {display:flex;align-items:center;gap:7px;color:var(--section-color);font-size:12px;font-weight:650}
.connection-picker-section .count {background:var(--section-soft);color:var(--section-color)}
.connection-picker-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.connection-choice {display:flex;align-items:flex-start;text-align:left;gap:10px;padding:13px;border:1px solid var(--border);border-radius:9px;background:var(--surface);cursor:pointer;min-width:0;transition:background .15s,border-color .15s,box-shadow .15s}
.connection-choice:hover {background:var(--section-soft);border-color:var(--section-color)}
.connection-choice.selected {background:var(--section-soft);border-color:var(--section-color);box-shadow:inset 0 0 0 1px var(--section-color)}
.connection-choice input {flex:none;margin-top:3px;accent-color:var(--section-color)}
.connection-choice-mark {width:16px;height:16px;border:1px solid var(--border-strong);border-radius:50%;flex:none;margin-top:2px;display:grid;place-items:center;font-size:11px;color:var(--section-color)}
.connection-choice.selected .connection-choice-mark {background:var(--section-color);border-color:var(--section-color);color:white}
.connection-choice-text {display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}
.connection-choice-text strong {font-size:13px;line-height:1.5;font-weight:600}
.connection-choice-text>span {font-size:11.5px;line-height:1.4;color:var(--text-2)}
.connection-selected-step {display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 14px}
.connection-selected-step>div {display:grid;gap:6px;min-width:0}
.connection-selected-step strong {font-size:14px;overflow-wrap:anywhere}
.connection-selected-step .btn {flex:none}
.connection-selection-count {font-size:12px;font-weight:600;color:var(--accent-text)}
.connection-selected-checks {display:flex;gap:6px;flex-wrap:wrap;max-height:86px;overflow:auto}
.connection-selected-chip {display:flex;align-items:center;gap:7px;padding:6px 9px;border:1px solid color-mix(in srgb,var(--section-color) 30%,white);border-radius:7px;background:var(--section-soft);color:var(--section-color);font-size:11.5px;max-width:100%;overflow-wrap:anywhere;text-align:left;cursor:pointer}
.connection-selected-chip .icon {flex:none}
.connection-dialog .connection-kind-choices {display:grid;grid-template-columns:1fr;gap:8px}
.connection-dialog .connection-kind {text-align:left;align-items:flex-start;padding:12px}
.connection-dialog .connection-kind>.connection-swatch {margin-top:5px}
.connection-dialog .connection-kind>span:last-child {display:grid;gap:3px}
.connection-dialog .connection-kind strong {font-size:12.5px}
.connection-dialog .connection-kind>span>span {font-size:12px;line-height:1.5;color:var(--text-2)}
.connection-dialog .connection-preview {margin-top:0}
.connection-dialog .connection-count-controls {margin-top:3px}
@media(max-width:600px){
 .scrim.center:has(.connection-dialog) {padding-top:3dvh}
 .modal.connection-dialog,.connection-dialog-content {max-height:94dvh}
 .connection-dialog-header {padding:22px 18px 14px}
 .connection-dialog-body {padding:18px 16px 22px}
 .connection-dialog-footer {padding:12px;gap:4px}
 .connection-dialog-footer .btn {padding:8px 10px;font-size:12px;white-space:normal;min-height:36px;height:auto}
 .connection-dialog-footer .row {gap:4px}
 .connection-picker-grid {grid-template-columns:1fr}
 .connection-selected-step {align-items:flex-start;padding:12px}
 .connection-dialog-progress {gap:22px}
 .connection-step-groups {padding:12px}
}
@media(prefers-reduced-motion:reduce){.connection-choice {transition:none}}

/* Curved paths carry a quiet pulse from the selected checks into the step. */
.connection-preview {grid-template-columns:minmax(0,1fr) 170px minmax(0,1fr);gap:0;padding:12px 0}
.connection-preview-sources {gap:8px}
.connection-preview-sources::after,.connection-source::after {display:none}
.connection-source {display:flex;align-items:center;min-height:48px;padding:10px 18px 10px 12px;border-radius:10px;background:linear-gradient(115deg,var(--connection-soft),var(--surface));line-height:1.5;box-shadow:0 2px 5px #1f2c3b04}
.connection-port {position:absolute;right:-3px;top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:var(--connection-color);box-shadow:0 0 0 3px var(--connection-soft);z-index:1}
.connection-junction {position:relative;display:grid;place-items:center;align-self:stretch;min-height:64px;gap:0}
.connection-wires {position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.connection-wire,.connection-wire-flow {fill:none;stroke:var(--connection-color);stroke-width:1.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.connection-wire {opacity:.3}
.connection-wire-flow {stroke-dasharray:5 95;animation:connection-signal 4s linear infinite;opacity:.8;filter:drop-shadow(0 0 2px var(--connection-color))}
@keyframes connection-signal {from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.connection-threshold {z-index:1;background:var(--surface);box-shadow:0 3px 12px color-mix(in srgb,var(--connection-color) 12%,transparent);padding:7px 10px}
.connection-destination {position:relative;padding:16px 14px;border-color:color-mix(in srgb,var(--connection-color) 25%,var(--border));border-radius:12px;background:var(--surface);box-shadow:0 4px 18px #1f2c3b06;line-height:1.5}
.connection-destination .connection-port {left:-3px;right:auto}
.connection-dialog-header {background:radial-gradient(ellipse at 0 0,#eef5f2,transparent 72%);border-bottom:1px solid #e5ebe7}
.connection-dialog-progress {gap:32px}
.connection-dialog-progress li {position:relative}
.connection-dialog-progress li:not(:last-child)::after {content:"";width:16px;height:1px;background:var(--border-strong);position:absolute;right:-24px;top:50%}
.connection-dialog-progress li.active>span {box-shadow:0 0 0 4px #edf3ef}
.connection-draft-notice {padding:10px 12px;border:1px solid var(--border);background:var(--surface-2);border-radius:8px}
.connection-choice {animation:connection-card-in .18s ease-out}
@keyframes connection-card-in {from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
/* Contextual Help lives inside the same dialog and its keyboard boundary. */
.connection-help-root {position:absolute;inset:0;pointer-events:none}
.connection-help-root>* {pointer-events:auto}
.connection-help-root .workflow-help-toggle {position:absolute;right:50px;top:21px;bottom:auto;padding:7px 11px;border-radius:8px;box-shadow:none;font-size:12px}
.connection-help-root .workflow-help-toggle[aria-expanded="true"] {display:none}
.connection-help-root .workflow-help-panel {position:absolute;right:0;top:0;bottom:0;width:340px;max-height:none;border:0;border-left:1px solid var(--border);border-radius:0;box-shadow:none;animation:slide .2s ease-out}
.connection-help-root .workflow-help-messages {flex:1}
.modal.connection-dialog.connection-help-open {width:min(1180px,calc(100vw - 32px))}
.connection-help-open .connection-dialog-content {width:calc(100% - 340px)}
.connection-help-open>.modal-close {right:350px}
.connection-dialog:has(.connection-help-root)>.dictation-dock {position:absolute;right:24px;bottom:80px;z-index:70;max-width:280px}
.connection-help-root .workflow-help-panel>.dictation-dock {position:static;flex:none;max-width:none;margin:8px 18px;justify-items:stretch}
.connection-help-root .dictation-toggle {justify-content:center;width:100%;font-size:11px;padding:10px;box-shadow:none}
.connection-help-root .dictation-recovery {box-shadow:none;padding:12px}
@media(max-width:960px){
 .modal.connection-dialog.connection-help-open {width:min(820px,calc(100vw - 32px));height:84dvh}
 .connection-help-open .connection-dialog-content {width:100%}
 .connection-help-open>.modal-close {right:10px}
 .connection-help-open .connection-dialog-body,.connection-help-open .connection-dialog-footer {display:none}
 .connection-help-root .workflow-help-panel {top:109px;width:100%;border-left:0;border-top:1px solid var(--border)}
 .connection-help-root .workflow-help-head {padding:12px 18px}
 .connection-help-root .workflow-help-composer {padding:12px 18px}
 .connection-help-root .workflow-help-messages {min-height:0}
}
@media(max-width:720px){
 .connection-preview {grid-template-columns:minmax(0,1fr)}
 .connection-source .connection-port {display:none}
 .connection-destination .connection-port {left:calc(50% - 3px);top:-3px}
 .connection-junction {height:68px}
 .connection-preview-sources {border-bottom:1px solid color-mix(in srgb,var(--connection-color) 30%,white);padding-bottom:8px}
 .connection-help-root .workflow-help-toggle {right:43px;top:20px}
 .connection-help-root .workflow-help-toggle>.icon {display:inline}
 .connection-dialog:has(.connection-help-root)>.dictation-dock {bottom:86px;right:20px;max-width:calc(100% - 40px)}
}
@media(max-width:600px){.modal.connection-dialog.connection-help-open {height:94dvh}}
@media(prefers-reduced-motion:reduce){.connection-wire-flow,.connection-choice {animation:none}.connection-wire-flow {display:none}}
.connection-dialog .connection-kind-choices {grid-template-columns:repeat(2,minmax(0,1fr))}
.connection-dialog-header h2 {padding-right:100px}
@media(max-width:600px){.connection-dialog .connection-kind-choices {grid-template-columns:1fr}.connection-dialog-header h2 {font-size:18px}}

.walkthrough-speed{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:10px}
.walkthrough-speed>.hint{margin-right:7px}
.walkthrough-speed .btn{min-height:32px;padding:5px 11px;border:1px solid transparent}
.walkthrough-speed .btn[aria-pressed="true"]{background:var(--ink,#24312b);color:white;border-color:var(--ink,#24312b)}
.walkthrough-speed .btn:focus-visible{outline:2px solid var(--accent,#496b59);outline-offset:2px}

/* Only the fallback notice needs a separate card; live words stay in the field. */
.dictation-live{width:100%;min-width:0;box-sizing:border-box;padding:14px 16px;border:1px solid var(--border);border-radius:14px;max-height:180px;overflow:auto;text-align:left;background:var(--surface);box-shadow:0 8px 30px #1832241c;font-size:13px;}
#dictation-dock.recording:has(.dictation-live){width:440px;max-width:calc(100vw - 140px);justify-items:stretch;}
.workflow-help-panel .dictation-dock{position:static;max-width:100%;margin:0 14px 10px;}

/* Neutral review separates the task, evidence and decision at a glance. */
.neutral-review-workspace {gap:22px;}
.neutral-review-intro {display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px 32px;border-radius:16px;background:linear-gradient(115deg,#16161b,#363640);color:#fff;}
.review-eyebrow {display:block;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:#b6cdd7;margin-bottom:9px;}
.neutral-review-intro h2 {font-size:25px;line-height:1.25;letter-spacing:-.025em;}
.neutral-review-intro p {max-width:590px;margin-top:12px;color:#d4e1e7;line-height:1.65;}
.neutral-review-count {display:grid;gap:3px;text-align:center;flex:none;}
.neutral-review-count strong {font-size:36px;font-weight:500;line-height:1.1;}
.neutral-review-count span {font-size:11px;color:#d4e1e7;}
.review-reference-panels {display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;}
.review-reference-panels details[open] {grid-column:1/-1;}
.review-reference-panels summary {display:flex;align-items:center;gap:10px;}
.review-reference-panels summary:after {content:'+';margin-left:auto;color:var(--muted);font-size:20px;font-weight:400;}
.review-reference-panels details[open]>summary:after {content:'−';}
.review-change-nav {display:flex;flex-wrap:wrap;gap:8px;}
.review-change-nav .btn {border:1px solid var(--border);background:#fff;border-radius:20px;padding:7px 14px;}
.neutral-review-workspace .review-handoff-summary {background:#eef2f5;border:1px solid #dde5eb;padding:24px;box-shadow:none;}
.neutral-review-workspace .review-handoff-summary>h2 {font-size:17px;}
.neutral-review-workspace .review-handoff-summary>.hint {max-width:650px;}
.review-handoff-summary #review-walkthrough {margin-top:8px;border-radius:12px;background:#fff;border:1px solid #d9e2e9;}
.review-handoff-summary #review-walkthrough.is-active {margin:0;}
.resolution-card {padding:26px!important;border-radius:14px;box-shadow:0 3px 14px #172b3a06;border:1px solid #dce2e7;}
.resolution-card .handoff-change h3 {font-size:20px;line-height:1.4;letter-spacing:-.015em;max-width:800px;}
.change-number {display:inline-flex;align-items:center;padding:5px 10px;border-radius:7px;background:#e9eff4;color:#334d5f;font-size:11px;font-weight:650;}
.review-stated-reason {display:grid;gap:5px;padding:15px 18px;background:#f3f5f7;border-radius:10px;line-height:1.65;}
.review-stated-reason .field-label {color:#536371;font-size:11px;text-transform:none;letter-spacing:0;}
.resolution-card .handoff-diff {margin:4px 0 10px;}
.resolution-card .handoff-diff>summary {font-size:12px;color:#586b7a;padding:6px 0;}
.resolution-card .handoff-diff-columns>div {padding:17px;border-radius:10px;}
.resolution-card .proposal-before {background:#f3f5f7;color:#3d4750;border-color:#e1e6ea;}
.resolution-card .handoff-diff-columns .proposal-after {background:#edf6f1;border-color:#cddfd4;color:#234734;}
.resolution-response {display:grid;gap:16px;padding-top:20px;border-top:1px solid #dce2e7;}
.resolution-response>h3 {font-size:15px;}
.resolution-decision {display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.resolution-choice {display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #ccd6de;border-radius:10px;padding:15px;background:#fff;transition:background .15s,border-color .15s,box-shadow .15s;}
.resolution-choice>span {display:grid;gap:3px;}
.resolution-choice strong {font-weight:600;font-size:13px;}
.resolution-choice small {font-size:11.5px;color:#6e7d89;}
.resolution-choice:hover {background:#f5f8fa;border-color:#99abb9;}
.resolution-choice[aria-pressed=true] {background:#eaf0f8;border-color:#5c789e;box-shadow:0 0 0 1px #5c789e;color:#254568;}
.resolution-footer {position:sticky;bottom:18px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 22px;background:#f8fafcf5;backdrop-filter:blur(14px);border:1px solid #cdd8e1;border-radius:12px;box-shadow:0 8px 30px #172b3a14;}
.resolution-footer .hint {margin-top:4px;max-width:510px;}
.resolution-footer>.btn {flex:none;}
.review-closing-note {background:#f5f7f9;}
.review-walkthrough-active {border-color:#5b7b99;box-shadow:0 0 0 3px #4265a21a,0 6px 24px #172b3a0c;}
@media(max-width:700px){.neutral-review-intro{padding:24px;gap:16px}.neutral-review-intro h2{font-size:21px}.neutral-review-count strong{font-size:28px}.review-reference-panels{grid-template-columns:1fr}.resolution-card{padding:18px!important}.resolution-card .handoff-change h3{font-size:17px}.resolution-decision{grid-template-columns:1fr}.resolution-footer{align-items:stretch;flex-direction:column;gap:12px;bottom:10px;padding:14px}.resolution-footer>.btn{width:100%}.review-stated-reason{padding:13px}.neutral-review-workspace .review-handoff-summary{padding:18px}}
@media(prefers-reduced-motion:reduce){.resolution-choice{transition:none}}
.diagnosis-comparison{padding:18px;border:1px solid var(--border,#dce3e8);border-radius:12px;background:#f6f8fa;display:grid;gap:12px}
.diagnosis-comparison.equivalent{background:#f0f7f3;border-color:#c9dfd2}
.diagnosis-comparison.different,.diagnosis-comparison.uncertain{background:#fff9ee;border-color:#eadbb8}
.diagnosis-comparison p{margin:0;white-space:pre-wrap}

/* Dictation keeps the writing surface stable while its content grows. */
textarea { transition: height 210ms cubic-bezier(.2,.8,.2,1), border-color .15s, box-shadow .15s; overflow-anchor:none; }
textarea[data-formatting],input[data-formatting] {
  background-image:linear-gradient(110deg,rgba(69,91,145,.03) 20%,rgba(69,91,145,.17) 48%,rgba(104,82,146,.10) 65%,rgba(69,91,145,.03) 85%);
  background-size:220% 100%;animation:dictation-polish 1.5s ease-in-out infinite;
  border-color:#8293b2;
}
@keyframes dictation-polish { from {background-position:180% 0;} to {background-position:-40% 0;} }
.diagnosis-ranks {list-style:none;padding:0;margin:0;display:grid;gap:9px;}
.diagnosis-rank {display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);position:relative;transition:box-shadow .18s,border-color .18s;}
.diagnosis-rank:first-child {border-color:#b6c0cc;background:#fafbfd;}
.rank-number {display:grid;place-items:center;flex:0 0 27px;width:27px;height:27px;border-radius:50%;background:#eef1f5;color:#536171;font-size:12px;font-weight:650;font-variant-numeric:tabular-nums;}
.diagnosis-rank:first-child .rank-number {background:#34485e;color:white;}
.rank-handle {border:0;background:transparent;padding:8px 4px;color:#8a939e;font-size:21px;line-height:1;cursor:grab;touch-action:none;}
.rank-handle:active {cursor:grabbing;}
.rank-handle:focus-visible {outline:2px solid #7085a2;outline-offset:3px;border-radius:4px;}
.rank-content {flex:1;min-width:0;}.rank-content>.row {flex-wrap:nowrap;}.rank-content input {min-width:0;}
.rank-actions {display:flex;gap:2px;}.rank-actions button {padding:6px;}.rank-actions button:first-child svg {transform:rotate(-90deg);}.rank-actions button:last-child svg {transform:rotate(90deg);}
.rank-endnote {font-size:11px;color:var(--muted);}.diagnosis-ranking-editor {gap:12px;}
.diagnosis-rank.drop-before:before,.diagnosis-rank.drop-after:after {content:"";position:absolute;left:10px;right:10px;height:2px;background:#536c88;border-radius:2px;}
.diagnosis-rank.drop-before:before {top:-6px;}.diagnosis-rank.drop-after:after {bottom:-6px;}
.diagnosis-effects {border:1px solid var(--border);border-radius:12px;padding:18px;margin-top:18px;background:#fafbfd;}
.diagnosis-effects h3 {font-size:14px;line-height:1.5;max-width:450px;margin:0;}
.diagnosis-effect-row {display:grid;gap:7px;padding:9px 0;border-bottom:1px solid #e9edf1;}.diagnosis-effect-row strong {font-size:12px;font-weight:550;}
.effect-choices {display:flex;flex-wrap:wrap;gap:5px;}.effect-choice {border:1px solid #dce2e9;border-radius:7px;background:white;color:#687483;padding:6px 9px;font-size:11px;transition:background .15s,border-color .15s,color .15s;}
.effect-choice.selected {background:#e8edf4;border-color:#879ab3;color:#243f5d;}.effect-choice:focus-visible {outline:2px solid #7085a2;outline-offset:2px;}
@media(max-width:600px){.diagnosis-rank {padding:9px 8px;gap:7px;}.rank-actions {flex-direction:column;}.rank-content input {padding:9px 7px;}.diagnosis-effects {padding:13px;}}
@media(prefers-reduced-motion:reduce){textarea {transition:none;}textarea[data-formatting],input[data-formatting] {animation:none;}.diagnosis-rank {transition:none;}}
.rank-diagnosis-fields {gap:7px;}.rank-diagnosis-fields>input {font-weight:550;}
.rank-options {display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.rank-option {display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid #e0e5eb;background:white;color:#727d89;border-radius:6px;font-size:10px;transition:color .15s,background .15s,border-color .15s;}
.rank-option.selected {background:#edf2ef;border-color:#a8bfb1;color:#335e46;}
@media(max-width:600px){.rank-diagnosis-fields>input {padding:8px 5px;}.rank-option {font-size:10px;padding:4px;}.rank-options {gap:4px;}.rank-options>.btn {padding:4px;}}

/* Small, optional guides stay beside the action they explain. */
.quiet-guide {position:relative;display:inline-block;text-align:left;}
.quiet-guide>summary {display:inline-flex;align-items:center;gap:5px;cursor:pointer;list-style:none;color:var(--muted);font-size:12px;padding:6px 8px;border-radius:7px;transition:color .15s,background .15s;}
.quiet-guide>summary::-webkit-details-marker {display:none;}
.quiet-guide>summary:hover,.quiet-guide[open]>summary {color:var(--text);background:#edf2f1;}
.quiet-guide>summary:focus-visible {outline:2px solid #457765;outline-offset:2px;}
.quiet-guide-panel {position:absolute;top:calc(100% + 7px);right:0;z-index:38;max-height:calc(100dvh - 32px);overflow-y:auto;width:340px;max-width:calc(100vw - 40px);padding:19px 20px;background:#fff;border:1px solid #d5dfda;border-radius:13px;box-shadow:0 12px 36px #142f2420;transform:translateX(var(--guide-shift,0px));animation:quiet-guide-enter .16s ease-out;}
.guide-copy,.label-guide-copy {font-size:13px;line-height:1.55;}
.guide-copy p,.label-guide-copy p {margin:10px 0 0;}
.label-guide-copy dl {display:grid;gap:13px;margin:15px 0;}
.label-guide-copy dl>div {display:grid;grid-template-columns:106px 1fr;gap:9px;}
.label-guide-copy dt {display:flex;align-items:baseline;gap:7px;font-weight:600;}
.label-guide-copy dd {margin:0;color:var(--text-2);}
.label-guide-dot {width:6px;height:6px;flex:none;border-radius:50%;display:inline-block;background:#87958e;}
.label-guide-dot.c-needed {background:#386c59;}.label-guide-dot.c-optional {background:#788a9a;}.label-guide-dot.c-unnecessary {background:#a18a61;}.label-guide-dot.c-harmful {background:#a95050;}
.action-label-caption {display:flex;flex-wrap:wrap;gap:5px 10px;margin:0 0 14px;font-size:12px;color:var(--muted);}
.action-label-caption strong {color:var(--text);font-weight:600;}
.notes-tools {display:flex;justify-content:flex-end;margin:0 0 4px;}
.notes-placement {border-top:1px solid #e1e8e3;margin-top:17px;padding-top:15px;display:grid;gap:10px;}
.placement-heading {display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:13px;}
.placement-heading>.icon {color:#426f5d;}.placement-heading>.hint {margin-left:auto;}
.placement-destinations {display:flex;gap:5px;flex-wrap:wrap;}.placement-destinations .btn {border:1px solid #e0e8e3;background:#f6f8f6;}
.placement-unplaced>summary {cursor:pointer;display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:13px;list-style:none;}
.placement-unplaced>summary::-webkit-details-marker {display:none;}.placement-unplaced>summary:after {content:"⌄";margin-left:auto;}.placement-unplaced[open]>summary:after {content:"⌃";}
.placement-count {display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:7px;background:#f1eadd;color:#776044;font-size:12px;}
.placement-unplaced ol {margin:10px 0 0;padding-left:20px;display:grid;gap:8px;}.placement-unplaced blockquote {margin:0;padding:10px 12px;background:#f5f6f4;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.5;}
@keyframes quiet-guide-enter {from {opacity:0;transform:translate(var(--guide-shift,0px),-4px)}to {opacity:1;transform:translate(var(--guide-shift,0px),0)}}
@media(max-width:600px){.quiet-guide-panel{width:310px;padding:16px;right:0}.label-guide-copy dl>div{grid-template-columns:96px 1fr}.placement-heading>.hint{margin-left:0}.action-label-caption{display:grid;gap:3px}}
@media(prefers-reduced-motion:reduce){.quiet-guide-panel{animation:none}}

.guide-dismiss {position:absolute;right:9px;top:9px;display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted)}
.guide-dismiss:hover {background:#edf2f1;color:var(--text)}
.quiet-guide-panel>.guide-copy>strong,.quiet-guide-panel>.label-guide-copy>strong {display:block;padding-right:14px}

/* A conversational clarification stays inside the patient chat. */
.bubble.patient.clarification{background:#edf2f4;border:1px solid #d5e0e5;}
.clarification-label{display:block;font-size:10px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:#586b76;margin-bottom:6px;}


/* Verillect monochrome identity. Clinical status and change colors retain their meaning. */
.brand-wordmark {display:block;flex:none;width:139px;height:auto;}
.brand-button.btn {color:#111;}
.auth-page {
  --bg:#000;--surface:#111114;--surface-2:#19191e;--sunken:#1c1c22;
  --text:#f5f5f7;--text-2:#d4d4db;--muted:#a3a3ae;
  --border:#33333b;--border-strong:#45454f;
  --accent:#f4f4f6;--accent-hover:#dcdce2;--accent-soft:#292930;--accent-text:#f4f4f6;
  background:#000;color:var(--text);
}
/* The contour mask keeps the moving silver light on the lines, off the form. */
.auth-art {
  opacity:1;
  background:#ffffff26;
  -webkit-mask:url('/auth-contours.svg') center/cover no-repeat;
  mask:url('/auth-contours.svg') center/cover no-repeat;
  filter:drop-shadow(0 0 3px #d9e2ff40);
}
.auth-art::before {
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(112deg,
    #ffffff00 24%,#7e889922 32%,#b9c2d299 40%,#e3e8f4e6 46%,
    #fff 49%,#fff 51%,#bfc8dbe6 55%,#8f9cb177 63%,#ffffff00 76%);
  background-size:220% 100%;
  animation:auth-silver-flow 11s ease-in-out -3s infinite alternate;
}
@keyframes auth-silver-flow {
  from {background-position:85% 50%;}
  to {background-position:15% 50%;}
}
.motion-paused .auth-art::before {animation-play-state:paused;}
@media(prefers-reduced-motion:reduce) {
  .auth-art::before {animation:none;background-position:52% 50%;opacity:.65;}
}
.auth-page::after {background:radial-gradient(ellipse at center,#0000 20%,#0009 100%);}
.auth-card {background:#09090bee;border:1px solid #ffffff26;box-shadow:0 24px 90px #000b,0 1px 0 #ffffff0a inset;}
.auth-card .auth-brand {margin:4px 0 16px;}
.auth-brand .brand-wordmark {width:196px;height:auto;filter:invert(1);}
.auth-card h1 {font-weight:550;letter-spacing:-.03em;}
.auth-card input {background:#111114;color:#f5f5f7;border-color:#3a3a44;}
.auth-card input:focus {border-color:#c6c6d0;box-shadow:0 0 0 3px #ffffff12;}
.auth-card input::placeholder {color:#a3a3ae;}
.auth-options {background:#16161c;}
.auth-options .btn[aria-pressed="true"] {background:#303039;box-shadow:0 1px 3px #0005;color:#fff;}
.auth-card .btn.primary {background:#f4f4f6;border-color:#f4f4f6;color:#111114;}
.auth-card .btn.primary:hover {background:#dcdce2;border-color:#dcdce2;}
.auth-motion {color:#a3a3ae;}
.auth-motion:hover {color:#fff;background:#ffffff12;}
.auth-page input:-webkit-autofill {-webkit-text-fill-color:#f5f5f7;box-shadow:0 0 0 1000px #111114 inset;caret-color:#f5f5f7;}
.workflow-help-head {background:linear-gradient(120deg,#f4f4f6,#fafafa);}
.workflow-help-toggle {color:var(--text);border-color:var(--border-strong);}
.workflow-help-message.user {background:var(--sunken);}
.sequence-number,.sequence-order-requires,.sequence-drag-handle {color:var(--muted);}
.sequence-drag-handle:hover,.sequence-drag-handle:focus-visible {background:var(--accent-soft);color:var(--text);outline-color:#9b9ba7;}
.sequence-order-card.drop-before::before,.sequence-order-card.drop-after::after {background:#575763;box-shadow:0 0 0 3px #e7e7ed;}
.sequence-announcement {color:var(--accent-text);}
.connection-dialog-header {background:radial-gradient(ellipse at 0 0,#f1f1f5,transparent 72%);border-color:var(--border);}
.connection-dialog-progress li.active>span {box-shadow:0 0 0 4px #ededf1;}
.quiet-guide>summary:hover,.quiet-guide[open]>summary,.guide-dismiss:hover {background:var(--accent-soft);}
.quiet-guide>summary:focus-visible {outline-color:var(--accent);}
.placement-heading>.icon {color:var(--text-2);}
.placement-destinations .btn {border-color:var(--border);background:var(--surface-2);}
.rank-option.selected {background:var(--accent-soft);border-color:#a5a5b0;color:var(--accent-text);}
