/* =========================================================================
   WhySOAP — one coherent visual system (replaces the prior stacked layers).
   Clinical medication-safety tool: calm teal accent, cool teal-biased
   neutrals, and SEPARATE semantic colors (critical / caution / verified) so
   severity reads at a glance. State is encoded in form as well as color.
   ========================================================================= */
@font-face{font-family:"Thmanyah Sans";src:url("/static/fonts/thmanyah/thmanyahsans-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Thmanyah Sans";src:url("/static/fonts/thmanyah/thmanyahsans-Medium.woff2") format("woff2");font-weight:500 600;font-display:swap}
@font-face{font-family:"Thmanyah Sans";src:url("/static/fonts/thmanyah/thmanyahsans-Bold.woff2") format("woff2");font-weight:700 900;font-display:swap}

:root{
  /* Brand = the whySOAP logo: navy + royal blue. (Token names kept as --teal*
     for continuity; the values are the logo's blue.) */
  --ground:#eef2f8; --surface:#ffffff; --surface-2:#f5f8fd; --surface-3:#eef3fb;
  --ink:#13233f; --muted:#5b6b83; --faint:#8592a6; --line:#dce4f1; --line-soft:#e8eef8;
  --teal:#1f5cd4; --teal-deep:#0d2a58; --teal-soft:#e9f1fd; --teal-line:#c6d8f5;
  --crit:#b02a1f; --crit-soft:#fdf1ef; --crit-line:#f0cfca;
  --warn:#8a5d05; --warn-soft:#fdf6e6; --warn-line:#ecdcb0;
  --ok:#177050; --ok-soft:#e9f5ef; --ok-line:#bfe2d1;
  --plum:#6f5a97; --plum-soft:#f2eefb;
  --radius:15px; --radius-sm:10px; --radius-xs:8px;
  --shadow:0 1px 2px rgba(16,32,60,.04),0 14px 34px rgba(16,32,60,.06);
  --shadow-sm:0 1px 2px rgba(16,32,60,.05),0 4px 12px rgba(16,32,60,.04);
  --ui:"Thmanyah Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --data:ui-monospace,"SF Mono","Cascadia Mono","Segoe UI Mono",Menlo,Consolas,monospace;
  --maxw:1400px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:var(--ui);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;
  background:radial-gradient(120% 55% at 92% -6%,#e6eefb 0,rgba(226,239,235,0) 44%),var(--ground)}
button,input,textarea,select{font:inherit}
button{cursor:pointer;transition:background-color .15s,border-color .15s,box-shadow .15s,color .15s,transform .1s}
button:active{transform:translateY(1px)}
button:disabled{cursor:wait;opacity:.65}
a{color:var(--teal);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
:where(button,input,textarea,select,summary,a):focus-visible{outline:3px solid #a9c4f5;outline-offset:2px;border-radius:6px}
.num,[data-count],.calc .val,.labtable td.v{font-variant-numeric:tabular-nums}

/* ---- Topbar + nav ---- */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:22px;
  max-width:var(--maxw);margin:0 auto;padding:13px 30px;background:rgba(255,255,255,.9);backdrop-filter:saturate(1.3) blur(10px);border-bottom:1px solid var(--line)}
.brand-lockup{display:flex;align-items:center;gap:12px}
.brand-mark{width:172px;height:48px;display:grid;place-items:center;overflow:hidden}
.brand-mark img{width:100%;height:100%;object-fit:contain}
.eyebrow,.panel-kicker{margin:0 0 3px;color:var(--teal);font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.brand-subtitle,.brand-byline{display:none}
h1{margin:0;font-size:1.4rem;letter-spacing:-.02em}
h2{margin:0;font-size:1.05rem}
.header-pills{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}
.pill{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.77rem;font-weight:650}
.pill-live{color:var(--teal-deep);background:var(--teal-soft);border-color:var(--teal-line)}
.status-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(23,112,80,.14)}
.text-button{border:0;padding:6px 4px;color:var(--teal);background:transparent;font-size:.8rem;font-weight:700}
.text-button:hover{color:var(--teal-deep);text-decoration:underline;text-underline-offset:3px}
.workspace-nav{display:flex;gap:26px;max-width:var(--maxw);margin:0 auto;padding:0 30px;background:transparent;border-bottom:1px solid var(--line)}
.workspace-nav button{position:relative;border:0;border-bottom:2px solid transparent;padding:12px 2px 10px;color:var(--muted);background:transparent;font-size:.87rem;font-weight:650}
.workspace-nav button:hover{color:var(--ink)}
.workspace-nav button.active{color:var(--teal-deep);border-color:var(--teal)}
.safety-banner{max-width:var(--maxw);margin:0 auto;padding:9px 30px;text-align:center;color:var(--warn);background:var(--warn-soft);border-bottom:1px solid var(--warn-line);font-size:.8rem;line-height:1.5}

/* ---- Workspace layout ---- */
.workspace{display:grid;grid-template-columns:minmax(340px,430px) minmax(0,1fr);gap:20px;align-items:start;max-width:var(--maxw);margin:0 auto;padding:22px 30px 56px}
.case-panel,.note-panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.case-panel{padding:20px}
.note-panel{min-height:640px;padding:22px}

/* ---- Panel headers / section labels ---- */
.panel-header{display:flex;align-items:center;gap:11px;margin-bottom:8px}
.panel-header h2{font-size:1.14rem;font-weight:750;letter-spacing:-.01em}
.step{display:inline-grid;place-items:center;width:27px;height:27px;color:#fff;border-radius:8px;font-size:.83rem;font-weight:800;
  background:linear-gradient(150deg,#2f6fe0,#0d2a58);box-shadow:0 5px 12px rgba(31,92,212,.22)}
.workflow-hint{display:flex;gap:9px;align-items:flex-start;margin:2px 0 4px;padding:10px 12px;border:1px solid var(--teal-line);border-radius:var(--radius-sm);color:#2c4c86;background:var(--teal-soft);font-size:.79rem}
.hint-icon{color:var(--teal);font-weight:900}
.input-group{border:0;margin:0;padding:15px 0;border-top:1px solid var(--line-soft)}
.input-group:first-of-type,.upload-group{border-top:0}
.input-group label,.input-group summary{display:block;margin-bottom:6px;color:#33445e;font-size:.82rem;font-weight:650}
.section-label{display:flex;gap:10px;align-items:center;margin-bottom:11px}
.section-number{display:inline-grid;place-items:center;flex:0 0 auto;width:24px;height:24px;border-radius:7px;font-size:.72rem;font-weight:850}
.section-number{border:1px solid var(--teal-line);color:var(--teal);background:var(--teal-soft)}
.section-number.subjective{border-color:#efd4dd;color:#9b5367;background:#fdf0f4}
.section-number.objective{border-color:#cfe0ee;color:#2c668a;background:#eef5fb}
.section-number.upload{border-color:#ddd2f2;color:var(--plum);background:var(--plum-soft)}
.section-label label,.field-heading{margin:0;color:#1c2f4d;font-size:.94rem;font-weight:800}
.section-label p,.input-group p{margin:2px 0 0;color:var(--muted);font-size:.77rem;font-weight:400}
.label-note{color:var(--faint);font-size:.72rem;font-weight:500}

/* ---- Form controls ---- */
textarea,input,select{width:100%;border:1px solid #c9d5ea;border-radius:var(--radius-sm);color:var(--ink);background:#fff;padding:9px 10px}
textarea{min-height:54px;margin-bottom:10px;resize:vertical;line-height:1.5}
textarea::placeholder,input::placeholder{color:#9ba7bd}
textarea:focus,input:focus,select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(31,92,212,.12)}
input[type=file]{padding:0;border:1.5px dashed var(--teal-line);background:var(--teal-soft);border-radius:var(--radius-sm)}
input[type=file]::file-selector-button{margin-right:12px;border:0;border-radius:var(--radius-sm) 0 0 var(--radius-sm);padding:11px 14px;color:#fff;background:linear-gradient(135deg,#2f6fe0,#0d2a58);font-weight:700;cursor:pointer}
.quick-actions{display:flex;flex-wrap:wrap;gap:9px;margin:8px 0 2px;justify-content:flex-end}
.quick-actions .secondary{flex:1 1 160px}
.label-row{display:flex;align-items:baseline;justify-content:space-between}

/* ---- Buttons ---- */
.primary,.secondary,.danger-button,.btn{border-radius:var(--radius-sm);padding:9px 14px;font-size:.84rem;font-weight:750}
.primary{border:1px solid var(--teal-deep);color:#fff;background:linear-gradient(135deg,#2f6fe0,#0d2a58);box-shadow:0 6px 14px rgba(31,92,212,.2)}
.primary:hover{filter:brightness(1.06);box-shadow:0 8px 18px rgba(31,92,212,.26)}
.secondary{border:1px solid var(--line);color:var(--teal-deep);background:#fff}
.secondary:hover{border-color:var(--teal-line);background:var(--teal-soft)}
.danger-button{border:1px solid var(--crit-line);color:var(--crit);background:#fff}
.danger-button:hover{background:var(--crit-soft)}
.case-panel>.primary{width:100%;margin-top:8px}
.run-button{display:flex;justify-content:center;align-items:center;gap:9px;padding:12px;font-size:.9rem}
.run-button.is-loading{filter:brightness(.95)}
.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.status{min-height:20px;margin:11px 0 0;color:var(--muted);font-size:.79rem;text-align:center}
.status.error{color:var(--crit);font-weight:700}

/* ---- Medication rows ---- */
.med-card{margin:0 0 9px;padding:9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.med-row{display:grid;grid-template-columns:1.1fr .6fr .75fr .55fr .8fr 26px;gap:6px;margin:0}
.med-row input,.med-row select{min-width:0;font-size:.8rem;padding:8px}
.med-row button{border:0;color:#b06258;background:transparent;font-size:1.15rem}
.med-row button:hover{color:var(--crit)}
.med-details{padding:5px 2px 0}
.med-details>summary,.nested-details>summary{cursor:pointer;color:var(--teal);font-size:.79rem;font-weight:750;list-style:none}
.med-details>summary::-webkit-details-marker,.nested-details>summary::-webkit-details-marker{display:none}
.nested-details{margin:6px 0 2px;padding:11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.nested-details[open]>summary,.med-details[open]>summary{margin-bottom:9px}
.wide-field{display:block;margin-top:10px}
.wide-field textarea{min-height:62px;margin-top:4px}

/* ---- Collapsible groups & grids ---- */
details.input-group summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font-weight:750;color:#1c2f4d;font-size:.95rem}
details.input-group summary::-webkit-details-marker{display:none}
.summary-caret{margin-left:auto;color:var(--muted)}
.details-note{padding-left:33px;color:var(--muted)}
.grid-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding-top:8px}
.grid-fields.extended-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-fields label{margin:0;color:#4a5a72;font-size:.74rem;font-weight:600}
.grid-fields input,.grid-fields select{margin-top:4px;font-size:.82rem}
.check-label{display:flex!important;align-items:flex-start;gap:8px;margin:12px 0!important}
.check-label input{width:auto;margin-top:3px;accent-color:var(--teal)}

/* ---- Mode choice ---- */
.mode-choice{border:0;padding:15px 0 6px;margin:0;border-top:1px solid var(--line-soft)}
.mode-choice legend{padding:0;color:#1c2f4d;font-size:.9rem;font-weight:800}
.mode-choice p{margin:3px 0 10px;color:var(--muted);font-size:.77rem}
.mode-choice label{display:flex;align-items:center;gap:8px;margin:7px 0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:#37455e;font-size:.83rem;cursor:pointer}
.mode-choice input{width:auto;accent-color:var(--teal)}
.mode-choice label:has(input:checked){border-color:var(--teal);background:var(--teal-soft)}

/* ---- Extract report ---- */
.extract-report{margin-top:11px;padding:12px;border:1px solid var(--teal-line);border-radius:var(--radius-sm);color:#3a548a;background:var(--teal-soft);font-size:.78rem}
.extract-report strong{color:var(--teal-deep)}
.extract-report ul{margin:6px 0 0 17px;padding:0}
.extract-summary{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 2px}
.extract-summary span{padding:3px 8px;border:1px solid var(--teal-line);border-radius:999px;color:var(--teal-deep);background:#fff;font-size:.7rem;font-weight:750}
.privacy-note{margin:9px 0;padding:9px 11px;border:1px solid var(--warn-line);border-radius:var(--radius-sm);color:var(--warn);background:var(--warn-soft);font-weight:700}

/* ---- Empty state (SOAP preview) ---- */
.empty-state{padding:6px 2px}
.empty-copy{padding:6px 2px 16px}
.empty-copy strong{display:block;color:#1c2f4d;font-size:1.15rem;font-weight:750}
.empty-copy span{display:block;margin-top:4px;color:var(--muted);font-size:.85rem}
.empty-icon{display:none}
.empty-steps{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.empty-steps span{padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:.73rem;color:var(--muted)}
.soap-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:14px}
.soap-preview>div{display:flex;align-items:center;gap:12px;min-height:82px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.soap-preview b{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:9px;color:var(--teal);background:var(--teal-soft);font-size:.85rem;font-weight:800}
.soap-preview strong{display:block;color:#1c2f4d;font-size:.86rem;font-weight:750}
.soap-preview small{display:block;margin-top:2px;color:var(--muted);font-size:.72rem}

/* ---- Welcome splash: two-layer logo reveal (S mark first, then wordmark) ---- */
.welcome-screen{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;background:
  radial-gradient(120% 90% at 50% 42%,#ffffff 0,#f4f8fb 60%,#eaf1f6 100%);transition:opacity .4s ease}
.welcome-screen.is-leaving{opacity:0;pointer-events:none}
.welcome-screen[hidden]{display:none}
.welcome-inner{display:grid;justify-items:center;gap:22px}
.welcome-logo{position:relative;width:min(460px,80vw);aspect-ratio:1221/350}
.welcome-logo::before{content:"";position:absolute;inset:-40% -12%;z-index:0;border-radius:50%;
  background:radial-gradient(circle at 12% 50%,rgba(31,92,212,.16),transparent 62%);
  opacity:0;animation:wl-glow 1.8s ease .15s forwards}
.welcome-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
/* The two copies tile at 22%: the mark shows [0,22%], the wordmark [22%,100%]. */
.wl-mark{clip-path:inset(0 78% 0 0);opacity:0;transform-origin:12% 50%;transform:scale(.55);
  animation:wl-mark-in .72s cubic-bezier(.34,1.42,.5,1) .18s forwards}
.wl-word{clip-path:inset(0 0 0 22%);opacity:0;transform:translateX(18px);
  animation:wl-word-in .68s cubic-bezier(.22,.61,.36,1) .8s forwards}
.welcome-greeting{margin:0;color:var(--muted);font-size:1.05rem;font-weight:600;opacity:0;
  animation:wl-greet-in .6s ease 1.3s forwards}
@keyframes wl-mark-in{60%{opacity:1}to{opacity:1;transform:none}}
@keyframes wl-word-in{to{opacity:1;transform:none}}
@keyframes wl-greet-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes wl-glow{45%{opacity:1}to{opacity:.55}}
@media(prefers-reduced-motion:reduce){
  .wl-mark,.wl-word,.welcome-greeting{animation:none;opacity:1;transform:none}
  .welcome-logo::before{animation:none;opacity:.5}
}

/* ---- Results header + priority summary ---- */
.result-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}
.case-status{margin-top:4px;color:var(--muted);font-size:.8rem}
.result-actions{display:flex;align-items:flex-end;gap:9px;margin-left:auto}
.result-actions label{color:var(--muted);font-size:.72rem;font-weight:700}
.result-actions input{display:block;max-width:180px;margin-top:4px}
.result-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid var(--warn-line);border-radius:999px;color:var(--warn);background:var(--warn-soft);font-size:.72rem;font-weight:700;white-space:nowrap}
.priority-card{display:flex;gap:13px;align-items:flex-start;padding:14px 15px;margin-bottom:16px;border:1px solid var(--crit-line);border-radius:12px;background:linear-gradient(180deg,#fef4f2,#fdf0ee);color:#6a2019;font-size:.9rem}
.priority-card.neutral{border-color:var(--teal-line);background:var(--teal-soft);color:#20488a}
.priority-label{display:block;margin-bottom:3px;font-size:.66rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;opacity:.85}
.priority-card strong{margin-right:4px}
.rule-id{display:inline-block;margin-left:4px;padding:2px 6px;border-radius:5px;background:rgba(255,255,255,.6);font-family:var(--data);font-size:.72rem}

/* ---- Prioritized problems ---- */
.prioritized-problems{margin:0 0 18px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}
.prioritized-problems>h2{font-size:1rem}
.problem-list-note{margin:3px 0 0;color:var(--muted);font-size:.77rem}
.problem-grid{display:grid;gap:10px;margin-top:12px}
.problem-card{padding:13px 14px;border:1px solid var(--line);border-left:4px solid #7d8f8d;border-radius:11px;background:#fff;box-shadow:var(--shadow-sm)}
.problem-card.critical{border-left-color:var(--crit)}
.problem-card.urgent{border-left-color:var(--warn)}
.problem-card.high{border-left-color:var(--teal)}
.problem-card.routine{border-left-color:#7d8f8d}
.problem-card header{display:flex;gap:11px;align-items:flex-start}
.problem-rank{display:grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border-radius:8px;color:#fff;background:var(--teal-deep);font-size:.8rem;font-weight:850}
.problem-card.critical .problem-rank{background:var(--crit)}
.problem-card h3{margin:0;font-size:.9rem;font-weight:750;line-height:1.35}
.problem-card>p{margin:9px 0;color:#3d4d66;font-size:.8rem}
.problem-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.problem-chips span{padding:3px 7px;border-radius:999px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);font-size:.65rem;font-weight:750;letter-spacing:.03em;text-transform:uppercase}
.problem-card details{margin-top:7px}
.problem-card summary{cursor:pointer;color:var(--teal-deep);font-size:.73rem;font-weight:750}
.problem-card ul{margin:6px 0 0 18px;padding:0;color:#4a5a72;font-size:.75rem}
.problem-sources,.review-sources,.problem-soap-grid .srcs{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.problem-sources a,.review-sources a{color:var(--teal);font-size:.71rem;font-weight:650;font-family:var(--data)}

/* ---- SOAP tabs ---- */
.soap-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.soap-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border:0;border-bottom:2px solid transparent;border-radius:8px;padding:9px 5px;color:var(--muted);background:transparent;font-size:.84rem;font-weight:750}
.soap-tabs button:hover{color:var(--teal-deep);background:#fff}
.soap-tabs button.active{background:#fff;color:var(--teal-deep);border-color:var(--teal);box-shadow:var(--shadow-sm)}
.soap-tabs button[data-tab=subjective].active{border-color:#a75468;color:#91485d}
.soap-tabs button[data-tab=objective].active{border-color:#3c7598;color:#2c668a}
.soap-tabs button[data-tab=assessment].active{border-color:var(--warn);color:var(--warn)}
.soap-tabs button[data-tab=plan].active{border-color:var(--teal);color:var(--teal-deep)}
.soap-tabs em{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 5px;border-radius:99px;color:#465a86;background:#dfe8e5;font-size:.66rem;font-style:normal;font-family:var(--data)}
.soap-tabs button.active em{color:#fff;background:currentColor}

/* ---- SOAP content + evidence facts ---- */
.soap-content{padding:18px 0 6px}
.section-head,.section-title-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.section-head h2{font-size:1.14rem;font-weight:750}
.section-head small{display:block;margin-top:2px;color:var(--muted);font-size:.77rem}
.edit-badge,.section-tag{padding:4px 8px;border-radius:6px;color:var(--teal-deep);background:var(--teal-soft);font-size:.68rem;font-weight:800}
.section-tag.amber{color:var(--warn);background:var(--warn-soft)}
.narrative{width:100%;min-height:116px;margin:12px 0 14px;border-color:#bccdec;background:#fff;line-height:1.6}
.evidence-label{margin-bottom:8px;color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.fact-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.fact-list li{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);font-size:.83rem}
.fact-list .empty-fact{color:var(--muted);font-style:italic}
.fact-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.fact-meta span{padding:2px 7px;border-radius:5px;color:var(--teal-deep);background:var(--teal-soft);font-size:.66rem;font-weight:750;text-transform:uppercase;letter-spacing:.02em}
.fact-meta a{color:var(--teal);font-size:.71rem;font-family:var(--data)}

/* ---- Info sections (calc / missing / coverage / reviewer / dose / clinical) ---- */
.calculation-section,.missing-section,.reviewer-section,.coverage-section,.dose-review-section,.clinical-review-section{padding:16px;margin-top:14px;border-radius:12px}
.calculation-section,.clinical-review-section,.dose-review-section{border:1px solid var(--teal-line);background:var(--surface-2)}
.missing-section,.coverage-section{border:1px solid var(--warn-line);background:var(--warn-soft)}
.reviewer-section{border:1px solid #d9cdef;background:var(--plum-soft)}
.calculation-section h2,.missing-section h2,.reviewer-section h2,.coverage-section h2,.dose-review-section h2,.clinical-review-section h2{margin:0;font-size:.98rem;font-weight:750}
.calc-row{padding:11px 0;border-top:1px solid var(--teal-line);font-size:.84rem}
.calc-row:first-of-type{border-top:0}
.calc-row strong{margin-right:5px;font-family:var(--data);color:var(--teal-deep)}
.calc-row p{margin:5px 0 0;color:var(--muted);font-size:.75rem}
.calc-row a{color:var(--teal);font-size:.74rem}
.missing-section ul,.reviewer-section ul,.boundary ul{margin:9px 0 0 18px;padding:0}
.missing-section li,.reviewer-section li,.boundary li{margin:5px 0;font-size:.81rem}
.missing-section li span{display:block;margin-top:2px;color:var(--warn);font-size:.72rem;font-weight:700}
.coverage-warning{margin:11px 0;padding:11px;border:1px solid var(--crit-line);border-radius:var(--radius-sm);color:#762c25;background:var(--crit-soft);font-size:.78rem}
.indication-warning{margin:11px 0;padding:11px;border:1px solid var(--warn-line);border-radius:var(--radius-sm);color:var(--warn);background:var(--warn-soft);font-size:.8rem}
.coverage-grid,.dose-grid,.clinical-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:11px}
.workspace-card,.clinical-review-card,.dose-card{padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}
.clinical-review-card header,.dose-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.clinical-review-card h3,.dose-card h3{margin:0;font-size:.86rem;font-weight:750}
.clinical-review-card p,.clinical-review-card li,.dose-card p,.dose-card li,.dose-card small{font-size:.74rem}
.clinical-review-card p,.dose-card p{margin:6px 0;color:#4a5a72}
.clinical-review-card ul,.dose-card ul{margin:4px 0 8px 17px;padding:0}
.dose-card small{display:block;color:var(--muted)}
.review-status,.status-chip{flex:0 0 auto;padding:2px 7px;border-radius:999px;color:var(--muted);background:var(--surface-3);font-size:.62rem;font-weight:850;text-transform:uppercase}
.review-status.criteria_met{color:var(--crit);background:var(--crit-soft)}
.review-status.documented{color:var(--ok);background:var(--ok-soft)}
.review-status.uncertain,.review-status.partial{color:var(--warn);background:var(--warn-soft)}

/* ---- Problem-oriented SOAP grid ---- */
.problem-soap-head{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}
.problem-soap-head h2{font-size:1rem}
.problem-soap-head p{margin:3px 0 0;color:var(--muted);font-size:.75rem}
.problem-soap-list{display:grid;gap:10px;margin-top:11px}
.problem-soap-card{padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}
.problem-soap-card>h3{margin:0 0 10px;font-size:.87rem;font-weight:750}
.problem-soap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.problem-soap-grid section{padding:10px;border-radius:var(--radius-xs);background:var(--surface-2)}
.problem-soap-grid h4{display:flex;align-items:center;gap:6px;margin:0;font-size:.75rem}
.problem-soap-grid h4 span{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;color:#fff;background:var(--teal);font-size:.68rem}
.problem-soap-grid ul{margin:7px 0 0 16px;padding:0;color:#3d4d66;font-size:.72rem}
.soap-subgroup{margin-top:8px}
.soap-subgroup strong{color:var(--teal-deep);font-size:.69rem}

/* ---- Export bar / chat / boundary ---- */
.export-bar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding-top:18px;margin-top:18px;border-top:1px solid var(--line-soft)}
.export-label{margin-right:auto;color:var(--muted);font-size:.75rem;font-weight:700}
.chat,.boundary{margin-top:15px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.chat summary,.boundary summary{display:flex;justify-content:space-between;cursor:pointer;color:var(--teal-deep);font-size:.83rem;font-weight:750;list-style:none}
.chat summary::-webkit-details-marker,.boundary summary::-webkit-details-marker{display:none}
.chat summary small{color:var(--muted);font-weight:600}
.chat p{margin:8px 0;color:var(--muted);font-size:.76rem}
.chat form{display:flex;gap:8px;margin-top:9px}
.chat form input{flex:1}
.chat-answer{padding:10px;margin-top:8px;border-radius:var(--radius-xs);color:#2c3f5c;background:#fff;border:1px solid var(--line);font-size:.79rem}
.chat-answer small{display:block;margin-top:5px;color:var(--muted);font-size:.68rem}

/* ---- Workspace-info views (drafts / evidence / settings) ---- */
.workspace-info{min-height:560px;padding:24px;color:var(--muted)}
.workspace-info h2{margin-bottom:9px;color:var(--ink)}
.workspace-view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.workspace-view-head h2{font-size:1.35rem;font-weight:750}
.workspace-view-head p:not(.panel-kicker){max-width:720px;margin:5px 0 0;color:var(--muted);font-size:.84rem}
.capacity-chip,.local-chip{display:inline-flex;align-items:center;white-space:nowrap;padding:6px 11px;border:1px solid var(--teal-line);border-radius:999px;color:var(--teal-deep);background:var(--teal-soft);font-size:.72rem;font-weight:750}
.saved-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:18px}
.saved-card{padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}
.saved-card header{display:flex;justify-content:space-between;gap:12px}
.saved-card h3{margin:0;color:var(--ink);font-size:1rem}
.saved-card time{display:block;margin-top:3px;color:var(--muted);font-size:.72rem}
.case-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:14px 0}
.case-metrics span{padding:9px;border-radius:var(--radius-xs);color:var(--muted);background:var(--surface-2);text-align:center;font-size:.67rem}
.case-metrics strong{display:block;color:var(--ink);font-size:1.05rem;font-family:var(--data)}
.saved-actions,.settings-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.workspace-empty{display:grid;justify-items:center;gap:8px;margin:60px auto;padding:36px;max-width:520px;border:1px dashed var(--teal-line);border-radius:var(--radius);text-align:center;background:var(--surface-2)}
.workspace-empty strong{color:var(--ink);font-size:1.1rem}
.workspace-empty p{margin:0 0 8px;font-size:.82rem}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}
.metric-grid article{padding:15px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}
.metric-grid strong{display:block;color:var(--teal-deep);font-size:1.3rem;font-family:var(--data)}
.metric-grid span{font-size:.72rem;color:var(--muted)}
.workspace-card{padding:16px;margin-top:13px}
.workspace-card h3{margin:0;color:var(--ink);font-size:.96rem;font-weight:750}
.workspace-card>p{margin:7px 0;color:#4a5a72;font-size:.8rem}
.policy-list{margin:9px 0 0 19px;padding:0}
.policy-list li{margin:5px 0;font-size:.78rem}
.type-chips,.problem-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.type-chips span{display:flex;align-items:center;gap:8px;padding:6px 9px;border-radius:var(--radius-xs);color:#4a5a72;background:var(--surface-2);font-size:.72rem;text-transform:capitalize}
.type-chips strong{display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;color:#fff;background:var(--teal);font-size:.65rem}
.source-grid,.specialty-reference-grid,.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:14px}
.source-grid a,.specialty-reference-card{display:grid;gap:3px;padding:13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:inherit}
.source-grid a:hover{border-color:var(--teal-line);background:var(--teal-soft)}
.source-grid strong{color:var(--teal-deep);font-size:.82rem}
.source-grid span,.source-grid small{color:var(--muted);font-size:.68rem}
.source-grid em{margin-top:4px;color:var(--teal);font-size:.7rem;font-style:normal;font-weight:800}
.settings-grid .workspace-card{margin:0}
.settings-grid label{display:block;margin-top:12px;color:#33455e;font-size:.8rem;font-weight:700}
.settings-grid select{margin-top:5px}
.setting-check{display:flex!important;align-items:center;gap:8px}
.setting-check input{width:auto;accent-color:var(--teal)}
.setting-help{color:var(--muted);font-size:.72rem!important}
.storage-meter{height:8px;margin:16px 0 8px;overflow:hidden;border-radius:99px;background:var(--surface-3)}
.storage-meter span{display:block;height:100%;background:var(--teal)}
.settings-actions{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
#settings-status{margin-left:5px;color:var(--ok);font-size:.76rem;font-weight:700}
.evidence-controls{display:grid;gap:10px;margin-top:14px;padding:13px;border:1px solid var(--teal-line);border-radius:var(--radius-sm);background:var(--surface-2)}
.evidence-search-label{display:grid;gap:2px;color:#1c2f4d;font-size:.8rem;font-weight:800}
.evidence-search-label span{color:var(--muted);font-size:.7rem;font-weight:500}
.evidence-filter-bar{display:flex;flex-wrap:wrap;gap:7px}
.evidence-filter{border:1px solid var(--line);border-radius:999px;padding:6px 10px;color:var(--teal-deep);background:#fff;font-size:.72rem;font-weight:750;text-transform:capitalize}
.evidence-filter.active{border-color:var(--teal);color:#fff;background:var(--teal)}
.specialty-reference-card h4{margin:8px 0 2px;color:#1c2f4d;font-size:.86rem}
.specialty-reference-card p{margin:7px 0;color:#4a5a72;font-size:.76rem;line-height:1.5}
.reference-only,.reference-limit{padding:3px 7px;border:1px solid var(--warn-line);border-radius:999px;color:var(--warn);background:var(--warn-soft);font-size:.62rem;font-weight:800;text-transform:uppercase}

/* ---- Login ---- */
.login-body{display:grid;place-items:center;min-height:100vh;background:var(--ground)}
.login-shell{width:100%;max-width:420px;padding:20px}
.login-card{padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.login-card h1{margin:0 0 10px;font-size:1.4rem}
.login-note{margin:0 0 18px;color:var(--muted);font-size:.8rem}
.login-card label{display:block;margin-bottom:5px;color:#33455e;font-size:.82rem;font-weight:700}
.login-card input{margin-bottom:14px}
.login-card .primary{width:100%}

/* ---- Responsive ---- */
@media(max-width:980px){
  .workspace{grid-template-columns:minmax(0,1fr);padding:16px;gap:16px}
  .case-panel,.note-panel{min-width:0}
  .note-panel{order:-1;min-height:0}
}
@media(max-width:820px){.saved-grid,.settings-grid,.source-grid,.specialty-reference-grid,.coverage-grid,.dose-grid,.clinical-review-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.grid-fields.extended-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){
  .topbar{flex-direction:column;align-items:flex-start;gap:12px;padding:14px 16px}
  /* Four tabs must all be reachable on a phone. Left scrolling, the last one
     sits off-screen and a reader never learns it exists, so the row is
     tightened to fit instead. */
  .workspace-nav{padding:0 10px;gap:0;overflow-x:auto;justify-content:space-between}
  .workspace-nav button{white-space:nowrap;flex:1 1 auto;padding-left:4px;padding-right:4px;font-size:.76rem;text-align:center}
  .workspace{padding:12px;gap:12px}
  .case-panel,.note-panel{padding:16px}
  .soap-preview,.problem-soap-grid,.grid-fields,.grid-fields.extended-grid{grid-template-columns:1fr}
  .result-header{flex-direction:column}
  .result-actions{margin-left:0}
  .med-row{grid-template-columns:1fr 1fr 26px}
  .med-row .med-name{grid-column:1/3}
  .med-row button{grid-column:3;grid-row:1}
  .med-row .med-frequency,.med-row .med-route,.med-row .med-status{grid-column:1/4}
  .soap-tabs button{flex-direction:column;gap:3px;min-height:50px;font-size:.74rem}
  .export-bar{justify-content:stretch}.export-label{width:100%;margin:0}.export-bar .btn,.export-bar button{flex:1}
  .chat form{flex-direction:column}.chat form button{width:100%}
}
@media(max-width:480px){
  .topbar{padding:12px 14px}
  .brand-mark{width:150px;height:42px}
  .workspace{padding:10px}
  .case-panel,.note-panel{padding:14px;border-radius:12px}
  .metric-grid,.case-metrics{grid-template-columns:1fr}
  .quick-actions .secondary{flex-basis:100%}
  h1{font-size:1.25rem}
  .panel-header h2{font-size:1.05rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* ---- Print ---- */
@media print{
  .welcome-screen,.case-panel,.topbar,.workspace-nav,.safety-banner,.soap-tabs,.export-bar,.chat,.boundary,.section-head small,.edit-badge,.result-badge,.result-actions{display:none!important}
  body{background:#fff}
  .workspace{display:block;max-width:none;margin:0;padding:0}
  .note-panel{border:0;box-shadow:none;min-height:0;padding:0}
  .priority-card,.problem-card,.prioritized-problems{break-inside:avoid;background:#fff!important;border:1px solid #bbb}
  textarea.narrative{border:0;resize:none;height:auto;padding:0}
}

/* Reasoned clinical analysis cards */
.clinical-problem-head{display:flex;align-items:flex-start;gap:9px;margin-bottom:8px}
.clinical-problem-head h3{margin:0;font-size:.9rem;font-weight:800}
.clinical-analysis-card.critical .problem-rank{background:var(--crit)}
.clinical-rationale{margin:0 0 10px;color:var(--muted);font-size:.75rem}
.problem-soap-grid section p{margin:6px 0 0;color:#3d4d66;font-size:.74rem;line-height:1.5}
.soap-subgroup p{margin:2px 0 0;color:#3d4d66;font-size:.74rem;line-height:1.5}
.clinical-impression{margin-bottom:12px}
.clinical-evidence{margin-top:12px}

/* Pending clinical analysis placeholder */
.clinical-skeleton{display:grid;gap:9px;margin-top:11px}
.clinical-skeleton span{display:block;height:44px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--surface-2) 25%,#eef2f7 50%,var(--surface-2) 75%);background-size:200% 100%;animation:clinical-shimmer 1.4s ease-in-out infinite}
.clinical-skeleton span:nth-child(2){width:92%}
.clinical-skeleton span:nth-child(3){width:78%}
.section-tag .spinner{width:11px;height:11px;margin-right:5px;vertical-align:-1px;border-width:2px}
@keyframes clinical-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media (prefers-reduced-motion: reduce){.clinical-skeleton span{animation:none}}

/* Corrections to the captured data */
.corrections-block{margin:0 0 12px;padding:11px 13px;border:1px solid var(--line);border-left:3px solid #b8860b;border-radius:var(--radius-sm);background:var(--surface-2)}
.corrections-head{font-size:.7rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.corrections-block ul{margin:7px 0 0 16px;padding:0;color:#3d4d66;font-size:.75rem;line-height:1.55}
.corrections-block li+li{margin-top:4px}
.corrections-block .was{text-decoration:line-through;opacity:.7}
.corrections-block em{color:var(--muted);font-style:normal}

/* Study tabs: case evidence, patient summary, mock quiz */
.study-list{display:grid;gap:10px;margin-top:13px}
.study-card{padding:14px 15px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}
.study-card h3{margin:0 0 6px;font-size:.85rem;font-weight:800}
.study-card p{margin:0 0 6px;color:#3d4d66;font-size:.78rem;line-height:1.6}
.study-card p:last-child{margin-bottom:0}
.study-source{font-weight:700;color:var(--teal-deep,#1a3a6b);font-size:.74rem}
.study-applies{padding-top:6px;border-top:1px dashed var(--line);color:var(--muted);font-size:.74rem}
.workspace-empty.is-error{border-color:#e5b3b3}
.quiz-list{display:grid;gap:12px;margin-top:13px}
.quiz-card{padding:15px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}
.quiz-card h3{display:flex;gap:9px;align-items:flex-start;margin:0 0 11px;font-size:.85rem;font-weight:750;line-height:1.5}
.quiz-number{display:grid;place-items:center;flex:0 0 auto;width:22px;height:22px;border-radius:7px;color:#fff;background:var(--teal-deep,#1a3a6b);font-size:.7rem;font-weight:850}
.quiz-options{display:grid;gap:7px;margin:0;padding:0;list-style:none}
.quiz-option{display:flex;gap:9px;align-items:flex-start;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface-2);color:#2c3a4f;font:inherit;font-size:.78rem;text-align:left;cursor:pointer}
.quiz-option:hover:not(:disabled){border-color:var(--teal-deep,#1a3a6b);background:#fff}
.quiz-option:disabled{cursor:default}
.quiz-label{flex:0 0 auto;font-weight:850}
.quiz-option.is-correct{border-color:#2f7d4f;background:#eef8f1;color:#1c5233}
.quiz-option.is-wrong{border-color:#b4544f;background:#fdf0ef;color:#8c332e}
.quiz-explanation{margin-top:10px;padding:10px 12px;border-left:3px solid var(--teal-deep,#1a3a6b);border-radius:var(--radius-xs);background:var(--surface-2);color:#3d4d66;font-size:.76rem;line-height:1.6}
.quiz-score{margin-top:12px;color:var(--muted);font-size:.76rem;font-weight:700}
.evidence-caveat{margin-top:13px;padding:10px 13px;border:1px solid #e0cfa0;border-left:3px solid #b8860b;border-radius:var(--radius-sm);background:#fdf8ec;color:#6b5320;font-size:.75rem;line-height:1.55}

/* Citation corroboration badges */
.citation-badge{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;border:1px solid var(--line);font-size:.66rem;font-weight:750;letter-spacing:.02em;vertical-align:1px}
.citation-badge.is-missing{color:#8c332e;background:#fdf0ef;border-color:#e8c4c1}
.citation-badge.is-related{color:#1c5233;background:#eef8f1;border-color:#c2e0cd}
.citation-badge.is-unchecked{color:var(--muted);background:var(--surface-2)}
.citation-link{margin-left:6px;font-size:.68rem;font-weight:700;white-space:nowrap}
.evidence-caveat.is-alert{border-color:#e8c4c1;border-left-color:#b4544f;background:#fdf0ef;color:#8c332e}
.further-reading{display:inline-block;margin-left:8px;font-size:.72rem;font-weight:750;white-space:nowrap}

/* Own the file control: the native button and its "no file chosen" text follow
   the browser's UI language, which put Arabic in an English app. The real input
   stays in the DOM and focusable so keyboard and screen-reader use is intact. */
.file-field{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:9px;border:1.5px dashed var(--teal-line);border-radius:var(--radius-sm);background:var(--teal-soft)}
.file-input-native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.file-button{display:inline-block;margin:0!important;padding:9px 15px;border-radius:var(--radius-sm);color:#fff!important;background:linear-gradient(135deg,#2f6fe0,#0d2a58);font-size:.82rem;font-weight:700;cursor:pointer}
.file-button:hover{filter:brightness(1.06)}
.file-input-native:focus-visible + .file-button{outline:3px solid #a9c4f5;outline-offset:2px}
.file-name{color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}
