:root{--bg: #0a1218;--panel: rgba(12, 22, 30, .55);--panel-edge: rgba(94, 160, 180, .28);--text: #e6eaed;--muted: #8aa0ae;--accent: #3db8c8;--accent-soft: rgba(61, 184, 200, .15);--border: rgba(255, 255, 255, .1);--glass-blur: 18px;--font: "Outfit", "Segoe UI", system-ui, sans-serif;--mono: "IBM Plex Mono", "Consolas", ui-monospace, monospace;--warn: #f0c040}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%;height:100dvh;max-height:100dvh;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font)}#app{position:relative}#stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;isolation:isolate;display:grid;grid-template-columns:1fr 6px 1.35fr;gap:0;background:var(--bg)}.view-pane{position:relative;min-width:0;min-height:0;overflow:hidden}#splitter{position:relative;z-index:2;width:6px;margin:0 -1px;cursor:col-resize;touch-action:none;background:linear-gradient(180deg,transparent 8%,rgba(61,184,200,.18) 35%,rgba(61,184,200,.45) 50%,rgba(61,184,200,.18) 65%,transparent 92%);border-left:1px solid rgba(94,160,180,.28);border-right:1px solid rgba(94,160,180,.28)}#splitter:after{content:"";position:absolute;top:0;right:-4px;bottom:0;left:-4px}#splitter:hover,#splitter:focus-visible,body.is-resizing #splitter{background:linear-gradient(180deg,transparent 8%,rgba(61,184,200,.35) 35%,rgba(61,184,200,.75) 50%,rgba(61,184,200,.35) 65%,transparent 92%);outline:none}body.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}body.is-resizing iframe,body.is-resizing canvas{pointer-events:none}#view-3d{cursor:grab;background:radial-gradient(ellipse at 40% 20%,rgba(40,80,90,.22),transparent 55%),var(--bg)}#view-3d:active{cursor:grabbing}#view-ekg{display:flex;flex-direction:column;background:#05080c;touch-action:none;overscroll-behavior:none}#viewport{position:absolute;top:0;right:0;bottom:0;left:0}#viewport canvas{display:block}.pane-chrome{position:absolute;top:.65rem;left:.75rem;right:.75rem;z-index:2;display:flex;align-items:center;justify-content:flex-end;gap:.45rem;pointer-events:none}.view-reset{pointer-events:auto;font-family:var(--mono);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--panel);border:1px solid var(--panel-edge);border-radius:999px;padding:.28rem .7rem;cursor:pointer;backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));transition:color .15s ease,border-color .15s ease,background .15s ease}.view-reset:hover{color:var(--text);border-color:#3db8c873;background:#14242eeb}.phase-chip{font-family:var(--mono);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--panel);border:1px solid var(--panel-edge);border-radius:999px;padding:.28rem .65rem;backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.phase-chip{max-width:min(22rem,70%);text-align:center;color:var(--accent);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.ekg-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem .5rem;border-bottom:1px solid rgba(94,160,180,.18)}.ekg-header-left{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;min-width:0}.ekg-header h2{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.ekg-view-toggle{display:inline-flex;align-items:center;gap:0;border:1px solid rgba(94,160,180,.28);border-radius:6px;overflow:hidden;background:#080e1273}.ekg-view-btn{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.02em;color:var(--muted);background:transparent;border:none;padding:.22rem .55rem;cursor:pointer;transition:color .15s ease,background .15s ease}.ekg-view-btn+.ekg-view-btn{border-left:1px solid rgba(94,160,180,.28)}.ekg-view-btn:hover{color:var(--text)}.ekg-view-btn[aria-pressed=true]{color:var(--accent);background:#3db8c824}.ekg-meta{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center;justify-content:flex-end}.ekg-calipers{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.caliper-btn{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.02em;color:var(--muted);background:#080e1273;border:1px solid rgba(94,160,180,.28);border-radius:6px;padding:.22rem .55rem;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.caliper-btn:hover{color:var(--text);border-color:#5ea0b480}.caliper-btn[aria-pressed=true]{color:#f0c040;border-color:#f0c0408c;background:#f0c0401f}.caliper-readout{color:#f0c040;border-color:#f0c04066;background:#f0c0401a}.meta-pill{font-family:var(--mono);font-size:.68rem;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(74,158,176,.35);border-radius:999px;padding:.22rem .55rem}.ekg-body{flex:1 1 auto;position:relative;min-height:0;padding:.35rem .5rem .25rem;touch-action:none;overscroll-behavior:none}.ekg-canvas{display:block;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.ekg-footer{flex:0 0 auto;padding:.45rem 1rem .75rem;font-size:.78rem;color:var(--muted);line-height:1.35;border-top:1px solid rgba(94,160,180,.12)}.ekg-footer strong{color:var(--text);font-weight:500}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.hud>*{pointer-events:auto}.brand{position:absolute;top:1rem;left:1.25rem;padding:.4rem .75rem;background:var(--panel);border:1px solid var(--panel-edge);border-radius:10px;backdrop-filter:blur(var(--glass-blur)) saturate(1.2);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.2);box-shadow:0 12px 40px #00000047;z-index:2;pointer-events:none}.brand h1{font-size:1.15rem;font-weight:600;letter-spacing:-.02em;line-height:1.2}.panel-shell{position:absolute;top:3.75rem;right:auto;left:1rem;bottom:1rem;width:min(300px,calc(100vw - 1.5rem));height:auto;max-height:none;z-index:4;display:flex;flex-direction:column;min-height:0;transition:transform .28s ease}.panel-shell.collapsed{transform:translate(calc(-100% - 1.25rem))}.panel{position:relative;width:100%;flex:1 1 auto;min-height:0;max-height:100%;background:#0c161eeb;border:1px solid var(--panel-edge);border-radius:12px;padding:0 1rem 1rem;overflow-x:hidden;overflow-y:auto;backdrop-filter:blur(var(--glass-blur)) saturate(1.25);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.25);box-shadow:0 18px 50px #00000059,inset 0 1px #ffffff0f;scrollbar-width:thin;scrollbar-color:rgba(61,184,200,.45) rgba(0,0,0,.25)}.panel::-webkit-scrollbar{width:8px}.panel::-webkit-scrollbar-track{margin:8px 0;background:#00000038;border-radius:999px}.panel::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#3db8c88c,#3db8c847);border-radius:999px;border:2px solid transparent;background-clip:padding-box}.panel::-webkit-scrollbar-thumb:hover{background:#3db8c8b3;border:2px solid transparent;background-clip:padding-box}.panel-top{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0 -1rem .75rem;padding:.75rem 1rem .55rem;background:#0c161efa;backdrop-filter:blur(var(--glass-blur)) saturate(1.25);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.25);border-bottom:1px solid var(--panel-edge);border-radius:12px 12px 0 0}.panel h2,.presets h3,.legend h3,.transport h3{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.panel-top h2{margin:0}.panel-collapse{width:1.6rem;height:1.6rem;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:1rem;line-height:1;cursor:pointer;display:inline-grid;place-items:center;padding:0}.panel-collapse .collapse-chevron{grid-area:1 / 1}.panel-collapse .collapse-chevron--down{display:none;width:.72rem;height:.72rem}.panel-collapse:hover{color:var(--text);border-color:var(--muted)}.panel-expand{position:absolute;top:0;left:calc(100% + .5rem);writing-mode:vertical-rl;font-family:var(--font);font-size:.75rem;font-weight:600;color:var(--muted);background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;padding:.7rem .4rem;cursor:pointer;opacity:0;pointer-events:none;backdrop-filter:blur(var(--glass-blur)) saturate(1.2);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.2);box-shadow:0 10px 28px #0000004d}.panel-shell.collapsed .panel-expand{opacity:1;pointer-events:auto}.panel-expand:hover{color:var(--text)}.finding-readout{background:var(--accent-soft);border:1px solid rgba(74,158,176,.28);border-radius:8px;padding:.55rem .65rem;margin-bottom:.75rem}.finding-readout .label{font-size:.65rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.finding-readout .value{font-size:.95rem;font-weight:600;margin-top:.15rem;color:var(--accent)}.finding-readout .detail{margin-top:.25rem;font-size:.72rem;color:var(--muted);line-height:1.3}.transport{margin-bottom:.85rem}.transport h3{margin:0 0 .45rem}.transport-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.35rem;margin-bottom:.5rem}.transport-row.single{grid-template-columns:1fr}.transport-row button,.preset-grid button,.action-row button,.vessel-actions button,.upload-export,.upload-clear{font-family:var(--font);font-size:.78rem;border:1px solid var(--border);background:#00000040;color:var(--text);border-radius:5px;padding:.4rem .45rem;cursor:pointer}.transport-row button:hover,.preset-grid button:hover,.action-row button:hover,.vessel-actions button:hover,.upload-export:hover,.upload-clear:hover{border-color:var(--muted)}.transport-row button.active{background:var(--accent-soft);border-color:#4a9eb073;color:var(--accent)}.slider-row{display:grid;grid-template-columns:3.2rem 1fr auto;gap:.4rem;align-items:center}.rate-row{grid-template-columns:2.6rem 1fr auto;margin-top:0}.speed-row{grid-template-columns:2.6rem 1fr auto;margin-top:.5rem}.cv-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.4rem;align-items:center;margin-top:0;margin-bottom:.5rem}.cv-label{font-size:.72rem;color:var(--muted);white-space:nowrap}.cv-select{position:relative;min-width:0}.cv-select-trigger-wrap{position:relative;display:flex;align-items:center}.cv-select-trigger{width:100%;font-family:var(--mono);font-size:.72rem;border:1px solid rgba(94,160,180,.35);background:#081016eb;color:var(--text);border-radius:5px;padding:.4rem 1.55rem .4rem .5rem;text-align:left;outline:none}.cv-select-trigger::placeholder{color:var(--muted);opacity:.85}.cv-select-trigger:hover:not(:disabled){border-color:#3db8c88c}.cv-select-trigger:focus{border-color:#3db8c8b3;box-shadow:0 0 0 2px #3db8c82e}.cv-select-trigger:disabled{cursor:not-allowed}.cv-select-trigger::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:0;width:0}.cv-select-chevron{position:absolute;right:.45rem;color:var(--accent);font-size:.65rem;line-height:1;opacity:.85;pointer-events:none}.cv-select.is-open .cv-select-chevron{transform:rotate(180deg)}.cv-select-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:8;max-height:14rem;overflow-x:hidden;overflow-y:auto;padding:.25rem;border:1px solid rgba(94,160,180,.35);border-radius:6px;background:#081016fa;box-shadow:0 12px 28px #00000073;scrollbar-width:thin;scrollbar-color:rgba(61,184,200,.45) rgba(0,0,0,.25)}.cv-select-menu::-webkit-scrollbar{width:8px}.cv-select-menu::-webkit-scrollbar-track{margin:4px 0;background:#00000038;border-radius:999px}.cv-select-menu::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#3db8c88c,#3db8c847);border-radius:999px;border:2px solid transparent;background-clip:padding-box}.cv-select-menu::-webkit-scrollbar-thumb:hover{background:#3db8c8b3;border:2px solid transparent;background-clip:padding-box}.cv-select-empty{padding:.55rem .45rem;font-size:.68rem;color:var(--muted);text-align:center}.cv-select-option{display:flex;flex-direction:column;align-items:flex-start;gap:.05rem;width:100%;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text);font-family:var(--mono);font-size:.72rem;text-align:left;padding:.35rem .4rem;cursor:pointer}.cv-select-option[hidden]{display:none}.cv-select-option small{font-family:var(--font);font-size:.58rem;color:var(--muted);line-height:1.25}.cv-select-option:hover{background:#3db8c81f;border-color:#3db8c840}.cv-select-option.active{background:var(--accent-soft);border-color:#3db8c866;color:var(--accent)}.cv-row #btn-cv{font-family:var(--font);font-size:.78rem;border:1px solid var(--border);background:#00000040;color:var(--text);border-radius:5px;padding:.4rem .55rem;cursor:pointer;white-space:nowrap}.cv-row #btn-cv:hover{border-color:var(--muted)}.cv-row #btn-cv.active{background:#ff6e822e;border-color:#ff6e828c;color:#ffb4be}body.cv-active .presets,body.cv-active .upload-block,body.cv-active .legend,body.cv-active .finding-readout,body.cv-active .rate-row,body.cv-active .speed-row,body.cv-active #btn-stim,body.cv-active .cv-select{opacity:.38;pointer-events:none;filter:grayscale(.35)}body.cv-active .cv-label{opacity:.5}.finding-expand{grid-column:1 / -1;display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .38s cubic-bezier(.22,1,.36,1),opacity .28s ease;pointer-events:none}.finding-expand.is-open{grid-template-rows:1fr;opacity:1;pointer-events:auto}.finding-expand-inner{overflow:hidden;min-height:0}.finding-expand-panel{margin:.05rem 0 .15rem;padding:.55rem .55rem .5rem;border:1px solid var(--border);border-radius:6px;background:#00000047;transform:translateY(-.35rem);transition:transform .38s cubic-bezier(.22,1,.36,1)}.finding-expand.is-open .finding-expand-panel{transform:translateY(0)}.finding-expand-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.45rem;font-size:.72rem;color:var(--muted)}.finding-expand-clear{font-size:.68rem;padding:.2rem .45rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--muted);cursor:pointer}.finding-expand-clear:hover{color:var(--text);border-color:#4a9eb066}.paced-fail-head,.paced-base-wrap .finding-expand-head{margin-top:.75rem}.paced-base-wrap[hidden]{display:none!important}.bbb-lesion-grid,.chb-escape-grid{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}.bbb-lesion-chip,.chb-escape-chip{display:flex;flex-direction:column;gap:.1rem;padding:.4rem .45rem;border:1px solid var(--border);border-radius:5px;background:#00000038;cursor:pointer;-webkit-user-select:none;user-select:none;text-align:left;color:inherit;font:inherit;width:100%}.bbb-lesion-short,.chb-escape-short{font-family:var(--mono);font-size:.78rem;color:var(--text)}.bbb-lesion-name,.chb-escape-name{font-size:.62rem;color:var(--muted);line-height:1.25}.bbb-lesion-chip:hover,.chb-escape-chip:hover{border-color:#4a9eb066}.bbb-lesion-chip.active,.chb-escape-chip.active{border-color:#ff6e828c;background:#ff50641f}.bbb-lesion-chip.active .bbb-lesion-short,.chb-escape-chip.active .chb-escape-short{color:#ffb4be}.finding-expand-result{margin-top:.45rem;font-size:.68rem;color:var(--muted);line-height:1.35}#btn-bbb.active,#btn-chb.active,#btn-flutter.active{background:var(--accent-soft);border-color:#4a9eb073;color:var(--accent)}.cv-flash{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;background:radial-gradient(circle at 50% 40%,rgba(255,250,240,.95),rgba(180,220,255,.35) 40%,transparent 70%);opacity:0;transition:opacity 80ms ease-out}.cv-flash.on{opacity:1}.slider-row>label{font-size:.78rem;color:var(--muted)}.slider-row input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.num-wrap{display:flex;align-items:center;background:#00000059;border:1px solid var(--border);border-radius:4px;padding-right:.3rem}.num-wrap input[type=number]{width:2.8rem;font-family:var(--mono);font-size:.8rem;background:transparent;border:none;color:var(--text);padding:.35rem;outline:none;text-align:right;-moz-appearance:textfield}.num-wrap input[type=number]::-webkit-outer-spin-button,.num-wrap input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.num-wrap .unit{font-family:var(--mono);font-size:.7rem;color:var(--muted)}.num-wrap:focus-within{border-color:var(--accent)}.upload-block{margin:.85rem 0;padding-top:.75rem;border-top:1px solid var(--border)}.upload-block h3{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .35rem}.upload-hint{font-size:.72rem;color:var(--muted);line-height:1.35;margin-bottom:.5rem}.upload-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-height:4.2rem;padding:.65rem .75rem;text-align:center;cursor:pointer;color:var(--accent);border:1px dashed rgba(74,158,176,.45);border-radius:8px;background:var(--accent-soft);transition:border-color .15s ease,background .15s ease,color .15s ease}.upload-drop:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 80%,transparent)}.upload-drop.is-dragover{border-style:solid;border-color:var(--accent);color:var(--text);background:color-mix(in srgb,var(--accent) 18%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.upload-drop-title{font-size:.82rem;font-weight:600}.upload-drop-sub{font-size:.68rem;color:var(--muted)}.upload-drop.is-dragover .upload-drop-sub{color:var(--text)}.upload-busy{display:flex;align-items:center;gap:.55rem;margin-top:.55rem;padding:.65rem .75rem;border-radius:8px;border:1px solid rgba(61,184,200,.35);background:#3db8c814}.upload-busy[hidden]{display:none}.upload-busy-spinner{width:1.05rem;height:1.05rem;flex:0 0 auto;border-radius:50%;border:2px solid rgba(61,184,200,.25);border-top-color:var(--accent, #3db8c8);animation:upload-spin .7s linear infinite}.upload-busy-text{font-family:var(--mono);font-size:.72rem;color:var(--text);line-height:1.35}@keyframes upload-spin{to{transform:rotate(360deg)}}.upload-drop.is-busy{opacity:.45;pointer-events:none}.upload-preview{margin-top:.55rem}.upload-thumb-btn{display:block;width:100%;padding:0;margin:0;border:none;background:transparent;cursor:zoom-in;position:relative;border-radius:6px;overflow:hidden}.upload-thumb-btn[hidden]{display:none}.upload-preview img,.upload-thumb-btn img{display:block;width:100%;max-height:220px;object-fit:contain;border-radius:6px;border:1px solid var(--panel-edge);background:#00000059}.upload-preview img[hidden]{display:none}.upload-thumb-zoom{position:absolute;right:.4rem;bottom:.35rem;font-size:.62rem;color:#e8eef2;background:#0000008c;padding:.15rem .4rem;border-radius:4px;pointer-events:none;opacity:.85}.upload-thumb-btn:hover .upload-thumb-zoom{opacity:1}.upload-split-caption{margin:.3rem 0 0;font-size:.65rem;color:var(--muted);line-height:1.3}.upload-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1.5rem;isolation:isolate}.upload-lightbox[hidden]{display:none!important}.upload-lightbox-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;margin:0;padding:0;background:#04080cd1;cursor:pointer}.upload-lightbox-panel{position:relative;z-index:1;max-width:min(1280px,96vw);max-height:92vh;display:flex;flex-direction:column;align-items:center;gap:.55rem;pointer-events:none}.upload-lightbox-header{display:flex;align-items:flex-start;justify-content:flex-end;gap:.55rem;align-self:stretch;pointer-events:auto;z-index:2}.upload-lightbox-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.55rem .85rem;flex:1 1 auto;min-width:0;padding:.45rem .65rem;border-radius:8px;border:1px solid rgba(160,200,210,.35);background:#0c1218eb;pointer-events:auto}.upload-lightbox-toolbar[hidden]{display:none}.upload-lightbox-hint{margin:0;flex:1 1 12rem;font-size:.78rem;color:#c8d4dc;line-height:1.35}.upload-split-stage{position:relative;display:inline-block;max-width:96vw;max-height:calc(90vh - 3.2rem);margin:0 auto;pointer-events:auto}.upload-lightbox-panel img,.upload-split-stage img{display:block;max-width:96vw;max-height:calc(90vh - 3.2rem);width:auto;height:auto;object-fit:contain;border-radius:8px;border:1px solid rgba(160,200,210,.35);background:#0a0e12;box-shadow:0 16px 48px #000000a6;pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.upload-split-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.upload-split-overlay[hidden]{display:none}.upload-split-box{position:absolute;box-sizing:border-box;border:2px solid #3db8c8;background:#3db8c80f;cursor:move;touch-action:none}.upload-split-box-label{position:absolute;top:2px;left:2px;padding:.1rem .35rem;font-size:.65rem;font-weight:600;font-family:ui-sans-serif,system-ui,sans-serif;border-radius:3px;pointer-events:none;white-space:nowrap}.upload-split-handle{position:absolute;width:10px;height:10px;background:#e8eef2;border:1px solid rgba(0,0,0,.55);border-radius:2px;z-index:2}.upload-split-handle-nw{top:-5px;left:-5px;cursor:nwse-resize}.upload-split-handle-ne{top:-5px;right:-5px;cursor:nesw-resize}.upload-split-handle-sw{bottom:-5px;left:-5px;cursor:nesw-resize}.upload-split-handle-se{bottom:-5px;right:-5px;cursor:nwse-resize}.upload-split-handle-n{top:-5px;left:50%;margin-left:-5px;cursor:ns-resize}.upload-split-handle-s{bottom:-5px;left:50%;margin-left:-5px;cursor:ns-resize}.upload-split-handle-w{left:-5px;top:50%;margin-top:-5px;cursor:ew-resize}.upload-split-handle-e{right:-5px;top:50%;margin-top:-5px;cursor:ew-resize}.upload-lightbox-x{position:relative;flex:0 0 auto;width:2.1rem;height:2.1rem;border-radius:999px;border:1px solid rgba(160,200,210,.4);background:#0c1218eb;color:#e8eef2;font-size:1.35rem;line-height:1;cursor:pointer;pointer-events:auto}body.upload-lightbox-open{overflow:hidden}.upload-meta{margin:.35rem 0;font-family:var(--mono);font-size:.68rem;color:var(--muted);line-height:1.35}.upload-match{margin:.2rem 0 .45rem;font-family:var(--mono);font-size:.68rem;color:var(--muted);line-height:1.35}.upload-actions{display:flex;flex-wrap:wrap;gap:.35rem}.upload-export,.upload-clear{flex:1 1 auto;min-width:5.5rem;color:var(--muted);font-size:.72rem}.upload-clear{width:auto}.stim-hint{margin:.35rem 0 0;font-size:.68rem;color:var(--warn);line-height:1.35}.ectopy-site{margin:.35rem 0 .55rem}.ectopy-site-label{font-family:var(--mono);font-size:.65rem;color:var(--muted);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.04em}.ectopy-site-grid{display:flex;flex-wrap:wrap;gap:.28rem}.ectopy-site-chip{flex:0 1 auto;padding:.28rem .45rem;font-size:.68rem;color:var(--muted);background:transparent;border:1px solid color-mix(in srgb,var(--border, #3a4550) 80%,transparent);border-radius:4px;cursor:pointer}.ectopy-site-chip:hover{color:var(--text);border-color:var(--accent, #3db8c8)}.ectopy-site-chip.active{color:#1a2228;background:var(--accent, #3db8c8);border-color:var(--accent, #3db8c8)}#viewport.stim-armed{cursor:crosshair}#viewport.stim-armed canvas{cursor:crosshair}.presets h3,.legend h3{margin:.15rem 0 .45rem}#finding-search{width:100%;margin:0 0 .5rem;padding:.45rem .55rem;border-radius:6px;border:1px solid var(--border);background:#00000047;color:var(--text);font-family:var(--sans);font-size:.78rem;outline:none}#finding-search::placeholder{color:var(--muted)}#finding-search:focus{border-color:#3db8c88c;box-shadow:0 0 0 2px #3db8c81f}.finding-empty{font-size:.72rem;color:var(--muted);padding:.35rem .15rem .55rem}.physionet-block{margin-top:.85rem;padding-top:.65rem;border-top:1px solid var(--panel-edge)}.physionet-block h3{margin:0 0 .35rem}.physionet-examples{margin:0 0 .35rem;font-size:.68rem;color:var(--muted);line-height:1.55;display:flex;flex-wrap:wrap;align-items:center;gap:.28rem}.physionet-examples code,.physionet-hint code{font-family:var(--mono);font-size:.64rem;color:var(--accent);background:#3db8c81a;border:1px solid rgba(61,184,200,.2);border-radius:3px;padding:.05rem .28rem}.physionet-hint{margin:0 0 .5rem;font-size:.68rem;color:var(--muted);line-height:1.45}.physionet-results{display:flex;flex-direction:column;gap:.3rem;max-height:14rem;overflow-y:auto}.physionet-db{display:flex;flex-direction:column;gap:.1rem;padding:.4rem .5rem;border-radius:6px;background:#3db8c814;border:1px solid rgba(61,184,200,.18);font-size:.72rem}.physionet-db span{color:var(--muted);font-size:.65rem}.physionet-record,.physionet-project{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;text-align:left;padding:.4rem .5rem;border-radius:6px;border:1px solid var(--border);background:#00000038;color:var(--text);font-family:var(--font);font-size:.74rem;cursor:pointer;text-decoration:none}.physionet-record:hover,.physionet-project:hover{border-color:#3db8c873;background:#3db8c81a}.physionet-record-id{font-family:var(--mono);font-size:.72rem;color:var(--accent)}.physionet-record small,.physionet-project small{color:var(--muted);font-size:.64rem}.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;max-height:min(32vh,16rem);overflow-y:auto;padding-right:.15rem;scrollbar-width:thin;scrollbar-color:rgba(61,184,200,.35) transparent}.preset-grid button{text-align:left;line-height:1.25}.preset-grid button[hidden]{display:none}.preset-grid button.active{background:var(--accent-soft);border-color:#4a9eb073;color:var(--accent)}.preset-grid .bbb-lesion-chip.active,.preset-grid .chb-escape-chip.active{border-color:#ff6e828c;background:#ff50641f;color:inherit}.preset-grid .bbb-lesion-chip.active .bbb-lesion-short,.preset-grid .chb-escape-chip.active .chb-escape-short{color:#ffb4be}.preset-grid button small{display:block;color:var(--muted);font-size:.62rem;font-family:var(--mono);margin-top:.12rem}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin-top:.65rem}.legend{margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--border)}.vessel-actions{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin-bottom:.45rem}.vessel-actions button{color:var(--muted);font-size:.72rem}.vessel-toggles{display:grid;gap:.15rem}.vessel-toggle{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--muted);padding:.22rem .2rem;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.vessel-toggle:hover{color:var(--text);background:#ffffff08}.vessel-toggle input{accent-color:var(--accent);cursor:pointer}.vessel-toggle .swatch{width:9px;height:9px;border-radius:2px;flex-shrink:0}.vessel-toggle:has(input:not(:checked)){opacity:.5}.seg-tooltip{position:fixed;top:0;left:0;z-index:20;pointer-events:none;min-width:9rem;max-width:15rem;padding:.5rem .65rem;background:#0a1218a6;border:1px solid var(--panel-edge);border-radius:8px;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 12px 32px #0006}.seg-tooltip[hidden]{display:none}.seg-tooltip-group{font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.12rem;opacity:.95}.seg-tooltip-name{font-size:.85rem;font-weight:600}.seg-tooltip-detail{margin-top:.15rem;font-size:.72rem;color:var(--muted);line-height:1.3}@media (max-width: 1200px) and (orientation: portrait){#stage{grid-template-columns:1fr;grid-template-rows:minmax(0,.72fr) 6px minmax(0,1.28fr)}#splitter{width:auto;height:6px;margin:-1px 0;cursor:row-resize;border-left:none;border-right:none;border-top:1px solid rgba(94,160,180,.28);border-bottom:1px solid rgba(94,160,180,.28);background:linear-gradient(90deg,transparent 8%,rgba(61,184,200,.18) 35%,rgba(61,184,200,.45) 50%,rgba(61,184,200,.18) 65%,transparent 92%)}#splitter:after{top:-4px;right:0;bottom:-4px;left:0}body.is-resizing{cursor:row-resize}#view-3d{border-bottom:none}#view-ekg{min-height:0}.ekg-header{padding:.45rem .75rem .3rem}.ekg-body{padding:.2rem .35rem .1rem}.ekg-footer{padding:.3rem .75rem calc(.45rem + env(safe-area-inset-bottom,0px));font-size:.7rem}.panel-shell{top:3.75rem;right:auto;bottom:1rem;left:.75rem;width:min(280px,calc(100vw - 1.5rem));height:auto;max-height:none}.panel{max-height:none}.brand{top:.75rem;left:.75rem}}@media (max-width: 900px) and (orientation: landscape){#stage{grid-template-columns:1fr 6px 1.2fr;grid-template-rows:1fr}.panel-shell{top:.5rem;bottom:.5rem;left:.5rem;width:min(240px,36vw);max-height:none}.brand{top:.45rem;left:.5rem}.brand h1{font-size:.95rem}}@media (max-width: 560px) and (orientation: portrait){.panel-shell{left:0;right:0;bottom:0;top:auto;width:100%;height:auto;max-height:72vh}.panel-shell.collapsed{transform:translateY(calc(100% + .4rem))}.panel{max-height:100%;border-radius:8px 8px 0 0}.panel-top{border-radius:8px 8px 0 0}.panel-collapse .collapse-chevron--side{display:none}.panel-collapse .collapse-chevron--down{display:block}.panel-expand{writing-mode:horizontal-tb;top:auto;bottom:calc(100% + .45rem);left:auto;right:.75rem;padding:.4rem .65rem}.preset-grid{grid-template-columns:1fr}}
