:root{--bg:#0b0f14;--panel:#121821;--panel2:#0e141c;--line:#1f2937;--ink:#dbe4ee;--dim:#7d8b9c;--accent:#38bdf8}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg);color:var(--ink);font:13px/1.45 -apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}.mono{font-family:SF Mono,Consolas,monospace;font-size:11px;color:var(--dim)}#app{display:grid;grid-template-rows:46px 44px 1fr 26px;height:100vh}header{display:flex;align-items:center;gap:14px;padding:0 14px;background:var(--panel);border-bottom:1px solid var(--line)}.logo{font-weight:700;letter-spacing:.06em;font-size:14px}.logo span{color:var(--accent)}.sub{color:var(--dim);font-size:11px}header .right{margin-left:auto}input[type=file]{display:none}.btn{background:#1a2330;border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:6px 10px;font-size:12px;cursor:pointer;white-space:nowrap}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);color:#06283a;border-color:var(--accent);font-weight:600}.btn.active{background:#0c4a6e;border-color:var(--accent);color:var(--accent)}select,input[type=range]{background:#1a2330;border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:5px 6px;font-size:12px}input[type=range]{accent-color:var(--accent);width:110px}#toolbar{display:flex;align-items:center;gap:6px;padding:0 10px;background:var(--panel2);border-bottom:1px solid var(--line);overflow-x:auto}.tgroup{display:flex;gap:4px;align-items:center;padding:0 8px;border-right:1px solid var(--line)}.tgroup label{color:var(--dim);font-size:10px;text-transform:uppercase;letter-spacing:.08em}#progress{margin-left:auto;padding-right:6px}#grid{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;background:var(--line);min-height:0}.vp{position:relative;background:#000;overflow:hidden}.vp .tag{position:absolute;top:6px;left:8px;z-index:3;font-size:10px;letter-spacing:.1em;font-weight:700;padding:2px 7px;border-radius:4px;pointer-events:none}.tag.ax{background:#0c4a6e;color:#7dd3fc}.tag.sg{background:#14532d;color:#86efac}.tag.co{background:#713f12;color:#fde68a}.tag.vr{background:#4c1d95;color:#d8b4fe}#dropzone{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;color:var(--dim);background:#0b0f14eb}#dropzone .big{font-size:17px;color:var(--ink)}#dropzone.drag{outline:2px dashed var(--accent);outline-offset:-14px}#dropzone.hidden{display:none}#status{display:flex;align-items:center;padding:0 12px;background:var(--panel);border-top:1px solid var(--line);font-family:SF Mono,Consolas,monospace;font-size:11px;color:var(--dim)}#main{display:grid;grid-template-columns:180px 1fr;min-height:0}#serieslist{background:var(--panel2);border-right:1px solid var(--line);overflow-y:auto}.slhead{font-size:10px;letter-spacing:.1em;color:var(--dim);padding:8px 10px;border-bottom:1px solid var(--line)}#seriesItems{padding:8px}.sitem{border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:8px;cursor:pointer}.sitem:hover{border-color:var(--accent)}.sitem.sel{border-color:var(--accent);background:#0c2536}.sitem .t{font-size:12px;font-weight:600;word-break:break-word}.sitem .m{font-size:10px;color:var(--dim);font-family:SF Mono,Consolas,monospace;margin-top:3px}.empty{padding:8px}#grid.layout-2x2{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}#grid.layout-3x1{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr}#grid.layout-3x1 #vp-3d,#grid.max .vp{display:none}#grid.max .vp.maxed{display:block;grid-column:1/-1;grid-row:1/-1}#grid.max{grid-template-columns:1fr;grid-template-rows:1fr}.btn.lay.active{background:#0c4a6e;border-color:var(--accent);color:var(--accent)}.vp .ol{position:absolute;z-index:3;font-family:SF Mono,Consolas,monospace;font-size:11px;color:#9fd7f2;pointer-events:none;text-shadow:0 1px 2px #000;padding:6px 8px;white-space:pre;line-height:1.5}.ol.tl{top:22px;left:0}.ol.tr{top:0;right:0;text-align:right}.ol.bl{bottom:0;left:0}.ol.br{bottom:0;right:0;text-align:right}.vp.activevp{box-shadow:inset 0 0 0 1px var(--accent)}#main{grid-template-columns:180px 1fr 250px}#mpanel{background:var(--panel2);border-left:1px solid var(--line);overflow-y:auto;min-height:0}#mpanel .slhead{display:flex;align-items:center;justify-content:space-between}.mtools{display:flex;gap:4px}.btn.mini{padding:2px 7px;font-size:10px}#mItems{padding:8px}.mrow{border:1px solid var(--line);border-radius:8px;padding:7px 8px;margin-bottom:7px;font-family:SF Mono,Consolas,monospace;font-size:11px;position:relative}.mrow b{color:var(--accent);font-size:11px}.mrow .plane{color:var(--dim);font-size:10px}.mrow .val{margin-top:3px;white-space:pre-line}.mrow .del{position:absolute;top:5px;right:6px;color:var(--dim);cursor:pointer;font-size:12px;background:none;border:none}.mrow .del:hover{color:#f87171}.numin{width:58px;background:#1a2330;border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:5px 6px;font-size:11px}.btn.seg.active{background:#4c1d95;border-color:#a78bfa;color:#d8b4fe}.vpb{display:none}#grid.layout-compare{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr}#grid.layout-compare #vp-3d{display:none}#grid.layout-compare .vpb{display:block}#grid.layout-compare .vp .tag{font-size:9px}.btn#btnCompare.active{background:#7c2d12;border-color:#fb923c;color:#fdba74}.segstats{border:1px solid #4c1d95;border-radius:8px;padding:7px 8px;margin-bottom:7px;font-family:SF Mono,Consolas,monospace;font-size:11px;background:#1a1030}.segstats b{color:#d8b4fe}#btnFuse.active{background:#7c2d12;border-color:#fb923c;color:#fdba74}#btnFuse.fused{background:#14532d;border-color:#4ade80;color:#86efac}#btnCprPts.active{background:#7c2d12;border-color:#fb923c;color:#fdba74}#cprPanel{display:none;position:absolute;right:12px;bottom:12px;z-index:8;background:var(--panel);border:1px solid var(--accent);border-radius:10px;padding:8px;max-width:46%;max-height:70%;overflow:auto}#cprPanel.show{display:block}.cprHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:10px;letter-spacing:.08em;color:var(--accent)}#cprCanvas{display:block;background:#000;border-radius:6px;max-width:100%}#pacsBox{padding:8px;border-bottom:1px solid var(--line)}.numin.wide{width:100%;margin-bottom:6px}.pacsRow{display:flex;gap:5px;align-items:flex-start}.pacsRow .numin{flex:1}#studyItems{margin-top:6px;max-height:220px;overflow-y:auto}.stitem{border:1px solid var(--line);border-radius:8px;padding:7px;margin-bottom:6px;cursor:pointer}.stitem:hover{border-color:var(--accent)}.stitem.sel{border-color:var(--accent);background:#0c2536}.stitem .t{font-size:11px;font-weight:600}.stitem .m{font-size:10px;color:var(--dim);font-family:SF Mono,Consolas,monospace;margin-top:2px}#toolbar{overflow:visible}.slabwrap{display:flex;align-items:center;gap:6px;background:#0f1722;border:1px solid #163049;border-radius:8px;padding:3px 8px}.slabLab{color:#7dd3fc;font-size:10px;letter-spacing:.06em;font-weight:700}.slabmm{color:#7dd3fc;font-size:11px;min-width:44px}#slab{width:120px}.menuBtn{position:relative;display:inline-block}.menu{position:absolute;top:100%;left:0;padding-top:6px;background:transparent;z-index:30;display:none;min-width:190px}.menuBtn:hover .menu,.menu:hover{display:block}.menu>*,.menu .mrowline{background:var(--panel)}.menu{filter:drop-shadow(0 8px 24px #000a)}.menu .sec,.menu .mitem,.menu .mrowline{border:1px solid var(--line);border-top:none}.menu .sec:first-child,.menu>.mitem:first-child{border-top:1px solid var(--line);border-radius:8px 8px 0 0}.menu>*:last-child{border-radius:0 0 8px 8px}.menu .sec{display:block;padding:8px 12px 4px;color:var(--dim);font-size:9px;text-transform:uppercase;letter-spacing:.1em}.menu .mitem{display:block;width:100%;text-align:left;border-radius:0}.menu .mrowline{display:flex;gap:5px;align-items:center;padding:5px 10px}.menu .mrowline .mitem{width:auto;border:1px solid var(--line);border-radius:6px}.tinylab{color:var(--dim);font-size:10px}.menu .numin{width:52px}#vp-stack{display:none}#grid.layout-stack{grid-template-columns:1fr;grid-template-rows:1fr}#grid.layout-stack .vp{display:none}#grid.layout-stack #vp-stack{display:block}#btn2d.active{background:#0c4a6e;border-color:var(--accent);color:var(--accent)}
