.heart-strain-line[data-v-fb0dd2e6]{fill:none;stroke-width:1.5}.heart-strain-ecc[data-v-fb0dd2e6],.heart-strain-line.heart-strain-ecc[data-v-fb0dd2e6]{stroke:var(--ink)}.heart-strain-ell[data-v-fb0dd2e6],.heart-strain-line.heart-strain-ell[data-v-fb0dd2e6]{stroke:var(--accent);stroke-dasharray:4 3}.heart-strain-err[data-v-fb0dd2e6],.heart-strain-line.heart-strain-err[data-v-fb0dd2e6]{stroke:var(--muted);stroke-dasharray:1 3}.heart-strain-legend[data-v-fb0dd2e6]{display:flex;gap:12px;margin:6px 0 0;padding:0;list-style:none;font-size:11px;color:var(--muted)}.heart-strain-legend li[data-v-fb0dd2e6]{display:flex;align-items:center;gap:4px}.heart-strain-swatch[data-v-fb0dd2e6]{display:inline-block;width:12px;height:2px;background:var(--ink)}.heart-strain-swatch.heart-strain-ell[data-v-fb0dd2e6]{background:var(--accent)}.heart-strain-swatch.heart-strain-err[data-v-fb0dd2e6]{background:var(--muted)}.edes-reload[data-v-943d5442]{opacity:.35}.edes-point-label[data-v-943d5442]{font-size:13px;font-weight:600;fill:var(--ink)}.edes-point-sub[data-v-943d5442]{font-size:11px;fill:var(--muted)}.tmax-envelope[data-v-55a5be6c]{fill:#00000012;stroke:var(--grey-400);stroke-width:1;stroke-dasharray:3 3}.tmax-path[data-v-55a5be6c]{stroke:var(--grey-400);stroke-width:1.4;stroke-dasharray:4 3}.tmax-marker[data-v-55a5be6c]{fill:var(--ink);stroke:var(--ink);stroke-width:1.4}.tmax-marker.is-hollow[data-v-55a5be6c]{fill:var(--white)}.tmax-fail line[data-v-55a5be6c]{stroke:var(--ink);stroke-width:1.4}.tmax-widen[data-v-55a5be6c]{stroke:var(--grey-700);stroke-width:1;stroke-dasharray:2 4}.tmax-tol[data-v-55a5be6c]{stroke:var(--grey-700);stroke-width:1.2;stroke-dasharray:6 4}.tmax-strip[data-v-55a5be6c]{fill:var(--grey-400);stroke:var(--ink);stroke-width:1}.tmax-strip.is-hollow[data-v-55a5be6c]{fill:var(--white)}.tmax-strip.is-best[data-v-55a5be6c]{fill:var(--fill)}.heart-tmax-legend[data-v-55a5be6c]{display:flex;gap:12px;margin:6px 0 0;padding:0;list-style:none;font-size:11px;color:var(--muted)}.heart-tmax-legend li[data-v-55a5be6c]{display:flex;align-items:center;gap:4px}.heart-tmax-key[data-v-55a5be6c]{display:inline-block;width:9px;height:9px;background:var(--ink);border:1px solid var(--ink)}.heart-tmax-key.is-circle[data-v-55a5be6c]{border-radius:50%}.heart-tmax-key.is-hollow[data-v-55a5be6c]{background:var(--white)}.heart-tmax-key.is-cross[data-v-55a5be6c]{width:auto;height:auto;background:none;border:none;color:var(--ink);line-height:1}.job-timeline[data-v-6bff0845]{list-style:none;margin:0;padding:6px 0 0;display:flex;flex-direction:column;gap:1px;max-height:38vh;overflow-y:auto;border-top:1px solid var(--line)}.jt-row[data-v-6bff0845]{display:grid;grid-template-columns:max-content max-content 1fr;gap:8px;align-items:baseline;font-size:12px;line-height:1.5;padding-left:8px;border-left:2px solid var(--line)}.jt-row[data-kind=stage][data-v-6bff0845]{border-left-color:var(--accent)}.jt-row[data-kind=phase][data-v-6bff0845],.jt-row[data-kind=milestone][data-v-6bff0845]{border-left-color:var(--line);color:var(--muted)}.jt-row[data-kind=terminal][data-v-6bff0845]{border-left-color:var(--fill);font-weight:600}.jt-time[data-v-6bff0845]{color:var(--muted);font-variant-numeric:tabular-nums}.jt-label[data-v-6bff0845]{color:var(--ink)}.jt-row[data-kind=phase] .jt-label[data-v-6bff0845],.jt-row[data-kind=milestone] .jt-label[data-v-6bff0845]{color:var(--muted)}.jt-msg[data-v-6bff0845]{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono[data-v-6bff0845]{font-family:var(--mono, ui-monospace, monospace)}.json-tree[data-v-b76078c9]{font-family:SF Mono,Menlo,monospace;font-size:.82rem;line-height:1.5}.json-node[data-v-b76078c9]{margin:0}.json-summary[data-v-b76078c9]{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:8px;padding:1px 0;border-radius:4px}.json-summary[data-v-b76078c9]::-webkit-details-marker{display:none}.json-summary[data-v-b76078c9]:before{content:"▸";color:var(--muted);font-size:.7rem;transform:translateY(-1px)}.json-node[open]>.json-summary[data-v-b76078c9]:before{content:"▾"}.json-summary[data-v-b76078c9]:hover{background:var(--grey-100)}.json-children[data-v-b76078c9]{padding-left:16px;border-left:1px solid var(--line);margin-left:4px}.json-leaf[data-v-b76078c9]{display:flex;align-items:center;gap:8px;padding:1px 0 1px 16px}.json-leaf--modified[data-v-b76078c9]{background:var(--grey-150);border-radius:4px}.json-key[data-v-b76078c9]{color:var(--ink);font-weight:600}.json-leaf--modified .json-key[data-v-b76078c9]{color:var(--ink)}.json-meta[data-v-b76078c9]{color:var(--muted)}.json-value[data-v-b76078c9]{word-break:break-word}.json-value--string[data-v-b76078c9],.json-value--number[data-v-b76078c9]{color:var(--ink)}.json-value--boolean[data-v-b76078c9],.json-value--null[data-v-b76078c9]{color:var(--muted);font-style:italic}.json-input[data-v-b76078c9]{font:inherit;width:auto;min-width:80px;max-width:260px;padding:1px 6px;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--ink)}.json-leaf--modified .json-input[data-v-b76078c9]{border-color:var(--grey-700)}.json-input-bool[data-v-b76078c9]{width:14px;height:14px}.json-revert[data-v-b76078c9]{min-height:0;padding:0 6px;font-size:.85rem;line-height:1.4;border-radius:6px;background:transparent;color:var(--ink);border:1px solid var(--line)}.docs-overview{font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased}.docs-overview *{box-sizing:border-box}.docs-overview-article{max-width:980px;margin:0 auto;padding:28px 20px 56px}.docs-hero{padding:24px 0 28px;border-bottom:1px solid var(--line)}.docs-eyebrow{margin:0 0 6px;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.docs-title{margin:0 0 14px;font-size:38px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.docs-lede{margin:0 0 10px;max-width:64ch;font-size:1.06rem;color:var(--ink)}.docs-subtle{margin:0 0 20px;max-width:64ch;font-size:.95rem;color:var(--muted)}.docs-cta-row{display:flex;flex-wrap:wrap;gap:10px}.docs-cta{display:inline-flex;align-items:center;height:40px;padding:0 18px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-size:.9rem;font-weight:600;text-decoration:none;transition:background .12s ease,border-color .12s ease}.docs-cta:hover{border-color:var(--grey-400);background:var(--grey-50)}.docs-cta-primary{background:var(--btn-ready);border-color:var(--btn-ready);color:var(--white)}.docs-cta-primary:hover{background:var(--btn-ready-hover);border-color:var(--btn-ready-hover)}.docs-nav{position:sticky;top:0;z-index:1;display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 -20px 8px;padding:10px 20px;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-bottom:1px solid var(--line)}.docs-nav a{font-size:.82rem;font-weight:600;color:var(--muted);text-decoration:none}.docs-nav a:hover{color:var(--ink)}.docs-section{padding:28px 0 4px;border-bottom:1px solid var(--line)}.docs-section:last-of-type{border-bottom:0}.docs-h2{margin:0 0 12px;font-size:1.25rem;font-weight:700;letter-spacing:-.005em;color:var(--ink)}.docs-section-intro{margin:0 0 18px;max-width:70ch;font-size:.98rem;color:var(--muted)}.docs-prose p{margin:0 0 12px;max-width:72ch;font-size:.98rem}.docs-prose p:last-child{margin-bottom:0}.docs-prose strong{font-weight:600}.docs-prose a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}.docs-prose a:hover{color:var(--muted)}.docs-list{margin:4px 0 0;padding-left:20px;max-width:70ch}.docs-list li{margin:0 0 6px;font-size:.96rem}.docs-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.docs-cards-compact{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.docs-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.docs-card h3{margin:0 0 6px;font-size:1rem;font-weight:600;color:var(--ink)}.docs-card p{margin:0;font-size:.9rem;color:var(--muted)}.docs-glyph{display:block;width:26px;height:26px;margin-bottom:10px;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.docs-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.docs-tile{background:var(--grey-50);border:1px solid var(--line);border-radius:12px;padding:16px}.docs-tile h3{margin:0 0 6px;font-size:.96rem;font-weight:600;color:var(--ink)}.docs-tile p{margin:0;font-size:.9rem;color:var(--muted)}.docs-diagram{margin:4px 0 20px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow-x:auto}.docs-diagram svg{display:block;width:100%;min-width:760px;height:auto}.docs-stage rect{fill:var(--white);stroke:var(--line);stroke-width:1.4}.docs-stage-title{fill:var(--ink);font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:14px;font-weight:600;text-anchor:middle}.docs-stage-sub{fill:var(--muted);font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:11px;text-anchor:middle}.docs-connector{stroke:var(--grey-500);stroke-width:1.6}.docs-arrowhead{fill:var(--grey-500)}.docs-h3{margin:26px 0 10px;font-size:1.02rem;font-weight:700;color:var(--ink)}.docs-h3 code,.docs-prose code,.docs-steps code,.docs-table code{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.88em;color:var(--ink)}.docs-shot{margin:4px 0 20px;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.docs-shot img{display:block;width:100%;max-width:100%;height:auto;border:1px solid var(--line);border-radius:8px}.docs-shot figcaption{margin:10px 2px 0;font-size:.85rem;color:var(--muted)}.docs-table-wrap{margin:4px 0 20px;border:1px solid var(--line);border-radius:12px;overflow-x:auto}.docs-table{width:100%;min-width:560px;border-collapse:collapse;background:var(--panel);font-size:.92rem}.docs-table th,.docs-table td{padding:10px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.docs-table th{font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--grey-50)}.docs-table td{color:var(--muted)}.docs-table td:first-child{color:var(--ink);font-weight:600}.docs-table tbody tr:last-child td{border-bottom:0}.docs-stage-key rect{fill:var(--grey-50);stroke:var(--grey-400)}.docs-edge-label,.docs-retry-label{fill:var(--muted);font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:10px;text-anchor:middle}.docs-retry-label{text-anchor:start}.docs-retry{fill:none;stroke:var(--grey-500);stroke-width:1.4;stroke-dasharray:4 3}.docs-frame{fill:var(--grey-25);stroke:var(--line);stroke-width:1.2}.docs-frame-dark{fill:var(--surface-dark);stroke:var(--surface-dark-line)}.docs-sector{fill:var(--grey-700);stroke:var(--grey-500);stroke-width:1}.docs-play{fill:var(--on-dark-muted)}.docs-outline{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round}.docs-outline-light{stroke:var(--white)}.docs-wall{fill:var(--grey-200);stroke:var(--accent);stroke-width:1.8;stroke-linejoin:round}.docs-outline-cut{stroke:var(--accent);stroke-width:2;stroke-dasharray:5 3}.docs-frame-label{fill:var(--ink);font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:12px;font-weight:600;text-anchor:middle}.docs-frame-sub{fill:var(--muted);font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:11px;text-anchor:middle}.docs-album-chip{fill:var(--white);stroke:var(--line);stroke-width:1.2}.docs-chip-text{fill:var(--ink);font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:12px;font-weight:600;text-anchor:middle}.docs-chip-count{text-anchor:start}.docs-steps{margin:0;padding-left:22px;max-width:74ch}.docs-steps li{margin:0 0 8px;font-size:.96rem;color:var(--muted)}.docs-step-name{font-weight:600;color:var(--ink)}.docs-split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;align-items:center}.docs-figure{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}.docs-figure svg{display:block;width:100%;max-width:240px;height:auto;margin:0 auto}.docs-plot-bg{fill:var(--grey-25);stroke:var(--line);stroke-width:1}.docs-plot-grid{stroke:var(--grey-200);stroke-width:1}.docs-axis{stroke:var(--grey-400);stroke-width:1.2}.docs-plot-loop{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round}.docs-plot-label{fill:var(--muted);font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:11px;text-anchor:middle}.docs-plot-label-y{transform:rotate(-90deg);transform-origin:14px 90px}.docs-footer{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding-top:28px}.docs-footer-note{margin:0;font-size:.85rem;color:var(--muted)}@media(max-width:720px){.docs-split{grid-template-columns:1fr}.docs-title{font-size:30px}.docs-figure svg{max-width:200px}}.workspace-session-item[data-v-57ad8228]{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg-0)}.workspace-session-copy[data-v-57ad8228]{display:grid;gap:4px}:root{--white: #ffffff;--grey-25: #fbfbfc;--grey-50: #f7f8f9;--grey-100: #f1f2f4;--grey-150: #e9ebee;--grey-200: #e4e8ec;--grey-300: #d6dade;--grey-400: #b9bfc6;--grey-500: #9aa3ad;--grey-600: #5a626b;--grey-700: #33373b;--grey-800: #25282c;--grey-850: #1b1e21;--grey-900: #121519;--black: #030712;--bg: var(--grey-100);--bg-0: var(--grey-50);--bg-1: var(--grey-100);--panel: var(--white);--ink: var(--grey-900);--muted: var(--grey-600);--line: var(--grey-300);--accent: var(--grey-700);--accent-2: var(--grey-700);--accent-soft: var(--grey-100);--btn-ready: var(--grey-700);--btn-ready-hover: var(--grey-800);--btn-disabled-bg: var(--grey-200);--btn-disabled-text: var(--grey-500);--btn-terminate: #b42318;--btn-terminate-hover: #912018;--fill: var(--grey-700);--surface-dark: var(--grey-900);--surface-dark-2: var(--grey-850);--surface-dark-line: var(--grey-700);--on-dark: var(--grey-100);--on-dark-muted: var(--grey-400);--warn: #b42318;--warn-soft: #fef3f2;--ok: #027a48;--ok-soft: #ecfdf3;--error: #b42318;--error-soft: #fef3f2;--running: #027a48;--running-soft: #ecfdf3}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,Segoe UI,sans-serif;color:var(--ink);background:linear-gradient(180deg,var(--bg-0) 0%,var(--bg-1) 100%);min-height:100vh}a{color:var(--accent-2)}.app-shell{max-width:980px;margin:0 auto;padding:20px 16px 36px;display:grid;gap:10px}.page-bar{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-bar-copy{min-width:0}.page-bar-actions,.section-head,.preview-panel-head,.preview-top-toolbar,.status-head{display:flex;align-items:center;gap:10px}.page-bar-actions{justify-content:flex-end;flex-wrap:wrap;flex:0 0 auto}.page-title{margin:0 0 8px;font-size:30px;line-height:1.15;letter-spacing:0}.page-subtitle{margin:0;color:var(--muted);font-size:14px}.section-head,.preview-panel-head,.preview-top-toolbar,.status-head{justify-content:space-between}.status{border:1px solid var(--line);background:var(--grey-50);color:var(--ink);border-radius:12px;padding:10px 12px}.status.is-ok,.status.is-running{border-color:#9fd3b0;background:var(--running-soft);color:#0f5132}.status.error,.status.is-error{border-color:#f3b4b4;background:var(--error-soft);color:#7a271a}.status p{margin:6px 0 0;font-size:.9rem}.topnotice-enter-active,.topnotice-leave-active{transition:opacity .22s ease}.topnotice-enter-from,.topnotice-leave-to{opacity:0}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px}.step-title{margin:0 0 6px;font-size:18px;line-height:1.2}.panel-header h2{margin:0;font-size:1.1rem}.panel-header p{margin:6px 0 0;color:var(--muted);font-size:.9rem}.grid.two{display:grid;gap:16px;grid-template-columns:1fr 1fr}.upload-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.mesh-upload-grid{margin-top:12px}.preview-meta-card{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--bg-0)}.preview-meta-card h3{margin:0 0 8px;font-size:.95rem}.actions-row{display:flex;gap:10px;flex-wrap:wrap}.modal-action-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px}.modal-action-row>button{width:100%;min-width:0}.modal-action-bar{flex:0 0 auto;display:flex;justify-content:flex-end;align-items:center;gap:8px;padding-top:12px}.modal-action-bar>button{flex:0 0 auto;min-width:104px}.modal-action-bar-lead{margin-inline-end:auto}.modal-tab-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;padding-bottom:12px}.modal-tab-row>button{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--grey-25);color:var(--muted)}.modal-tab-row>button.is-active{background:var(--fill);border-color:var(--fill);color:var(--white);font-weight:600}.results-tab-row>button.is-active{border-bottom:2px solid var(--ink);font-weight:600}.results-tab-panel{flex:1 1 auto;min-height:0;overflow:auto;margin-top:8px}.results-album-body{overflow:auto;margin-top:8px;display:flex;flex-direction:column}.results-album-plots{flex:1 1 auto;min-height:0;position:relative}.results-album-caption{flex:0 0 auto;text-align:center;padding-top:8px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.results-album-nav{display:flex;align-items:center;gap:8px}.results-album-nav>button{min-width:40px;padding:8px 10px}.results-album-label{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}.session-list{display:flex;flex-direction:column;gap:6px}.session-group{display:flex;flex-direction:column;gap:4px}.session-group+.session-group{margin-top:10px}.session-group-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.session-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px;border:1px solid var(--line);border-radius:6px}.session-row-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.session-row-copy>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-row-meta{font-size:12px;color:var(--muted)}.session-row-actions{display:flex;gap:6px;flex:0 0 auto}.session-row-actions>button{padding:4px 10px}.results-statusbar{display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px;padding:6px 2px 8px;border-bottom:1px solid var(--line);font-size:.78rem;color:var(--ink)}.results-statusbar .rs-item{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap;font-variant-numeric:tabular-nums}.results-statusbar .rs-k{color:var(--muted);font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.results-statusbar .rs-state{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-weight:600;letter-spacing:.03em}.results-statusbar .rs-glyph{font-size:.7rem;line-height:1}.results-statusbar .rs-state[data-state=failed]{font-weight:700}.results-statusbar .rs-state[data-state=idle]{color:var(--muted);font-weight:500}.calibration-prep-row{margin-top:10px}.heart-run-controls{margin-bottom:8px}.heart-live-toggle{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--grey-50);font-size:.85rem;color:var(--muted)}.heart-advanced{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--grey-50)}.heart-form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.heart-form-grid label{display:grid;gap:8px;font-size:.86rem;color:var(--muted)}.calibration-source-grid{grid-template-columns:minmax(220px,2fr) repeat(2,minmax(170px,1fr))}.chip-row,.applied-overrides{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.calibration-override-row{margin-top:10px;display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(140px,.7fr) auto;gap:10px;align-items:end}.calibration-override-row label{display:grid;gap:6px;font-size:.86rem;color:var(--muted)}.chip-remove{margin-left:6px;border:0;background:transparent;color:inherit;cursor:pointer}.heart-checkbox{align-self:end;display:flex;align-items:center;gap:8px}.heart-progress-card{margin-top:10px;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--grey-50)}.heart-progress-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:.88rem;color:var(--muted)}.heart-progress-track{margin-top:10px;height:14px;border-radius:999px;background:var(--grey-200);overflow:hidden}.heart-progress-fill{height:100%;border-radius:999px;background:var(--fill);transition:width .26s ease}.heart-progress-details{margin-top:8px;display:flex;flex-wrap:wrap;gap:10px;font-size:.82rem;color:var(--muted)}.heart-pv-card{height:100%;display:flex;flex-direction:column;min-height:0}.heart-pv-plot-wrap{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;position:relative}.heart-pv-svg{width:100%;height:100%;max-height:100%;touch-action:none}.heart-pv-bg{fill:var(--white);stroke:var(--line)}.heart-pv-grid{stroke:#00000017;stroke-width:1}.heart-pv-axis{stroke:var(--grey-700);stroke-width:1.4}.heart-pv-line{fill:none;stroke:var(--grey-700);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.heart-pv-marker{fill:var(--ink);stroke:var(--white);stroke-width:1.4}.heart-pv-marker.is-ring{fill:none;stroke:var(--grey-700);stroke-width:1.6}.unload-pv-klotz{stroke:var(--grey-600);stroke-width:2;stroke-dasharray:1 0}.unload-pv-prior{stroke:var(--grey-300);stroke-width:1.2}.unload-pv-current{stroke:var(--grey-900);stroke-width:2.6}.unload-pv-error{stroke:var(--grey-400);stroke-width:1;stroke-dasharray:2 2}.unload-pv-tol-band{fill:var(--grey-100)}.unload-pv-v0-rule{stroke:var(--grey-700);stroke-width:1.4;stroke-dasharray:5 3}.unload-pv-ed-anchor{stroke:var(--grey-700);stroke-width:1.6;stroke-dasharray:2 2}.unload-pv-candidate{stroke:var(--grey-600)}.unload-pv-retry{stroke:var(--grey-600);stroke-dasharray:2 2}.unload-pv-accepted{fill:var(--fill)}.unload-pv-latest{fill:var(--ink)}.heart-pv-band{fill:var(--grey-100)}.heart-pv-rule{stroke:var(--grey-700);stroke-width:1.4;stroke-dasharray:5 3}.heart-pv-rule-label{fill:var(--muted);font-size:10px;font-weight:600;stroke:none}.heart-pv-tick{fill:var(--muted);font-size:10px}.heart-pv-axis-label{fill:var(--ink);font-size:11px;font-weight:600}.heart-pv-tooltip{position:absolute;display:grid;gap:2px;min-width:108px;padding:8px 10px;border:1px solid rgba(0,0,0,.16);border-radius:10px;background:#fffffff5;box-shadow:0 10px 24px #00000024;color:var(--ink);font-size:.78rem;pointer-events:none;white-space:nowrap}.heart-pv-tooltip strong{font-size:.82rem;line-height:1.1}.heart-pv-tooltip span{color:var(--muted);line-height:1.1}.heart-pv-empty{margin-top:8px}.plot-frame{position:relative;height:100%;min-height:0}.plot-frame-body{height:100%;min-height:0}.plot-frame-controls{position:absolute;top:8px;right:8px;display:flex;gap:8px;z-index:1}.plot-frame.is-theater{position:fixed;top:16px;right:16px;bottom:16px;left:16px;z-index:5;height:auto;min-height:auto;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 70px #03071247}.heart-artifacts{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--grey-50)}.heart-artifacts h3,.heart-console h3{margin:0 0 10px;font-size:.95rem}.artifact-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.artifact-card{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--white);display:grid;gap:8px}.artifact-name{font-weight:700}.artifact-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:.8rem;color:var(--muted)}.artifact-download{width:fit-content;text-decoration:none;font-size:.86rem;font-weight:700;border:1px solid var(--line);border-radius:8px;padding:6px 9px;background:var(--grey-50)}.heart-console{margin-top:12px;border:1px solid var(--surface-dark-line);border-radius:12px;background:var(--surface-dark);color:var(--on-dark);overflow:hidden}.console-header{padding:10px;border-bottom:1px solid var(--surface-dark-line);display:flex;align-items:center;justify-content:space-between;gap:8px}.console-header .actions-row{gap:6px}.log-source-select{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:var(--on-dark)}.log-source-select select{min-width:130px;padding:6px 8px}.console-header button.ghost{background:var(--surface-dark-2);border-color:var(--grey-700);color:var(--on-dark);padding:6px 10px}.console-body{margin:0;padding:12px;max-height:220px;overflow:auto;font-family:IBM Plex Mono,Menlo,monospace;font-size:.8rem;line-height:1.45;white-space:pre-wrap}.json-tree-viewer{margin-top:4px;height:min(520px,70vh);overflow:auto;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--bg-0)}.docs-overview-scroll{min-height:0;overflow:auto;margin-top:4px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.optimize-source-row{display:flex;align-items:center;gap:8px;margin-top:8px}.optimize-source-row select{flex:1 1 auto;min-width:0;font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink)}.optimize-source-row button{flex:0 0 auto}.terminal{margin:0;border:1px solid var(--surface-dark-line);border-radius:10px;background:var(--surface-dark);color:var(--on-dark);padding:10px;font-family:IBM Plex Mono,SF Mono,Menlo,monospace;font-size:12px;line-height:1.45;min-height:160px;max-height:280px;overflow:auto;white-space:pre-wrap;word-break:break-word}.events{border:1px solid var(--line);border-radius:10px;max-height:240px;overflow:auto;background:var(--surface-dark)}.event{display:grid;grid-template-columns:auto auto auto 1fr;gap:10px;border-bottom:1px solid var(--surface-dark-line);padding:8px 10px;font-size:12px;color:var(--on-dark)}.event:last-child{border-bottom:none}button,input,select{font:inherit}button{border:1px solid transparent;border-radius:10px;padding:10px 12px;font-weight:600;background:var(--btn-ready);color:var(--white);cursor:pointer;min-height:42px;display:inline-flex;align-items:center;justify-content:center}button.primary,button.secondary,button.ghost,button.warn,button.danger{background:var(--btn-ready);color:var(--white);border-color:transparent}button:hover:not(:disabled){background:var(--btn-ready-hover)}button.btn-terminate,button.btn-terminate:disabled{background:var(--btn-terminate);color:var(--white);border-color:transparent;box-shadow:none}button.btn-terminate:hover:not(:disabled){background:var(--btn-terminate-hover)}button.btn-terminate:disabled{opacity:.72;cursor:progress}button:disabled{background:var(--btn-disabled-bg);color:var(--btn-disabled-text);border-color:transparent;cursor:not-allowed;opacity:1;box-shadow:inset 0 1px 2px #03071214}button.modal-secondary{background:transparent;color:var(--ink);border-color:var(--line)}button.modal-secondary:hover:not(:disabled){background:var(--grey-25)}button.modal-secondary:disabled{background:transparent;color:var(--btn-disabled-text);border-color:var(--grey-200);cursor:not-allowed;box-shadow:none}.upload-row{margin-top:12px;display:flex;gap:8px;align-items:center}input[type=file],select,input[type=number],input[type=text]{width:100%;border-radius:10px;border:1px solid var(--line);background:var(--white);color:var(--ink);padding:8px 10px}input[type=range]{width:100%}.file-pill{margin:10px 0 0;font-size:.86rem;display:inline-flex;align-items:center;gap:8px;padding:5px 8px;border-radius:999px;background:var(--grey-50);border:1px solid var(--line)}.file-pill span{color:var(--muted)}.deps-grid{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}.deps-grid h3,.event-list h3,.summary-block h3{margin:0;font-size:.96rem}.hint{margin:6px 0 10px;color:var(--muted);font-size:.83rem}.dep-row{display:grid;grid-template-columns:170px 1fr 220px;gap:8px;align-items:center;margin-top:8px}.dep-file{color:var(--muted);font-size:.84rem}.status-chip{margin:10px 0 0;padding:8px 10px;border-radius:8px;border:1px solid transparent;font-size:.9rem}.modal-error{margin:10px 0 0;padding:8px 10px;border-radius:8px;border:1px solid var(--grey-400);background:var(--grey-100);color:var(--ink);font-weight:600;font-size:.9rem}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;border:1px solid var(--line);background:var(--grey-100);color:var(--ink);font-size:.84rem}.status-running{background:var(--grey-100);border-color:var(--line);color:var(--muted)}.status-error{background:var(--grey-100);border-color:var(--grey-400);color:var(--ink);font-weight:600}.status-warn{background:var(--grey-100);border-color:var(--grey-400);color:var(--ink)}.status-grid{margin-top:10px;display:grid;grid-template-columns:130px 1fr;gap:8px;font-size:.9rem}.mono{font-family:SF Mono,Menlo,monospace;font-size:.82rem;word-break:break-all}.event-list{margin-top:12px}.history-list{display:grid;gap:.5rem;margin-top:.75rem}.history-item{display:grid;grid-template-columns:80px 120px 1fr 140px 180px;gap:.5rem;align-items:center;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--grey-100);color:var(--ink);padding:.55rem .7rem}.history-item:hover{background:var(--grey-100)}.event-item{display:grid;gap:3px;padding:6px 0;border-bottom:1px solid var(--line);font-size:.85rem}.viewer-panel{display:grid;gap:12px}.preview-wrap{border:1px solid var(--line);border-radius:10px;background:var(--bg-0);padding:10px}.preview-note{margin:0 0 8px;color:var(--muted);font-size:.85rem}.preview-frame-wrap{position:relative;height:680px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--black);transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.preview-frame-wrap.is-drop-target{cursor:copy}.preview-frame-wrap.is-active{border-color:var(--accent-2);box-shadow:0 0 0 3px #33373b24;background:var(--surface-dark)}.preview-frame-wrap.is-theater{position:fixed;top:16px;right:16px;bottom:16px;left:16px;z-index:35;background:var(--black);height:auto;min-height:auto;box-shadow:0 22px 70px #00000047}.preview-frame-wrap.is-expanded,.preview-frame-wrap.is-expanded-fixed{height:100%;border-radius:14px}.preview-frame-wrap:fullscreen,.preview-frame-wrap:-webkit-full-screen{width:100%;height:100%;border-radius:0;border-color:transparent}.preview-frame-wrap:fullscreen .preview-frame,.preview-frame-wrap:-webkit-full-screen .preview-frame{height:100%}.preview-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;display:block}.preview-frame>.mesh-workspace{padding:16px;background:var(--grey-50)}.preview-frame-cover{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:var(--black);opacity:0;pointer-events:none;transition:opacity .2s ease}.preview-frame-cover.is-active{opacity:1}.preview-top-toolbar{position:absolute!important;top:16px;right:16px;bottom:auto;left:auto;z-index:6;display:inline-flex;align-items:center;gap:8px;max-width:calc(100% - 32px);box-sizing:border-box;pointer-events:auto}.preview-bottom-toolbar{position:absolute!important;bottom:16px;right:16px;top:auto;left:auto;z-index:6;display:inline-flex;align-items:center;gap:8px;max-width:calc(100% - 32px);box-sizing:border-box;pointer-events:auto}.preview-toolbar-cluster{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.preview-toolbar-tool-btn,.preview-frame-control-btn,.plot-frame-control-btn{width:40px;min-width:40px;height:40px;min-height:40px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#030712b8;color:var(--grey-50);box-shadow:0 10px 28px #03071252;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;transition:background .16s ease,transform .16s ease,box-shadow .16s ease,border-color .16s ease}.preview-toolbar-tool-btn:hover:not(:disabled),.preview-toolbar-tool-btn:focus-visible,.preview-frame-control-btn:hover:not(:disabled),.preview-frame-control-btn:focus-visible,.plot-frame-control-btn:hover:not(:disabled),.plot-frame-control-btn:focus-visible{background:#030712e0;border-color:#ffffff47;box-shadow:0 14px 32px #0307125c;transform:none;outline:none}.preview-toolbar-tool-btn:disabled,.preview-frame-control-btn:disabled,.plot-frame-control-btn:disabled{opacity:1;cursor:not-allowed;color:#f8fafc8c;border-color:#ffffff1f;box-shadow:0 8px 22px #0307123d}.preview-frame-control-btn[aria-pressed=true],.plot-frame-control-btn[aria-pressed=true]{background:#25282cf0;border-color:#ffffff57}.preview-toolbar-tool-btn svg,.preview-frame-control-btn svg,.plot-frame-control-btn svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.preview-toolbar-tool-btn svg{width:16px;height:16px}.preview-remove-wrap{position:relative;display:inline-flex;align-items:center}.preview-remove-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:8;min-width:132px;display:flex;flex-direction:column;padding:4px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#030712eb;box-shadow:0 14px 32px #03071266;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.preview-remove-menu-item{width:100%;padding:7px 10px;border:0;border-radius:8px;background:transparent;color:var(--grey-50);font-size:12px;text-align:left;white-space:nowrap;cursor:pointer}.preview-remove-menu-item:hover:not(:disabled),.preview-remove-menu-item:focus-visible{background:#ffffff1f;color:#fff;outline:none}.preview-local-video-album-controls{position:absolute;left:50%;bottom:16px;z-index:6;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;pointer-events:auto}.mesh-master-detail{display:flex;flex-direction:row;align-items:stretch}.mesh-master-detail-gallery{flex:0 0 auto;min-height:0;overflow-y:auto;border-right:1px solid var(--surface-dark-line);background:var(--surface-dark)}.mesh-master-detail-view{flex:1 1 auto;min-width:0}.mesh-gallery-splitter{flex:0 0 6px;cursor:col-resize;background:var(--surface-dark-line)}.mesh-gallery-splitter:hover,.mesh-gallery-splitter:focus-visible{background:var(--fill);outline:none}.mesh-case-gallery{display:flex;flex-direction:column;gap:6px;padding:8px}.mesh-case-tile{position:relative;display:flex;flex-direction:column;align-items:stretch;padding:6px;margin:0;border:1px solid var(--surface-dark-line);border-radius:10px;background:var(--surface-dark-2);color:var(--on-dark);cursor:pointer;transform-origin:center;transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease}@media(hover:hover)and (pointer:fine){.mesh-case-tile:not(:disabled):hover{z-index:1;transform:translateY(-2px) scale(1.02);box-shadow:0 10px 22px color-mix(in srgb,var(--black) 42%,transparent);border-color:var(--on-dark)}}.mesh-case-tile:not(:disabled):focus-visible{z-index:1;transform:translateY(-2px) scale(1.02);box-shadow:0 10px 22px color-mix(in srgb,var(--black) 42%,transparent);border-color:var(--on-dark);outline:2px solid var(--on-dark);outline-offset:2px}@media(prefers-reduced-motion:reduce){.mesh-case-tile{transition:none}.mesh-case-tile:not(:disabled):hover,.mesh-case-tile:not(:disabled):focus-visible{transform:none}}.mesh-case-tile:disabled{color:var(--on-dark-muted);opacity:.55;cursor:not-allowed}.mesh-case-tile.is-active{background:var(--fill);border-color:var(--fill);color:var(--white)}.mesh-case-tile-figure{position:relative;display:block;width:100%;aspect-ratio:4 / 3;border-radius:8px;overflow:hidden;background:var(--surface-dark-2)}.mesh-case-tile-thumb{display:block;width:100%;height:100%;object-fit:cover}.mesh-case-tile-shimmer{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--surface-dark-2)}.mesh-case-tile-ticker{position:absolute;left:4px;bottom:4px;padding:1px 5px;border-radius:999px;font-size:11px;font-weight:700;background:var(--surface-dark);color:var(--on-dark)}.mesh-thumb-renderer{position:absolute;left:0;top:0;width:240px;height:180px;border:0;z-index:-1;opacity:.01;pointer-events:none}.preview-local-video-jump-field{height:40px;min-width:120px;padding:0 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;display:inline-flex;align-items:center;gap:8px;margin:0;background:#030712b8;color:var(--grey-50);box-shadow:0 10px 28px #03071252;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.preview-local-video-jump-input{width:44px;min-height:0;padding:0;border:0;outline:none;background:transparent;color:inherit;font:inherit;text-align:right;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.preview-local-video-jump-input::-webkit-outer-spin-button,.preview-local-video-jump-input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.preview-local-video-jump-count{font-size:13px;font-weight:600;color:#f7f8f9d6;white-space:nowrap}.preview-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:none;place-items:center;padding:24px;background:#03071270;text-align:center;color:#f1f2f4f5;pointer-events:none}.preview-frame-wrap.is-active .preview-drop-overlay{display:grid;pointer-events:auto}.preview-frame-wrap.is-active .preview-frame{pointer-events:none}.preview-empty-state{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:grid;place-items:center;padding:24px;text-align:center;color:#f1f2f4e0;pointer-events:none}.preview-drop-overlay strong,.preview-empty-state strong{display:block;margin-bottom:6px;font-size:15px;font-weight:700}.preview-drop-overlay small,.preview-empty-state small{display:block;font-size:13px;color:#f1f2f4b8}.preview-drop-overlay small{color:#f1f2f4c7}.preview-status-area,.runtime-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.runtime-grid>button{width:100%;min-width:0}@media(max-width:640px){.runtime-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.kvs{display:grid;grid-template-columns:160px minmax(0,1fr);gap:8px;font-size:.9rem}.kvs>div:nth-child(odd){color:var(--muted)}.calibration-kvs{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--bg-0)}.progress-wrap{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-top:10px}.progress-wrap progress{width:100%;height:12px;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;border-radius:999px;accent-color:var(--fill);background:var(--grey-200)}.progress-wrap progress::-webkit-progress-bar{background:var(--grey-200);border-radius:999px}.progress-wrap progress::-webkit-progress-value{background:var(--fill);border-radius:999px}.progress-wrap progress::-moz-progress-bar{background:var(--fill);border-radius:999px}.hidden{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.viewer-controls{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(120px,1fr))}.viewer-controls label{font-size:.83rem;color:var(--muted);display:grid;gap:4px}.ctrl-section{grid-column:1 / -1;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-top:1px solid var(--line);padding-top:6px;margin-top:2px}.viewer-shell{position:relative;min-height:540px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.viewer-panel-viewport-only{display:block;width:100%;height:100%;border:0;border-radius:0;background:transparent}.viewer-shell-viewport-only{position:absolute;top:0;right:0;bottom:0;left:0;min-height:0;border:0;border-radius:0;background:var(--black)}.vtk-host{position:absolute;top:0;right:0;bottom:0;left:0}.placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;margin:0;color:var(--muted);background:repeating-linear-gradient(-45deg,#00000005,#00000005 10px,#0000000d 10px,#0000000d 20px)}.mesh-workspace{position:relative;width:100%;height:100%;min-height:0;display:flex;flex-direction:column;gap:10px;overflow:hidden}.mesh-toolbar-dock{position:relative;z-index:24;flex:0 0 auto;min-width:0;pointer-events:none}.toolbox{min-width:0;pointer-events:none}.toolbox-header{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.compact-toolbar{display:grid;gap:8px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#ffffffe0,#f1f2f4eb);box-shadow:0 10px 32px #0000001f;pointer-events:auto}.toolbar-primary-row{display:grid;gap:8px;grid-template-columns:minmax(140px,.9fr) minmax(240px,1.5fr) minmax(180px,1fr);align-items:stretch;min-width:0}.toolbar-timeline{display:grid;grid-template-columns:auto auto auto minmax(160px,1fr) auto auto auto;gap:8px;align-items:center;min-width:0}.toolbar-timeline-label{min-width:88px;font-size:12px;font-weight:700;color:var(--muted);text-align:right;white-space:nowrap}.timeline-scrubber{width:100%;min-width:0;accent-color:var(--fill)}.selector-anchor{position:relative;min-width:0}.selector-trigger{width:100%;height:42px;border-radius:12px;border:1px solid var(--line);background:#ffffffe0;color:var(--ink);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 12px;cursor:pointer}.selector-trigger[aria-expanded=true]{background:var(--grey-200);border-color:var(--grey-400)}.selector-trigger-content{min-width:0;display:grid;gap:3px}.selector-trigger-label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase}.selector-trigger-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;color:var(--ink);text-align:left}.selector-trigger-caret{color:var(--muted)}.selector-menu{position:absolute;top:0;left:0;z-index:46;pointer-events:auto;display:grid;align-content:start;gap:6px;min-width:100%;max-width:min(420px,calc(100vw - 48px));max-height:var(--selector-menu-max-height, min(320px, calc(100vh - 220px) ));overflow:auto;border:1px solid var(--line);border-radius:14px;background:#f7f8f9fa;box-shadow:0 18px 48px #0000002e;padding:6px 6px 12px;overscroll-behavior:contain;scrollbar-gutter:stable;scroll-padding-block:6px 18px}.selector-menu.align-right{left:auto;right:0}.selector-group{display:grid;gap:6px;min-height:0}.selector-group-header{padding:4px 8px 0;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.selector-group-body{display:grid;gap:4px;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scroll-padding-block:6px 18px}.selector-option{width:100%;min-height:38px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ink);display:grid;gap:2px;text-align:left;padding:8px 10px;cursor:pointer}.selector-option:hover{background:#33373b14}.selector-option.is-active{background:#33373b24;border-color:#33373b47}.selector-option-title{font-size:13px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}.selector-option-meta{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.hidden-native-select{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(100%);white-space:nowrap}.toolbar-tools-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.toolbar-cluster,.toolbar-popover-anchor{display:inline-flex;align-items:center;gap:6px}.toolbar-cluster{padding:6px;border:1px solid var(--line);border-radius:12px;background:#ffffff94}.toolbar-popover-anchor{position:relative}.toolbar-divider{width:1px;height:24px;background:#33373b2e}.tool-btn{width:auto;height:36px;min-height:36px;padding:0 10px;border:1px solid rgba(51,55,59,.22);border-radius:10px;background:#ffffffdb;color:var(--ink);font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.tool-icon-btn{width:36px;min-width:36px;padding:0}.tool-chip-btn{min-width:54px}.plane-select{padding:0;width:36px;min-width:36px;border:1px solid var(--line);border-radius:10px;background:var(--white);display:flex;align-items:center;justify-content:center}.plane-select select{width:100%;height:100%;border:0;border-radius:10px;background:transparent;color:var(--ink);font-size:11px;font-weight:700;padding:0;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;text-align:center}.tool-segmented{display:inline-flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--white)}.tool-segmented .tool-btn{border:0;border-radius:0;min-width:44px}.tool-segmented .tool-btn+.tool-btn{border-left:1px solid var(--line)}.tool-btn.is-trigger[aria-expanded=true],.tool-btn[aria-pressed=true]{background:var(--grey-200);border-color:var(--grey-400)}.tool-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tool-popover{position:absolute;top:0;left:0;z-index:50;display:grid;gap:8px;width:min(460px,calc(100vw - 48px));padding:12px;border:1px solid var(--line);border-radius:14px;background:#f7f8f9fa;box-shadow:0 18px 48px #0000002e;pointer-events:auto;max-height:min(540px,calc(100vh - 180px));overflow:auto}.tool-popover.align-right{left:auto;right:0}.tool-popover-grid{display:grid;gap:10px}.tool-inline{display:grid;gap:6px;grid-template-columns:1fr auto;align-items:center}.tool-value{min-width:42px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;text-align:right}.tool-group-title{margin:0;font-weight:700}.mesh-viewport-shell{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;background:var(--black)}#viewer{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,var(--grey-50),var(--grey-200));overflow:hidden;transition:opacity .14s ease}.mesh-viewport-shell.mesh-source-switching #viewer{opacity:.5}.mesh-overlay-layer,.mesh-floating-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mesh-overlay-layer{z-index:20}.mesh-floating-layer{z-index:28}.mesh-album-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:24;pointer-events:none}.mesh-album-overlay.hidden{display:none}.mesh-album-nav-btn,.mesh-album-picker{display:none!important}.mesh-album-nav-btn,.mesh-album-remove-btn,.mesh-overlay-icon-btn{position:absolute;display:inline-flex;align-items:center;justify-content:center;z-index:30;pointer-events:auto;border:0;background:#0307127a;color:var(--white);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 32px #0307123d;cursor:pointer;transition:background .16s ease,transform .16s ease,opacity .16s ease}.mesh-album-nav-btn{top:50%;transform:translateY(-50%);width:72px;height:72px;border-radius:999px;font-size:42px;font-weight:300}.mesh-album-nav-btn.prev{left:14px}.mesh-album-nav-btn.next{right:14px}.mesh-overlay-icon-btn{top:16px;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#030712b8;color:var(--grey-50);font-size:20px;font-weight:600;line-height:1;box-shadow:0 10px 28px #03071252;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mesh-overlay-icon-btn:hover,.mesh-overlay-icon-btn:focus-visible{background:#030712e0;border-color:#ffffff47;box-shadow:0 14px 32px #0307125c;transform:none;outline:none}.mesh-album-remove-btn{top:16px;right:16px}.mesh-overlay-icon-cluster{position:absolute!important;top:16px;right:16px;bottom:auto;left:auto;z-index:25;display:inline-flex;align-items:center;gap:8px;max-width:calc(100% - 32px);box-sizing:border-box;pointer-events:auto}.mesh-help-anchor{position:relative}.mesh-help-button{font-size:18px;font-weight:600;font-family:IBM Plex Sans,Segoe UI,sans-serif;line-height:1;text-transform:lowercase;cursor:help}.mesh-help-tooltip{position:absolute;right:0;top:40px;min-width:172px;max-width:min(240px,calc(100vw - 48px));padding:8px 10px;border-radius:10px;background:#f7f8f9f7;border:1px solid rgba(214,218,222,.94);box-shadow:0 10px 28px #03071233;color:var(--ink);font-size:12px;line-height:1.45;opacity:0;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease;pointer-events:none}.mesh-help-anchor:hover .mesh-help-tooltip,.mesh-help-anchor:focus-within .mesh-help-tooltip{opacity:1;transform:translateY(0)}.mesh-help-tooltip strong{display:block;margin-bottom:4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.mesh-help-tooltip ul{margin:0;padding:0;list-style:none;display:grid;gap:2px}.mesh-help-tooltip li{white-space:nowrap}.mesh-album-picker{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;background:#03071294;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 32px #0307123d;pointer-events:auto}.mesh-album-jump-field{display:inline-flex;align-items:center;gap:6px;margin:0}.mesh-album-jump-input{width:56px;min-height:28px;padding:4px 6px}.hover-inspect-tooltip{position:absolute;left:0;top:0;z-index:32;max-width:280px;padding:8px 10px;border-radius:10px;background:#030712db;color:var(--white);pointer-events:none}.mesh-stage-badge{position:absolute;top:16px;left:16px;right:auto;z-index:6;padding:4px 9px;border-radius:8px;background:var(--fill);border:1px solid var(--fill);color:var(--white);font:700 12px/1 IBM Plex Mono,SF Mono,Menlo,monospace;letter-spacing:.06em;white-space:nowrap;box-shadow:0 6px 18px #0000002e;pointer-events:none}.mesh-status-pill{position:absolute;left:12px;bottom:12px;z-index:5;max-width:min(360px,calc(100% - 24px));padding:5px 9px;border-radius:8px;background:#f7f8f9eb;border:1px solid rgba(214,218,222,.9);box-shadow:0 6px 18px #00000014;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink);pointer-events:none}.mesh-notice-enter-active,.mesh-notice-leave-active{transition:opacity .24s ease}.mesh-notice-enter-from,.mesh-notice-leave-to{opacity:0}.muted{color:var(--muted)}@media(max-width:1060px){.grid.two,.page-bar,.upload-grid,.calibration-source-grid,.calibration-override-row{grid-template-columns:1fr}.page-bar{display:grid;grid-template-columns:minmax(0,1fr);min-width:0}.page-bar-actions{justify-content:flex-start;min-width:0;width:100%}.app-shell>*,.page-bar-copy,.page-title,.page-subtitle,.card,.panel{min-width:0}.viewer-controls{grid-template-columns:repeat(2,minmax(140px,1fr))}.dep-row,.history-item,.kvs{grid-template-columns:1fr}.preview-frame-wrap{min-height:520px}}@media(max-width:760px){.preview-frame-wrap{width:100%;height:680px}.preview-frame>.mesh-workspace{padding:12px}.toolbar-primary-row{grid-template-columns:1fr}.compact-toolbar{overflow:hidden}.toolbar-tools-row{overflow-x:auto;padding-bottom:2px}.toolbar-timeline{grid-template-columns:repeat(3,auto) minmax(120px,1fr)}.toolbar-timeline-label{grid-column:1 / -1;text-align:left}.mesh-overlay-icon-btn{width:36px;min-width:36px;height:36px;min-height:36px}.mesh-overlay-icon-cluster{top:12px;right:12px}}.workspace-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;padding:20px;background:#0307128f;display:flex;align-items:center;justify-content:center;z-index:1050}.workspace-modal{box-sizing:border-box;width:min(1080px,calc(100vw - 32px));min-width:min(1080px,calc(100vw - 32px));max-width:min(1080px,calc(100vw - 32px));height:min(680px,calc(100vh - 32px));min-height:min(680px,calc(100vh - 32px));max-height:min(680px,calc(100vh - 32px));background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 80px #0307123d;display:flex;flex-direction:column;overflow:hidden}.workspace-modal>:first-child:not(.panel-header){padding-top:14px}.workspace-modal>.json-tree-viewer,.workspace-modal>.unload-batch-body,.workspace-modal>.docs-overview-scroll,.workspace-modal>.results-tab-panel,.workspace-modal>.results-album-body,.workspace-modal>.auth-modal-body,.workspace-modal>.batch-modal-body,.workspace-modal>pre{flex:1 1 auto;min-height:0;height:auto}.workspace-modal>*{min-width:0;min-height:0}.workspace-modal .panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--grey-50);border-bottom:1px solid var(--line)}.workspace-modal .panel-header h2{margin:0;font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600}.workspace-modal>:not(.panel-header){padding-left:14px;padding-right:14px}.workspace-modal>:last-child{padding-bottom:14px}.workspace-modal .actions-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:10px}.workspace-modal .console-body,.workspace-modal pre{margin:0;min-height:0;max-height:60vh;overflow:auto;padding:12px;background:var(--surface-dark);color:var(--on-dark);border-radius:8px;font-family:IBM Plex Mono,SF Mono,Menlo,monospace;font-size:12px;line-height:1.45}.auth-modal-header{justify-content:center;border-bottom:none;padding-bottom:6px}.auth-modal-title{margin:0;text-align:center;font-size:20px;line-height:1.3;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:600}.auth-modal-body{padding:0 14px 14px;display:flex;align-items:center;justify-content:center;min-height:0;flex:1 1 auto}.auth-modal-grid{display:grid;gap:14px;width:100%;max-width:360px;margin:0 auto}.auth-modal-option{width:100%;display:grid;gap:4px;align-items:center;justify-items:center;text-align:center;padding:16px 18px;border-radius:999px;background:var(--white);border:1px solid var(--line);box-shadow:0 1px 2px #0307120a;color:var(--ink);min-height:0}.auth-modal-option.primary{background:var(--white);border-color:var(--grey-400)}.auth-modal-option.primary:hover{background:var(--grey-50);border-color:var(--grey-400)}.auth-modal-option.secondary:hover{background:var(--grey-25)}.auth-modal-option-title{font-size:15px;font-weight:700}.auth-modal-divider{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.auth-modal-divider:before,.auth-modal-divider:after{content:"";flex:1;height:1px;background:var(--grey-100)}@media(max-width:860px){.app-shell{padding:16px 12px 32px}.page-bar{flex-direction:column;align-items:stretch}.page-bar-actions{justify-content:flex-start}}.app-shell{max-width:none;width:100%;margin:0;padding:8px 12px;display:flex;flex-direction:column;gap:8px;position:relative;height:100vh;max-height:100vh;overflow:hidden}.topbar{display:flex;align-items:center;gap:12px;flex:0 0 auto}.topbar .page-title{margin:0;font-size:16px;line-height:1.2;white-space:nowrap;flex:0 0 auto}.topbar-session{margin:0;flex:1 1 auto;min-width:0;color:var(--muted);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar #topStatus{flex:1 1 auto;min-width:0;padding:6px 10px;border-radius:10px}.topbar #topStatus strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.page-bar-actions{flex:0 0 auto;flex-wrap:nowrap}.workspace{display:flex;gap:8px;flex:1 1 auto;min-height:0}.runtime-sidebar{flex:0 0 212px;display:flex;flex-direction:column;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px;overflow-y:auto}.runtime-grid{display:flex;flex-direction:column;gap:6px;margin-top:2px}.runtime-session{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--line)}.runtime-grid>button,.runtime-session>button{width:100%;min-width:0;min-height:36px;padding:7px 10px;font-size:.82rem;line-height:1.15;white-space:normal}.mesh-panel{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px}.step-title{margin:0;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);line-height:1.2}.preview-wrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:0;background:transparent;border:0}#previewFramePlaceholder{flex:1 1 auto;min-height:0;position:relative}.preview-frame-wrap{flex:1 1 auto;min-height:0;height:auto}.advanced-dock{position:fixed;left:12px;right:12px;bottom:8px;z-index:12;display:flex;flex-direction:column;background:var(--panel);will-change:transform;transform:translateZ(0);isolation:isolate;contain:layout paint;border:1px solid var(--line);border-radius:12px;overflow:hidden}.advanced-dock-header{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:24px;padding:2px 4px;border-bottom:1px solid transparent}.advanced-dock.is-open .advanced-dock-header{border-bottom-color:var(--line);background:var(--grey-50)}.advanced-dock-toggle{flex:1 1 auto;display:inline-flex;align-items:center;gap:8px;justify-content:flex-start;min-height:0;padding:2px 8px;background:transparent;color:var(--muted);border:0;border-radius:6px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.advanced-dock-toggle:hover{background:var(--grey-100);color:var(--ink)}.advanced-dock-chevron{font-size:.78rem;line-height:1}.advanced-dock-tabs{display:inline-flex;align-items:center;gap:2px}.advanced-dock-tabs>button{min-height:0;padding:2px 10px;background:transparent;color:var(--muted);border:0;border-radius:6px;font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.advanced-dock-tabs>button:hover{color:var(--ink);background:var(--grey-100)}.advanced-dock-tabs>button.is-active{color:var(--ink);background:var(--panel);box-shadow:inset 0 -2px 0 0 var(--fill)}.advanced-dock-actions{display:inline-flex;align-items:center;gap:4px}.advanced-dock-close{min-width:24px;min-height:22px;padding:0 6px;background:transparent;border:0;color:var(--muted);border-radius:6px;cursor:pointer}.advanced-dock-close:hover{color:var(--ink);background:var(--grey-100)}.advanced-dock-body{flex:0 0 auto;height:min(200px,28vh);display:flex;flex-direction:column;min-height:0;background:var(--panel)}.advanced-pane{flex:1 1 auto;min-height:0;overflow:auto;padding:6px 10px;display:flex;flex-direction:column;gap:6px;background:var(--panel)}.advanced-pane--log{padding:0}.advanced-terminal{flex:1 1 auto;min-height:0;margin:0;border:0;border-radius:0;overflow:auto}.batch-modal-body{overflow:auto;padding-top:10px}.batch-picker{display:flex;align-items:center;gap:8px}.batch-case-table{width:100%;border-collapse:collapse;font-size:.86rem}.batch-case-table th,.batch-case-table td{text-align:left;padding:4px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.batch-case-table th{font-weight:600;color:var(--muted)}.modal-mode-row{display:flex;gap:8px;margin-top:8px}.modal-mode-row>button{flex:0 0 auto;min-width:88px;border:1px solid var(--line);border-radius:8px;background:var(--grey-25);color:var(--muted)}.modal-mode-row>button.is-active{background:var(--fill);border-color:var(--fill);color:var(--white);font-weight:600}.unload-batch-body{overflow:auto;margin-top:8px}.unload-batch-table{width:100%;border-collapse:collapse;font-size:13px}.unload-batch-table td{padding:4px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
