@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(./barlow-latin-400-normal-fsAxiSwU.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-latin-500-normal-BPAOfeC8.woff2)format("woff2"),url(./barlow-latin-500-normal-C1h8hMer.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(./barlow-latin-600-normal-CNwfPWQD.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:700;src:url(./barlow-latin-700-normal-A9pxMQ4z.woff2)format("woff2"),url(./barlow-latin-700-normal-__SGTsZ1.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(./ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}:root{--bg:#0b1117;--panel:#121a22;--panel2:#17212b;--line:#243240;--text:#d8e2ea;--muted:#8ba0b2;--accent:#3fc1c9;--accent2:#9fe7ff;--ok:#3ddc97;--warn:#f2c14e;--bad:#ef5b5b;--art:#e5534b;--ven:#5b8def;--avf:#a57bea;--radius:8px;--font:"Barlow", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font:13.5px/1.4 var(--font);margin:0;overflow:hidden}#gl{z-index:0;width:100vw;height:100vh;display:block;position:fixed;inset:0}#app{z-index:1;pointer-events:none;grid-template-rows:50px minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);height:100%;display:grid;position:relative}#app>*{pointer-events:auto}button,select,input{font:inherit;color:inherit}button{background:var(--panel2);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:6px;padding:4px 10px;transition:background .15s,border-color .15s,color .15s}button:hover{border-color:var(--accent)}button:focus-visible,select:focus-visible,input:focus-visible,.gl-view:focus-visible{outline:2px solid var(--accent2);outline-offset:1px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}button.active,button.on{border-color:var(--accent);color:#e8fdff;background:#164b55}button.primary{background:#1c6f76;border-color:#2fb0b8}button.danger{background:#5a2124;border-color:#b8484c}select{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:4px 6px}.hidden{display:none!important}#topbar{border-bottom:1px solid var(--line);background:linear-gradient(#111b24,#0d151c);align-items:center;gap:14px;min-width:0;padding:0 16px;display:flex;overflow:hidden}#topbar>*{flex-shrink:0;min-width:0}#topbar>.case-sel{flex:auto}.brand{white-space:nowrap;align-items:center;gap:10px;display:flex;flex-shrink:0!important}.brand h1{font:inherit;margin:0}.brand .title,.brand .subtitle{display:block}.brand .title{letter-spacing:.2px;font-size:16px;font-weight:700}.brand .title span{color:var(--accent2)}.brand .subtitle{color:var(--muted);font-size:11px}.case-sel{align-items:center;gap:8px;display:flex}.case-sel label{color:var(--muted)}.case-sel select{width:100%;min-width:120px;max-width:320px}.diff{color:var(--muted);background:#1d2a36;border-radius:10px;padding:2px 7px;font-size:11px}.diff.d1{color:#8be0b4}.diff.d2{color:#f2c14e}.diff.d3{color:#ff8a80}#modeTabs{gap:4px;display:flex}#modeTabs button{border-radius:7px;padding:6px 14px}.top-actions{align-items:center;gap:6px;display:flex}#grid{pointer-events:none;grid-template-rows:minmax(0,1.65fr) minmax(0,1fr);grid-template-columns:minmax(0,1.18fr) minmax(430px,.82fr);gap:6px;min-height:0;padding:6px 16px;display:grid}#grid>.pane{pointer-events:auto}.pane{border:1px solid var(--line);border-radius:var(--radius);min-width:0;min-height:0;position:relative;overflow:hidden}.gl-view{outline:none;position:absolute;inset:0}#pane3d{background:0 0;grid-area:1/1}#paneMonitor{grid-area:1/2}#paneInfo{background:var(--panel);flex-direction:column;grid-area:2/1;display:flex}#paneAnat{background:0 0;flex-direction:column;grid-area:2/2;display:flex}#paneAnat .pane-title{z-index:2;border-bottom:1px solid var(--line);color:var(--muted);background:#0e151ceb;justify-content:space-between;align-items:center;padding:5px 10px;font-size:12px;display:flex;position:relative}#anatView{top:30px;bottom:26px}#anatSvg,#usSvg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.legend{border-top:1px solid var(--line);height:26px;color:var(--muted);white-space:nowrap;background:#0e151cf0;align-items:center;gap:10px;padding:0 10px;font-size:11px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.legend i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.toolbar3d{pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute;top:8px;left:8px;right:8px}.btn-row{pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a1016a8;border:1px solid #506e8259;border-radius:8px;flex-wrap:wrap;align-self:flex-start;align-items:center;gap:4px;padding:4px;display:flex}.btn-row button{background:#18222ccc;padding:3px 9px;font-size:12px}.chk{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:3px;padding:2px 5px;font-size:12px;display:inline-flex}.chk.small{font-size:11px}.sl{align-items:center;gap:5px;padding:0 4px;font-size:12px;display:inline-flex}.sl input[type=range]{width:80px}input[type=range]{accent-color:var(--accent)}.hud{font:11px/1.45 var(--mono);color:#bcd3e3;pointer-events:none;white-space:pre;background:#080c10b8;border:1px solid #506e8259;border-radius:6px;padding:6px 9px;position:absolute;bottom:30px;left:8px}.hud-right{left:auto;right:8px}.hud b{color:var(--accent2);font-weight:600}.pane-hint{text-align:center;color:#283741e6;text-shadow:0 0 4px #ffffff80;pointer-events:none;font-size:11px;position:absolute;bottom:6px;left:0;right:0}#toasts{pointer-events:none;flex-direction:column;align-items:flex-end;gap:6px;max-width:60%;display:flex;position:absolute;top:80px;right:10px}.toast{border-left:4px solid var(--accent);background:#0e161eeb;border-radius:7px;padding:7px 11px;font-size:12.5px;animation:.25s ease-out toastIn;box-shadow:0 4px 18px #00000059}.toast.ok{border-color:var(--ok)}.toast.warn{border-color:var(--warn)}.toast.error{border-color:var(--bad);background:#3c1012f2}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}}.monitor{background:0 0;border-color:#2b3440;flex-direction:column;display:flex;box-shadow:inset 0 0 0 1px #000}.mon-top{font:11px var(--mono);color:#88a9c0;background:#05080b;border-bottom:1px solid #141c24;align-items:center;gap:12px;padding:4px 10px;display:flex}.mon-brand{color:#9fd3ff;letter-spacing:.5px}.mon-brand b{color:var(--accent)}.grow{flex:1}.mon-body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.us-view{cursor:crosshair;touch-action:none;flex:1;min-height:0;overflow:hidden;position:relative!important}#usParams{width:98px;font:11px/1.42 var(--mono);color:#a9c4d6;pointer-events:none;text-align:left;position:absolute;top:10px;right:6px}#usParams .pt{color:var(--accent);font-weight:700}#usParams .pgrp{color:#e2eef6}#usParams .sep{height:6px}.spec{border-top:1px solid #1b2530;height:34%;min-height:90px;position:relative}.spec canvas{width:100%;height:100%;display:block}.spec-meas{font:11px var(--mono);color:#c8e6f5;min-height:0;padding:0 10px}.spec-meas:not(:empty){border-top:1px solid #141c24;padding:4px 10px}.spec-meas span{margin-right:14px}.spec-meas b{color:var(--accent2)}.us-readout{font:11px var(--mono);color:#7fa3bb;white-space:nowrap;text-overflow:ellipsis;background:#05080b;border-top:1px solid #141c24;min-height:21px;padding:3px 10px;overflow:hidden}#usSvg .scale{stroke:#9db4c4;stroke-width:1px}#usSvg .scaletxt{fill:#9db4c4;font:11px var(--mono)}#usSvg .focus{fill:#e8d36a}#usSvg .marker circle{fill:#e8f3ff;stroke:#3fc1c9;stroke-width:1.5px}#usSvg .cbox{fill:none;stroke:#dfe8ef;stroke-width:1px;stroke-dasharray:3 2}#usSvg .small{fill:#b9cfdd;font:10px var(--mono)}#usSvg .pwline{stroke:#d8e3ea;stroke-width:1px;stroke-dasharray:4 3}#usSvg .gate{stroke:#fff;stroke-width:2px;fill:none}#usSvg .angle{stroke:#6ef0ff;stroke-width:1.6px}#usSvg .lbl text{font:11px var(--font);fill:#fff;paint-order:stroke;stroke:#000c;stroke-width:3px}#usSvg .lbl circle,#anatSvg .lbl circle{fill:#fff}#usSvg .lbl.artery text,#anatSvg .lbl.artery text{fill:#ff9a93}#usSvg .lbl.vein text,#anatSvg .lbl.vein text{fill:#9fbcff}#usSvg .lbl.avf text,#usSvg .lbl.graft text,#anatSvg .lbl.avf text,#anatSvg .lbl.graft text{fill:#d7b8ff}#usSvg .lbl.nerve text,#anatSvg .lbl.nerve text{fill:#ffe27a}#anatSvg .lbl text{font:11px var(--font);fill:#0b1117;paint-order:stroke;stroke:#ffffffd9;stroke-width:3px;font-weight:600}#usSvg .cal path,#usSvg .cal line{stroke:#ffe45c;stroke-width:1.4px;fill:none}#usSvg .cal .dash{stroke-dasharray:3 3}#usSvg .cal text{fill:#ffe45c;font:12px var(--mono)}#usSvg .tipaid circle{fill:none;stroke:#00ff9c;stroke-width:1.6px;stroke-dasharray:4 3}#usSvg .tipaid.hid circle{stroke:#ff6b6b}#usSvg .tipaid text{fill:#b8ffe0;font:10.5px var(--font);paint-order:stroke;stroke:#000;stroke-width:3px}#usSvg .tipaid.hid text{fill:#ffb1b1}#usSvg .frozen{fill:#9fe7ff;font:13px var(--mono)}.tab-buttons{border-bottom:1px solid var(--line);background:#0f171e;gap:2px;padding:5px 6px 0;display:flex}.tab-buttons button{color:var(--muted);background:0 0;border-color:#0000;border-bottom-style:none;border-bottom-width:medium;border-radius:6px 6px 0 0;padding:5px 12px}.tab-buttons button.active{background:var(--panel);border-color:var(--line);color:var(--text)}.tab-content{flex:1;min-height:0;padding:10px 14px 14px;overflow:auto}.tab-content h3{margin:2px 0 6px;font-size:14px}.tab-content h4{color:var(--accent);text-transform:uppercase;letter-spacing:.6px;margin:12px 0 4px;font-size:12px}.tab-content p{color:#c2d1dc;margin:4px 0}.tab-content ul{margin:4px 0;padding-left:18px}.tab-content li{margin:2px 0}.cols{grid-template-columns:1fr 1fr;gap:14px;display:grid}.kv{grid-template-columns:auto 1fr;gap:2px 12px;font-size:12.5px;display:grid}.kv span:nth-child(odd){color:var(--muted)}.metric-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;display:grid}.metric{background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:6px 9px}.metric .v{font:600 17px var(--mono)}.metric .l{color:var(--muted);font-size:11px}.metric.bad .v{color:var(--bad)}.metric.warn .v{color:var(--warn)}.metric.good .v{color:var(--ok)}.score{align-items:center;gap:12px;margin:4px 0 8px;display:flex}.score .big{font:700 34px var(--mono)}.checklist{list-style:none;padding:0!important}.checklist li{border-bottom:1px dashed #1f2b36;grid-template-columns:22px 1fr;gap:4px;padding:3px 0;display:grid}.checklist .ic{font-weight:700}.lv-good .ic,.ic.good{color:var(--ok)}.lv-fair .ic,.ic.fair{color:var(--warn)}.lv-bad .ic,.ic.bad{color:var(--bad)}.lv-info .ic{color:var(--accent2)}.muted{color:var(--muted)}.eventlog{font:11.5px/1.5 var(--mono);border:1px solid var(--line);background:#0d141a;border-radius:6px;max-height:180px;padding:6px 8px;overflow:auto}.eventlog .error{color:#ff8f8f}.eventlog .warn{color:#ffd780}.eventlog .ok{color:#86f0bf}.lesson-list button{text-align:left;white-space:normal;width:100%;margin:3px 0;display:block}.lesson-step{background:#10202a;border:1px solid #22495a;border-radius:8px;margin:8px 0;padding:10px 12px;font-size:13.5px}.lesson-step.done{border-color:var(--ok)}body.basic .adv{display:none!important}.indication{border-left:3px solid var(--accent);background:#10202a;border-radius:0 6px 6px 0;margin:8px 0;padding:6px 10px}.steps{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 14px;margin:2px 0 8px;list-style:none;display:grid;padding:0!important}.level-toggle{z-index:2;justify-content:center;align-items:stretch;min-width:118px;position:sticky;right:0}.steps li{grid-template-columns:20px 1fr;gap:4px;font-size:12.5px;line-height:1.35;display:grid}.steps .ic{color:var(--muted);font-weight:700}.steps li.done .ic{color:var(--ok)}.steps li.done .lbl{color:var(--muted)}.steps li.next .lbl{color:var(--text);font-weight:600}.steps .how{color:var(--muted);font-size:11px}.progress{background:#1c2833;border-radius:3px;height:5px;margin:6px 0;overflow:hidden}.progress>div{background:var(--accent);height:100%}table.tbl{border-collapse:collapse;width:100%;font-size:12.5px}table.tbl td,table.tbl th{text-align:left;border-bottom:1px solid #1f2b36;padding:3px 6px}table.tbl th{color:var(--muted);font-weight:500}#console{border-top:1px solid var(--line);background:linear-gradient(#0f171e,#0a1015);gap:6px;height:196px;padding:6px 16px;display:flex;overflow:auto hidden}.cgroup{border:1px solid var(--line);background:var(--panel);border-radius:9px;flex-direction:column;flex:none;gap:4px;min-width:0;padding:4px 8px 6px;display:flex}.cgroup h5{text-transform:uppercase;letter-spacing:.8px;color:var(--accent);justify-content:space-between;gap:8px;margin:0;font-size:10.5px;display:flex}.crow{flex-wrap:nowrap;align-items:center;gap:5px;display:flex}.crow.wrap{flex-wrap:wrap}.crow button{padding:3px 8px;font-size:12px}.knob{-webkit-user-select:none;user-select:none;cursor:ns-resize;flex-direction:column;align-items:center;width:58px;display:flex}.knob svg{width:44px;height:44px}.knob .kl{color:var(--muted);text-align:center;font-size:10.5px;line-height:1.1}.knob .kv{font:11px var(--mono);color:var(--text)}.tgc{align-items:flex-end;gap:3px;height:100%;display:flex}.tgc input[type=range]{writing-mode:vertical-lr;direction:rtl;width:16px;height:92px}.pad{grid-template-rows:repeat(3,24px);grid-template-columns:repeat(3,28px);gap:2px;display:grid}.pad button{padding:0;font-size:12px}.mini{color:var(--muted);font-size:10.5px}.vslider{color:var(--muted);flex-direction:column;align-items:center;gap:2px;font-size:10.5px;display:flex}.vslider input{writing-mode:vertical-lr;direction:rtl;width:18px;height:84px}.field{align-items:center;gap:6px;font-size:12px;display:flex}.field input[type=range]{width:110px}.field .val{font:11px var(--mono);min-width:42px}.modal{z-index:50;background:#03070ab8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:min(980px,96vw);max-height:90vh;padding:20px 26px;position:relative;overflow:auto;box-shadow:0 20px 60px #00000080}.modal-card h2{margin-top:0}.modal-card a,.tab-content a{color:var(--accent2);text-underline-offset:2px;text-decoration-color:#9fe7ff66}.modal-card a:hover,.tab-content a:hover{text-decoration-color:currentColor}.accent{color:var(--accent2)}.report-brand{font-size:.7em;font-weight:500}.about{color:#b9c8d4;border-top:1px solid var(--line);gap:2px;padding-top:4px;font-size:12.5px;display:grid}.about p{margin:4px 0}.site-foot{border-top:1px solid var(--line);color:var(--muted);margin:14px 0 0;padding-top:10px;font-size:12px}.modal-card a.kofi-link{color:#ffb4a9;text-decoration-color:#ffb4a973}a.kofi{color:#ffc4bb;white-space:nowrap;background:#241a1f;border:1px solid #5c3b3e;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}a.kofi:hover{color:#ffe1dc;background:#33212a;border-color:#ff7a70}a.kofi:focus-visible{outline:2px solid var(--accent2);outline-offset:1px}a.lang-link{border:1px solid var(--line);background:var(--panel2);color:var(--text);font:600 12px var(--mono);letter-spacing:.5px;border-radius:6px;padding:4px 9px;text-decoration:none;transition:border-color .15s}a.lang-link:hover{border-color:var(--accent)}a.lang-link:focus-visible{outline:2px solid var(--accent2);outline-offset:1px}.toast.lang-hint{pointer-events:auto;align-items:center;gap:8px;display:flex}.toast.lang-hint a{color:var(--accent2);font-weight:600}.toast.lang-hint button{color:var(--muted);background:0 0;border:none;padding:0 6px}.noscript{z-index:100;border:1px solid var(--line);background:var(--panel);border-radius:8px;margin:0;padding:12px 16px;position:fixed;inset:auto 16px 16px}.modal-close{position:absolute;top:10px;right:10px}kbd{font:11px var(--mono);background:#1a2530;border:1px solid #3a4b5a;border-bottom-width:2px;border-radius:4px;margin:0 1px;padding:1px 5px;display:inline-block}#loading{z-index:100;background:var(--bg);color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;transition:opacity .4s;display:flex;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}#loading .intro{text-align:center;max-width:36em;margin:0;padding-inline:16px;font-size:13px;line-height:1.5}#loading .intro a{color:var(--accent2)}.spinner{border:3px solid #1e2c38;border-top-color:var(--accent);border-radius:50%;width:38px;height:38px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:1560px){.brand .subtitle{display:none}#modeTabs button{padding:6px 10px}.top-actions select{max-width:132px}}@media (max-width:1180px){#grid{grid-template-columns:minmax(0,1fr) minmax(360px,1fr)}.brand .subtitle,.case-sel label,a.kofi span{display:none}}@media (max-width:860px){#app{grid-template-rows:auto minmax(0,1fr) auto}#topbar{flex-wrap:nowrap;height:auto;padding-block:6px;overflow-x:auto}#topbar>*{flex-shrink:0}.case-sel select{width:220px}#grid{grid-template-rows:minmax(0,1fr) minmax(0,1.1fr);grid-template-columns:minmax(0,1fr);padding-inline:16px}#pane3d,#paneMonitor{grid-area:auto/1}#paneInfo,#paneAnat{display:none}#grid.show-info #paneInfo{z-index:5;grid-area:1/1/span 2;display:flex}#grid.show-info #pane3d,#grid.show-info #paneMonitor,.toolbar3d #layerRow{display:none}#console{height:168px}.hud{font-size:10px;bottom:8px}.pane-hint{display:none}#mobileInfo{display:inline-block!important}#usParams{width:84px;font-size:10px}}@media print{#gl,#app,#loading{display:none!important}.modal{background:#fff;padding:0;position:static}.modal-card{color:#000;width:auto;max-height:none;box-shadow:none;background:#fff;border:none;overflow:visible}.modal-close,.no-print{display:none}.modal-card a,.site-foot{color:#333;border-color:#ccc}body{color:#000;background:#fff;overflow:visible}}#grid.max-3d,#grid.max-us,#grid.max-anat{grid-template-rows:1fr;grid-template-columns:1fr}#grid.max-3d>.pane:not(#pane3d),#grid.max-us>.pane:not(#paneMonitor),#grid.max-anat>.pane:not(#paneAnat){display:none}#grid.max-3d>#pane3d,#grid.max-us>#paneMonitor,#grid.max-anat>#paneAnat{grid-area:1/1}.maxbtn{z-index:3;background:#141e28bf;padding:1px 7px;font-size:13px;position:absolute;top:6px;right:6px}#paneMonitor .maxbtn{top:28px}#paneAnat .maxbtn{top:3px;right:110px}.pane.pip-float{z-index:6;border:1px solid #a0c8dc8c;border-radius:10px;box-shadow:0 8px 24px #00000080}.pane.pip-float .toolbar3d,.pane.pip-float .hud,.pane.pip-float .pane-hint,.pane.pip-float .maxbtn{display:none!important}.pane.pip-float.dragging{opacity:.88}.pane.pip-hidden{display:none!important}body.focus #grid{grid-template-rows:minmax(0,.85fr) minmax(0,1.15fr);grid-template-columns:minmax(0,1fr) clamp(300px,24vw,420px)}body.focus #grid>#paneMonitor,body.focus #grid>#pane3d{grid-area:1/1/span 2}body.focus #grid>#paneAnat{grid-area:1/2}body.focus #grid>#paneInfo{grid-area:2/2}body.focus.f-side-off #grid{grid-template-columns:minmax(0,1fr) 30px}body.focus.f-side-off #grid>#paneAnat,body.focus.f-side-off #grid>#paneInfo,body.focus .maxbtn,.f-ctl,.f-show,.f-side-open,.f-side-close{display:none}.f-ctl{z-index:5;gap:3px;position:absolute;top:6px;right:6px}#paneMonitor>.f-ctl{top:1px}.f-ctl button{background:#0a1016d9;border-color:#78a0b480;padding:0 7px;font-size:12px;line-height:19px}.f-ctl [data-f=drag]{cursor:grab;touch-action:none}body.focus .pip-float>.f-ctl{display:flex}.f-show{z-index:5;background:#0a1016d9;position:absolute;bottom:32px;right:10px}#pane3d>.f-show{bottom:10px}body.focus.f-pipoff.f-main-us #paneMonitor>.f-show,body.focus.f-pipoff.f-main-3d #pane3d>.f-show{display:block}#grid>.f-side-open{pointer-events:auto;color:var(--muted);flex-direction:column;grid-area:1/2/span 2;justify-content:center;align-items:center;gap:8px;padding:0}.f-side-open span{writing-mode:vertical-rl;letter-spacing:.5px;font-size:12px}body.focus.f-side-off #grid>.f-side-open{display:flex}body.focus .f-side-close{border-radius:6px;margin:0 0 3px auto;padding:2px 9px;display:inline-block}.cine{font:11px var(--mono);color:#9fd3ff;background:#05080b;border-top:1px solid #141c24;align-items:center;gap:6px;padding:3px 10px;display:flex}.cine input[type=range]{flex:1}.cine button{padding:0 7px;font-size:11px}.mono{font-family:var(--mono)}#usSvg .guide{stroke:#7dffb2;stroke-width:1.3px;stroke-dasharray:5 4;fill:none;opacity:.85}#usSvg .guidept{stroke:#7dffb2;stroke-width:1.4px;fill:none}#usSvg .guidetxt{fill:#b8ffd6;font:10.5px var(--font);paint-order:stroke;stroke:#000;stroke-width:3px}body:not(.mobile) .m-only{display:none!important}body.mobile{touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body.mobile input,body.mobile select{-webkit-user-select:auto;user-select:auto}body.mobile #app{height:100%;grid-template:"top""mon"minmax(0,1fr)"lesson""dock""nav"/minmax(0,1fr);height:100dvh}body.mobile #grid{display:contents}body.mobile #console,body.mobile #paneAnat,body.mobile .maxbtn,body.mobile .toolbar3d,body.mobile .hud,body.mobile .pane-hint,body.mobile .mon-top{display:none!important}body.mobile #topbar{height:auto;padding:calc(env(safe-area-inset-top) + 6px) 12px 6px;grid-area:top;gap:10px;overflow:visible}body.mobile .brand>div,body.mobile #modeTabs,body.mobile .top-actions,body.mobile .case-sel label{display:none}body.mobile .brand svg{width:28px;height:28px}body.mobile #topbar>.case-sel{flex:auto;min-width:0}body.mobile .case-sel select{width:100%;min-width:0;max-width:none;padding:6px 8px;font-size:14px}body.mobile #paneMonitor{box-shadow:none;border:none;border-radius:0;grid-area:mon}body.mobile #usParams{white-space:nowrap;background:#05080bb8;align-items:center;gap:11px;width:auto;height:22px;padding:0 10px;font-size:10.5px;display:flex;top:0;left:0;right:0;overflow:hidden}body.mobile #usParams b{color:#e2eef6}body.mobile .us-readout{font-size:10.5px}body.mobile #pane3d{grid-area:mon}.m-panectl{z-index:5;gap:4px;display:flex;position:absolute;top:6px;left:6px}.m-panectl button{background:#0a1016cc;border-color:#78a0b480;min-width:34px;height:32px;padding:0 9px;font-size:14px}#paneMonitor .m-panectl{top:auto;bottom:28px}body.mobile:not(.m-swap) #paneMonitor .m-panectl,body.mobile.m-swap #pane3d .m-panectl [data-act=swap],body.mobile.m-swap #pane3d .m-panectl [data-act=hide],body.mobile.m-land #pane3d .m-panectl [data-act=hide]{display:none}#mPipShow{z-index:5;background:#0a1016d9;height:32px;font-size:13px;position:absolute;bottom:30px;right:8px}body.mobile:not(.m-pipoff) #mPipShow,body.mobile.m-land #mPipShow,body.mobile.m-swap #mPipShow{display:none}#mLesson{background:#0f1d26;border-top:1px solid #22495a;grid-area:lesson;max-height:34dvh;padding:8px 12px;font-size:13.5px;line-height:1.4;overflow:auto}body.mobile:not([data-mode=learn]) #mLesson{display:none}.m-lhead{align-items:center;gap:6px;display:flex}.m-lhead .t{min-width:0;color:var(--accent2);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12.5px;font-weight:600;overflow:hidden}.m-lhead button{min-width:34px;height:30px;padding:0 8px}.m-ltext{margin:6px 0}.m-ltext.collapsed{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.m-lhint{margin-top:4px;font-size:12.5px}.m-lnav{background:#0f1d26;align-items:center;gap:6px;margin:0 -12px -8px;padding:4px 12px 8px;display:flex;position:sticky;bottom:-8px}.m-lnav button{min-width:44px;height:34px}.m-lstatus{color:var(--muted);font-size:11.5px}.m-lstatus.ok{color:var(--ok)}#mDock{border-top:1px solid var(--line);background:linear-gradient(#0f171e,#0a1015);flex-direction:column;grid-area:dock;gap:6px;min-width:0;padding:7px 10px 8px;display:flex}.m-chips{scrollbar-width:none;touch-action:pan-x;gap:6px;display:flex;overflow-x:auto}.m-chips::-webkit-scrollbar{display:none}.m-chip{border-radius:15px;flex:none;height:30px;padding:0 12px;font-size:13px}.m-chip.g-needle{border-color:#6b4a2a}.m-chip.on{border-color:var(--accent);color:#e8fdff;background:#164b55}.m-sep{background:var(--line);flex:none;width:1px;margin:5px 1px}.m-jog{gap:6px;height:44px;display:flex}.m-jog>button{touch-action:none;flex:none;width:46px;padding:0;font-size:22px;line-height:1}.m-jog-strip{border:1px solid var(--line);touch-action:none;cursor:ew-resize;background-color:#0d151c;background-image:repeating-linear-gradient(90deg,#9fe7ff52 0 1px,#0000 1px 11px);background-position-y:50%;background-repeat:repeat-x;background-size:11px 60%;border-radius:9px;flex:1;justify-content:center;align-items:center;min-width:0;display:flex;position:relative;overflow:hidden}.m-jog-strip:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0b1117 0,#0000 22% 78%,#0b1117 100%);position:absolute;inset:0}.m-jog-strip.drag{border-color:var(--accent)}.m-jog-val{font:12.5px var(--mono);color:var(--muted);white-space:nowrap;pointer-events:none;background:#0b1117e6;border-radius:6px;padding:3px 9px;position:relative}.m-jog-val b{color:var(--accent2);font-weight:600}.m-actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.m-actions button{white-space:normal;height:38px;padding:0 2px;font-size:12.5px;line-height:1.1;overflow:hidden}.m-actions.m-needle{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.m-actions.m-needle button{letter-spacing:-.15px;font-size:11.5px}.m-actions button.m-art:before,.m-actions button.m-ven:before{content:"";vertical-align:0;background:var(--art);border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.m-actions button.m-ven:before{background:var(--ven)}#mNav{padding:3px 4px calc(3px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#0a1015;grid-area:nav;display:flex}#mNav button{color:var(--muted);background:0 0;border:none;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:1px;padding:4px 0;font-size:11px;display:flex}#mNav svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:23px;height:23px}#mNav button.on{color:var(--accent2);background:#3fc1c91a}body.mobile #toasts{z-index:60;top:calc(env(safe-area-inset-top) + 52px);align-items:center;max-width:none;position:fixed;left:12px;right:12px}body.mobile .toast{max-width:100%;font-size:13px}#mBackdrop{z-index:44;background:#03070a8c;position:fixed;inset:0}body.mobile:not(.m-sheet-info):not(.m-sheet-more) #mBackdrop,body.mobile:not(.m-sheet-more) #mMore,body.mobile #paneInfo{display:none}body.mobile.m-sheet-info #paneInfo,.m-sheet{z-index:45;max-height:78dvh;padding-bottom:env(safe-area-inset-bottom);background:var(--panel);border:1px solid var(--line);border-radius:14px 14px 0 0;flex-direction:column;animation:.22s ease-out mSheetIn;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 40px #00000080}body.mobile.m-sheet-info #paneInfo{height:min(72dvh,680px)}@keyframes mSheetIn{0%{opacity:0;transform:translateY(40px)}}body.mobile #tabButtons{scrollbar-width:none;flex:none;align-items:center;padding:6px 6px 0;overflow-x:auto}body.mobile #tabButtons [data-tab=ergo]{display:none}body.mobile .tab-buttons button{padding:8px 12px;font-size:13.5px}.m-close{flex:none;min-width:36px;height:32px;margin-bottom:4px;margin-left:auto;border:1px solid var(--line)!important;border-radius:8px!important}body.mobile .tab-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px 14px 18px;font-size:14px}body.mobile .cols{grid-template-columns:minmax(0,1fr);gap:4px}body.mobile .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.mobile .lesson-list button{padding:10px 12px}.m-sheet-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 12px 10px 16px;font-weight:600;display:flex}.m-sheet-head button{min-width:36px;height:32px}.m-sheet-body{overscroll-behavior:contain;padding:2px 16px 16px;overflow:auto}.m-sec{border-bottom:1px solid var(--line)}.m-sec summary{color:var(--accent2);cursor:pointer;padding:13px 2px;font-weight:600}.m-sec-body{flex-direction:column;gap:11px;padding:2px 0 16px;display:flex}.m-sec .field{grid-template-columns:6.8em minmax(0,1fr) 4.4em;gap:10px;font-size:14px;display:grid}.m-sec .field input[type=range]{width:100%;height:26px}.m-sec .field .val{text-align:right}.m-lbl{grid-template-columns:6.8em minmax(0,1fr);align-items:center;gap:10px;font-size:14px;display:grid}.m-lbl select{width:100%;min-width:0;padding:7px 8px}.m-row{flex-wrap:wrap;gap:6px;display:flex}.m-row button,.m-row select{min-height:36px;padding:6px 12px}.m-note a{color:var(--accent2)}.m-kofi{border:1px solid var(--line);min-height:36px;color:var(--accent2);border-radius:6px;align-items:center;padding:6px 12px;text-decoration:none;display:inline-flex}body.mobile .modal{padding:10px}body.mobile .modal-card{width:100%;max-height:90dvh;padding:18px 16px}body.mobile .modal-card h2{padding-right:40px;font-size:19px}body.mobile .modal-card .crow{flex-wrap:wrap}body.mobile .modal-card ul,body.mobile .modal-card ol{padding-left:20px}body.mobile .modal-card button{min-height:36px}body.mobile.m-land #app{grid-template-columns:calc(66px + env(safe-area-inset-left)) minmax(0, 1fr) clamp(270px, 43vw, 420px);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"nav lesson side""nav mon side""nav mon dock"}body.mobile.m-land #topbar{display:none}body.mobile.m-land #pane3d,body.mobile.m-land.m-swap #paneMonitor{margin:6px calc(env(safe-area-inset-right) + 6px) 0 6px;border:1px solid var(--line);border-radius:8px;grid-area:side}body.mobile.m-land.m-swap #pane3d{border:none;border-radius:0;grid-area:mon;margin:0}body.mobile.m-land #mNav{padding:6px 4px 6px calc(4px + env(safe-area-inset-left));border-top:none;border-right:1px solid var(--line);flex-direction:column;justify-content:center;gap:4px}body.mobile.m-land #mNav button{flex:none;padding:7px 0}body.mobile.m-land #mDock{padding-right:calc(env(safe-area-inset-right) + 10px);background:0 0;border-top:none;gap:5px}body.mobile.m-land .m-actions{gap:4px}body.mobile.m-land .m-actions button{letter-spacing:-.1px;height:34px;font-size:11px}body.mobile.m-land .m-actions button.m-art:before,body.mobile.m-land .m-actions button.m-ven:before{margin-right:3px}body.mobile.m-land #mLesson{border-top:none;border-bottom:1px solid #22495a;max-height:46dvh;font-size:13px}body.mobile.m-land #toasts{top:10px;left:calc(80px + env(safe-area-inset-left));align-items:flex-start;max-width:50vw;right:auto}body.mobile.m-land.m-sheet-info #paneInfo,body.mobile.m-land .m-sheet{width:min(540px,72vw);height:auto;max-height:none;padding-right:env(safe-area-inset-right);border-radius:14px 0 0 14px;top:0;left:auto}
