:root{--canvas: #0c1117;--ink: #ecf1e8;--muted: #a8b7aa;--panel: rgba(14, 20, 24, .78);--panel-border: rgba(238, 241, 232, .1);--page-halo: rgba(23, 31, 39, .45);--surface-soft: color-mix(in srgb, var(--ink) 4%, transparent);--surface-tint: color-mix(in srgb, var(--ink) 8%, transparent);--surface-tint-strong: color-mix(in srgb, var(--ink) 10%, transparent);--line-soft: color-mix(in srgb, var(--ink) 8%, transparent);--line: color-mix(in srgb, var(--ink) 12%, transparent);--line-strong: color-mix(in srgb, var(--ink) 22%, transparent);--focus-ring: color-mix(in srgb, var(--ink) 50%, transparent);--accent: #f2a65a;--accent-strong: #ffcf84;--primary-fill-start: #f2a65a;--primary-fill-end: #ffcf84;--timing-early: #ff9a60;--timing-late: #75b0ff;--success: #78d9a7;--warning: #f0d07f;--danger: #ff9b8d;--unsupported: #7fa2c7;--on-accent: #16130f;--shadow: rgba(0, 0, 0, .38);--ruler-edge-inset: 14px;--ruler-top-inset: 7px;color:var(--ink);background:radial-gradient(circle at top right,rgba(242,166,90,.18),transparent 28%),radial-gradient(circle at top left,rgba(78,119,139,.24),transparent 32%),linear-gradient(180deg,#11161d,#090c12);font-family:Space Grotesk,Avenir Next,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=light]{--canvas: #f8fafc;--ink: #17212a;--muted: #5b6874;--panel: rgba(248, 250, 252, .9);--panel-border: rgba(23, 33, 42, .14);--page-halo: rgba(139, 154, 169, .18);--accent: #d9792b;--accent-strong: #9c581e;--primary-fill-start: #d9792b;--primary-fill-end: #e49a57;--on-accent: #16130f;--timing-early: #a64a12;--timing-late: #245d9f;--success: #217447;--warning: #805d0c;--danger: #a93f36;--unsupported: #49647d;--shadow: rgba(35, 47, 60, .18);color:var(--ink);background:radial-gradient(circle at top right,rgba(166,74,18,.1),transparent 30%),radial-gradient(circle at top left,rgba(36,93,159,.1),transparent 34%),linear-gradient(180deg,#f8fafc,#e9eef4)}*{box-sizing:border-box}html,body{position:fixed;inset:0;width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;background:radial-gradient(circle at center,var(--page-halo),transparent 48%),var(--canvas)}#app{width:100%;height:100svh;overflow:hidden;overscroll-behavior:none}.app-shell{width:100%;height:100%;overflow:hidden;user-select:none;-webkit-user-select:none}.product-shell{position:relative;height:100%;overflow:hidden}.ruler-stage{position:relative;height:100%;overflow:hidden;overscroll-behavior:none;isolation:isolate;background:var(--canvas)}.ruler-scene-frame{position:absolute;inset:0;touch-action:none}.hero-panel,.panel{border:1px solid var(--panel-border);border-radius:28px;background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 28px 80px var(--shadow)}.hero-panel{padding:28px 28px 22px}.trainer-hero{display:grid;gap:24px;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr)}.product-hero{display:grid;gap:24px}.shell-intro{display:grid;gap:16px}.shell-intro-copy{display:grid;gap:8px}.shell-status-row{margin-top:0}.trainer-stage{display:grid;gap:14px;align-content:start}.product-stage{display:grid;gap:18px;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);align-items:start}.product-scene,.product-sidecar{display:grid;gap:14px}.product-card{padding:18px;border-radius:22px;background:var(--surface-soft);border:1px solid var(--line-soft)}.product-readout{display:grid;gap:8px}.ruler-board{display:grid;gap:22px}.ruler-board-header{display:grid;gap:24px;grid-template-columns:minmax(240px,.95fr) minmax(0,1.05fr);align-items:end}.session-readout{display:grid;gap:12px}.run-meta{margin:0;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.run-meta div{padding-top:10px;border-top:1px solid var(--line-soft)}.run-meta dt{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.run-meta dd{margin:6px 0 0;font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.96rem;font-weight:700}.bpm-control{display:grid;gap:8px;justify-items:center;align-content:start}.bpm-display{display:inline-flex;flex-direction:column;align-items:center;gap:6px;justify-self:center;padding:0;border:none;background:transparent;color:var(--ink);cursor:ew-resize;touch-action:none}.bpm-display:disabled{cursor:not-allowed;opacity:.46}.bpm-value{font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:clamp(4rem,12vw,7.5rem);font-variant-numeric:tabular-nums;line-height:.88;letter-spacing:0}.bpm-unit{font-size:.72rem;letter-spacing:.18em;line-height:1;text-transform:uppercase;color:var(--accent-strong)}.bpm-input-shell,.bpm-control[data-bpm-mode=editing] .bpm-display{display:none}.bpm-control[data-bpm-mode=editing] .bpm-input-shell{display:block}.bpm-input{width:min(100%,18rem);padding:0;border:none;background:transparent;color:var(--ink);font:inherit;font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:clamp(4rem,12vw,7.5rem);font-variant-numeric:tabular-nums;line-height:.88;letter-spacing:0;outline:none;text-align:center;user-select:text;-webkit-user-select:text}.bpm-input:disabled{opacity:.46}.ruler-topline{position:absolute;top:calc(env(safe-area-inset-top) + var(--ruler-top-inset));left:calc(env(safe-area-inset-left) + var(--ruler-edge-inset));right:calc(env(safe-area-inset-right) + var(--ruler-edge-inset));z-index:2;display:flex;gap:16px;align-items:center;justify-content:space-between}.ruler-publisher-signature{display:inline-flex;flex:0 0 auto;min-height:24px;align-items:center;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;font-style:normal;font-weight:500;letter-spacing:normal;line-height:1.25;text-decoration:none;touch-action:manipulation}.ruler-publisher-signature:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.ruler-publisher-signature:focus-visible{outline:1px solid color-mix(in srgb,var(--ink) 72%,transparent);outline-offset:3px}.ruler-publisher-signature-period{color:#c1432e}.ruler-topline-context{min-width:0;max-width:38rem;display:flex;flex:1 1 auto}.ruler-context-label{margin:0;color:var(--muted);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}.ruler-context-error{position:relative;display:grid;gap:8px;max-width:min(32rem,100%)}.ruler-context-error-toggle{appearance:none;padding:0;border:none;background:transparent;color:var(--danger);cursor:pointer;font:inherit;font-size:.72rem;letter-spacing:.18em;line-height:1.2;text-align:left;touch-action:manipulation;text-transform:uppercase}.ruler-context-error-toggle:hover{opacity:.82}.ruler-context-error-toggle:focus-visible{outline:1px solid var(--focus-ring);outline-offset:4px}.ruler-context-error-detail{position:absolute;top:calc(100% + 8px);left:0;z-index:3;width:min(32rem,calc(100vw - 36px));margin:0;padding:8px 10px;border-radius:12px;background:var(--panel);color:var(--ink);font-size:.78rem;letter-spacing:.02em;line-height:1.45;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .14s ease,transform .14s ease;overflow-wrap:anywhere;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 14px 36px var(--shadow)}.ruler-context-error[data-boot-error-detail-open=true] .ruler-context-error-detail,.ruler-context-error:focus-within .ruler-context-error-detail{opacity:1;transform:translateY(0);pointer-events:auto}.ruler-context-actions{display:flex;flex:0 0 auto;gap:16px;align-items:center;margin-left:auto}.ruler-context-preset{display:inline-flex;max-width:min(38rem,100%);min-height:44px;align-items:center;gap:12px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--unsupported) 50%,transparent);background:var(--panel);color:var(--ink);font-size:.74rem;letter-spacing:.04em;line-height:1.25;overflow-wrap:anywhere;box-shadow:0 14px 36px var(--shadow)}.ruler-context-preset-invalid{border-color:color-mix(in srgb,var(--danger) 58%,transparent);color:var(--danger)}.ruler-context-preset-action{appearance:none;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--accent-strong);cursor:pointer;font:inherit;font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.72rem;letter-spacing:.08em;line-height:1.2;text-transform:uppercase;touch-action:manipulation}.ruler-context-preset-action:hover:not(:disabled),.ruler-context-preset-action:focus-visible{color:var(--ink);outline:none}.ruler-context-preset-action:disabled{cursor:not-allowed;opacity:.38}@media(hover:hover)and (pointer:fine){.ruler-context-error:hover .ruler-context-error-detail{opacity:1;transform:translateY(0);pointer-events:auto}}.transport-readout{color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}.ruler-transport-control{position:absolute;bottom:calc(env(safe-area-inset-bottom) + var(--ruler-edge-inset));left:calc(env(safe-area-inset-left) + var(--ruler-edge-inset));z-index:2;display:flex}.transport-readout-button{appearance:none;display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;padding:10px 6px;border:none;background:transparent;color:inherit;cursor:pointer;font:inherit;line-height:1;touch-action:manipulation}.transport-readout-button:hover{opacity:.82}.transport-readout-button:focus-visible{outline:1px solid var(--focus-ring);outline-offset:4px}.transport-running{color:var(--ink)}.transport-calibrating{color:var(--warning)}.transport-error{color:var(--danger)}.transport-idle{color:var(--muted)}.transport-paused{color:var(--accent-strong)}.paused-resume-control{position:fixed;left:50%;bottom:max(22px,calc(env(safe-area-inset-bottom) + 14px));z-index:30;width:min(calc(100vw - 32px),13rem);display:flex;justify-content:center;pointer-events:none;transform:translate(-50%)}.paused-resume-button{appearance:none;min-width:100%;min-height:56px;padding:0 22px;border:1px solid color-mix(in srgb,var(--accent-strong) 62%,transparent);border-radius:8px;background:color-mix(in srgb,var(--canvas) 72%,var(--accent-strong));box-shadow:0 16px 46px var(--shadow);color:var(--ink);cursor:pointer;font:inherit;font-size:.82rem;font-weight:700;letter-spacing:.14em;line-height:1;pointer-events:auto;text-transform:uppercase;touch-action:manipulation;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.paused-resume-button:hover{border-color:var(--accent-strong);background:color-mix(in srgb,var(--canvas) 58%,var(--accent-strong));transform:translateY(-1px)}.paused-resume-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.ruler-center-stack{position:absolute;top:clamp(52px,11vh,96px);left:50%;z-index:2;width:min(calc(100% - 36px),30rem);display:grid;gap:14px;justify-items:center;text-align:center;transform:translate(-50%)}.ruler-readout-row{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:20px;align-items:start;justify-content:center}.ruler-latest-offset,.ruler-zone-streak{display:grid;gap:4px;justify-items:center;min-width:8.4rem}.ruler-micro-label{margin:0;color:var(--muted);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase}.unlock-dialog-overlay{position:fixed;inset:0;z-index:4;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:max(18px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));border:0;background:color-mix(in srgb,var(--canvas) 74%,transparent);color:inherit;touch-action:manipulation}.unlock-dialog-overlay[open]{display:grid;place-items:center}.unlock-dialog-overlay::backdrop{background:transparent}.unlock-dialog{width:min(100%,28rem);display:grid;gap:16px;padding:18px;border:1px solid var(--panel-border);border-radius:8px;background:var(--panel);box-shadow:0 18px 48px var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.unlock-dialog-copy{display:grid;gap:10px}.unlock-dialog p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45}.unlock-dialog-error{display:grid;gap:6px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--danger) 28%,transparent)}.unlock-dialog-error p:first-child{color:var(--danger);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.unlock-dialog-button{min-height:44px;justify-self:center;padding:0 16px;border:1px solid color-mix(in srgb,var(--accent-strong) 54%,transparent);border-radius:6px;background:color-mix(in srgb,var(--accent-strong) 9%,transparent);color:var(--accent-strong);cursor:pointer;font:inherit;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;touch-action:manipulation;transition:background .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease}.unlock-dialog-button:hover:not(:disabled){border-color:var(--accent-strong);background:color-mix(in srgb,var(--accent-strong) 17%,transparent);color:var(--ink)}.unlock-dialog-button:disabled{cursor:not-allowed;opacity:.42}.shell-action-link,.sheet-close-button{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--ink);cursor:pointer;font:inherit;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;touch-action:manipulation;transition:color .16s ease,opacity .16s ease}.shell-action-link:hover:not(:disabled),.sheet-close-button:hover:not(:disabled){color:var(--accent-strong)}.shell-action-link:disabled,.sheet-close-button:disabled{cursor:not-allowed;opacity:.34}.ruler-context-actions .shell-action-link{min-height:44px}.app-shell[data-sheet-open=true] .ruler-context-actions,.app-shell[data-sheet-open=true] .ruler-transport-control{visibility:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.status-row-inline{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.trainer-canvas{width:100%;height:100%;min-height:100svh;display:block;border:none;background:transparent;touch-action:none}.axis-label-layer{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}.axis-label{position:absolute;transform:translate(-50%);color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:clamp(.58rem,1.2vw,.72rem);line-height:1;white-space:nowrap}.trainer-hud{display:grid;gap:8px}.hud-label{margin:0;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong)}.offset-readout{margin:0;font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:clamp(1rem,2vw,1.2rem);font-weight:600;letter-spacing:.12em}.streak-readout{margin:0;display:inline-grid;grid-auto-flow:column;gap:.4ch;align-items:baseline;color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:clamp(.82rem,1.5vw,.98rem);font-weight:600;white-space:nowrap}.streak-readout span:nth-child(2),.streak-readout span:nth-child(3),.streak-readout span:nth-child(5){color:var(--muted);font-size:.7em;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.offset-pending{color:var(--muted)}.offset-neutral{color:var(--ink)}.offset-early{color:var(--timing-early)}.offset-late{color:var(--timing-late)}.trainer-facts{margin:4px 0 0;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.trainer-facts div{padding:12px 14px;border-radius:18px;background:var(--surface-soft)}.trainer-facts dt{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong)}.trainer-facts dd{margin:6px 0 0;font-size:1rem;font-weight:700}.trainer-hint{margin:0;color:var(--muted)}.calibration-status{margin-top:10px;display:grid;gap:10px}.calibration-facts,.calibration-actions,.log-actions{margin-top:0}.calibration-error{margin:0}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:2.2rem;padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface-tint);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.85em}h1{margin:0;font-size:clamp(2.2rem,5vw,4.4rem);line-height:.95;letter-spacing:-.05em}h2{margin:0 0 16px;font-size:1.05rem;letter-spacing:.02em}.lede{max-width:54rem;margin:14px 0 0;color:var(--muted);font-size:1.02rem}.hero-actions{margin-top:20px;display:flex;flex-wrap:wrap;gap:14px;align-items:center}.primary-button{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:999px;padding:14px 18px;font:inherit;font-weight:700;letter-spacing:.01em;color:var(--on-accent);background:linear-gradient(135deg,var(--primary-fill-start) 0%,var(--primary-fill-end) 100%);cursor:pointer;touch-action:manipulation;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease;box-shadow:0 14px 34px color-mix(in srgb,var(--accent) 28%,transparent);text-decoration:none}.secondary-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:999px;padding:14px 18px;font:inherit;font-weight:700;letter-spacing:.01em;color:var(--ink);background:var(--surface-tint);cursor:pointer;touch-action:manipulation;transition:transform .16s ease,border-color .16s ease,opacity .16s ease;text-decoration:none}.primary-button:hover:not(:disabled){transform:translateY(-1px)}.secondary-button:hover:not(:disabled){transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.primary-button:disabled{cursor:not-allowed;opacity:.48;box-shadow:none}.secondary-button:disabled{cursor:not-allowed;opacity:.48}.settings-note,.empty-copy{margin:0;color:var(--muted)}.info-grid{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.panel{padding:22px 22px 20px}.product-grid{align-items:start}.panel-header{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.status-list,.fact-grid,.capability-list,.log-list{margin:0;padding:0}.status-list{display:grid;gap:12px}.status-row{display:grid;gap:6px;padding-bottom:12px;border-bottom:1px solid var(--line-soft)}.status-row:last-child{padding-bottom:0;border-bottom:none}.status-row dt{font-weight:700}.status-row dd{margin:0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:7rem;padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:var(--surface-tint-strong)}.status-ok{color:var(--success)}.status-pending{color:var(--warning)}.status-error{color:var(--danger)}.status-unsupported{color:var(--unsupported)}.status-idle,.status-detail,.capability-detail{color:var(--muted)}.capability-list{display:grid;gap:12px;list-style:none}.capability-list li{display:grid;gap:6px;padding-bottom:12px;border-bottom:1px solid var(--line-soft)}.capability-list li:last-child{padding-bottom:0;border-bottom:none}.capability-label,.fact-label{font-size:.84rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-strong)}.fact-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.fact-value{display:block;margin-top:6px;font-size:1.05rem;font-weight:700}.log-panel{overflow:hidden}.log-list{list-style:none;display:grid;gap:10px}.history-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.history-row{display:grid;gap:10px;align-items:center;padding:12px 14px;border-radius:18px;background:var(--surface-soft)}.history-row{grid-template-columns:minmax(0,1fr) auto auto}.history-beat,.history-kind{font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.86rem}.history-kind{color:var(--accent-strong);text-transform:uppercase}.history-offset{font-weight:700}.history-ignored{color:var(--muted)}.settings-slot-panel,.settings-surface-flow,.settings-notice-list,.settings-stack,.stats-surface-flow{display:grid;gap:14px}.settings-section{display:grid;gap:0}.settings-section-header{display:grid;gap:6px}.settings-section-header h3{margin:0;color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}.settings-disclosure-header{gap:6px}.settings-section-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:baseline;width:100%;padding:0;border:none;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:left;touch-action:manipulation}.settings-section-toggle:focus-visible{outline:1px solid var(--focus-ring);outline-offset:4px}.settings-section-title{margin:0;color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}.settings-section-marker{color:var(--accent-strong);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.82rem;line-height:1}.settings-section-summary{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.settings-section-summary-value{color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}.settings-section-body{display:grid;gap:10px}.settings-section-body:not([hidden]){margin-top:10px}.settings-section-copy{margin:0;color:var(--muted);font-size:.78rem;line-height:1.35}.stats-surface-flow [hidden]{display:none}.stats-frame,.stats-context-copy,.stats-readiness,.stats-terminals,.stats-save-note,.stats-empty,.stats-inline-error,.stats-empty-session p,.stats-session-data p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.stats-frame{color:var(--accent-strong);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.stats-section,.stats-empty-session,.stats-session-data,.stats-drawer{display:grid;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--line)}.stats-section-header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.stats-section-header h3,.stats-empty-session h3,.stats-session-data h3{margin:0;color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}.stats-section-header p{margin:3px 0 0;color:var(--muted);font-size:.78rem;line-height:1.35}.stats-primary-facts,.stats-delta-facts,.stats-supporting-facts,.stats-panel-facts,.stats-history-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:0}.stats-primary-facts>div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--surface-soft)}.stats-primary-facts dt,.stats-delta-facts dt,.stats-supporting-facts dt,.stats-panel-facts dt,.stats-history-facts dt{color:var(--muted);font-size:.66rem;letter-spacing:.07em;text-transform:uppercase}.stats-primary-facts dd,.stats-delta-facts dd,.stats-supporting-facts dd,.stats-panel-facts dd,.stats-history-facts dd{margin:3px 0 0;color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.86rem;font-variant-numeric:tabular-nums;line-height:1.3;overflow-wrap:anywhere}.stats-primary-facts dd{font-size:clamp(1rem,2vw,1.18rem)}.stats-primary-facts p{margin:5px 0 0;color:var(--muted);font-size:.7rem;line-height:1.35}.stats-comparison-evidence,.stats-histogram-stack,.stats-histogram-panel,.stats-bin-details,.stats-drawer [data-stats-region],.stats-history-row,.stats-session-actions,.stats-inline-confirmation{display:grid;gap:10px}.stats-histogram-panel{margin:0;padding:10px 0 6px;border-top:1px solid var(--line-soft)}.stats-histogram-panel figcaption{display:flex;justify-content:space-between;gap:12px;color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.8rem;font-variant-numeric:tabular-nums}.stats-panel-facts{grid-template-columns:repeat(2,minmax(0,max-content))}.stats-histogram{display:block;width:100%;height:auto;overflow:visible}.stats-histogram text{fill:var(--muted);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:9px}.stats-histogram-baseline{stroke:var(--line-strong);stroke-width:1}.stats-histogram-bar{fill:color-mix(in srgb,var(--accent-strong) 72%,transparent)}.stats-histogram-bar[data-histogram-panel=prior]{fill:color-mix(in srgb,var(--timing-late) 62%,transparent)}.stats-bin-details>summary,.stats-drawer>summary,.stats-history-row>summary{cursor:pointer;touch-action:manipulation}.stats-drawer>summary,.stats-history-row>summary{position:relative;padding-left:18px;list-style:none}.stats-drawer>summary::-webkit-details-marker,.stats-history-row>summary::-webkit-details-marker{display:none}.stats-drawer>summary:before,.stats-history-row>summary:before{position:absolute;left:0;color:var(--accent-strong);content:"+";font-family:JetBrains Mono,SFMono-Regular,monospace;line-height:1}.stats-drawer[open]>summary:before,.stats-history-row[open]>summary:before{content:"−"}.stats-bin-details>summary,.stats-drawer>summary{min-height:40px;color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.78rem}.stats-drawer>summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.stats-drawer>summary span:last-child{color:var(--muted);font-size:.7rem;text-transform:uppercase}.stats-bin-table-wrap{max-width:100%;overflow-x:auto}.stats-bin-table{width:100%;border-collapse:collapse;color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.68rem;font-variant-numeric:tabular-nums;text-align:left}.stats-bin-table th,.stats-bin-table td{padding:5px 6px;border-bottom:1px solid var(--line-soft)}.stats-recent-list,.stats-history-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.stats-recent-row{display:grid;grid-template-columns:minmax(6ch,auto) minmax(0,1fr) auto;gap:10px;align-items:baseline;min-height:24px;color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.74rem}.stats-recent-offset{color:var(--ink);font-size:.8rem;font-weight:650}.stats-offset-neutral .stats-recent-offset{color:var(--ink)}.stats-offset-early .stats-recent-offset{color:var(--timing-early)}.stats-offset-late .stats-recent-offset{color:var(--timing-late)}.stats-offset-ignored,.stats-offset-ignored .stats-recent-offset{color:var(--muted)}.stats-history-row{padding:8px 0;border-bottom:1px solid var(--line-soft)}.stats-history-row>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:baseline;color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.7rem;font-variant-numeric:tabular-nums}.stats-history-row>summary span:first-child{grid-column:1 / 3}.stats-history-row>summary span:nth-child(2){grid-column:3}.stats-drawer-actions,.stats-session-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.stats-inline-confirmation{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;width:100%;padding-left:10px;border-left:2px solid color-mix(in srgb,var(--danger) 60%,transparent);color:var(--muted);font-size:.76rem}.stats-session-data{padding-bottom:0;border-bottom:none}.stats-save-reset{width:auto;min-height:40px;padding:10px 14px;border-radius:6px;box-shadow:none;font-size:.78rem}.settings-notice{padding-left:10px;border-left:1px solid color-mix(in srgb,var(--unsupported) 58%,transparent)}.settings-actions{display:flex;gap:12px;flex-wrap:wrap}.settings-text-action{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:0;background:transparent;color:var(--accent-strong);font:inherit;font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;touch-action:manipulation}.settings-text-action:hover:not(:disabled),.settings-text-action:focus-visible{color:var(--ink);outline:none}.settings-text-action:disabled{cursor:not-allowed;opacity:.38}.settings-grid{display:grid;gap:0}.settings-grid+.settings-actions{margin-top:10px}.settings-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(9ch,auto);gap:12px;align-items:baseline;min-height:28px;padding:3px 0;border:none}.settings-row-label{min-width:0;color:var(--muted);font-size:.83rem;letter-spacing:.01em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-row-value{display:flex;justify-content:flex-end;min-width:0;color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.86rem;font-variant-numeric:tabular-nums;line-height:1.2;text-align:right}.settings-row-changed .settings-row-label,.settings-row-changed .settings-row-value{color:var(--accent-strong)}.settings-value-shell,.settings-number-shell{position:relative;display:inline-grid;min-width:10ch;justify-items:stretch;cursor:ew-resize}.settings-value-input,.settings-value-button{width:100%;min-width:0;padding:0;border:none;border-radius:0;outline:none;background:transparent;color:inherit;font:inherit;font-variant-numeric:tabular-nums;line-height:inherit;text-align:right}.settings-value-input{cursor:text;user-select:text;-webkit-user-select:text}.settings-value-button{cursor:pointer}.settings-value-input:focus,.settings-value-button:focus-visible{color:var(--ink)}.settings-step-zone{position:absolute;top:-8px;bottom:-8px;z-index:1;display:none;width:50%;touch-action:pan-y}.settings-step-zone-left{left:0}.settings-step-zone-right{right:0}.settings-import-textarea{width:100%;min-height:9rem;padding:8px 0;border:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;outline:none;background:transparent;color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.78rem;line-height:1.45;user-select:text;-webkit-user-select:text}.settings-textarea-shell{gap:8px}.settings-inline-facts{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.settings-inline-facts div{padding-top:10px;border-top:1px solid var(--line-soft)}.settings-inline-facts dt{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.settings-inline-facts dd{margin:6px 0 0;font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.96rem;font-weight:700}.settings-inline-error{margin:0}.settings-value-input:disabled,.settings-value-button:disabled,.settings-import-textarea:disabled{opacity:.65}.log-list li{display:grid;gap:4px;padding:12px 14px;border-radius:18px;background:var(--surface-soft)}.log-time,.log-tag{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong)}.log-message{color:var(--muted)}.blocked-shell{min-height:100svh}.blocked-shell-publisher{padding:calc(env(safe-area-inset-top) + var(--ruler-top-inset)) calc(env(safe-area-inset-right) + var(--ruler-edge-inset)) 0 calc(env(safe-area-inset-left) + var(--ruler-edge-inset))}.blocked-shell-panel{min-height:60vh;display:grid;place-items:center}.blocked-shell .product-copy{max-width:34rem;text-align:center}.mobile-sheet-overlay{--sheet-outer-bottom-inset: max(18px, env(safe-area-inset-bottom));position:fixed;inset:0;z-index:20;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;color:inherit;align-items:stretch;justify-items:end;overscroll-behavior:none;touch-action:none}.mobile-sheet-overlay[open]{display:grid}.mobile-sheet-overlay::backdrop{background:color-mix(in srgb,var(--canvas) 24%,transparent)}.mobile-sheet{width:min(25vw,34rem);height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);gap:16px;border-left:1px solid var(--panel-border);background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:none;overflow:hidden;overscroll-behavior:contain;padding:max(14px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom));touch-action:pan-y}.mobile-sheet-stats{width:clamp(26rem,34vw,42rem);grid-template-rows:auto minmax(0,1fr) auto}.mobile-sheet-header{display:flex;gap:14px;align-items:flex-start;justify-content:space-between}.mobile-sheet-header-actions{display:flex;gap:14px;align-items:center;justify-content:flex-end}.stats-transport-state{color:var(--muted);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.stats-sheet-extent-button{display:none}.mobile-sheet-copy{display:grid;gap:8px}.mobile-sheet-header h2{margin:0}.mobile-sheet-content{display:grid;gap:16px;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;touch-action:pan-y}.stats-practice-chrome{padding-top:2px}.stats-practice-button{width:100%;height:80px;min-height:80px;display:grid;gap:4px;place-content:center;padding:10px 14px;border:1px solid color-mix(in srgb,var(--accent-strong) 62%,transparent);border-radius:6px;background:color-mix(in srgb,var(--canvas) 72%,var(--accent-strong));color:var(--ink);cursor:pointer;font:inherit;text-align:center;touch-action:none}.stats-practice-label{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.stats-practice-status{color:var(--ink);font-family:JetBrains Mono,SFMono-Regular,monospace;font-size:.7rem}.stats-practice-button:hover,.stats-practice-button:focus-visible{border-color:var(--accent-strong);background:color-mix(in srgb,var(--canvas) 58%,var(--accent-strong))}.stats-practice-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.stats-practice-button[aria-disabled=true]{border-color:var(--panel-border);background:color-mix(in srgb,var(--panel) 92%,transparent);cursor:default}@media(max-width:900px){.trainer-hero,.product-stage,.info-grid,.fact-grid,.settings-inline-facts{grid-template-columns:1fr}.hero-panel,.panel{padding:20px;border-radius:22px}h1{font-size:clamp(2rem,11vw,3.2rem)}.ruler-topline,.ruler-context-actions{gap:12px}.ruler-context-preset{max-width:min(100%,calc(100vw - 28px));flex-wrap:wrap;gap:8px 10px}.ruler-center-stack{top:max(56px,env(safe-area-inset-top) + 24px);width:min(calc(100% - 28px),22rem)}.bpm-value,.bpm-input{font-size:clamp(3.6rem,22vw,5.6rem)}.hero-actions{gap:10px}.secondary-button,.primary-button{width:100%}.settings-actions{align-items:stretch}.stats-section-header{display:grid}.stats-primary-facts{grid-template-columns:1fr}.stats-inline-confirmation{grid-template-columns:1fr auto}.stats-inline-confirmation span{grid-column:1 / -1}.status-row-inline{flex-direction:column;align-items:flex-start}.mobile-sheet-overlay{align-items:end;justify-items:stretch;padding:18px 14px var(--sheet-outer-bottom-inset)}.mobile-sheet{width:100%;height:auto;max-height:min(82svh,48rem);border:1px solid var(--panel-border);border-radius:0;background:var(--panel);padding:14px 14px 18px}.settings-row{min-height:34px;grid-template-columns:minmax(0,1fr) minmax(12ch,auto)}.settings-step-zone{display:block}}@media(max-width:600px){.ruler-topline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}.ruler-publisher-signature{grid-column:1;grid-row:1;justify-self:start}.ruler-context-actions{grid-column:2;grid-row:1;margin-left:0}.ruler-topline-context{width:100%;max-width:none;grid-column:1 / -1;grid-row:2}.ruler-topline[data-topline-context=true]+.ruler-center-stack{top:max(132px,env(safe-area-inset-top) + 100px)}}@media(max-width:440px){.paused-resume-control{bottom:max(82px,calc(env(safe-area-inset-bottom) + 72px))}}@media(max-width:359px){.ruler-publisher-signature{max-inline-size:13ch;flex-wrap:wrap}.ruler-publisher-signature>span{white-space:nowrap}}@media(max-width:900px)and (orientation:portrait)and (min-height:640px){.stats-sheet-extent-button{display:inline-flex;min-height:44px}.mobile-sheet-header-actions{gap:10px}.stats-transport-state{display:none}.mobile-sheet-overlay[data-stats-extent=practice]::backdrop{background:transparent}.mobile-sheet-overlay[data-stats-extent=practice] .mobile-sheet-stats{--reference-beat-half-height: clamp(26px, 5.5svh, 54px);--ruler-sheet-gap: 12px;max-height:min(46svh,calc(50svh - var(--reference-beat-half-height) - var(--ruler-sheet-gap) - var(--sheet-outer-bottom-inset)))}}@media(prefers-reduced-motion:no-preference){.hero-panel,.panel{animation:rise .42s ease both}}@media(prefers-reduced-motion:reduce){.ruler-context-error-detail,.paused-resume-button,.unlock-dialog-button,.shell-action-link,.sheet-close-button,.stats-practice-button,.primary-button,.secondary-button{transition:none}.paused-resume-button:hover,.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled){transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
