:root{--viewer-font:"Inter", -apple-system, "SF Pro Display", "Helvetica Neue", sans-serif;--mono:"JetBrains Mono", "SF Mono", ui-monospace, monospace;--accent:#1d9bf0;--accent-dim:#1d9bf01f;--accent-hover:#1a8cd8;--canvas:#f7f9f9;--base:#fff;--raised:#f7f9f9;--surface:#eff3f4;--muted:#e6eaed;--bright:#cfd9de;--border:#0000001a;--t1:#0f1419;--t2:#536471;--t3:#8b98a5;--green:#00ba7c;--green-bg:#00ba7c1a;--orange:#ff7a00;--orange-bg:#ff7a001a;--red:#f4212e;--red-bg:#f4212e1a;--purple:#7856ff;--status-blocked:var(--red);--status-ready:var(--green);--status-confirmed:var(--accent);--status-stale:var(--orange);--status-in-progress:var(--purple);--r-sm:10px;--r-md:14px;--r-lg:18px;--r-full:999px;--ease:cubic-bezier(.25, .1, .25, 1)}.viewer-console,.viewer-only,.dicom-viewer{font-family:var(--viewer-font);color:var(--t1);-webkit-font-smoothing:antialiased}.viewer-console *,.viewer-only *,.dicom-viewer *{box-sizing:border-box;margin:0}.viewer-console button,.viewer-only button,.dicom-viewer button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0}.viewer-console{background:var(--canvas);width:100vw;height:100vh;display:flex;overflow:hidden}.viewer-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.agent-sidebar{background:var(--base);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:272px;height:100vh;display:flex;overflow:hidden}.agent-sidebar-header{border-bottom:1px solid var(--border);flex-shrink:0;padding:14px 16px 12px}.agent-sidebar-label{letter-spacing:.07em;text-transform:uppercase;color:var(--t3);margin-bottom:3px;font-size:10px;font-weight:600;display:block}.agent-sidebar-step{color:var(--t1);letter-spacing:-.01em;font-size:14px;font-weight:600}.agent-messages{scrollbar-width:thin;scrollbar-color:var(--muted) transparent;flex-direction:column;flex:1;gap:10px;padding:14px;display:flex;overflow-y:auto}.agent-empty{flex:1;justify-content:center;align-items:center;padding:24px 16px;display:flex}.agent-empty p{color:var(--t3);text-align:center;font-size:13px;line-height:1.65}.agent-input-area{border-top:1px solid var(--border);flex-shrink:0;padding:10px}.agent-input-wrap{background:var(--raised);border:1px solid var(--border);border-radius:var(--r-full);transition:border-color .15s var(--ease);align-items:center;gap:6px;padding:5px 5px 5px 14px;display:flex}.agent-input-wrap:focus-within{border-color:var(--accent);background:var(--base)}.agent-input{color:var(--t1);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:13px}.agent-input::placeholder{color:var(--t3)}.agent-send-btn{background:var(--accent);cursor:pointer;color:#fff;width:28px;height:28px;transition:background .15s var(--ease);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.agent-send-btn:hover{background:var(--accent-hover)}.topbar{background:0 0;flex-shrink:0;align-items:center;gap:10px;padding:10px 12px;display:flex}.topbar-right{align-items:center;gap:6px;margin-left:auto;display:flex}.brand{background:var(--base);border-radius:var(--r-md);flex-shrink:0;align-items:center;padding:6px 12px;display:flex}.brand-logo{width:auto;height:24px;display:block}.step-nav{background:var(--raised);border-radius:var(--r-md);align-items:center;gap:2px;padding:3px;display:flex}.step-nav-arrow{border-radius:var(--r-sm);width:28px;height:28px;color:var(--t3);transition:all .15s var(--ease);flex-shrink:0;justify-content:center;align-items:center;display:flex}.step-nav-arrow:hover:not(:disabled){background:var(--surface);color:var(--t1)}.step-nav-arrow:disabled{opacity:.25;cursor:default}.workspace{flex:1;gap:0;min-width:0;min-height:0;padding:0 12px 12px;display:flex;overflow:hidden}.viewport-area{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.tool-rail{background:var(--raised);border-radius:var(--r-lg);flex-direction:column;align-self:start;align-items:center;gap:4px;margin-top:4px;margin-right:8px;padding:8px;display:flex}.tool-rail button{border-radius:var(--r-sm);width:40px;height:40px;color:var(--t3);transition:all .15s var(--ease);justify-content:center;align-items:center;display:flex}.tool-rail button:hover{background:var(--surface);color:var(--t2)}.tool-rail button.is-active{background:var(--accent);color:#fff}.tool-rail button[data-tooltip]{position:relative}.tool-rail button[data-tooltip]:after{content:attr(data-tooltip) "\a " attr(data-tooltip-desc);white-space:pre-wrap;background:var(--surface);color:var(--t2);border-radius:var(--r-sm);border:1px solid var(--border);pointer-events:none;opacity:0;width:200px;transition:opacity .15s var(--ease);z-index:100;padding:8px 12px;font-size:11px;font-weight:400;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%);box-shadow:0 4px 12px #00000014}.tool-rail button[data-tooltip]:hover:after{opacity:1}.viewport-grid{flex:1;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.viewport-bottom-bar{z-index:10;pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.viewport-bottom-bar>*{pointer-events:auto}.ask-icon-btn{background:var(--base);border:1px solid var(--border);width:34px;height:34px;color:var(--t3);cursor:pointer;transition:all .15s var(--ease);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 1px 6px #00000014}.ask-icon-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.steps-pill{background:var(--base);border:1px solid var(--border);border-radius:var(--r-full);align-items:center;padding:3px 5px;display:flex;box-shadow:0 1px 6px #00000014}.steps-step{border-radius:var(--r-full);white-space:nowrap;cursor:pointer;transition:all .15s var(--ease);color:var(--t3);background:0 0;border:1px solid #0000;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:500;display:flex}.steps-step.is-active{color:var(--t1);background:var(--surface);border-color:var(--border)}.steps-step:hover:not(.is-active){color:var(--t2)}.step-dot{background:var(--t3);width:5px;height:5px;transition:all .2s var(--ease);border-radius:50%;flex-shrink:0}.step-dot[data-status=ready]{background:var(--green);box-shadow:0 0 5px #00ba7c80}.step-dot[data-status=confirmed]{background:var(--accent);box-shadow:0 0 5px #1d9bf080}.step-dot[data-status=stale]{background:var(--orange);box-shadow:0 0 5px #ff7a0080}.step-dot[data-status=blocked]{background:var(--red)}.step-dot[data-status=in-progress]{background:var(--purple);box-shadow:0 0 5px #7856ff80}.steps-connector{background:var(--muted);flex-shrink:0;width:14px;height:1px}.step-nav--compact{background:var(--base);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px;box-shadow:0 1px 6px #00000014}.viewport{border-radius:var(--r-md);background:0 0;position:relative;overflow:hidden}.viewport-canvas,.viewport-canvas canvas{width:100%;height:100%;display:block}.webgl-fallback{height:100%;color:var(--t3);place-items:center;font-size:13px;display:grid}.viewport-header{z-index:2;pointer-events:none;flex-direction:column;gap:3px;display:flex;position:absolute;top:12px;left:14px}.view-label{letter-spacing:.06em;text-transform:uppercase;color:var(--t3);font-size:10px;font-weight:600}.view-value{font-family:var(--mono);color:var(--t1);letter-spacing:-.02em;font-size:19px;font-weight:500;line-height:1}.panel-dropdown{position:relative}.panel-dropdown-trigger{border-radius:var(--r-sm);color:var(--t2);background:var(--raised);transition:all .15s var(--ease);white-space:nowrap;cursor:pointer;align-items:center;gap:7px;max-width:200px;padding:7px 12px;font-size:13px;font-weight:500;display:flex}.panel-dropdown-trigger:hover{background:var(--surface);color:var(--t1)}.panel-dropdown-trigger span{text-overflow:ellipsis;overflow:hidden}.panel-chevron{color:var(--t3);transition:transform .2s var(--ease);flex-shrink:0}.panel-dropdown.is-open .panel-chevron{transform:rotate(180deg)}.panel-dropdown-menu{background:var(--base);border:1px solid var(--border);border-radius:var(--r-lg);z-index:200;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;flex-direction:column;width:340px;max-height:calc(100vh - 80px);display:none;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 4px 20px #0000001f}.panel-dropdown.is-open .panel-dropdown-menu{display:flex}.panel-header{border-bottom:1px solid var(--border);flex-shrink:0;padding:16px 18px 14px}.panel-title{color:var(--t1);letter-spacing:-.02em;font-size:16px;font-weight:600}.panel-subtitle{color:var(--t2);margin-top:3px;font-size:12px}.panel-step-content{scrollbar-width:thin;scrollbar-color:var(--muted) transparent;flex:1;overflow-y:auto}.panel-section{padding:0 16px 20px}.panel-section:first-child{padding-top:16px}.panel-section h2{color:var(--t3);margin-bottom:8px;padding-left:4px;font-size:13px;font-weight:400}.panel-group{background:var(--base);border:1px solid var(--border);border-radius:12px;overflow:hidden}.panel-group-row{align-items:center;gap:12px;min-height:44px;padding:10px 16px;display:flex}.panel-group-row+.panel-group-row{border-top:1px solid var(--border)}.panel-group-row>.panel-group-label{color:var(--t1);flex:1;font-size:15px}.panel-group-row .panel-asset-meta{flex:1;min-width:0}.panel-group-row .panel-asset-meta .panel-group-label{color:var(--t1);font-size:15px}.panel-muted{color:var(--t3);margin-top:8px;font-size:12px;line-height:1.6}.panel-row{color:var(--t2);justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.panel-stat{color:var(--t2);justify-content:space-between;align-items:baseline;padding:10px 0;font-size:13px;display:flex}.panel-stat strong{font-family:var(--mono);color:var(--t1);font-size:15px;font-weight:500}.panel-actions{gap:8px;margin-top:18px;display:flex}.panel-case-actions{gap:8px;display:flex}.btn-pill{border-radius:var(--r-full);background:var(--surface);height:38px;color:var(--t1);transition:background .15s var(--ease);white-space:nowrap;justify-content:center;align-items:center;padding:0 20px;font-size:13px;font-weight:500;display:inline-flex}.btn-pill:hover{background:var(--muted)}.btn-pill:disabled{opacity:.3;cursor:not-allowed}.btn-pill.is-active{background:var(--accent);color:#fff}.btn-primary{background:var(--accent);color:#fff;font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{color:var(--t2);background:0 0}.btn-ghost:hover{background:var(--surface);color:var(--t1)}.btn-upload{background:var(--accent-dim);height:30px;color:var(--accent);flex-shrink:0;padding:0 12px;font-size:13px;font-weight:500}.btn-upload:hover{background:var(--accent);color:#fff}.panel-asset{border-radius:var(--r-sm);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;margin-bottom:5px;padding:11px 14px;font-size:13px;display:flex}.panel-asset:last-of-type{margin-bottom:0}.panel-asset-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.panel-asset-file{color:var(--t3);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.panel-asset-status{font-size:11px;font-weight:600}.status-loaded{color:var(--green)}.status-error{color:var(--red)}.status-loading{color:var(--orange)}.panel-toggle-group{background:var(--surface);border-radius:var(--r-sm);padding:3px;display:flex}.panel-toggle-group .btn-pill{height:32px;color:var(--t2);background:0 0;border-radius:8px;padding:0 16px;font-size:13px;font-weight:500}.panel-toggle-group .btn-pill:hover{color:var(--t1)}.panel-toggle-group .btn-pill.is-active{background:var(--accent);color:#fff}.panel-region-grid{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.btn-region{border-radius:var(--r-sm);background:var(--surface);width:100%;height:40px;color:var(--t2);text-align:left;transition:all .15s var(--ease);padding:0 14px;font-size:12px;font-weight:500}.btn-region:hover{background:var(--muted);color:var(--t1)}.btn-region.is-active{background:var(--accent);color:#fff}.btn-region.is-accepted{background:var(--green-bg);color:var(--green)}.btn-region.is-partial{background:var(--orange-bg);color:var(--orange)}.panel-reg-footer{margin-top:14px}.panel-stepper{border-radius:var(--r-sm);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;margin-bottom:5px;padding:11px 14px;display:flex}.panel-stepper:last-of-type{margin-bottom:0}.panel-stepper-label{color:var(--t2);font-size:13px}.panel-stepper-controls{align-items:center;gap:8px;display:flex}.btn-stepper{background:var(--muted);width:30px;height:30px;color:var(--t2);transition:all .12s var(--ease);border-radius:8px;justify-content:center;align-items:center;font-size:15px;display:flex}.btn-stepper:hover{background:var(--bright);color:var(--t1)}.panel-stepper-value{font-family:var(--mono);text-align:center;min-width:44px;color:var(--t1);font-size:14px;font-weight:500}.panel-pose-row{border-radius:var(--r-sm);background:var(--surface);color:var(--t2);justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;padding:9px 14px;font-size:12px;display:flex}.panel-pose-row:last-of-type{margin-bottom:0}.panel-pose-row .panel-stepper-value{min-width:50px;font-size:13px}.panel-table{border-collapse:separate;border-spacing:0 4px;width:100%;font-size:13px}.panel-table td,.panel-table th{color:var(--t2);background:var(--surface);padding:9px 14px}.panel-table td:first-child,.panel-table th:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}.panel-table td:last-child,.panel-table th:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0;text-align:right;color:var(--t1);font-family:var(--mono);font-size:12px}.panel-table .ok{color:var(--green)}.panel-table .missing{color:var(--red)}.row-ok td:last-child{color:var(--green)}.row-missing td{color:var(--t3)}.panel-gap-table th{color:var(--t2);font-weight:500}.vis-dropdown{position:relative}.vis-dropdown-trigger{border-radius:var(--r-sm);color:var(--t2);background:var(--raised);transition:all .15s var(--ease);white-space:nowrap;cursor:pointer;align-items:center;gap:7px;padding:7px 12px;font-size:13px;font-weight:500;display:flex}.vis-dropdown-trigger:hover{background:var(--surface);color:var(--t1)}.vis-chevron{color:var(--t3);transition:transform .2s var(--ease);flex-shrink:0}.vis-dropdown.is-open .vis-chevron{transform:rotate(180deg)}.vis-dropdown-menu{background:var(--base);border:1px solid var(--border);border-radius:var(--r-md);z-index:200;flex-direction:column;gap:2px;min-width:220px;padding:8px;display:none;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 20px #0000001f}.vis-dropdown.is-open .vis-dropdown-menu{display:flex}.vis-row{border-radius:var(--r-sm);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.vis-row:hover{background:var(--surface)}.vis-label{color:var(--t1);font-size:13px;font-weight:450}.ios-toggle{background:var(--muted);width:44px;height:26px;transition:background .22s var(--ease);cursor:pointer;border-radius:13px;flex-shrink:0;position:relative}.ios-toggle.is-on{background:var(--accent)}.ios-thumb{width:20px;height:20px;transition:transform .22s var(--ease);pointer-events:none;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003}.ios-toggle.is-on .ios-thumb{transform:translate(18px)}.panel-collision-status{border-radius:var(--r-sm);background:var(--green-bg);color:var(--green);align-items:center;gap:10px;margin-bottom:12px;padding:14px 16px;font-size:13px;display:flex}.panel-collision-status.collision-fail{background:var(--orange-bg);color:var(--orange)}.panel-confirmed{text-align:center;padding:28px 0}.panel-confirmed-badge{background:var(--accent-dim);width:56px;height:56px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;font-size:24px;display:flex}.panel-event-log{text-align:left;flex-direction:column;gap:4px;max-height:220px;margin-top:12px;display:flex;overflow-y:auto}.log-entry{border-radius:var(--r-sm);background:var(--surface);flex-direction:column;gap:2px;padding:9px 14px;font-size:12px;display:flex}.log-action{color:var(--accent);font-weight:600}.log-detail{color:var(--t2)}.log-entry time{color:var(--t3);font-size:10px;font-family:var(--mono)}[data-reg-status]{color:var(--t2);font-size:12px}.panel-hint{border-radius:var(--r-sm);background:var(--accent-dim);color:var(--accent);margin-bottom:16px;padding:12px 14px;font-size:12px;line-height:1.5}.panel-warning{border-radius:var(--r-sm);background:var(--orange-bg);color:var(--orange);align-items:flex-start;gap:10px;margin-bottom:5px;padding:11px 14px;font-size:12px;display:flex}.panel-warning.blocking{background:var(--red-bg);color:var(--red)}.panel-warning.informational{background:var(--surface);color:var(--t2)}.opacity-slider{appearance:none;background:var(--muted);cursor:pointer;border-radius:2px;outline:none;flex:1;height:4px}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #0006}.opacity-slider::-moz-range-thumb{cursor:pointer;background:#fff;border:0;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #0006}.collision-ok{color:var(--green)}.collision-fail{color:var(--orange)}.measure-label{color:#ff9f0a;font-family:var(--mono);border-radius:var(--r-full);pointer-events:none;z-index:10;white-space:nowrap;background:#141c26eb;border:1px solid #ff9f0a4d;padding:4px 10px;font-size:12px;font-weight:600;position:absolute;transform:translate(-50%,-110%)}.status-strip{color:var(--t3);background:var(--base);border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:4px 16px;font-size:11px;display:flex}.status-tool{color:var(--t2);font-weight:600}.status-view{color:var(--t3)}.status-warnings{color:#fff;border-radius:10px;padding:2px 7px;font-size:10px;font-weight:700}.status-warnings[data-severity=blocking]{background:var(--red)}.status-warnings[data-severity=advisory]{background:var(--orange)}.status-disclaimer{color:var(--t3);opacity:.7;margin-left:auto;font-size:10px}.panel-toggle{color:var(--t2);cursor:pointer;align-items:center;gap:8px;padding:8px 0;font-size:13px;display:flex}.panel-toggles{flex-direction:column;display:flex}.viewer-only{--canvas:#07091a;--base:#ffffff12;--raised:#ffffff14;--surface:#ffffff0f;--muted:#ffffff14;--bright:#ffffff24;--border:#ffffff14;--t1:#ffffffeb;--t2:#ffffff8c;--t3:#ffffff52;background:#07091a;width:100%;height:100%;position:relative;overflow:hidden}.viewer-only--headless,.viewer-only--headless .viewport-grid,.viewer-only--headless .viewport{background:0 0}.viewer-only .viewport-grid{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid;position:absolute;inset:0}.viewer-only .viewport-bottom-bar{z-index:20;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.viewer-only-tools{z-index:20;background:var(--base);border:1px solid var(--border);border-radius:var(--r-lg);backdrop-filter:blur(12px);flex-direction:column;gap:4px;padding:8px;display:flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.vot-btn{border-radius:var(--r-sm);width:36px;height:36px;color:var(--t3);transition:all .15s var(--ease);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.vot-btn:hover{background:var(--surface);color:var(--t1)}.vot-btn.is-active{background:var(--accent);color:#fff}.viewer-only-top-right{z-index:20;position:absolute;top:14px;right:14px}.viewer-layers .vis-dropdown-trigger{background:var(--base);border:1px solid var(--border);border-radius:var(--r-sm);backdrop-filter:blur(12px)}.viewer-layers .vis-dropdown-menu{border:1px solid var(--border);backdrop-filter:blur(12px);border-radius:var(--r-md);background:#0a0e1af2;min-width:200px;padding:8px;top:calc(100% + 6px);right:0}.viewer-only .steps-pill,.viewer-only .step-nav--compact{background:var(--base);border:1px solid var(--border);backdrop-filter:blur(12px)}.viewer-only .steps-step{color:var(--t3)}.viewer-only .steps-step.is-active{color:var(--t1);background:var(--surface);border-color:var(--border)}.viewer-only .viewport{background:0 0;border-radius:6px;overflow:hidden}.viewer-only .view-label{color:#ffffff59}.viewer-only .view-value{color:#ffffffb3}.orientation-cube-wrap{z-index:30;perspective:320px;width:64px;height:64px;position:absolute;bottom:24px;right:24px}.orientation-cube{width:64px;height:64px;transform-style:preserve-3d;position:relative;transform:rotateX(-26deg)rotateY(-34deg)}.oc-face{font-family:var(--mono,ui-monospace, monospace);letter-spacing:.02em;color:#78c3ffeb;text-shadow:0 0 8px #5096ff80;background:linear-gradient(150deg,#28385cf5,#121a2ef5);border:1px solid #6e96e666;border-radius:7px;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex;position:absolute;inset:0;box-shadow:inset 0 0 14px #466ec82e}.oc-front{transform:translateZ(32px)}.oc-back{transform:rotateY(180deg)translateZ(32px)}.oc-right{transform:rotateY(90deg)translateZ(32px)}.oc-left{transform:rotateY(-90deg)translateZ(32px)}.oc-top{color:#eaf4ff;background:linear-gradient(150deg,#3a5080fa,#223052fa);transform:rotateX(90deg)translateZ(32px)}.oc-bottom{transform:rotateX(-90deg)translateZ(32px)}.oc-back,.oc-bottom,.oc-left{opacity:.4}.ct-split{background:#050810;width:100%;height:100%;display:flex}.ct-split-3d{flex:0 0 50%;position:relative;overflow:hidden}.dicom-viewer{--dv-ax:#4fd1c5;--dv-cor:#f4b860;--dv-sag:#c9a2f0;--dv-line:#ffffff14;--dv-line-soft:#ffffff0d;--dv-text:#e7e9eaf2;--dv-dim:#e7e9ea80;--dv-surface:#16181c;--dv-track:#ffffff0d;--dv-hover:#ffffff17;--dv-pop:#1f2227;--dv-pop-border:#ffffff1a;min-width:0;font-family:var(--viewer-font);background:0 0;flex-direction:column;flex:1;display:flex}.dicom-viewer.dv-light{--dv-line:#0000001a;--dv-line-soft:#0000000f;--dv-text:#0f1419;--dv-dim:#536471;--dv-surface:#fff;--dv-track:#0000000d;--dv-hover:#0000000f;--dv-pop:#fff;--dv-pop-border:#0000001a}.dv-header{background:var(--dv-surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.dv-study{align-items:center;gap:9px;min-width:0;display:flex}.dv-modality{letter-spacing:.04em;color:var(--accent);background:var(--accent-dim);border-radius:6px;flex-shrink:0;padding:2px 7px;font-size:11px;font-weight:700}.dv-study-name{letter-spacing:-.01em;color:var(--dv-text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.dv-controls{flex-shrink:0;align-items:center;gap:8px;display:flex}.dv-info{display:flex;position:relative}.dv-info-btn{border-radius:var(--r-full);width:26px;height:26px;color:var(--dv-dim);transition:background .15s var(--ease), color .15s var(--ease);justify-content:center;align-items:center;display:flex}.dv-info-btn:hover{background:var(--dv-hover);color:var(--dv-text)}.dv-info-pop{z-index:5;background:var(--dv-pop);border:1px solid var(--dv-pop-border);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s var(--ease), transform .15s var(--ease);border-radius:10px;flex-direction:column;gap:4px;padding:9px 11px;display:flex;position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-4px);box-shadow:0 8px 24px #00000047}.dv-info:hover .dv-info-pop,.dv-info-btn:focus-visible+.dv-info-pop{opacity:1;pointer-events:auto;transform:none}.dv-winlevel{font-family:var(--mono);letter-spacing:.01em;color:var(--dv-text);white-space:nowrap;font-size:11px}.dv-info-meta{letter-spacing:-.01em;color:var(--dv-dim);white-space:nowrap;font-size:12px}.dv-close{border-radius:var(--r-full);width:28px;height:28px;color:var(--dv-dim);transition:background .15s var(--ease), color .15s var(--ease);flex-shrink:0;justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex}.dv-close:hover{background:var(--dv-hover);color:var(--dv-text)}.dv-presets{background:var(--dv-track);border-radius:var(--r-full);gap:2px;padding:3px;display:flex}.dv-preset{font-family:var(--viewer-font);letter-spacing:-.01em;color:var(--dv-dim);border-radius:var(--r-full);white-space:nowrap;cursor:pointer;transition:color .15s var(--ease), background .15s var(--ease);padding:4px 10px;font-size:11.5px;font-weight:600}.dv-preset:hover{color:var(--dv-text)}.dv-preset.is-active{color:#fff;background:var(--accent)}.dv-stack{border-radius:24px;flex-direction:column;flex:1;gap:1px;min-height:0;margin:6px;padding:1px;display:flex;overflow:hidden}.dv-panel{min-height:0;box-shadow:inset 0 0 0 1px var(--dv-line-soft);background:#000;flex:1;transition:box-shadow .18s;position:relative;overflow:hidden}.dv-panel:after{content:"";pointer-events:none;z-index:2;background:radial-gradient(130% 100%,#0000 62%,#0000008c);position:absolute;inset:0}.dv-panel.is-active{box-shadow:inset 0 0 0 1px,0 0 0 1px #0009}.plane-axial{color:var(--dv-ax)}.plane-coronal{color:var(--dv-cor)}.plane-sagittal{color:var(--dv-sag)}.dv-canvas{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}.dv-tag{z-index:4;letter-spacing:.14em;color:var(--dv-text);pointer-events:none;text-shadow:0 1px 3px #000000e6;align-items:center;gap:6px;font-size:10px;font-weight:700;display:flex;position:absolute;top:8px;left:10px}.dv-dot{background:currentColor;border-radius:50%;width:7px;height:7px;box-shadow:0 0 8px}.dv-edge{z-index:3;letter-spacing:.05em;color:var(--dv-dim);pointer-events:none;text-shadow:0 1px 3px #000000e6;font-size:10px;font-weight:700;position:absolute}.dv-edge-top{top:6px;left:50%;transform:translate(-50%)}.dv-edge-bottom{bottom:6px;left:50%;transform:translate(-50%)}.dv-edge-left{top:50%;left:8px;transform:translateY(-50%)}.dv-edge-right{top:50%;right:16px;transform:translateY(-50%)}.dv-readout{z-index:4;font-family:var(--mono);letter-spacing:.01em;color:var(--dv-text);pointer-events:none;text-shadow:0 1px 3px #000000e6;font-size:11px;font-weight:500;position:absolute;bottom:8px;right:16px}.dv-hu{z-index:4;font-family:var(--mono);color:var(--dv-text);pointer-events:none;text-shadow:0 1px 3px #000000e6;min-height:13px;font-size:11px;font-weight:500;position:absolute;bottom:8px;left:10px}.dv-scrubber{z-index:5;cursor:ns-resize;opacity:0;touch-action:none;background:linear-gradient(90deg,#0000,#00000059);width:9px;height:100%;transition:opacity .18s;position:absolute;top:0;right:0}.dv-panel:hover .dv-scrubber,.dv-panel.is-active .dv-scrubber{opacity:1}.dv-scrubber:before{content:"";background:var(--dv-line);width:1px;position:absolute;top:4px;bottom:4px;right:3px}.dv-thumb{background:currentColor;border-radius:3px;width:5px;height:14%;min-height:14px;position:absolute;right:1px;transform:translateY(-50%);box-shadow:0 0 8px}.dicom-viewer.is-windowing .dv-canvas{cursor:move}.dv-error{height:100%;font-family:var(--mono);color:#b4cddc80;background:#04070d;flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.ct-pop{position:relative}.ct-pop-trigger{border-radius:var(--r-sm);font-family:var(--mono);color:#ffffffbf;backdrop-filter:blur(12px);cursor:pointer;transition:all .15s var(--ease);background:#ffffff0f;border:1px solid #ffffff1a;align-items:center;gap:7px;padding:5px 9px 5px 6px;font-size:12px;font-weight:500;display:flex}.ct-pop-trigger:hover{color:#fff;background:#ffffff1a}.ct-pop-badge{letter-spacing:.08em;color:var(--accent);background:var(--accent-dim);border-radius:5px;padding:2px 6px;font-size:10px;font-weight:700}.ct-pop-label{letter-spacing:.04em}.ct-pop-chevron{color:#ffffff80;transition:transform .2s var(--ease)}.ct-pop.is-open .ct-pop-chevron{transform:rotate(180deg)}.ct-pop.is-open .ct-pop-trigger{background:var(--accent-dim);color:#fff;border-color:#1d9bf066}.ct-pop-panel{border-radius:var(--r-md);z-index:300;width:400px;height:min(680px,82vh);animation:ct-pop-in .16s var(--ease);background:#000;border:1px solid #ffffff1a;display:none;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 20px 60px #0000008c}.ct-pop.is-open .ct-pop-panel{display:flex}.ct-pop-panel .dicom-viewer{flex:1;min-width:0}@keyframes ct-pop-in{0%{opacity:0;transform:translateY(-6px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.viewport-grid.planning-grid{gap:2px}.vp-planning-label{z-index:5;text-align:center;pointer-events:none;position:absolute;top:8px;left:50%;transform:translate(-50%)}.vp-planning-name{letter-spacing:.07em;text-transform:uppercase;color:#ffffff73;margin-bottom:2px;font-size:10px;font-weight:600}.vp-planning-angle{color:#ffffffe0;letter-spacing:-.02em;font-size:20px;font-weight:500;font-family:var(--mono)}.vp-planning-controls{z-index:5;pointer-events:auto;grid-template-rows:repeat(3,22px);grid-template-columns:repeat(3,22px);gap:2px;display:grid;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.vp-arrow{cursor:pointer;color:#ffffff80;background:#ffffff14;border:1px solid #ffffff1f;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;transition:all .12s;display:flex}.vp-arrow:hover{color:#fff;background:#1d9bf040;border-color:#1d9bf080}.vp-arrow svg{width:10px;height:10px}.vp-arrow.empty{cursor:default;background:0 0;border:none}.viewer-only .viewport-grid.layout-six{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(3,1fr)}.viewer-only .viewport-grid.layout-four{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(2,1fr)}.viewer-only .viewport-grid.layout-two{grid-template-rows:1fr;grid-template-columns:repeat(2,1fr)}.viewer-only .viewport-grid.layout-one{grid-template-rows:1fr;grid-template-columns:1fr}.viewer-only .viewport-grid>canvas{position:absolute}.viewer-only .viewport-grid.layout-one .viewport:nth-of-type(n+2),.viewer-only .viewport-grid.layout-two .viewport:nth-of-type(n+3),.viewer-only .viewport-grid.layout-four .viewport:nth-of-type(n+5){display:none}.layout-switcher{background:var(--base);border:1px solid var(--border);border-radius:var(--r-sm);backdrop-filter:blur(12px);align-items:center;gap:2px;padding:3px;display:flex}.layout-btn{width:28px;height:28px;color:var(--t3);transition:all .15s var(--ease);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;display:flex}.layout-btn:hover{background:var(--surface);color:var(--t1)}.layout-btn.is-active{background:var(--accent);color:#fff}.viewer-only-top-right{align-items:center;gap:8px;display:flex}