:root{color-scheme:dark;font-family:Inter,MiSans,PingFang SC,Microsoft YaHei,system-ui,sans-serif;--bg: #04080b;--panel: rgba(9, 18, 25, .93);--panel-soft: rgba(13, 27, 37, .86);--line: rgba(91, 150, 180, .26);--line-bright: rgba(50, 208, 255, .48);--text: #eaf7ff;--muted: #8fa7b8;--dim: #5f7888;--cyan: #21d8ff;--blue: #2f86ff;--green: #2ee783;--danger: #ff4f57;--warn: #ffba36;--shadow: 0 18px 54px rgba(0, 0, 0, .42);--workarea-height: min(730px, calc(100vh - 220px) )}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:linear-gradient(90deg,rgba(22,216,255,.04) 1px,transparent 1px),linear-gradient(0deg,rgba(22,216,255,.035) 1px,transparent 1px),radial-gradient(circle at 50% 8%,rgba(20,70,86,.42),transparent 40%),#030608;background-size:42px 42px,42px 42px,auto,auto;-webkit-font-smoothing:antialiased;overflow:hidden}button,input{font:inherit}button{color:inherit}.app-shell{width:min(100%,1540px);height:100vh;margin:0 auto;padding:10px 16px 14px;overflow:hidden}.topbar,.workflow-panel,.queue-panel,.viewer-card,.stack-preview,.detection-table,.report-panel{border:1px solid var(--line);background:linear-gradient(180deg,#0d1923f5,#050c11f5);box-shadow:var(--shadow)}.topbar{display:flex;align-items:center;justify-content:space-between;height:58px;padding:0 18px 0 8px;border-width:0 0 1px;background:#03080cdb}.brand,.topbar-actions,.doctor-menu,.cert-pill{display:flex;align-items:center}.brand{gap:12px}.brand-mark{display:grid;width:46px;height:46px;place-items:center}.brand-mark img{width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 0 12px rgba(33,216,255,.28))}.brand h1{margin:0;font-size:26px;line-height:1.1;letter-spacing:0}.brand p,.topbar time span{margin:4px 0 0;color:#9ab1c4;font-size:13px}.topbar-actions{gap:12px}.cert-pill,.doctor-menu,.topbar time{min-height:40px;border:1px solid rgba(89,138,165,.22);border-radius:8px;background:#080f15b8}.cert-pill{gap:8px;padding:0 13px;color:#ccf5ef;font-size:13px}.cert-pill svg{color:var(--green)}.doctor-menu{gap:8px;padding:0 10px}.doctor-menu,.panel-heading button,.viewer-meta button,.workflow-title button,.report-actions button,.ghost,.primary{border:0;cursor:pointer}.topbar time{display:grid;min-width:88px;padding:4px 10px}.topbar time strong{font-size:15px;font-weight:650}.status-grid{display:grid;grid-template-columns:1.08fr 1.02fr 1.06fr;gap:12px;margin-top:10px}.workflow-panel{min-height:112px;border-radius:8px;padding:9px 12px 8px}.workflow-title{display:flex;align-items:center;gap:7px;min-height:24px;margin-bottom:6px;color:var(--cyan)}.workflow-title span:first-child{display:grid;width:18px;height:18px;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:12px;font-weight:700}.workflow-title h2,.panel-heading h2,.detection-table h2{margin:0;font-size:16px;font-weight:700;letter-spacing:0}.workflow-title .upload-button{margin-left:auto;min-height:30px;padding-inline:14px}.workflow-panel.blue .workflow-title{color:#48a8ff}.workflow-panel.green .workflow-title{color:var(--green)}.workflow-panel.red .workflow-title{color:var(--danger)}.file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.drop-zone{display:flex;align-items:center;justify-content:center;gap:18px;min-height:66px;border:1px dashed rgba(105,174,210,.42);border-radius:8px;color:#bfd0dc;background:#03090d57;cursor:pointer}.drop-zone svg{color:#9db6c8}.drop-zone strong,.drop-zone span,.ready-panel strong,.ready-panel span,.step-list small{display:block}.drop-zone strong{margin-bottom:4px;font-size:15px;font-weight:650}.drop-zone span{color:#778d9b;font-size:12px}.analysis-panel,.ready-panel{display:flex;align-items:center;gap:18px;height:70px}.progress-ring{--progress: 78%;display:grid;width:66px;height:66px;flex:0 0 auto;place-items:center;border-radius:50%;background:radial-gradient(circle,#0b1823 0 50%,transparent 51%),conic-gradient(var(--cyan) var(--progress),rgba(72,134,171,.25) 0);color:#8fdfff;box-shadow:inset 0 0 0 12px #0a1a27d1,0 0 28px #2ab2ff1f}.progress-ring span{font-size:20px;font-weight:800}.step-list{display:grid;flex:1;gap:3px;min-width:0}.step-list strong{color:#9fd7ff;font-size:13px}.step-list small{display:none}.step-row{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#96a9b7;font-size:12px}.step-row svg{color:var(--green)}.spin{animation:spin 1s linear infinite;color:var(--cyan)}@keyframes spin{to{transform:rotate(360deg)}}.ready-panel{justify-content:center}.ready-orb{display:grid;width:62px;height:62px;place-items:center;border:1px solid rgba(46,231,131,.4);border-radius:50%;color:var(--green);background:#0a301d57;box-shadow:0 0 0 12px #17a1590f,inset 0 0 20px #2ee7832e}.ready-orb.is-error{border-color:#ff4f576b;color:var(--danger);background:#50131c57;box-shadow:0 0 0 12px #ff4f570d,inset 0 0 20px #ff4f5726}.ready-panel strong{font-size:15px}.ready-panel span{margin:3px 0 6px;color:#9daebc;font-size:13px}.ready-panel small{display:none;margin-top:8px;color:#8aa0af}.ready-panel .primary{min-height:30px}.primary,.ghost,.panel-heading button,.viewer-meta button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;border-radius:6px;transition:transform .16s ease,border-color .16s ease,background .16s ease}.primary{padding:0 20px;color:#effaff;background:linear-gradient(180deg,#0b76ff,#0952c6);box-shadow:inset 0 1px #ffffff2e,0 8px 24px #0f5ddb42}.ghost,.panel-heading button,.viewer-meta button{border:1px solid rgba(94,143,169,.32);color:#c7d9e5;background:#0d1b26c7}button:hover{transform:translateY(-1px)}button:disabled{cursor:wait;opacity:.68;transform:none}.workspace{display:grid;grid-template-columns:260px minmax(560px,1fr) 420px;align-items:stretch;gap:12px;height:var(--workarea-height);margin-top:10px}.workspace>*{min-height:0}.queue-panel,.report-panel,.viewer-card,.stack-preview,.detection-table{border-radius:8px}.queue-panel{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;padding:11px 10px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px;margin-bottom:6px}.panel-heading button{min-height:30px;padding:0 10px;font-size:12px}.case-list{display:grid;gap:8px;overflow:hidden}.case-row:nth-child(n+5){display:none}.case-row{position:relative;display:grid;grid-template-columns:70px 1fr auto;grid-template-rows:auto auto;gap:4px 10px;width:100%;min-height:82px;padding:6px;border:1px solid rgba(75,123,151,.22);border-radius:7px;color:var(--text);text-align:left;background:#08131ba3}.case-row.is-active{border-color:#3eb0ffbf;background:#0f2332eb}.case-index{position:absolute;top:6px;left:6px;min-width:21px;padding:1px 4px;border-radius:4px;font-size:11px;font-weight:800;text-align:center}.case-index.danger,.risk.danger,.danger-text,.table-row .danger{color:var(--danger)}.case-index.warn,.risk.warn,.table-row .warn{color:var(--warn)}.case-index.safe,.risk.safe{color:var(--green)}.case-index.danger{background:#ff4f5733}.case-index.warn{background:#ffba3633}.case-index.safe{background:#2ee7832e}.case-row img{grid-row:1 / span 2;width:66px;height:58px;border:1px solid rgba(125,157,176,.32);border-radius:6px;object-fit:cover;background:#000}.case-copy{min-width:0}.case-copy strong{display:block;margin:4px 0;font-size:15px;font-weight:700}.case-copy em{margin-left:8px;color:#b2c0ca;font-style:normal;font-weight:500}.case-copy span{display:block;overflow:hidden;color:#d7e7f0;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.risk{align-self:center;padding:3px 7px;border-radius:5px;background:#ffffff0f;font-size:12px;font-weight:750}.case-row time{grid-column:3;align-self:end;color:#9eb0be;font-size:13px}.wide{width:calc(100% - 14px);margin:auto auto 0}.viewer-stack{display:grid;height:100%;min-height:0;grid-template-rows:minmax(0,1fr) 180px;gap:10px}.viewer-card{display:flex;flex-direction:column;overflow:hidden}.viewer-meta{display:flex;align-items:center;gap:14px;min-height:42px;padding:0 14px;border-bottom:1px solid rgba(91,150,180,.2);color:#dbeaf3;font-size:13px;white-space:nowrap}.viewer-meta strong{font-size:15px}.viewer-meta button{margin-left:auto;min-height:28px;padding:0 10px}.viewer-body{display:grid;flex:1;grid-template-columns:1fr 74px;min-height:0}.scan-stage{position:relative;display:grid;place-items:center;overflow:hidden;min-height:0;background:linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.035) 1px,transparent 1px),#000;background-size:54px 54px}.main-scan{width:min(68%,450px);max-height:min(300px,74%);object-fit:contain;filter:contrast(1.08) brightness(.94)}.scan-meta,.windowing,.axis,.lesion-marker{position:absolute;z-index:2}.scan-meta{top:18px;left:18px;display:grid;gap:3px;color:#91a8b6;font-size:12px}.windowing{bottom:18px;left:20px;color:#91a8b6;font-size:12px;line-height:1.45}.axis{top:52%;color:#a9bac6;font-size:13px}.axis.left{left:35px}.axis.right{right:24px}.lesion-marker{top:40%;right:114px;min-width:72px;color:var(--danger);font-weight:800}.lesion-marker:before{position:absolute;right:58px;top:32px;width:86px;height:1px;background:#ffffffb8;content:"";transform:rotate(-27deg);transform-origin:right center}.lesion-marker:after{position:absolute;right:126px;top:6px;width:74px;height:74px;border:1px solid rgba(255,79,87,.9);border-radius:50%;background:#ff4f5714;content:""}.lesion-marker span,.lesion-marker strong{display:block}.lesion-marker span{font-size:13px}.lesion-marker strong{margin-top:5px;font-size:20px}.viewer-tools{display:grid;align-content:start;gap:4px;padding:10px 8px;border-left:1px solid rgba(91,150,180,.22);background:#050d12f5}.viewer-tools button{display:grid;gap:3px;width:58px;min-height:49px;place-items:center;border:1px solid transparent;border-radius:7px;color:#91a7b6;background:transparent;cursor:pointer}.viewer-tools button.is-active{border-color:#21d8ff66;color:var(--cyan);background:#21d8ff14}.viewer-tools span{font-size:11px}.slice-strip{display:flex;gap:8px;overflow:hidden;min-height:60px;padding:6px 14px 8px;border-top:1px solid rgba(91,150,180,.2);background:#030608}.slice-strip button{position:relative;min-width:62px;height:48px;border:1px solid rgba(80,121,144,.32);border-radius:6px;background:#05090c;cursor:pointer}.slice-strip button.is-selected{border-color:var(--cyan);box-shadow:0 0 0 1px #21d8ff40}.slice-strip img{width:100%;height:33px;object-fit:cover;opacity:.74}.slice-strip span{display:block;color:#d7e7f0;font-size:12px;line-height:1}.lower-grid{display:grid;grid-template-columns:285px 1fr;gap:10px;min-height:0}.stack-preview{position:relative;display:grid;place-items:center;overflow:hidden;min-height:0;background:#03080b}.mini-label{position:absolute;top:12px;left:12px;z-index:1;padding:4px 8px;border-radius:5px;color:#bfeaff;background:#2291ff2e;font-size:12px;font-weight:700}.stack-preview img{width:100%;height:100%;object-fit:cover}.uploaded-stack-preview{position:relative;width:min(84%,250px);height:160px;transform:rotateX(58deg) rotate(-28deg) translateY(12px);transform-style:preserve-3d}.uploaded-stack-preview:before{position:absolute;top:18px;right:10px;bottom:-28px;left:10px;border-radius:50%;background:radial-gradient(ellipse,rgba(33,216,255,.24),transparent 68%);content:"";filter:blur(12px);transform:translateZ(-18px)}.uploaded-stack-preview img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:1px solid rgba(33,216,255,.58);border-radius:12px;object-fit:cover;opacity:calc(.42 + (var(--layer) * .045));box-shadow:0 0 0 1px #ffffff14 inset,0 0 18px #21d8ff21;transform:translate3d(calc(var(--layer) * -5px),calc(var(--layer) * 7px),calc(var(--layer) * 5px))}.detection-table{padding:12px 14px;overflow:hidden}.detection-table h2{color:#8fe5ff;margin-bottom:10px}.table-head,.table-row{display:grid;grid-template-columns:44px minmax(0,1fr) 58px;gap:8px;align-items:center;min-height:38px;padding:0 8px;border-bottom:1px solid rgba(91,150,180,.18)}.table-head span:nth-child(3),.table-head span:nth-child(5),.table-row span:nth-child(3),.table-row span:nth-child(5){display:none}.table-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-head{min-height:34px;color:#7f94a2;font-size:12px}.table-row{color:#c5d6e0;font-size:13px}.report-panel{display:flex;flex-direction:column;height:100%;min-height:0;padding:11px 12px;overflow:hidden}.report-body{flex:1;min-height:0;overflow:hidden;padding:2px 11px 10px;border:1px solid rgba(91,150,180,.2);border-radius:7px;background:#081118b8}.report-error{margin:8px 0 0;padding:9px 10px;border:1px solid rgba(255,79,87,.35);border-radius:6px;color:#ffc7c9;background:#ff4f5714;font-size:12px;line-height:1.45}.report-section{padding:6px 0;border-bottom:1px solid rgba(91,150,180,.18)}.report-section ol li:nth-child(n+4){display:none}.report-section:nth-of-type(5){padding-bottom:0;border-bottom:0}.report-section h3{display:flex;align-items:center;gap:8px;margin:0 0 5px;color:#8bdfff;font-size:14px}.report-section p,.report-section li,.disclaimer{margin:2px 0;color:#aabcc8;font-size:11.5px;line-height:1.36}.report-section ol{margin:0;padding-left:18px}.danger-text{display:block;margin-bottom:3px;font-size:14px}.risk-line{display:flex;align-items:center;gap:12px;margin-bottom:4px}.severity-bars{display:flex;gap:4px}.severity-bars i{width:19px;height:8px;border-radius:8px;background:var(--warn)}.severity-bars i.muted{background:#7d93a047}.disclaimer{display:none;margin-top:8px;color:#728895}.report-actions{flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.report-actions button{width:100%;min-width:0;min-height:35px;padding:0 10px;white-space:nowrap}.report-actions .export{grid-column:auto}@media(max-width:1240px){.status-grid,.workspace{grid-template-columns:1fr}.queue-panel,.report-panel{height:auto;min-height:auto}.case-list{grid-template-columns:repeat(2,minmax(240px,1fr))}}@media(max-width:760px){.app-shell{padding:10px}.topbar{height:auto;flex-direction:column;align-items:flex-start;gap:12px;padding:12px 0}.topbar-actions,.status-grid,.workspace,.viewer-body,.lower-grid,.report-actions,.case-list{grid-template-columns:1fr}.topbar-actions,.viewer-meta{flex-wrap:wrap}.viewer-tools{display:flex;overflow-x:auto;border-left:0;border-top:1px solid rgba(91,150,180,.22)}.main-scan{width:92%}.lesion-marker{right:34px}.lesion-marker:after,.lesion-marker:before{display:none}.report-actions .export{grid-column:auto}}
