:root{--ink:#17211f;--muted:#687572;--line:#dbe3df;--teal:#097f6e;--mint:#dff5ee;--amber:#f7b955}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:#eef3f0;color:var(--ink);font-family:Inter,system-ui,sans-serif}
.shell{min-height:100vh;padding:22px;background:radial-gradient(circle at 50% -20%,#fff 0,#f4f7f5 42%,#eaf0ed 100%)}
header{max-width:1540px;margin:0 auto 16px;display:flex;align-items:center;gap:14px}
.mark{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--ink);color:#fff;font-weight:800}
h1,h2,h3{margin:0;letter-spacing:-.035em}
h1{font-size:22px}
small{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.12em}
.mode{margin-left:auto;padding:9px 12px;border:1px solid var(--line);border-radius:99px;background:#fff;color:var(--teal);font-size:12px;font-weight:700}
.mode.ai-enabled{border-color:#8bd8c3;background:#e8fff7;color:#08795f}
.studio-link{margin-left:auto;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#52615d;font-size:10px;font-weight:750;text-decoration:none}.studio-link+.mode{margin-left:0}
.notice{max-width:1540px;margin:0 auto 16px;padding:10px 12px 10px 16px;border:1px solid #ead6ae;border-radius:12px;background:#fff8e8;color:#72501d;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.notice button{flex:none;padding:9px 13px;border:1px solid #087968;border-radius:9px;background:#078b77;color:#fff;cursor:pointer;font-size:11px;font-weight:850;box-shadow:0 4px 12px #078b7730}
.grid{max-width:1540px;min-height:calc(100vh - 132px);margin:auto;display:grid;grid-template-columns:280px minmax(540px,1fr) 320px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#ffffffed;box-shadow:0 24px 80px #20373014}
.grid.ct-workstation{max-width:1920px;grid-template-columns:minmax(760px,1fr) 340px}
.grid.ct-workstation>aside:first-child{display:none}
.grid.ct-workstation .review{max-height:calc(100vh - 132px);overflow:auto}
.grid>aside,.viewer{padding:22px}
.grid>aside:first-child{border-right:1px solid var(--line)}
.review{border-left:1px solid var(--line);background:#fbfcfb}
.heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:22px}
.heading h2{font-size:18px}
.heading em{padding:5px 8px;border-radius:8px;background:var(--mint);color:#086a5d;font:700 11px monospace}
.primary{width:100%;padding:12px;border:0;border-radius:12px;background:var(--teal);color:#fff;font-weight:800;cursor:pointer}
.primary:disabled{cursor:not-allowed;background:#a9b5b2}
.demo-action{width:100%;margin-top:10px;padding:9px;border:1px dashed #c7d3cf;border-radius:10px;background:#f7faf8;color:#66736f;cursor:pointer;font-size:10px;font-weight:750}
.heading em.blocked{background:#fff0dc;color:#9a531c}
.admission{display:grid;gap:7px;margin-top:12px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8faf9}
.admission-gate{display:grid;grid-template-columns:20px 1fr;gap:7px;align-items:start;padding-bottom:7px;border-bottom:1px solid #e7ecea}
.admission-gate:last-of-type{padding-bottom:0;border-bottom:0}
.admission-gate>span{display:grid;place-items:center;width:18px;height:18px;border-radius:99px;background:#fff0dc;color:#a05b21;font-size:11px;font-weight:900}
.admission-gate.passed>span{background:var(--mint);color:var(--teal)}
.admission-gate div{display:grid;gap:2px}
.admission-gate strong{font-size:10px}
.admission-gate small{font-size:9px;font-weight:500;letter-spacing:0;line-height:1.3}
.admission-next{margin:3px 0 0;color:#53615d;font-size:9px;line-height:1.4}
.admission-section{margin:3px 0 0;color:#72817d;font-size:8px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.admission-gate.research-ready{padding:8px;border:1px solid #8bd8c3;border-radius:9px;background:#e8fff7}
dl{margin:22px 0;display:grid;gap:11px}
dl div{display:flex;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid #edf1ef}
dt{color:var(--muted);font-size:12px}
dd{margin:0;max-width:145px;overflow:hidden;font:700 11px monospace;text-overflow:ellipsis}
.progress,.confidence{height:7px;border-radius:99px;overflow:hidden;background:#e8eeeb}
.progress span,.confidence span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#32b89f);transition:width .4s}
.muted{color:var(--muted);font-size:12px;line-height:1.5}
nav{display:grid;gap:12px;margin-top:28px}
.step{display:flex;align-items:center;gap:10px;color:#8b9693;font-size:13px}
.step i{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);border-radius:8px;background:#fff;font:800 10px sans-serif}
.step.active{color:var(--ink);font-weight:700}
.step.active i{background:var(--mint);color:var(--teal)}
.tools{color:var(--muted);font-size:11px}
.modality-tabs{display:flex;gap:8px;margin-bottom:18px}
.modality-tabs button{padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);cursor:pointer;font-size:12px;font-weight:750}
.modality-tabs button.active{border-color:var(--teal);background:var(--mint);color:var(--teal)}
.opg-evidence-bar{display:grid;grid-template-columns:minmax(190px,1fr) auto auto auto;align-items:center;gap:7px;margin:-10px 0 12px;padding:9px 10px;border:1px solid #b8e7db;border-radius:11px;background:#f1fbf7}
.opg-evidence-bar div{display:grid;gap:2px}.opg-evidence-bar strong{font-size:11px}.opg-evidence-bar span{color:var(--muted);font-size:9px;line-height:1.3}
.opg-evidence-bar button{padding:7px 9px;border:1px solid #bdd8d0;border-radius:8px;background:#fff;color:#31564d;cursor:pointer;font-size:9px;font-weight:800;white-space:nowrap}
.opg-evidence-bar button.active{border-color:var(--teal);background:var(--teal);color:#fff}
.stage{position:relative;min-height:520px;overflow:hidden;border-radius:16px;background:#050908;box-shadow:inset 0 0 80px #050908}
.pacs-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#050908}
.jaw{position:absolute;left:14%;width:72%;height:34%;border:28px solid #e0ebe747;filter:blur(2px)}
.upper{top:16%;border-bottom:0;border-radius:50% 50% 0 0}
.lower{bottom:12%;border-top:0;border-radius:0 0 50% 50%}
.mid{position:absolute;top:15%;bottom:14%;left:50%;width:1px;background:#ffffff16}
#placeholder{position:absolute;left:20px;right:20px;bottom:18px;margin:0;padding:8px 12px;border-radius:9px;background:#050908b8;color:#fff;text-align:center;font-size:12px}
.ct-controls{display:grid;grid-template-columns:38px minmax(180px,1fr) 38px auto;align-items:center;gap:10px;padding-top:14px}
.ct-controls button{height:34px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;font-size:18px}
.ct-controls input{width:100%;accent-color:var(--teal)}
.ct-controls output{min-width:80px;color:var(--muted);font:700 11px monospace;text-align:right}
.mpr-workstation{display:grid;gap:10px}
.mpr-help,.mpr-position{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#829098;font:700 10px monospace}
.mpr-help{flex-wrap:nowrap}
.mpr-shortcuts,.mpr-controls{display:flex;align-items:center;gap:5px;min-width:0}
.mpr-shortcuts{overflow:hidden}
.mpr-help span{padding:5px 8px;border:1px solid #253141;border-radius:7px;background:#0b111b}
.mpr-controls{margin-left:auto;flex:0 0 auto}
.mpr-controls label{display:flex;align-items:center;gap:3px;color:#60717a;font:800 9px sans-serif}
.mpr-controls input{width:68px;padding:5px 6px;border:1px solid #cdd8d4;border-radius:7px;background:#fff;color:#17333b;font:800 9px monospace}
.mpr-controls select,.mpr-controls button{min-height:27px;padding:5px 7px;border:1px solid #cdd8d4;border-radius:7px;background:#fff;color:#29424e;font-size:9px;font-weight:800;cursor:pointer}
.mpr-controls button[aria-pressed="true"]{border-color:var(--teal);background:var(--mint);color:var(--teal)}
.mpr-grid{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;height:clamp(520px,calc(100dvh - 260px),760px);min-height:0;padding:10px;border-radius:18px;background:#020712;box-shadow:inset 0 0 60px #000}
.mpr-plane{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid #243142;border-radius:13px;background:#010612;cursor:crosshair;padding:0;box-shadow:inset 0 0 40px #000}
.mpr-plane.active{border-color:#35bff2;box-shadow:0 0 0 2px #35bff233,inset 0 0 40px #000}
.mpr-plane img{display:block;width:100%;height:100%;object-fit:fill;background:#010612;user-select:none}
.plane-label{position:absolute;z-index:4;top:10px;left:10px;padding:6px 9px;border:1px solid #ffffff29;border-radius:9px;background:#07101bd9;color:#dce9f3;font:700 11px monospace;pointer-events:none}
.plane-label b{margin-left:6px;color:#7ed8ff;font-weight:700}
.crosshair{position:absolute;z-index:3;display:block;background:#21e78a;box-shadow:0 0 6px #21e78a80;pointer-events:none}
.crosshair.vertical{top:0;bottom:0;width:1px}
.crosshair.horizontal{left:0;right:0;height:1px}
.crosshair.vertical:after{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;border:1px solid #b6a2ff;border-radius:50%;transform:translate(-50%,-50%);background:#07101b}
.mpr-volume-panel{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto auto;min-width:0;min-height:0;overflow:hidden;border:1px solid #243142;border-radius:13px;background:radial-gradient(circle at 52% 44%,#183044 0,#07101b 58%,#010612 100%)}
.oblique-image{display:block;width:100%;height:100%;min-height:0;object-fit:fill;background:#010612;user-select:none}
.panorama-image{display:none;width:100%;height:100%;min-height:0;object-fit:contain;background:#010612;user-select:none}
.fourth-mode-switch{position:absolute;z-index:5;top:8px;right:8px;display:flex;overflow:hidden;border:1px solid #ffffff38;border-radius:8px;background:#07101bde}
.fourth-mode-switch button{padding:5px 7px;border:0;border-left:1px solid #ffffff21;background:transparent;color:#91a6b5;cursor:pointer;font:800 8px sans-serif}.fourth-mode-switch button:first-child{border-left:0}.fourth-mode-switch button.active{background:#19435a;color:#d8f5ff}
.oblique-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 9px;border-top:1px solid #ffffff14;background:#07101bea;color:#b8cad5}
.oblique-controls label{display:grid;grid-template-columns:auto minmax(40px,1fr) 27px;align-items:center;gap:5px;font:700 8px sans-serif;white-space:nowrap}
.oblique-controls input{width:100%;margin:0;accent-color:#35bff2}
.oblique-controls output{color:#7ed8ff;font:800 8px monospace;text-align:right}
.oblique-controls button{padding:4px 7px;border:1px solid #ffffff29;border-radius:7px;background:#132231;color:#dce9f3;cursor:pointer;font-size:8px;font-weight:800}
.panorama-controls{display:none;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 150px auto;align-items:center;gap:7px;padding:6px 9px;border-top:1px solid #ffffff14;background:#07101bea;color:#b8cad5}
.panorama-controls label{display:grid;grid-template-columns:auto minmax(40px,1fr) 34px;align-items:center;gap:5px;font:700 8px sans-serif;white-space:nowrap}.panorama-controls input{width:100%;margin:0;accent-color:#35bff2}.panorama-controls output{color:#7ed8ff;font:800 8px monospace;text-align:right}.panorama-controls select{padding:4px;border:1px solid #ffffff29;border-radius:7px;background:#132231;color:#dce9f3;font-size:8px;font-weight:800}
.panorama-controls button{padding:4px 7px;border:1px solid #ffffff29;border-radius:7px;background:#132231;color:#dce9f3;cursor:pointer;font-size:8px;font-weight:800;white-space:nowrap}
.panorama-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.panorama-actions button.active{border-color:#ff72c7;background:#4a1738;color:#ffe3f4}
.volume-scene{position:relative;display:none;place-items:stretch;min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 44%,#172d3c 0,#07101b 52%,#010612 100%)}
.volume-scene canvas{display:block;width:100%;height:100%;min-width:0;min-height:0;cursor:grab;touch-action:none}.volume-scene canvas.dragging{cursor:grabbing}
.volume-loading{position:absolute;z-index:2;inset:50% auto auto 50%;margin:0;padding:7px 10px;border:1px solid #ffffff2b;border-radius:8px;transform:translate(-50%,-50%);background:#07101bde;color:#c9d7df;font:800 9px sans-serif;white-space:nowrap}.volume-loading.error{border-color:#ff897055;color:#ffd1c7}
.volume-help{position:absolute;z-index:2;right:8px;bottom:8px;padding:5px 7px;border:1px solid #ffffff20;border-radius:7px;background:#07101bd9;color:#9fb4c1;font:700 8px sans-serif;pointer-events:none}
.volume-controls{display:none;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 9px;border-top:1px solid #ffffff14;background:#07101bea;color:#b8cad5}.volume-controls label{display:grid;grid-template-columns:auto minmax(40px,1fr) 28px;align-items:center;gap:5px;font:700 8px sans-serif;white-space:nowrap}.volume-controls input{width:100%;margin:0;accent-color:#35bff2}.volume-controls output{color:#7ed8ff;font:800 8px monospace;text-align:right}.volume-controls button{padding:4px 7px;border:1px solid #ffffff29;border-radius:7px;background:#132231;color:#dce9f3;cursor:pointer;font-size:8px;font-weight:800;white-space:nowrap}
.mpr-volume-panel.volume-mode{grid-template-rows:minmax(0,1fr) auto auto}
.mpr-volume-panel.volume-mode .oblique-image,.mpr-volume-panel.volume-mode .oblique-controls,.mpr-volume-panel.volume-mode .panorama-image,.mpr-volume-panel.volume-mode .panorama-controls{display:none}
.mpr-volume-panel.volume-mode .volume-scene{display:grid}
.mpr-volume-panel.volume-mode .volume-controls{display:grid}
.mpr-volume-panel.panorama-mode .oblique-image,.mpr-volume-panel.panorama-mode .oblique-controls{display:none}
.mpr-volume-panel.panorama-mode .panorama-image{display:block}
.mpr-volume-panel.panorama-mode .panorama-controls{display:grid}
.panorama-curve{position:absolute;z-index:5;inset:0;display:none;width:100%;height:100%;cursor:grab;touch-action:none}.panorama-curve.dragging{cursor:grabbing}.panorama-curve.adding{cursor:crosshair}.panorama-editing .mpr-plane.axial .panorama-curve{display:block}.panorama-curve-hint{position:absolute;z-index:7;right:8px;bottom:8px;display:none;padding:5px 7px;border:1px solid #ff72c755;border-radius:7px;background:#210d20d9;color:#ffd1ed;font:800 8px sans-serif;pointer-events:none}.panorama-editing .mpr-plane.axial .panorama-curve-hint{display:block}
.volume-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border-top:1px solid #ffffff14;background:#07101bc9;color:#91a6b5;font-size:8px}
.volume-caption strong{color:#dbeaf4;font:700 9px monospace}
.finding-marker{position:absolute;z-index:6;display:grid;place-items:center;min-width:24px;height:24px;padding:2px 5px;border:2px solid #ff9c38;border-radius:99px;transform:translate(-50%,-50%);background:#2c170ad9;color:#fff;cursor:pointer;font:900 9px monospace;box-shadow:0 0 0 3px #ff9c3838,0 2px 8px #0008}
.finding-marker.confirmed{border-color:#28d69b;background:#073f34e8;box-shadow:0 0 0 3px #28d69b38,0 2px 8px #0008}
.finding-marker.rejected,.finding-marker.closed{border-color:#9da8a4;background:#25302de8;box-shadow:0 0 0 3px #9da8a438,0 2px 8px #0008}
.finding-region{position:absolute;z-index:5;min-width:7px;min-height:7px;border:2px solid #ff9c38;border-radius:50%;transform:none;background:#ff9c381c;box-shadow:0 0 0 1px #0008;pointer-events:none}
.finding-region.confirmed{border-color:#28d69b;background:#28d69b20}.finding-region.rejected,.finding-region.closed{border-color:#9da8a4;background:#9da8a417}
.finding-region.current{border-color:#ff4fae;border-style:dashed;background:#ff4fae22;box-shadow:0 0 0 2px #ff4fae22}
.finding-control-point{position:absolute;z-index:7;display:grid;place-items:center;width:18px;height:18px;border:2px solid #ff4fae;border-radius:50%;transform:translate(-50%,-50%);background:#311126;color:#fff;font:900 8px monospace;font-style:normal;pointer-events:none;box-shadow:0 0 0 3px #ff4fae38}
.ct-geometry-adding .mpr-plane{cursor:cell}
.ct-contour-drawing .mpr-plane.axial{cursor:crosshair}.ct-contour-drawing .mpr-plane:not(.axial){cursor:not-allowed}
.ct-mask-editing .mpr-plane.axial{cursor:cell}.ct-mask-editing .mpr-plane:not(.axial){cursor:not-allowed}
.finding-mask-overlay,.finding-contour-overlay{position:absolute;z-index:5;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.finding-mask-overlay path{fill:#ff9c3866;stroke:#ffb15c;stroke-width:.7;vector-effect:non-scaling-stroke}.finding-mask-overlay.confirmed path{fill:#28d69b55;stroke:#28d69b}.finding-mask-overlay.rejected path,.finding-mask-overlay.closed path{fill:#9da8a433;stroke:#9da8a4}
.finding-contour-overlay polygon,.finding-contour-overlay polyline{fill:#ff4fae22;stroke:#ff4fae;stroke-width:2;vector-effect:non-scaling-stroke}.finding-contour-overlay.current polyline{fill:none;stroke-dasharray:5 3}
.mpr-position{padding:8px 10px;border:1px solid #dbe3df;border-radius:9px;background:#fff}
.mpr-position span:first-child{color:#29424e;font-size:11px}
.plane-expanded .mpr-grid{display:block}
.plane-expanded .mpr-plane:not(.expanded){display:none}
.plane-expanded .mpr-plane.expanded{display:block;width:100%;height:calc(100% - 20px);min-height:0}
.plane-expanded .mpr-volume-panel{display:none}
.ct-scoring{display:grid;gap:16px}
.ct-scoring h3{font-size:20px}
.ct-scoring>p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.scoring-status{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid #b8e7db;border-radius:10px;background:var(--mint);color:#086a5d;font-size:11px}
.scoring-status span{font-weight:800;letter-spacing:.1em}
.mpr-facts{margin:0}
.mpr-facts dd{max-width:190px}
.cbct-pipeline{display:grid;gap:8px;padding:11px;border:1px solid #d7e4df;border-radius:12px;background:#f8fbf9}
.cbct-pipeline>p{margin:0;color:var(--muted);font-size:10px;line-height:1.4}
.cbct-pipeline-stages{display:grid;gap:5px}
.cbct-pipeline-stage{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 7px;border:1px solid var(--line);border-radius:8px;background:#fff}
.cbct-pipeline-stage i{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#edf1ef;color:#65736f;font:800 9px monospace;font-style:normal}
.cbct-pipeline-stage strong{font-size:10px}.cbct-pipeline-stage small{display:block;margin-top:2px;color:var(--muted);font-size:8px;line-height:1.25}
.cbct-pipeline-stage em{color:#7b8884;font:800 8px monospace;font-style:normal;white-space:nowrap}
.cbct-pipeline-stage.complete{border-color:#a6dfce;background:#f3fcf8}.cbct-pipeline-stage.complete i{background:#c7f1e4;color:#086a5d}
.cbct-pipeline-stage.queued{border-color:#e8c584;background:#fffaf0}.cbct-pipeline-stage.queued i{background:#ffedc9;color:#76501d}
.cbct-pipeline details{font-size:10px}.cbct-pipeline summary{cursor:pointer;color:#31564d;font-weight:800}
.cbct-candidate{margin-top:7px;padding-top:7px;border-top:1px solid var(--line)}.cbct-candidate strong{display:flex;justify-content:space-between;gap:8px;font-size:10px}.cbct-candidate span{color:#7b8884;font:800 8px monospace}.cbct-candidate p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.35}
.scoring-next{display:grid;gap:7px;padding:15px;border:1px solid var(--line);border-radius:13px;background:#fff}
.scoring-next strong{font-size:14px}
.scoring-next p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.disabled-action{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:#edf1ef;color:#7e8b87;font-size:11px;font-weight:800}
.finding-editor,.finding-list-section{display:grid;gap:10px;padding-top:14px;border-top:1px solid var(--line)}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.section-title strong{font-size:14px}
.section-title span{padding:4px 7px;border-radius:7px;background:var(--mint);color:#086a5d;font:800 10px monospace}
.ct-tooth-chart{display:grid;grid-template-columns:repeat(8,minmax(24px,1fr));gap:4px}
.ct-tooth-chart button,.tooth-clear{padding:6px 2px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#40504c;cursor:pointer;font:750 10px monospace}
.ct-tooth-chart button:nth-child(n+9):nth-child(-n+16),.ct-tooth-chart button:nth-child(n+25){margin-bottom:4px}
.ct-tooth-chart button.selected,.tooth-clear.selected{border-color:var(--teal);background:var(--mint);color:#086a5d}
.tooth-clear{width:100%;padding:7px;font-family:inherit}
.finding-editor label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:750}
.finding-editor input,.finding-editor select,.finding-editor textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit}
.finding-editor textarea{resize:vertical}
.ct-geometry-editor{display:grid;gap:7px;padding:9px;border:1px solid #cfded8;border-radius:10px;background:#f7fbf9}
.ct-geometry-editor .section-title strong{font-size:11px}.ct-geometry-editor p{margin:0 0 6px;color:var(--muted);font-size:9px;line-height:1.4}
.ct-geometry-mode{display:grid;grid-template-columns:1fr 1fr;gap:5px}.ct-geometry-mode button{padding:6px;border:1px solid #bed1ca;border-radius:7px;background:#fff;color:#47645d;font-size:9px;font-weight:800;cursor:pointer}.ct-geometry-mode button.active{border-color:#149e86;background:#dff7ef;color:#08705e}
#ctEllipsoidControls,#ctContourControls{min-width:0}
.ct-geometry-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}.ct-geometry-actions button{padding:7px 5px;border:1px solid #bed1ca;border-radius:7px;background:#fff;color:#31564d;cursor:pointer;font-size:9px;font-weight:800}.ct-geometry-actions button.active{border-color:#ff4fae;background:#fff0f8;color:#a30c5c}.ct-geometry-actions button:disabled{cursor:not-allowed;opacity:.45}
.ct-mask-tools{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px;padding-top:7px;border-top:1px solid #dce7e2}.ct-mask-tools button{padding:6px 4px;border:1px solid #bed1ca;border-radius:7px;background:#fff;color:#31564d;font-size:9px;font-weight:800;cursor:pointer}.ct-mask-tools button.active{border-color:#e13491;background:#fff0f8;color:#a30c5c}.ct-mask-tools button:disabled{cursor:not-allowed;opacity:.45}.ct-mask-tools label{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr 34px;align-items:center;gap:5px;color:#65766f;font-size:8px;font-weight:800}.ct-mask-tools input{width:100%;accent-color:#e13491}.ct-mask-tools output{padding:0;border:0;background:transparent;color:#9d155e;font-size:8px;text-align:right}
.ct-geometry-editor output{display:block;padding:7px;border:1px dashed #c7d5d0;border-radius:7px;background:#fff;color:#40504c;font:700 9px monospace;line-height:1.4}
.ct-geometry-editor .ct-mask-tools output{padding:0;border:0;background:transparent;color:#9d155e;font:800 8px monospace;text-align:right}
.ct-mask-artifact-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px}.ct-mask-artifact-actions button,.finding-artifact-actions button{padding:7px 5px;border:1px solid #75cdb9;border-radius:7px;background:#effbf7;color:#086a5d;cursor:pointer;font-size:9px;font-weight:850}.ct-mask-artifact-actions button:disabled{cursor:not-allowed;opacity:.42}.finding-artifact-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:5px}.finding-artifact-actions button{background:#f1fbf7}
.ct-mask-surface-dialog{width:min(1120px,94vw);height:min(820px,90vh);padding:0;border:1px solid #29564d;border-radius:18px;background:#071417;color:#eaf8f4;box-shadow:0 24px 90px #00110dcc}.ct-mask-surface-dialog::backdrop{background:#03100ddd;backdrop-filter:blur(5px)}.ct-mask-surface-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid #21443e;background:#0b1b1e}.ct-mask-surface-dialog header small{color:#47d5b5;font:850 9px monospace;letter-spacing:.12em}.ct-mask-surface-dialog h2{margin:4px 0 2px;font-size:20px}.ct-mask-surface-dialog header p{margin:0;color:#9db7b0;font-size:10px}.ct-mask-surface-dialog header button{width:34px;height:34px;border:1px solid #315b53;border-radius:9px;background:#10272a;color:#dff8f2;cursor:pointer;font-size:22px}.ct-mask-surface-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;height:calc(100% - 88px)}.ct-mask-surface-layout canvas{width:100%;height:100%;min-height:420px;background:#031014;cursor:grab}.ct-mask-surface-layout canvas:active{cursor:grabbing}.ct-mask-surface-layout aside{display:grid;align-content:start;gap:14px;padding:18px;border-left:1px solid #21443e;background:#0c2022}.ct-mask-surface-layout aside>strong{color:#56dabc;font-size:14px}.ct-mask-surface-layout dl{display:grid;gap:8px;margin:0}.ct-mask-surface-layout dl div{display:flex;justify-content:space-between;gap:8px;padding-bottom:7px;border-bottom:1px solid #24423e}.ct-mask-surface-layout dt{color:#8aa59e;font-size:9px}.ct-mask-surface-layout dd{margin:0;color:#e9f7f3;font:800 9px monospace;text-align:right}.ct-mask-surface-layout p{margin:0;color:#8da9a2;font-size:10px;line-height:1.45}.ct-mask-surface-layout aside button{padding:9px;border:1px solid #3d8f7d;border-radius:8px;background:#123e37;color:#61e0c2;cursor:pointer;font-size:10px;font-weight:850}@media(max-width:800px){.ct-mask-surface-layout{grid-template-columns:1fr;overflow:auto}.ct-mask-surface-layout aside{border-top:1px solid #21443e;border-left:0}.ct-mask-surface-layout canvas{height:55vh}}
.revision-controls{display:grid;gap:8px;padding:9px;border:1px solid #ead6ae;border-radius:9px;background:#fff8e8}
.revision-controls button{padding:7px;border:1px solid #dec89d;border-radius:7px;background:#fff;color:#72501d;cursor:pointer;font-size:10px;font-weight:750}
.finding-position{padding:8px 9px;border:1px dashed #cbd7d2;border-radius:8px;background:#f7faf8;color:#61706c;font:700 10px monospace}
.finding-feedback{min-height:16px;margin:0;color:#086a5d;font-size:11px;line-height:1.4}
.finding-list{display:grid;gap:8px}
.finding-filters{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px}
.finding-filters label{display:grid;gap:4px;color:var(--muted);font-size:9px;font-weight:750}
.finding-filters select{min-width:0;width:100%;padding:6px 4px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:9px}
.finding-card{display:grid;gap:6px;padding:11px;border:1px solid var(--line);border-radius:11px;background:#fff}
.finding-card.confirmed{border-color:#9edfc9}
.finding-card.rejected{border-color:#d2d8d5;background:#f7f8f7}
.finding-card.closed{background:#f4f6f5;color:#66736f}
.finding-card>div,.finding-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px}
.finding-card>div span{color:#d66b1f;font-size:10px;font-weight:800}
.finding-card.closed>div span{color:#66736f}
.finding-card small{color:var(--muted);font:700 9px monospace;letter-spacing:0}
.finding-card .finding-geometry-summary{padding:5px 7px;border:1px solid #b9dfd3;border-radius:7px;background:#f1fbf7;color:#146c5c}.finding-card .finding-geometry-summary.mask{border-color:#f0b6d8;background:#fff2f9;color:#9d155e}.finding-card .finding-geometry-summary.point-only{border-color:#dde3e0;background:#f8faf9;color:#7a8783}
.finding-card p{margin:0;font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.finding-card footer span{color:var(--muted);font-size:9px}
.finding-jump{width:100%;padding:6px;border:1px dashed #c7d5d0;border-radius:7px;background:#f8fbf9;color:#31564d;cursor:pointer;font-size:10px;font-weight:750;text-align:left}
.finding-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:5px}
.finding-actions button{padding:6px 4px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer;font-size:9px;font-weight:750}
.audit-note{margin:0;padding:9px;border-radius:8px;background:#fff8e8;color:#72501d!important;font-size:10px!important;line-height:1.4!important}
.box{position:absolute;min-width:38px;min-height:70px;border:2px solid var(--amber);border-radius:7px;background:#f7b9551c;color:#fff;cursor:pointer}
.box span{position:absolute;top:-24px;left:-2px;padding:3px 6px;border-radius:5px;background:var(--amber);color:#38270b;font-size:10px;font-weight:900}
.box.pathology{border-color:#ff6b57;background:#ff6b5724}
.box.pathology span{max-width:220px;overflow:hidden;background:#ff6b57;color:#fff;text-overflow:ellipsis;white-space:nowrap}
.box.tooth-candidate{border-style:dashed;background:#ff6b5712}
.box.tooth-candidate.rejected{border-color:#8b9693;background:#8b96931a}
.box.tooth-candidate.rejected span{background:#67736f;text-decoration:line-through}
.stage.lesion-editing{cursor:crosshair;box-shadow:inset 0 0 0 3px #ff4fa0,inset 0 0 80px #050908}
.stage.lesion-editing .box{pointer-events:none}
.lesion-box{position:absolute;z-index:8;min-width:8px;min-height:8px;border:3px solid #ff4fa0;border-radius:7px;background:#ff4fa02b;pointer-events:none;box-shadow:0 0 0 1px #210d20,0 0 14px #ff4fa088}
.lesion-box:before{content:"ОЧАГ · РУЧНАЯ ОБЛАСТЬ";position:absolute;left:-3px;bottom:calc(100% + 4px);padding:3px 5px;border-radius:5px;background:#ff4fa0;color:#fff;font:900 8px sans-serif;white-space:nowrap}
.lesion-box.saved{border-style:solid}.lesion-box.draft{border-style:dashed}
.lesion-box.construction-manual-box{border-color:#27d9bd;background:#27d9bd24;box-shadow:0 0 0 1px #05251f,0 0 14px #27d9bd88}
.lesion-box.construction-manual-box:before{content:"КОНСТРУКЦИЯ · РАБОЧАЯ ОБЛАСТЬ";background:#078b74}
.box.evidence-tooth{z-index:3;min-width:18px;min-height:24px;border:2px solid #35d6a0;background:#35d6a012}
.box.evidence-tooth span{top:-20px;padding:2px 4px;background:#08795f;color:#fff;font-size:8px}
.box.evidence-construction{z-index:4;min-width:12px;min-height:12px;border:2px solid #ffb84d;background:#ffb84d18}
.box.evidence-construction span{top:-20px;max-width:190px;padding:2px 4px;background:#b06716;color:#fff;font-size:8px;white-space:nowrap}
.box.evidence-construction.construction-select.selected{z-index:7;border-width:3px;border-color:#27d9bd;background:#27d9bd24;box-shadow:0 0 0 2px #061c18,0 0 12px #27d9bd88}
.box.evidence-construction.construction-select.rejected{border-color:#7f8c88;background:#7f8c8818}.box.evidence-construction.construction-select.rejected span{background:#68736f}
.teeth{display:flex;gap:8px;min-height:60px;padding-top:14px}
.teeth button{min-width:55px;padding:7px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.teeth button.finding-choice{max-width:210px;text-align:left}
.teeth button.selected{border-color:var(--teal);background:var(--mint)}
.teeth button.rejected{border-style:dashed;color:#788480;background:#f1f4f2}
.teeth span{display:block;color:var(--muted);font-size:10px}
.tooth{display:grid;place-items:center;width:62px;height:62px;margin-bottom:16px;border-radius:18px;background:var(--ink);color:#fff;font-size:24px;font-weight:850}
.model{display:grid;gap:9px;margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;font:700 11px monospace}
.model p{display:flex;justify-content:space-between;margin:0}
.model span{color:var(--muted)}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.actions button{padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-weight:750}
.actions button:disabled{cursor:not-allowed;opacity:.45}
.actions .confirm{grid-column:1/-1;border-color:var(--teal);background:var(--teal);color:#fff}
.pathology-review-editor{display:grid;gap:9px;margin:12px 0}
.pathology-review-editor label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:750}
.pathology-review-editor select,.pathology-review-editor input{width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
.lesion-localization-panel{display:grid;gap:7px;padding:10px;border:1px solid #efb0cf;border-radius:10px;background:#fff5fa}
.lesion-localization-panel>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.lesion-localization-panel strong{color:#6f1d48;font-size:11px}.lesion-localization-panel span{padding:3px 6px;border-radius:6px;background:#f7d8e8;color:#7a2854;font:800 8px monospace}.lesion-localization-panel p{margin:0;color:#76566a;font-size:9px;line-height:1.4}.lesion-localization-panel output{color:#7a2854;font:800 9px monospace}
.lesion-localization-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:6px}.lesion-localization-actions button{padding:7px;border:1px solid #df8db7;border-radius:8px;background:#fff;color:#76244f;cursor:pointer;font-size:9px;font-weight:800}.lesion-localization-actions button.active{background:#ff4fa0;color:#fff}
.construction-review{display:grid;gap:8px}.construction-review .construction-localization{border-color:#87d8ca;background:#f1fffb}.construction-review .construction-localization strong,.construction-review .construction-localization output{color:#075f50}.construction-review .construction-localization span{background:#c9f1e8;color:#075f50}.construction-review .construction-localization p{color:#3f6c64}.construction-review .construction-localization button{border-color:#73cdbd;color:#076a58}.construction-review .construction-localization button.active{background:#079b81;color:#fff}.construction-actions{grid-template-columns:1fr 1fr}.construction-actions button:last-child{grid-column:1/-1}
.construction-queue-summary{border-color:#87d8ca;background:#f1fffb}
.pathology-queue-summary{display:grid;gap:8px;margin:-8px 0 18px;padding:11px;border:1px solid #b8e7db;border-radius:11px;background:#f1fbf7}
.pathology-queue-summary>strong{font-size:13px}.pathology-queue-summary>div{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.pathology-queue-summary span{padding:6px;border-radius:7px;background:#fff;color:#64726e;font-size:9px;text-align:center}.pathology-queue-summary b{display:block;margin-top:2px;color:var(--ink);font:800 13px monospace}.pathology-queue-summary p{margin:0;color:#76501d;font-size:9px;line-height:1.4}
.review-state{margin:12px 0;padding:9px;border-radius:9px;background:var(--mint);color:#086a5d;font-size:11px;line-height:1.4}
.review-state.rejected{background:#edf0ee;color:#596662}
.confounder-state{margin:12px 0;padding:10px;border:1px solid #e8c584;border-radius:9px;background:#fff7e6;color:#76501d;font-size:11px;line-height:1.45}
.fdi-suggestion{display:grid;gap:6px;margin:12px 0;padding:10px;border:1px solid #8bcfc5;border-radius:9px;background:#effbf8;color:#0a6258;font-size:11px;line-height:1.45}
.fdi-suggestion[hidden]{display:none}
.fdi-suggestion button{padding:8px;border:1px solid #49a99b;border-radius:8px;background:#fff;color:#087568;font-weight:800;cursor:pointer}
.study-context-panel{display:grid;gap:7px;margin:12px 0;padding:11px;border:1px solid var(--line);border-radius:11px;background:#f8faf9}
.study-context-panel strong{font-size:12px}.study-context-panel p{margin:0;color:var(--muted);font-size:10px;line-height:1.4}
.study-context-panel label{font-size:11px}.study-context-panel input{accent-color:var(--teal)}
.study-context-panel button{padding:8px;border:1px solid var(--teal);border-radius:8px;background:#fff;color:var(--teal);cursor:pointer;font-size:10px;font-weight:800}
.study-context-panel small{font-size:8px;letter-spacing:0;line-height:1.35}
body.ct-mode{height:100dvh;overflow:hidden}
body.ct-mode .shell{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:8px;height:100dvh;min-height:0;padding:12px 16px;overflow:hidden}
body.ct-mode header{width:100%;max-width:1920px;min-height:38px;margin:0 auto}
body.ct-mode .mark{width:38px;height:38px;border-radius:11px;font-size:13px}
body.ct-mode header h1{font-size:18px}
body.ct-mode .notice{width:100%;max-width:1920px;margin:0 auto;padding:8px 12px;font-size:11px;line-height:1.35}
body.ct-mode .grid.ct-workstation{width:100%;height:auto;min-height:0;margin:0 auto;border-radius:14px;overflow:hidden}
body.ct-mode .grid.ct-workstation>.viewer{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;padding:12px;overflow:hidden}
body.ct-mode .modality-tabs{margin-bottom:8px}
body.ct-mode .modality-tabs button{padding:7px 10px;font-size:10px}
body.ct-mode .viewer>.heading{margin-bottom:8px}
body.ct-mode .viewer>.heading h2{font-size:15px}
body.ct-mode .mpr-workstation{grid-template-rows:auto minmax(0,1fr) auto;min-height:0;gap:6px;overflow:hidden}
body.ct-mode .mpr-help{gap:5px;flex-wrap:nowrap;overflow:hidden}
body.ct-mode .mpr-help span{padding:4px 6px;white-space:nowrap}
body.ct-mode .mpr-controls input{width:60px}
body.ct-mode .mpr-grid{height:auto;min-height:0;gap:6px;padding:6px;border-radius:13px}
body.ct-mode .mpr-plane,body.ct-mode .mpr-volume-panel{border-radius:9px}
body.ct-mode .plane-label{top:7px;left:7px;padding:4px 7px;font-size:9px}
body.ct-mode .mpr-position{min-width:0;padding:6px 8px;overflow:hidden;font-size:8px}
body.ct-mode .mpr-position span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ct-mode .mpr-position span:first-child{font-size:9px}
body.ct-mode .grid.ct-workstation .review{min-height:0;max-height:none;padding:14px;overflow:auto;overscroll-behavior:contain}
body.ct-mode .ct-scoring{gap:10px}
body.ct-mode .cbct-pipeline{gap:6px;padding:9px}
body.ct-mode .ct-scoring h3{font-size:17px}
body.ct-mode .ct-scoring>p{font-size:11px}
body.ct-mode .mpr-facts{gap:7px}
body.ct-mode .mpr-facts div{padding-bottom:6px}
body.ct-mode .finding-editor,body.ct-mode .finding-list-section{gap:8px;padding-top:10px}
@media(max-width:1100px){.grid{grid-template-columns:240px 1fr}
.review{grid-column:1/-1;border:0;border-top:1px solid var(--line)}
.grid.ct-workstation{grid-template-columns:minmax(620px,1fr) 300px}
.grid.ct-workstation .review{grid-column:auto;max-height:none;border-top:0;border-left:1px solid var(--line)}
.mpr-grid{grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1.35fr) minmax(0,1fr);min-height:0}
.mpr-shortcuts span:nth-child(2),.mpr-shortcuts span:nth-child(4){display:none}
}
@media(max-width:860px){body.ct-mode{height:auto;overflow:auto}
body.ct-mode .shell{display:block;height:auto;min-height:100vh;padding:12px;overflow:visible}
body.ct-mode header,body.ct-mode .notice{margin-bottom:10px}
.grid.ct-workstation{grid-template-columns:1fr}
.grid.ct-workstation .review{grid-column:auto;max-height:none;border:0;border-top:1px solid var(--line)}
body.ct-mode .grid.ct-workstation>.viewer{display:block;overflow:visible}
body.ct-mode .mpr-workstation{display:grid;overflow:visible}
body.ct-mode .mpr-grid{height:clamp(520px,calc(100dvh - 220px),720px)}
}
@media(max-width:720px){.shell{padding:12px}
.grid{display:block}
.stage{min-height:340px}
.opg-evidence-bar{grid-template-columns:1fr 1fr}.opg-evidence-bar div{grid-column:1/-1}
.mode{display:none}
.mpr-grid{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(4,280px);height:auto}
.mpr-help{display:none}
.mpr-position{align-items:flex-start;flex-direction:column}
}
