:root{--bg:#f5f7f9;--surface:#fff;--text:#17212b;--muted:#5f6b77;--border:#dde3e9;--primary:#0f6e6a;--primary-hover:#0b5753;--danger:#b42318;--ok:#067647;--warn:#b54708;--clinic-bg:#fef0c7;--clinic-fg:#93370d;--scinapse-bg:#d1f4ef;--scinapse-fg:#0b5753;--done-bg:#eaecf0;--done-fg:#344054;--radius:10px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg);line-height:1.5;font-size:15px}a{color:var(--primary)}h1{font-size:1.6rem;margin:0 0 .25rem}h2{font-size:1.1rem;margin:0 0 .75rem}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.muted{color:var(--muted)}.small{font-size:.85rem}.topbar{background:var(--surface);border-bottom:1px solid var(--border)}.topbar-inner{max-width:1200px;margin:0 auto;padding:.75rem 1rem;display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.brand{font-weight:700;text-decoration:none;color:var(--text)}.brand span{color:var(--primary);font-weight:500}.nav{display:flex;gap:1rem;flex:1 1}.nav a{text-decoration:none;color:var(--text)}.nav a:hover{color:var(--primary)}.who{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.85rem}.container{max-width:1200px;margin:0 auto;padding:1.5rem 1rem 4rem}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.page-head p{margin:.25rem 0 0}.columns{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:1.25rem;gap:1.25rem;align-items:start}@media (max-width:900px){.columns{grid-template-columns:1fr}}.stack{display:flex;flex-direction:column;gap:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.empty{text-align:center;padding:2.5rem}.table-wrap{overflow-x:auto}label{display:flex;flex-direction:column;gap:.3rem;font-weight:500;font-size:.9rem}input,select,textarea{font:inherit;font-weight:400;padding:.5rem .65rem;border:1px solid var(--border);border-radius:8px;background:#fff;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}fieldset{border:0;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.9rem}legend{font-weight:700;margin-bottom:.75rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:.9rem;gap:.9rem}.form-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}form.inline .form-actions{margin:0}.btn{font:inherit;font-weight:600;border-radius:8px;padding:.5rem 1rem;border:1px solid transparent;cursor:pointer;text-decoration:none;display:inline-block}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:#fff;color:var(--text);border-color:var(--border)}.btn-danger{background:#fff;color:var(--danger);border-color:#fda29b}.btn-link{background:none;border:0;padding:0;color:var(--primary);cursor:pointer;font:inherit}.msg{margin:0;font-size:.9rem}.msg-error{color:var(--danger)}.msg-ok{color:var(--ok)}.transition+.transition{border-top:1px solid var(--border);padding-top:1rem}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}tr.row-attention td:first-child{box-shadow:inset 3px 0 0 var(--warn)}.badge{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}.badge-clinic{background:var(--clinic-bg);color:var(--clinic-fg)}.badge-scinapse{background:var(--scinapse-bg);color:var(--scinapse-fg)}.badge-done{background:var(--done-bg);color:var(--done-fg)}.badge-job-done,.badge-qc-pass{background:#dcfae6;color:var(--ok)}.badge-job-queued,.badge-job-running,.badge-qc-warn{background:#fef0c7;color:var(--warn)}.badge-job-failed,.badge-qc-fail{background:#fee4e2;color:var(--danger)}.badge-qc-pending{background:var(--done-bg);color:var(--done-fg)}.details{display:grid;grid-template-columns:160px 1fr;grid-gap:.4rem 1rem;gap:.4rem 1rem;margin:0}.details dt{color:var(--muted)}.details dd{margin:0}.files,.jobs{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.75rem}.file-row{display:flex;flex-wrap:wrap;gap:.25rem .75rem;align-items:baseline}.qc{margin-top:.5rem;padding:.5rem .75rem;background:var(--bg);border-radius:8px}.qc summary{cursor:pointer;font-size:.9rem}.qc-series{margin-top:.75rem}.qc-series p{margin:0 0 .25rem}.qc-table td{padding:.3rem .5rem;font-size:.85rem}.upload{display:grid;grid-gap:.75rem;gap:.75rem;border-top:1px solid var(--border);padding-top:1rem}progress{width:160px}.timeline{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.timeline li{display:grid;grid-template-columns:150px 1fr auto;grid-gap:.75rem;gap:.75rem}@media (max-width:640px){.details,.timeline li{grid-template-columns:1fr}}.truncate{display:inline-block;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.auth-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-card{width:100%;max-width:420px}.auth-card h1{margin-bottom:.25rem}.case-layout{display:grid;grid-template-columns:290px minmax(0,1fr);grid-gap:1.25rem;gap:1.25rem;align-items:start}.case-layout>aside{position:-webkit-sticky;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto}@media (max-width:900px){.case-layout{grid-template-columns:1fr}.case-layout>aside{position:static;max-height:none}}.case-nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;font-size:.9rem}.case-nav-link{display:block;padding:.4rem .5rem;border-radius:6px;text-decoration:none;color:var(--text);font-weight:600}.case-nav-link.active,.case-nav-link:hover{background:var(--bg)}.checklist-head{display:flex;justify-content:space-between;align-items:baseline;margin:.9rem .5rem .4rem;font-weight:700}.meter{height:6px;margin:0 .5rem .6rem;background:var(--bg);border-radius:999px;overflow:hidden}.meter span{display:block;height:100%;background:var(--primary)}.checklist,.checklist ul{list-style:none;margin:0;padding:0}.checklist>li{border-radius:8px;padding:.15rem 0}.checklist>li.current{background:var(--bg)}.checklist-section{display:grid;grid-template-columns:22px 1fr auto;grid-gap:.5rem;gap:.5rem;align-items:center;padding:.35rem .5rem;text-decoration:none;color:var(--text);font-weight:600}.step{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.75rem;border:1.5px solid var(--border);color:var(--muted)}.step-done{background:var(--primary);border-color:var(--primary);color:#fff}.checklist ul{padding:0 .5rem .35rem 2.3rem}.item{display:grid;grid-template-columns:16px 1fr;grid-gap:.35rem;gap:.35rem;font-size:.82rem;line-height:1.35;padding:.12rem 0}.item-icon{font-weight:700;text-align:center}.item-done .item-icon{color:var(--ok)}.item-warn .item-icon{color:var(--warn)}.item-todo{color:var(--text)}.item-hint,.item-optional,.item-todo .item-icon{color:var(--muted)}.item-hint{display:block;font-size:.78rem}.item-warn .item-hint{color:var(--warn)}.auto-tag{margin-left:.35rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--scinapse-fg);background:var(--scinapse-bg);padding:0 .3rem;border-radius:4px}.request-form{gap:1.15rem;margin-top:.5rem}.field,.request-form{display:flex;flex-direction:column}.field{gap:.35rem}.field-label{font-weight:600;font-size:.92rem}.help{margin:0;color:var(--muted);font-size:.83rem}.choices{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem}.choice{flex-direction:row;align-items:center;gap:.45rem;font-weight:400;font-size:.92rem;cursor:pointer}.choice input{width:auto;margin:0}.choice-block{align-items:flex-start}.choice-block input{margin-top:.25rem}.with-unit{display:flex;align-items:center;gap:.5rem;max-width:220px}.unit{color:var(--muted)}.example{font-size:.85rem}.example summary{cursor:pointer;color:var(--primary)}.example p{margin:.4rem 0 0;padding:.6rem .75rem;background:var(--bg);border-left:3px solid var(--border);border-radius:4px;color:var(--muted)}.sticky-actions{position:-webkit-sticky;position:sticky;bottom:0;background:var(--surface);padding:.75rem 0;border-top:1px solid var(--border)}.msg-note{background:#eff8ff;color:#175cd3;border-radius:8px;padding:.6rem .8rem}.msg-note p{margin:0 0 .25rem}.msg-note ul{margin:0;padding-left:1.2rem}.imaging-files{margin:.5rem 0 1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.transitions{display:flex;flex-direction:column;gap:1rem}.summary-section+.summary-section{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.summary h3{font-size:1rem;margin:0 0 .6rem;display:flex;gap:.75rem;align-items:baseline}.summary .details{grid-template-columns:minmax(160px,38%) 1fr}.details-row{display:contents}.prewrap{white-space:pre-wrap}@media print{.case-layout>aside,.edit-link,.topbar{display:none}.case-layout{display:block}.card{border:0}}.dicom-upload,.viewer{border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.dicom-upload h3,.upload h3,.viewer h3{margin:0 0 .4rem;font-size:1rem}.meter-lg{height:10px;margin:0}.deid{margin:.25rem 0 0}.danger-link{color:var(--danger)}.series-list{list-style:none;padding:0;margin:.5rem 0 1rem;display:flex;flex-direction:column;gap:.5rem}.series-list>li{border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between}.series-list>li.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.series-pick{all:unset;cursor:pointer;display:flex;flex-wrap:wrap;gap:.25rem .6rem;align-items:baseline;flex:1 1;min-width:220px}.role-buttons{display:flex;flex-wrap:wrap;gap:.35rem}.chip{font:inherit;font-size:.8rem;padding:.2rem .6rem;border-radius:999px;border:1px solid var(--border);background:#fff;cursor:pointer}.chip-on{background:var(--primary);border-color:var(--primary);color:#fff}.chip:disabled{opacity:.45;cursor:default}.badge-role{background:#e0eaff;color:#3538cd}.planes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.75rem;gap:.75rem}@media (max-width:1100px){.planes{grid-template-columns:1fr;max-width:420px}}.plane{margin:0;background:#000;border-radius:8px;overflow:hidden}.plane canvas{display:block;width:100%;height:auto;max-height:420px;object-fit:contain;image-rendering:auto}.plane figcaption{display:grid;grid-template-columns:auto 1fr auto;grid-gap:.5rem;gap:.5rem;align-items:center;padding:.35rem .6rem;background:var(--surface);border-top:1px solid var(--border)}.plane-name{text-transform:capitalize;font-size:.82rem;font-weight:600}.plane input[type=range]{padding:0;border:0}.model-panel{border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.75rem}.model-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.model-head h3{margin:0;font-size:1rem}.model-head p{margin:.15rem 0 0}.model-stage{position:relative;border-radius:8px;overflow:hidden;background:#1d2430}.model-stage-empty{display:none}.model-canvas{width:100%;height:min(60vh,520px);min-height:320px;touch-action:none}.model-overlay,.model-readout{position:absolute;color:#fff;font-size:.9rem;background:rgba(0,0,0,.55);border-radius:6px;padding:.35rem .6rem}.model-overlay{inset:50% auto auto 50%;transform:translate(-50%,-50%)}.model-readout{top:.6rem;left:.6rem}.model-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:.75rem 1.25rem;gap:.75rem 1.25rem}.model-tools fieldset{margin:0;gap:.4rem}.model-tools legend{margin-bottom:.3rem;font-size:.85rem}.swatch{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.2)}.clip-controls{display:grid;grid-gap:.4rem;gap:.4rem}.btn.small{font-size:.85rem;padding:.35rem .75rem}.rebuild summary{cursor:pointer;color:var(--primary);font-size:.9rem}.rebuild p{margin:.4rem 0}.threshold-row{display:grid;grid-template-columns:1fr auto auto;grid-gap:.75rem;gap:.75rem;align-items:center;margin-top:.5rem}.threshold-row input{padding:0;border:0}.demo-card{margin-bottom:1.25rem}.demo-card p{margin-top:0}