:root{--r-sm: 8px;--r-md: 8px;--r-lg: 10px;--r-pill: 999px;--s-xs: 4px;--s-sm: 8px;--s-md: 12px;--s-lg: 20px;--s-xl: 32px;--shadow-panel: 0 8px 24px rgba(3, 7, 18, .24);--shadow-float: 0 18px 44px rgba(3, 7, 18, .36);--shadow-btn: 0 4px 12px rgba(3, 7, 18, .22);--glass: rgba(16, 23, 33, .88);--glass-strong: rgba(17, 24, 35, .96);--navy: #111827;--navy-2: #202938;--panel-in: #202a37;--panel-in-2: #2b364580;--navy-line: rgba(255, 255, 255, .14);--ink: #f1f5f9;--ink-soft: #b5c0ce;--ink-faint: #8290a3;--line: rgba(255, 255, 255, .12);--green: #37b26c;--green-deep: #279154;--blue: #3b82f6;--blue-deep: #74a7f7;--coral: #ef6257;--amber: #e9b949;--gray-btn: rgba(255, 255, 255, .08);--gray-btn-hover: rgba(255, 255, 255, .16);--train-sprout: #3fb9b2;--train-ember: #ed6256;--train-haven: #53ad70;--train-maple: #d9a64b;--train-juniper: #8f72dd;--train-poppy: #d870a7;--focus-ring: 0 0 0 3px rgba(59, 130, 217, .55);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Inter, system-ui, sans-serif;--text-title: 800 17px/1.2 var(--font);--text-section: 700 11px/1.3 var(--font);--text-body: 400 14px/1.45 var(--font);--text-label: 700 13px/1.2 var(--font);--text-hint: 400 12.5px/1.4 var(--font)}*{box-sizing:border-box;letter-spacing:0}html,body{margin:0;height:100%}body{overflow:hidden;font:var(--text-body);color:var(--ink);background:#bfe6f5;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#app,#app canvas{position:fixed;top:0;right:0;bottom:0;left:0}canvas{touch-action:none;display:block}.icn{display:inline-grid;place-items:center;font-size:20px;line-height:0}.icn svg{display:block}button{font:var(--text-label);color:var(--ink);border:none;background:none;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:none;box-shadow:var(--focus-ring)}input:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--r-sm)}.app-badge{position:fixed;top:calc(var(--s-md) + env(safe-area-inset-top));left:calc(var(--s-md) + env(safe-area-inset-left));z-index:20;display:grid;place-items:center;width:46px;height:46px;background:#1d2b3fe0;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-md);box-shadow:var(--shadow-panel)}.app-badge .icn{font-size:24px}.app-badge.brand-badge{background:#eef2f6;border:1px solid rgba(29,43,63,.14);box-shadow:0 6px 18px #0c142147}.app-badge.brand-badge svg{display:block}.utils{position:fixed;top:calc(var(--s-md) + env(safe-area-inset-top));right:calc(var(--s-md) + env(safe-area-inset-right));z-index:20;display:flex;gap:var(--s-sm)}.util-btn{width:46px;height:46px;border-radius:var(--r-md);padding:0;background:var(--glass-strong);box-shadow:var(--shadow-btn);display:grid;place-items:center;color:var(--ink)}.util-btn:hover{background:var(--navy-2)}.util-btn:active{transform:scale(.94)}.util-btn .icn{font-size:21px}.utils-fold{display:flex;gap:var(--s-sm)}.utils-fold .util-btn.item{width:0;opacity:0;transform:scale(.55);margin-left:calc(-1 * var(--s-sm));pointer-events:none;overflow:hidden;transition:width .22s cubic-bezier(.2,1.3,.4,1),opacity .18s ease,transform .22s cubic-bezier(.2,1.3,.4,1),margin-left .22s ease}.utils-fold.open .util-btn.item,.utils-fold:focus-within .util-btn.item{width:46px;opacity:1;transform:none;margin-left:0;pointer-events:auto}@media(hover:hover){.utils-fold:hover .util-btn.item{width:46px;opacity:1;transform:none;margin-left:0;pointer-events:auto}}.utils-fold .util-btn.item:nth-of-type(3){transition-delay:.02s}.utils-fold .util-btn.item:nth-of-type(4){transition-delay:.05s}.utils-fold .util-btn.item:nth-of-type(5){transition-delay:.08s}.utils-fold.open .launcher,.utils-fold:hover .launcher{background:var(--navy);color:#fff}body.ui-compact .dock-btn .lbl,body.ui-compact .tool-btn .lbl{display:none}body.ui-compact .dock-btn{width:48px;padding:10px}body.ui-compact .tool-btn{min-width:44px;padding:9px 8px}@media(prefers-reduced-motion:reduce){.utils-fold .util-btn.item{transition:none}}.dock{position:fixed;left:var(--s-md);bottom:calc(var(--s-md) + env(safe-area-inset-bottom));z-index:15;display:flex;gap:var(--s-sm);background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-lg);padding:var(--s-sm);box-shadow:var(--shadow-panel)}.dock-btn{width:68px;padding:8px 4px 6px;border-radius:var(--r-md);display:flex;flex-direction:column;align-items:center;gap:3px;background:var(--gray-btn);color:var(--ink)}.dock-btn .icn{font-size:22px}.dock-btn span.lbl{font:var(--text-label);font-size:11px;white-space:nowrap}.dock-btn:hover{background:var(--gray-btn-hover)}.dock-btn:active{transform:scale(.95)}.dock-btn.playpause{background:var(--green);color:#fff}.dock-btn.playpause:hover{background:var(--green-deep)}.dock-btn.playpause.is-running{background:var(--navy);color:#fff}.dock-btn.playpause.is-running:hover{background:var(--navy-2, var(--navy))}.dock-btn.pulse{animation:pulse 1.1s ease-in-out infinite}.dock-btn.slow[aria-pressed=true]{background:var(--blue);color:#fff}@keyframes pulse{0%,to{box-shadow:0 0 #3b82d98c}50%{box-shadow:0 0 0 12px #3b82d900}}.undo-toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(84px + env(safe-area-inset-bottom));z-index:70;display:flex;align-items:center;gap:var(--s-md);background:var(--glass-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);border-radius:var(--r-pill);padding:10px 12px 10px 18px;box-shadow:var(--shadow-panel);animation:undo-in .22s ease}@keyframes undo-in{0%{opacity:0;transform:translate(-50%,10px)}}.undo-msg{font:var(--text-label);font-size:14px}.undo-btn{display:inline-flex;align-items:center;gap:6px;font:var(--text-label);font-size:14px;font-weight:800;color:#fff;background:var(--blue);border-radius:var(--r-pill);padding:8px 16px}.undo-btn:hover{background:var(--blue-deep)}@media(prefers-reduced-motion:reduce){.undo-toast{animation:none}}.popover .pop-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.popover .pop-head .pop-label{padding-top:2px}.popover .pop-x{width:26px;height:26px;padding:0;flex:none;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--ink-faint)}.popover .pop-x:hover{background:var(--gray-btn);color:var(--ink)}.popover .pop-x .icn{font-size:15px;color:inherit}.popover .pop-note{font:var(--text-hint);color:var(--ink-soft);max-width:230px;padding:2px 4px 6px;line-height:1.45}.popover button.danger{color:var(--coral)}.popover button.danger .icn{color:inherit}.train-panel{position:fixed;z-index:14;width:326px;background:var(--glass-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-panel);overflow:hidden;touch-action:none}.panel-head{display:flex;align-items:center;gap:6px;min-height:42px;padding:6px 8px;border-bottom:1px solid var(--line);cursor:grab;-webkit-user-select:none;user-select:none}.panel-head:active{cursor:grabbing}.panel-head .grip{color:var(--ink-faint);font-size:16px}.panel-head .cap{padding:0;flex:1}.fleet-count{color:var(--ink-faint);font:750 8px/1 var(--font);font-variant-numeric:tabular-nums}.panel-collapse{width:28px;height:28px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--ink-faint)}.panel-collapse:hover{background:var(--gray-btn);color:var(--ink)}body.strip-collapsed .train-panel .panel-body{display:none}body.strip-collapsed .panel-collapse .icn{transform:rotate(180deg)}.train-row{display:grid;grid-template-columns:38px minmax(88px,1fr) 100px 26px;align-items:center;gap:7px;min-height:58px;padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.075)}.train-row:hover{background:#ffffff06}.train-avatar{width:38px;height:36px;border-radius:6px;flex:none;display:grid;place-items:center;color:var(--ink);background:#17212c;border:1px solid var(--line);box-shadow:inset 3px 0 var(--train-color, var(--blue));cursor:pointer;padding:1px}.train-avatar:active{transform:scale(.92)}.train-avatar svg{width:30px;height:24px;display:block}.train-avatar.toot{animation:signal-pulse .42s ease}@keyframes signal-pulse{0%,to{transform:none}45%{transform:scale(1.08);box-shadow:inset 3px 0 var(--train-color),0 0 0 3px color-mix(in srgb,var(--train-color) 32%,transparent)}}@media(prefers-reduced-motion:reduce){.train-avatar.toot{animation:none}}.fleet-identity{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:4px 2px;color:var(--ink);text-align:left;border-radius:4px}.fleet-identity:hover{background:#ffffff0a}.fleet-identity strong{width:100%;overflow:hidden;font:750 13px/1 var(--font);text-overflow:ellipsis;white-space:nowrap}.fleet-identity small{width:100%;overflow:hidden;color:var(--ink-faint);font:700 8px/1 var(--font);text-overflow:ellipsis;white-space:nowrap}.fleet-speed{height:30px;display:grid;grid-template-columns:23px 1fr 23px;align-items:stretch;background:#ffffff0b;border:1px solid var(--line);border-radius:5px}.fleet-speed button{display:grid;place-items:center;color:var(--ink-faint)}.fleet-speed button:hover{color:#fff;background:#ffffff14}.fleet-speed button .icn{font-size:12px}.fleet-speed label{min-width:0;display:flex;align-items:center;justify-content:center;gap:2px;border-inline:1px solid var(--line)}.fleet-speed-input{width:28px;padding:0;color:var(--ink);background:transparent;border:0;font:750 11px/1 var(--font);font-variant-numeric:tabular-nums;text-align:right;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.fleet-speed-input::-webkit-inner-spin-button,.fleet-speed-input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.fleet-speed label span{color:var(--ink-faint);font:700 7px/1 var(--font)}.train-menu-btn{width:24px;height:24px;border-radius:var(--r-sm);flex:none;display:grid;place-items:center;color:var(--ink-faint)}.train-menu-btn:hover{background:var(--gray-btn);color:var(--ink)}.train-menu-btn .icn{font-size:15px}.pop-label{font:var(--text-section);text-transform:uppercase;color:var(--ink-faint);padding:4px 4px 0}.pop-name{width:100%;height:36px;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 10px;font:700 13px/1 var(--font);background:var(--panel-in);color:var(--ink)}.face-row{display:flex;gap:6px;flex-wrap:wrap;padding:2px 0}.face-pick{width:38px;height:38px;border-radius:var(--r-sm);padding:2px;border:2px solid transparent;background:var(--train-color, var(--blue))}.face-pick svg{width:32px;height:32px;display:block}.face-pick[aria-pressed=true]{border-color:var(--ink);box-shadow:var(--focus-ring)}.face-pick:active{transform:scale(.92)}.add-train-row{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:40px;padding:6px;border-top:1px solid rgba(255,255,255,.075);color:var(--ink-soft);font:700 11px/1 var(--font)}.add-train-row:hover{color:#fff;background:#ffffff0d}.view-cluster{position:fixed;left:var(--s-md);bottom:calc(var(--s-md) + env(safe-area-inset-bottom));z-index:16;display:none;gap:2px;background:#1d2b3feb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-lg);padding:var(--s-sm);box-shadow:var(--shadow-float)}body.build-mode .view-cluster{display:flex}.view-btn{width:46px;height:46px;border-radius:var(--r-md);display:grid;place-items:center;color:#ffffffd9;touch-action:none}.view-btn:hover{background:var(--navy-2);color:#fff}.view-btn:active{background:var(--blue);color:#fff}.view-btn .icn{font-size:21px}.toolbar{position:fixed;right:var(--s-md);bottom:calc(var(--s-md) + env(safe-area-inset-bottom));z-index:15;display:flex;gap:2px;background:#1d2b3feb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-lg);padding:var(--s-sm);box-shadow:var(--shadow-float)}.tool-btn{min-width:64px;padding:9px 10px 7px;border-radius:var(--r-md);display:flex;flex-direction:column;align-items:center;gap:3px;color:#ffffffd1}.tool-btn .icn{font-size:22px}.tool-btn span.lbl{font:700 11px/1.2 var(--font)}.tool-btn:hover{background:var(--navy-2);color:#fff}.tool-btn[aria-pressed=true]{background:var(--blue);color:#fff}.tool-btn:active{transform:scale(.95)}.tool-btn[disabled]{opacity:.45;cursor:default}.tipbar{position:fixed;left:50%;top:14px;transform:translate(-50%);z-index:13;background:#1d2b3fd9;color:#eaf2fb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 16px;border-radius:var(--r-pill);font:var(--text-hint);box-shadow:var(--shadow-btn);max-width:min(92vw,560px);text-align:center;transition:opacity .6s;pointer-events:none}.tipbar b{color:#9cc4f2}.tipbar.hide{opacity:0}#banner{position:fixed;top:13%;left:50%;transform:translate(-50%);z-index:30;background:var(--glass-strong);border:4px solid var(--amber);color:var(--coral);font:900 clamp(30px,5.5vw,52px)/1.1 var(--font);padding:14px 32px;border-radius:var(--r-lg);box-shadow:var(--shadow-float);text-align:center;pointer-events:none;white-space:nowrap}#banner .sub{display:block;font:var(--text-label);color:var(--ink);margin-top:6px;white-space:normal}#banner.pop{animation:pop .55s cubic-bezier(.2,1.6,.4,1)}@keyframes pop{0%{transform:translate(-50%) scale(.3)}}body.build-mode .train-panel,body.build-mode .tipbar,body.build-mode .dock{display:none}#mode-bar{position:fixed;left:50%;bottom:104px;transform:translate(-50%);z-index:25;display:flex;gap:var(--s-sm);align-items:center;background:var(--glass-strong);border-radius:var(--r-pill);padding:6px 6px 6px 16px;box-shadow:var(--shadow-float);font:700 13.5px/1.3 var(--font);max-width:min(480px,calc(100vw - 16px))}#mode-bar[hidden]{display:none}#mode-bar #mode-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#mode-bar .bounce{animation:hintbounce .5s ease}@keyframes hintbounce{40%{transform:scale(1.12)}}.mode-cancel{display:flex;align-items:center;gap:5px;flex:none;background:var(--gray-btn);border-radius:var(--r-pill);padding:7px 13px;font-size:12.5px}.mode-cancel .icn{font-size:15px}.mode-cancel:hover{background:var(--gray-btn-hover)}.look-toggle[aria-pressed=true]{background:var(--blue);color:#fff}body.build-mode:not(.drag-tool) .look-toggle{display:none}.kbd{display:inline-block;min-width:24px;padding:2px 7px;margin-right:2px;border-radius:6px;background:var(--gray-btn);border:1px solid var(--line);box-shadow:inset 0 -2px 0 var(--line);font:700 12px/1.4 var(--font);text-align:center}.kbd-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font:var(--text-hint);color:var(--ink-soft)}.kbd-grid>span{display:flex;align-items:center;gap:6px}body.ui-idle .app-badge,body.ui-idle .utils,body.ui-idle .train-panel,body.ui-idle .toolbar{opacity:.4;transition:opacity .7s ease}body.ui-idle .app-badge:hover,body.ui-idle .utils:hover,body.ui-idle .train-panel:hover,body.ui-idle .toolbar:hover{opacity:1}.app-badge,.utils,.train-panel,.toolbar{transition:opacity .25s ease}.dock-btn.pulse{opacity:1!important}.fatal-error{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:grid;place-items:center;padding:24px;background:#0c1421e0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.fatal-dialog{max-width:360px;width:100%;padding:26px 24px;text-align:center;color:#eaf2fb;background:#16233a;border:1px solid #2a3d5c;border-radius:12px;box-shadow:0 20px 60px #0007}.fatal-dialog h2{margin:0 0 8px;font-size:20px}.fatal-dialog p{margin:0;color:#b9c8dd}.fatal-dialog button{margin-top:18px;padding:13px 22px;font:inherit;font-weight:700;color:#0c1420;background:#bfe6f5;border-radius:8px}.fatal-dialog details{margin-top:16px;text-align:left}.fatal-dialog summary{cursor:pointer;color:#89a2c2;font-size:13px}.fatal-dialog pre{margin:8px 0 0;padding:10px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;color:#9fb3c6;background:#0f1a2c;border-radius:8px}@media(pointer:coarse){body.ui-idle .app-badge,body.ui-idle .utils,body.ui-idle .train-panel,body.ui-idle .toolbar{opacity:1}}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#141e2c2e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:scrimIn .16s ease-out}@keyframes scrimIn{0%{opacity:0}}.drawer{position:fixed;top:var(--s-md);right:var(--s-md);bottom:var(--s-md);z-index:41;width:min(720px,calc(100vw - 24px));background:var(--glass-strong);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--r-lg);box-shadow:var(--shadow-float);display:flex;flex-direction:column;overflow:hidden;animation:drawerIn .18s ease-out}@keyframes drawerIn{0%{opacity:0;transform:translate(18px)}}.drawer-head h2 .icn{font-size:19px;color:var(--blue-deep);margin-right:2px;vertical-align:-3px}@media(prefers-reduced-motion:reduce){.drawer,.drawer-scrim{animation:none}body.ui-idle .app-badge,body.ui-idle .utils,body.ui-idle .dock,body.ui-idle .train-panel,body.ui-idle .toolbar{transition:none}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:var(--s-lg) var(--s-lg) var(--s-md)}.drawer-head h2{margin:0;font:800 20px/1.2 var(--font)}.drawer-close{width:36px;height:36px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--ink-soft)}.drawer-close:hover{background:var(--gray-btn);color:var(--ink)}.tabs{display:flex;gap:2px;padding:0 var(--s-lg);border-bottom:1px solid var(--line)}.tab{flex:1;min-width:0;padding:8px 10px 10px;border-radius:var(--r-sm) var(--r-sm) 0 0;color:var(--ink-soft);position:relative}.tab[aria-selected=true]{color:var(--blue);background:#3b82d914}.tab[aria-selected=true]:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:3px;border-radius:2px;background:var(--blue)}.drawer-body{flex:1;overflow-y:auto;padding:var(--s-lg);display:flex;flex-direction:column;gap:var(--s-md)}.drawer-foot{padding:var(--s-md) var(--s-lg);font:var(--text-hint);color:var(--ink-faint);border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.drawer-foot p{margin:0}.drawer-foot-priv{color:var(--ink-soft)}.drawer-foot-meta{display:flex;flex-wrap:wrap;gap:2px;align-items:baseline}.drawer-foot-meta a,.drawer-foot-link{color:var(--blue-deep);text-decoration:none;font:inherit;font-weight:600}.drawer-foot-link{padding:0;background:transparent;border:0}.drawer-foot-meta a:hover,.drawer-foot-meta a:focus-visible,.drawer-foot-link:hover,.drawer-foot-link:focus-visible{text-decoration:underline}.set-card{background:var(--panel-in);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-md) var(--s-md);display:flex;flex-direction:column;gap:var(--s-sm)}.set-card h3{margin:0;font:var(--text-label)}.set-card .hint{font:var(--text-hint);color:var(--ink-soft);margin:0}.settings-section{display:flex;flex-direction:column;gap:10px}.settings-section+.settings-section{border-top:1px solid var(--line);padding-top:16px}.settings-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.settings-section-head h3{margin:0;font:var(--text-label);color:var(--ink)}.settings-section-meta{font:800 9px/1.2 var(--font);color:var(--ink-faint);text-transform:uppercase;white-space:nowrap}.visual-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.visual-preset-grid.environment-atlas-grid,.visual-preset-grid.coaster-atlas-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.visual-preset-card{position:relative;min-width:0;overflow:hidden;padding:0;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-in);color:var(--ink);text-align:left;box-shadow:0 3px 12px #040a1124;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.visual-preset-card:hover{border-color:#67a1e3a8;transform:translateY(-1px)}.visual-preset-card[aria-pressed=true]{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue),0 6px 18px #1141773d}.visual-preset-thumb{display:block;width:100%;aspect-ratio:4 / 3;background-color:#28333d;background-repeat:no-repeat;background-size:calc(var(--atlas-cols, 3) * 100%) calc(var(--atlas-rows, 2) * 100%);background-position:var(--preview-x) var(--preview-y);border-bottom:1px solid rgba(255,255,255,.1)}.visual-preset-thumb.environment-atlas{background-image:url(/assets/previews/environment-presets.jpg)}.visual-preset-thumb.coaster-atlas{background-image:url(/assets/previews/coaster-presets-v2.jpg)}.visual-preset-copy{display:flex;flex-direction:column;min-width:0;min-height:60px;gap:3px;padding:9px 30px 10px 10px}.visual-preset-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.visual-preset-copy strong{font:var(--text-label);overflow-wrap:anywhere}.visual-preset-copy small{font:var(--text-hint);color:var(--ink-soft);overflow-wrap:anywhere}.visual-preset-code{flex:none;font:800 8px/1.2 var(--font);color:var(--ink-faint);text-transform:uppercase}.visual-preset-specs{margin-top:3px;font:800 8px/1.2 var(--font);color:var(--blue-deep);text-transform:uppercase;overflow-wrap:anywhere}.visual-preset-check{position:absolute;right:8px;bottom:10px;display:none;width:18px;height:18px;border-radius:50%;place-items:center;color:#07111f;background:var(--blue)}.visual-preset-check .icn{font-size:12px}.visual-preset-card[aria-pressed=true] .visual-preset-check{display:grid}.lighting-rig-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.lighting-rig-card{min-width:0;min-height:62px;padding:9px 10px;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:9px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-in);color:var(--ink);text-align:left;transition:border-color .16s ease,background .16s ease,transform .16s ease}.lighting-rig-card:hover{border-color:#67a1e3a8;transform:translateY(-1px)}.lighting-rig-card[aria-pressed=true]{border-color:var(--blue);background:#3b82d91a}.lighting-rig-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--blue-deep);background:#67a1e31f}.lighting-rig-icon .icn{font-size:18px}.lighting-rig-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.lighting-rig-copy strong{font:var(--text-label);overflow-wrap:anywhere}.lighting-rig-copy small{font:var(--text-hint);color:var(--ink-soft);overflow-wrap:anywhere}.scene-control-stack{display:flex;flex-direction:column;gap:10px}.scene-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.scene-range-row{display:flex;flex-direction:column;gap:5px}.scene-range-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font:var(--text-hint);color:var(--ink-soft)}.scene-range-value{font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}.scene-range{width:100%;height:24px;margin:0;accent-color:var(--blue);cursor:pointer}.scene-segment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font:var(--text-hint);color:var(--ink-soft)}.scene-segment-row .seg{justify-content:flex-end}.scene-segment-row .seg button{padding:7px 10px;border-width:1px}.stepper{display:flex;align-items:center;gap:var(--s-sm)}.stepper button{width:40px;height:40px;border-radius:var(--r-sm);background:var(--gray-btn);display:grid;place-items:center}.stepper button:hover{background:var(--gray-btn-hover)}.stepper .stepper-val{flex:1;text-align:center;font:800 17px/1 var(--font);display:flex;align-items:center;justify-content:center;gap:8px;background:var(--gray-btn);border-radius:var(--r-sm);height:40px}.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{padding:9px 14px;border-radius:var(--r-sm);background:var(--gray-btn);border:2px solid transparent}.seg button:hover{background:var(--gray-btn-hover)}.seg button[aria-pressed=true]{border-color:var(--blue);background:#3b82d91a;color:var(--blue-deep)}.vol-row{display:grid;grid-template-columns:26px 1fr 42px;align-items:center;gap:var(--s-sm)}.vol-row .icn{color:var(--ink-soft);font-size:19px}.vol-row input[type=range]{width:100%;height:28px;accent-color:var(--blue);cursor:pointer}.vol-row .pct{font:var(--text-hint);color:var(--ink-soft);text-align:right;font-variant-numeric:tabular-nums}.vol-label{font:var(--text-hint);color:var(--ink);margin:2px 0 0}.switch-row{display:flex;align-items:center;gap:var(--s-sm);padding:4px 0}.switch-row .grow{flex:1;min-width:0}.switch-row .t{font:var(--text-label);display:block}.switch-row .d{font:var(--text-hint);color:var(--ink-soft)}.switch{width:46px;height:27px;border-radius:var(--r-pill);flex:none;background:#cdd7e1;position:relative;transition:background .15s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:var(--shadow-btn);transition:left .15s}.switch[aria-checked=true]{background:var(--green)}.switch[aria-checked=true]:after{left:22px}.btn-secondary{display:inline-flex;align-items:center;gap:8px;background:var(--gray-btn);border-radius:var(--r-sm);padding:10px 14px}.btn-secondary:hover{background:var(--gray-btn-hover)}.theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-sm)}.theme-card{border:2px solid transparent;border-radius:var(--r-md);background:var(--panel-in);box-shadow:var(--shadow-btn);padding:var(--s-sm);display:flex;flex-direction:column;gap:6px;align-items:stretch}.theme-card[aria-pressed=true]{border-color:var(--blue)}.theme-card .swatches{display:flex;height:44px;border-radius:var(--r-sm);overflow:hidden}.theme-card .swatches i{flex:1}.theme-card .t{font:var(--text-label);text-align:left}.custom-colors{display:flex;gap:var(--s-sm);align-items:center;flex-wrap:wrap}.custom-colors label{display:flex;flex-direction:column;gap:4px;font:var(--text-hint);color:var(--ink-soft);align-items:center}.custom-colors input[type=color]{width:52px;height:36px;border:1px solid var(--line);border-radius:var(--r-sm);padding:2px;background:#fff;cursor:pointer}.chip-grid{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--r-pill);background:var(--gray-btn);border:2px solid transparent;font:var(--text-hint);font-weight:700}.chip:hover{background:var(--gray-btn-hover)}.chip[aria-pressed=true]{border-color:var(--blue);background:#3b82d91a;color:var(--blue-deep)}.chip .icn{font-size:16px}.popover{position:fixed;z-index:50;min-width:180px;max-width:min(280px,calc(100vw - 16px));max-height:72vh;overflow-y:auto;background:var(--glass-strong);border-radius:var(--r-md);box-shadow:var(--shadow-float);padding:6px}.popover button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:var(--r-sm);text-align:left}.popover button:hover{background:var(--gray-btn)}.popover .icn{font-size:18px;color:var(--ink-soft)}#stars-hud{position:fixed;top:calc(var(--s-md) + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:18;display:flex;align-items:center;gap:7px;background:var(--navy);color:#fff;border-radius:var(--r-pill);padding:8px 16px 8px 13px;box-shadow:var(--shadow-panel);font:800 16px/1 var(--font);font-variant-numeric:tabular-nums}#stars-hud[hidden]{display:none}#stars-hud .icn{color:var(--amber);font-size:19px}#stars-hud.bump{animation:starbump .4s cubic-bezier(.2,1.5,.4,1)}@keyframes starbump{40%{transform:translate(-50%) scale(1.25)}}body.riding #stars-hud{top:calc(58px + env(safe-area-inset-top))}@media(prefers-reduced-motion:reduce){#stars-hud.bump{animation:none}}#lab-hud{position:fixed;top:calc(70px + env(safe-area-inset-top));right:calc(var(--s-md) + env(safe-area-inset-right));z-index:14;width:236px;background:#111b2be0;color:var(--ink);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-md);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:10px}#lab-hud[hidden],body.build-mode #lab-hud{display:none}.lab-head{display:flex;align-items:center;gap:7px;font:var(--text-label);color:#fff;min-width:0}.lab-head .icn{color:var(--blue-deep);font-size:17px}.lab-head>span:nth-child(2){flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-status{flex:none;font:var(--text-hint);font-weight:800;color:#07101f;background:var(--green);border-radius:var(--r-pill);padding:3px 8px}#lab-hud[data-status=airtime] .lab-status{background:var(--amber)}#lab-hud[data-status=high-g] .lab-status,#lab-hud[data-status=lateral] .lab-status{background:var(--coral);color:#fff}#lab-hud[data-status=fast] .lab-status{background:var(--blue-deep)}.lab-train{margin:7px 0 8px;font:800 15px/1.2 var(--font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.lab-metric{min-width:0;border-radius:var(--r-sm);background:#ffffff12;padding:7px 8px}.lab-label{display:block;font:var(--text-hint);color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-reading{display:flex;align-items:baseline;gap:3px;margin-top:2px;font-variant-numeric:tabular-nums}.lab-value{font:900 19px/1 var(--font);color:#fff}.lab-unit{font:var(--text-hint);color:var(--ink-faint)}.welcome{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#060b11ad;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:scrimIn .2s ease-out;padding:20px}.welcome-panel{width:min(900px,calc(100vw - 32px));max-height:min(720px,calc(100dvh - 32px));overflow:auto;padding:22px;color:#fff;background:#111923;border:1px solid rgba(148,166,184,.28);border-radius:8px;box-shadow:0 24px 70px #0000007a}.welcome-head{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:16px}.welcome-head>div:last-child{min-width:0}.welcome-kicker{color:#7fb0e9;font:800 9px/1 var(--font);text-transform:uppercase}.welcome-head h2{margin:5px 0;color:#fff;font:800 25px/1.05 var(--font)}.welcome-head p{margin:0;color:#e1eaf2b8;font:var(--text-body)}.welcome-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px}.welcome-path{min-width:0;overflow:hidden;padding:0;color:#e8eef4;text-align:left;background:#18222d;border:1px solid rgba(145,164,182,.22);border-radius:6px;transition:transform .16s ease,border-color .16s ease,background .16s ease}.welcome-path:hover,.welcome-path:focus-visible{transform:translateY(-2px);border-color:#4c91ef;background:#1b2835}.welcome-path-image{display:block;width:100%;aspect-ratio:4 / 3;background:#25313c url(/assets/previews/coaster-presets-v2.jpg) no-repeat var(--preview-x) var(--preview-y) / 400% 300%;border-bottom:1px solid rgba(148,166,184,.18)}.welcome-path-copy{min-height:92px;display:flex;flex-direction:column;gap:5px;padding:12px}.welcome-path-copy strong{color:#fff;font:750 13px/1.15 var(--font)}.welcome-path-copy small{color:#aebdca;font:600 10px/1.25 var(--font)}.welcome-path-copy>span{margin-top:auto;color:#72c2c8;font:750 8px/1.2 var(--font);text-transform:uppercase}.welcome-foot{min-height:48px;display:flex;align-items:end;justify-content:space-between;gap:16px;margin-top:12px;color:#8595a5;font:500 10px/1.2 var(--font)}.welcome-open{min-height:36px;padding:0 14px;color:#d8e2eb;border:1px solid rgba(145,164,182,.3);border-radius:5px;font:700 10px/1 var(--font)}.welcome-open:hover{color:#fff;background:#ffffff0f}.welcome-mark{width:64px;height:64px;border-radius:7px;display:grid;place-items:center;background:#202c39;color:#fff;font-size:34px;box-shadow:var(--shadow-float)}.welcome-go{margin-top:8px;padding:13px 32px;border-radius:var(--r-pill);background:var(--green);color:#fff;font:800 17px/1 var(--font);box-shadow:var(--shadow-float)}.welcome-go:active{transform:scale(.96)}@media(max-width:700px){.welcome{padding:6px}.welcome-panel{width:calc(100vw - 12px);max-height:calc(100dvh - 12px);padding:14px}.welcome-head{grid-template-columns:46px minmax(0,1fr);gap:10px}.welcome-mark{width:46px;height:46px;font-size:25px}.welcome-head h2{font-size:19px}.welcome-head p{font-size:10px}.welcome-paths{grid-template-columns:1fr;gap:7px;margin-top:14px}.welcome-path{display:grid;grid-template-columns:112px minmax(0,1fr)}.welcome-path-image{height:100%;min-height:92px;aspect-ratio:auto;border-bottom:0;border-right:1px solid rgba(148,166,184,.18)}.welcome-path-copy{min-height:92px;padding:10px}.welcome-foot{align-items:center}.welcome-foot>span{display:none}.welcome-open{width:100%}}@media(prefers-reduced-motion:reduce){.welcome{animation:none}}#exit-ride{position:fixed;left:50%;top:calc(var(--s-md) + env(safe-area-inset-top));transform:translate(-50%);z-index:25;display:none;align-items:center;gap:8px;background:var(--navy);color:#fff;border-radius:var(--r-pill);padding:11px 20px;box-shadow:var(--shadow-float);font:var(--text-label)}body.riding #exit-ride{display:flex}body.riding .train-panel,body.riding .tipbar{display:none}#exit-ride .icn{font-size:18px}@keyframes modalIn{0%{opacity:0;transform:translate(-50%,-46%)}}.train-modal{position:fixed;z-index:60;top:50%;left:50%;transform:translate(-50%,-50%);width:min(380px,calc(100vw - 24px));max-height:calc(100vh - 32px);overflow-y:auto;background:var(--glass-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-float);padding:var(--s-lg);display:flex;flex-direction:column;gap:8px;animation:modalIn .18s ease-out}.drawer-scrim.scrim-top{z-index:60}.tm-head .pop-name{font-size:16px}@media(max-width:360px){.tm-horns{flex-wrap:nowrap}.tm-horns button{flex:1;min-width:0;padding:6px 2px;font-size:11px}.tm-row{gap:8px}.tm-row .seg{min-width:0}}.tm-head{display:flex;align-items:center;gap:10px;margin-bottom:2px}.tm-head .pop-name{flex:1;margin:0}.tm-avatar{width:50px;height:42px;border-radius:7px;flex:none;color:var(--ink);background:#17212c;border:1px solid var(--line);box-shadow:inset 4px 0 var(--train-color, var(--blue));display:grid;place-items:center;overflow:hidden}.tm-avatar svg{width:40px;height:30px;display:block}.tm-close{width:34px;height:34px;flex:none;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--gray-btn);color:var(--ink)}.tm-close:hover{background:var(--gray-btn-hover)}.tm-horns button,.train-modal .seg button{padding:7px 8px;font-size:12px}.tm-vehicles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.tm-vehicles .tm-vehicle{width:100%;text-align:center;font-weight:700}.tm-liveries{flex-wrap:wrap}.tm-liveries button.tm-livery{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;font-size:11px}.tm-livery .lv-chips{display:inline-flex;gap:2px}.tm-livery .lv-chips i{width:9px;height:14px;border-radius:3px;display:block}.train-modal .seg{gap:4px}.tm-row .seg{flex-wrap:nowrap}.tm-row .seg button{flex:1;padding:6px 2px;text-align:center}.train-modal .face-row{gap:5px;flex-wrap:nowrap}.train-modal .face-pick{width:38px;height:38px;padding:0;display:grid;place-items:center}.train-modal .face-pick svg{width:30px;height:30px}.train-modal .face-pick[aria-pressed=true]{border-color:var(--blue);box-shadow:0 0 0 3px #3b82d959}.train-modal .stepper{gap:5px}.train-modal .stepper button{width:36px;height:36px}.train-modal .stepper-val{height:36px;min-width:36px;flex:none;font-size:16px}.tm-row{display:grid;grid-template-columns:112px 1fr;gap:14px;align-items:start}.tm-col{display:flex;flex-direction:column;gap:4px;min-width:0}.tm-actions{display:flex;gap:8px;margin-top:2px}.tm-actions button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 4px;border-radius:var(--r-md);background:var(--gray-btn);color:var(--ink);font:var(--text-label)}.tm-actions button:hover{background:var(--gray-btn-hover)}.tm-sendhome{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 4px;margin-top:2px;border-radius:var(--r-md);color:var(--coral);background:transparent;font:var(--text-hint);font-weight:700}.tm-sendhome:hover{background:#e0584c1f}.music-list{display:flex;flex-direction:column;gap:4px}.music-row{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 10px;border-radius:var(--r-sm);background:var(--gray-btn)}.music-name{flex:1;min-width:0;font:var(--text-label);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-x{width:26px;height:26px;flex:none;padding:0;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--ink-faint)}.music-x:hover{background:var(--navy-2);color:var(--coral)}.clip-modal{position:fixed;z-index:61;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 24px));background:var(--glass-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-lg);box-shadow:var(--shadow-float);padding:var(--s-lg);display:flex;flex-direction:column;gap:10px;animation:modalIn .18s ease-out}.clip-title{margin:0;flex:1;font:800 19px/1.2 var(--font)}.clip-video{width:100%;border-radius:var(--r-md);background:#000;display:block}.clip-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center}.clip-save{text-decoration:none;display:inline-flex;align-items:center;gap:8px;padding:11px 22px;font-size:15px}.clip-note{margin:0;font:var(--text-hint);color:var(--ink-soft);text-align:center}@media(prefers-reduced-motion:reduce){.clip-modal{animation:none}}.face-pick.tm-draw{color:var(--ink);background:var(--gray-btn)}.face-pick.tm-draw .icn{font-size:17px}.face-pick.tm-draw[aria-pressed=true]{border-color:var(--ink);box-shadow:var(--focus-ring)}.face-modal{position:fixed;z-index:61;top:50%;left:50%;transform:translate(-50%,-50%);width:min(300px,calc(100vw - 24px));background:var(--glass-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-float);padding:var(--s-lg);display:flex;flex-direction:column;align-items:center;gap:12px;animation:modalIn .18s ease-out}.face-modal h2{margin:0;font:800 19px/1.2 var(--font)}.face-canvas{width:220px;height:220px;border-radius:50%;background:#fff6e8;box-shadow:0 3px 12px #00000040;touch-action:none;cursor:crosshair}.face-swatches{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.face-swatch{width:30px;height:30px;border-radius:50%;border:2px solid var(--line)}.face-swatch[aria-pressed=true]{box-shadow:var(--focus-ring);border-color:#fff}.face-swatch:active{transform:scale(.9)}.face-tools{display:flex;gap:8px}.face-note{margin:0;font:var(--text-hint);color:var(--coral)}.face-tool{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--r-sm);background:var(--gray-btn);color:var(--ink);font:var(--text-hint);font-weight:700}.face-tool:hover{background:var(--gray-btn-hover)}.face-tool[aria-pressed=true]{background:var(--blue);color:#fff}.face-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;width:100%;margin-top:2px}.face-actions .btn-secondary,.face-actions .welcome-go{height:46px;display:inline-flex;align-items:center;margin:0;border-radius:var(--r-pill)}.face-actions .btn-secondary{padding:0 24px;font-size:15px;font-weight:800}@media(prefers-reduced-motion:reduce){.face-modal,.train-modal{animation:none}}.help-modal{position:fixed;z-index:41;top:50%;left:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));background:var(--glass-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-float);padding:var(--s-lg);display:flex;flex-direction:column;gap:var(--s-md)}.help-modal h2{margin:0;font:800 20px/1.2 var(--font);display:flex;align-items:center;gap:8px}.help-modal ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px}@media(prefers-reduced-motion:reduce){.dock-btn.pulse{animation:none;outline:3px solid var(--amber)}#banner.pop,#mode-bar .bounce{animation:none}.switch,.switch:after,.tipbar{transition:none}}@media(max-width:900px){.train-strip{max-width:46vw}}@media(max-width:700px){.app-badge span.txt{display:none}.toolbar{left:var(--s-sm);right:var(--s-sm);bottom:var(--s-sm);justify-content:space-between;padding:6px}.tool-btn{flex:1;min-width:0;padding:7px 2px 5px}.tool-btn span.lbl{font-size:9px}.dock{left:var(--s-sm);bottom:76px;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0;gap:6px}.dock-btn{width:60px;padding:7px 3px 5px;box-shadow:var(--shadow-btn)}.dock-btn span.lbl{font-size:10px}.view-cluster{bottom:76px}.undo-toast{bottom:calc(146px + env(safe-area-inset-bottom));max-width:94vw}.train-panel{width:min(220px,calc(100vw - 16px))}.tipbar{top:240px;max-width:calc(100vw - 16px)}#lab-hud{top:auto;bottom:calc(146px + env(safe-area-inset-bottom));right:var(--s-sm);width:min(210px,calc(100vw - 16px))}.drawer{top:auto;max-height:78vh;left:var(--s-sm);right:var(--s-sm);bottom:var(--s-sm);width:auto}.visual-preset-grid.environment-atlas-grid,.visual-preset-grid.coaster-atlas-grid,.lighting-rig-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scene-control-grid{grid-template-columns:1fr}.drawer-foot{padding:8px 12px;font-size:10px}.drawer-foot-priv{display:none}#mode-bar{bottom:132px;max-width:calc(100vw - 16px)}}.app-header{position:fixed;top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));z-index:22;height:56px;display:grid;grid-template-columns:minmax(190px,1fr) auto minmax(300px,1fr);align-items:center;gap:12px;padding:6px;color:var(--ink);background:#0d131cf0;border:1px solid rgba(255,255,255,.12);border-radius:var(--r-md);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-wordmark{min-width:0;display:flex;align-items:center;gap:9px;padding:0 5px}.app-wordmark-mark{width:34px;height:34px;flex:none;display:grid;place-items:center;color:#dbeafe;background:#263548;border:1px solid rgba(116,167,247,.5);border-radius:6px}.app-wordmark-mark .icn{font-size:21px}.app-wordmark-copy{min-width:0;display:flex;flex-direction:column;line-height:1}.app-wordmark-copy strong{overflow:hidden;color:#fff;font:800 13px/1.15 var(--font);white-space:nowrap;text-overflow:ellipsis}.app-wordmark-copy small{margin-top:3px;color:var(--ink-faint);font:700 9px/1 var(--font);text-transform:uppercase}.brand-short{display:none}.app-mode-nav{display:flex;align-items:center;gap:2px;padding:3px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:7px}.app-mode-btn{min-width:88px;height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;color:var(--ink-soft);border-radius:5px;font:700 12px/1 var(--font)}.app-mode-btn .icn{font-size:17px}.app-mode-btn:hover{color:#fff;background:#ffffff14}.app-mode-btn[aria-pressed=true]{color:#fff;background:#29374a;box-shadow:inset 0 0 0 1px #74a7f742}.app-mode-btn[aria-pressed=true] .icn{color:var(--blue-deep)}.app-header-tools{min-width:0;justify-self:end;display:flex;align-items:center;gap:3px}.app-header .util-btn{width:36px;height:36px;color:var(--ink-soft);background:transparent;border:1px solid transparent;border-radius:6px;box-shadow:none}.app-header .util-btn:hover{color:#fff;background:#ffffff14;border-color:#ffffff1a}.app-header .util-btn .icn{font-size:18px}.header-publish{position:relative;overflow:visible}.header-experience{width:auto!important;min-width:82px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 10px;color:#dffbf6!important;background:#2e94891f!important;border-color:#55d6c240!important}.header-experience .util-label{display:inline;font:750 10px/1 var(--font)}.header-experience .icn{color:#55d6c2}.header-publish .util-label{position:absolute;top:-1px;right:29px;z-index:1;width:0;height:36px;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;padding:0;color:#fff;opacity:0;background:#202b3a;border:1px solid rgba(255,255,255,.12);border-right:0;border-radius:6px 0 0 6px;white-space:nowrap;font:700 10px/1 var(--font);pointer-events:none;transition:width .22s cubic-bezier(.2,.8,.2,1),opacity .16s ease,padding .22s ease}@media(hover:hover){.header-publish:hover .util-label,.header-publish:focus-visible .util-label{width:62px;padding-left:10px;opacity:1;transition-delay:.12s}}.run-state{height:32px;display:flex;align-items:center;gap:7px;margin-right:4px;padding:0 10px;color:var(--ink-soft);border-right:1px solid var(--line);font:700 11px/1 var(--font)}.run-state-dot{width:7px;height:7px;flex:none;background:var(--ink-faint);border-radius:50%}.run-state.is-running{color:#d8fbe7}.run-state.is-running .run-state-dot{background:var(--green);box-shadow:0 0 0 3px #37b26c29}body:not([data-workspace=design]) .toolbar{display:none}.toolbar{top:calc(72px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));right:auto;bottom:auto;width:54px;flex-direction:column;align-items:flex-start;gap:2px;padding:4px;overflow:visible;background:var(--glass-strong);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-panel)}.tool-btn{position:relative;width:44px;min-width:44px;height:44px;min-height:44px;overflow:hidden;display:grid;grid-template-columns:36px 0;align-items:center;justify-content:start;gap:0;padding:0 4px;border-radius:5px;color:var(--ink-soft);text-align:left;transition:width .22s cubic-bezier(.2,.8,.2,1),grid-template-columns .22s cubic-bezier(.2,.8,.2,1),background .16s ease}.tool-btn .icn{width:36px;font-size:18px}.tool-copy{width:0;min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:3px;opacity:0;white-space:nowrap;transition:width .22s cubic-bezier(.2,.8,.2,1),opacity .14s ease}.tool-btn .tool-copy .lbl{max-width:none;overflow:hidden;color:#fff;font:750 10px/1 var(--font);text-overflow:ellipsis}.tool-hint{overflow:hidden;color:var(--ink-faint);font:650 8px/1 var(--font);text-overflow:ellipsis}.tool-state{position:absolute;right:4px;bottom:4px;width:5px;height:5px;opacity:0;background:var(--blue-deep);border-radius:50%}.tool-btn[aria-pressed=true]{color:#fff;background:#263b58;box-shadow:inset 2px 0 #6fa5ee}.tool-btn[aria-pressed=true] .tool-state{opacity:1}@media(hover:hover){.tool-btn:hover,.tool-btn:focus-visible{z-index:3;width:174px;grid-template-columns:36px minmax(0,1fr);padding-right:10px;background:#202b3a;border-color:#ffffff1f;box-shadow:var(--shadow-btn);transition-delay:.12s}.tool-btn:hover .tool-copy,.tool-btn:focus-visible .tool-copy{width:118px;opacity:1;transition-delay:.12s}}@media(prefers-reduced-motion:reduce){.tool-btn,.tool-copy,.header-publish .util-label{transition:none}}.dock{left:calc(8px + env(safe-area-inset-left));bottom:calc(8px + env(safe-area-inset-bottom));gap:2px;padding:4px;background:var(--glass-strong);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-panel)}.dock-btn{width:66px;height:48px;flex-direction:row;justify-content:center;gap:6px;padding:0 8px;background:transparent;border-radius:5px}.dock-btn.playpause{width:80px}.dock-btn .icn{font-size:18px}.dock-btn span.lbl{font-size:10px}.dock-btn.playpause.is-running{background:#273548}body:not([data-workspace=design]) .dock-btn.history{display:none}.dock-btn.history{width:40px;padding:0;border-left:1px solid var(--line);border-radius:0}.dock-btn.history+.dock-btn.history{border-left:0}.dock-btn.history .lbl{display:none}.dock-btn.history:disabled{color:var(--ink-faint);opacity:.42;cursor:default}.train-panel{background:var(--glass-strong);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-panel)}body[data-workspace=design] .train-panel,body[data-workspace=analyze] .train-panel{display:none}.panel-head{min-height:36px;background:#ffffff06}.panel-head .cap{color:var(--ink-soft);font:700 11px/1 var(--font);text-transform:uppercase}.tipbar{top:calc(72px + env(safe-area-inset-top));padding:7px 12px;color:var(--ink-soft);background:#0d131ce0;border:1px solid rgba(255,255,255,.1);border-radius:6px;box-shadow:var(--shadow-panel)}.track-inspector{position:fixed;top:calc(72px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));z-index:20;width:282px;overflow:hidden;color:var(--ink);background:var(--glass-strong);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-panel)}.track-inspector[hidden]{display:none}.track-inspector-head{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px 7px 11px;border-bottom:1px solid var(--line)}.track-inspector-title{min-width:0;display:flex;flex-direction:column;gap:4px}.track-inspector-title strong{overflow:hidden;color:#fff;font:750 13px/1.1 var(--font);text-overflow:ellipsis;white-space:nowrap}.track-inspector-context{color:var(--ink-faint);font:700 9px/1 var(--font);text-transform:uppercase}.track-inspector-actions{display:flex;align-items:center;gap:2px}.track-inspector-actions button{width:30px;height:30px;display:grid;place-items:center;color:var(--ink-soft);border-radius:5px}.track-inspector-actions button:hover{color:#fff;background:#ffffff12}.track-inspector-collapse .icn{transition:transform .16s ease}.track-inspector.is-collapsed .track-inspector-collapse .icn{transform:rotate(180deg)}.track-inspector.is-collapsed .track-inspector-body{display:none}.track-inspector.is-collapsed .track-inspector-head{border-bottom:0}.track-inspector-body{padding:0 10px 9px}.track-inspector-section{padding:10px 0;border-bottom:1px solid var(--line)}.track-inspector-section:last-child{padding-bottom:2px;border-bottom:0}.track-inspector-section-head{min-height:24px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;color:var(--ink-soft);font:750 10px/1 var(--font);text-transform:uppercase}.track-inspector-section-head small{color:var(--ink-faint);font:650 8px/1 var(--font);text-transform:none}.track-inspector-grid{display:grid;gap:5px}.track-inspector-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.track-inspector-grid.bank{grid-template-columns:minmax(0,1fr) 2fr}.track-inspector-field{min-width:0;display:block}.track-inspector-label{display:block;margin:0 0 4px 2px;color:var(--ink-faint);font:700 8px/1 var(--font);text-transform:uppercase}.track-inspector-control{position:relative;display:block}.track-inspector-input{width:100%;height:34px;padding:0 24px 0 7px;color:#f4f7fb;background:#ffffff0b;border:1px solid var(--line);border-radius:4px;font:700 11px/1 var(--font);font-variant-numeric:tabular-nums}.track-inspector-input:hover{border-color:#ffffff2e}.track-inspector-input:focus{border-color:#74a7f7;outline:2px solid rgba(116,167,247,.2);outline-offset:0}.track-inspector-input:disabled{color:var(--ink-faint);opacity:.58}.track-inspector-unit{position:absolute;top:50%;right:7px;color:var(--ink-faint);font:700 8px/1 var(--font);transform:translateY(-50%);pointer-events:none}.track-inspector-mode{display:inline-flex;padding:2px;background:#ffffff0a;border:1px solid var(--line);border-radius:5px}.track-inspector-mode button{min-width:45px;height:24px;padding:0 7px;color:var(--ink-faint);border-radius:3px;font:700 9px/1 var(--font);text-transform:none}.track-inspector-mode button[aria-pressed=true]{color:#fff;background:#2b3a4e}#lab-hud{top:auto;right:calc(8px + env(safe-area-inset-right));bottom:calc(8px + env(safe-area-inset-bottom));width:min(720px,calc(100vw - 246px));min-height:58px;display:grid;grid-template-columns:132px 96px minmax(420px,1fr);align-items:center;gap:8px;padding:7px;background:var(--glass-strong);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-panel)}#lab-hud[hidden],body.build-mode #lab-hud,body[data-workspace=design] #lab-hud{display:none}.lab-head{gap:6px;min-width:0;padding-left:3px;font-size:11px}.lab-head .icn{font-size:15px}.lab-head>span:nth-child(2){white-space:normal;line-height:1.15}.lab-status{padding:3px 6px;color:#06140d;border-radius:4px;font-size:9px}.lab-train{margin:0;padding:0 8px;color:#fff;border-left:1px solid var(--line);border-right:1px solid var(--line);font-size:12px}.lab-grid{grid-template-columns:repeat(7,minmax(54px,1fr));gap:3px}.lab-metric{padding:5px 6px;background:#ffffff0b;border-radius:5px}.lab-label{font-size:9px}.lab-value{font-size:15px}.lab-unit{font-size:9px}body[data-workspace=analyze] #lab-hud{top:calc(72px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));bottom:auto;width:280px;min-height:0;display:block;padding:10px}body[data-workspace=analyze] .lab-head{padding:0;font-size:13px}body[data-workspace=analyze] .lab-train{margin:9px 0;padding:9px 0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15px}body[data-workspace=analyze] .lab-grid{grid-template-columns:1fr 1fr;gap:6px}body[data-workspace=analyze] .lab-metric{padding:8px}body[data-workspace=analyze] .lab-label{font-size:11px}body[data-workspace=analyze] .lab-value{font-size:20px}body[data-workspace=analyze] .lab-unit{font-size:11px}#ride-cockpit{position:fixed;top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));z-index:25;min-height:52px;display:none;align-items:stretch;gap:8px;padding:5px;color:var(--ink);background:#0d131cf0;border:1px solid rgba(255,255,255,.13);border-radius:6px;box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}body.riding #ride-cockpit{display:flex}.ride-cockpit-ident{width:128px;min-width:0;display:grid;align-content:center;padding:0 8px 0 6px;border-right:1px solid var(--line)}.ride-cockpit-kicker,.ride-cockpit-spec{overflow:hidden;color:var(--ink-faint);font:700 8px/1.15 var(--font);text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap}.ride-cockpit-name{margin:3px 0;overflow:hidden;color:#fff;font:800 12px/1 var(--font);text-overflow:ellipsis;white-space:nowrap}.ride-camera-modes{min-width:0;display:flex;align-items:center;gap:2px;padding:2px;background:#ffffff0a;border:1px solid var(--line);border-radius:4px;overflow-x:auto;scrollbar-width:none}.ride-camera-modes::-webkit-scrollbar{display:none}.ride-camera-button{flex:none;height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 9px;color:var(--ink-faint);border-radius:3px;font:700 10px/1 var(--font)}.ride-camera-button .icn{font-size:15px}.ride-camera-button:hover{color:#fff;background:#ffffff0f}.ride-camera-button[aria-pressed=true]{color:#fff;background:#2b3a4e;box-shadow:inset 0 0 0 1px #74a7f73d}body.riding .app-header,body.riding .dock,body.riding .toolbar,body.riding .train-panel,body.riding .tipbar{display:none}body.riding #lab-hud{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));bottom:calc(8px + env(safe-area-inset-bottom));width:auto;grid-template-columns:132px 104px minmax(420px,1fr)}#exit-ride{top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));left:auto;min-width:72px;height:52px;justify-content:center;padding:0 14px;background:#0d131cf0;border:1px solid var(--line);border-radius:6px;transform:none}.undo-toast,.welcome-go{border-radius:var(--r-md)}.welcome-mark{border-radius:var(--r-md);background:#243247}@media(max-width:1100px)and (min-width:701px){.app-header{grid-template-columns:minmax(170px,1fr) auto minmax(225px,1fr)}.app-mode-btn{min-width:72px;padding:0 9px}.header-help{display:none}.header-experience{min-width:36px;width:36px!important;padding:0}.header-experience .util-label{display:none}.ride-camera-button{width:34px;justify-content:center;padding:0}.ride-camera-button>span:not(.icn){display:none}#lab-hud{width:min(560px,calc(100vw - 246px));grid-template-columns:116px 88px minmax(250px,1fr)}.lab-grid{grid-template-columns:repeat(3,minmax(58px,1fr))}body[data-workspace=ride] .lab-metric-jerk{display:none}}@media(max-width:700px){.app-header{top:calc(6px + env(safe-area-inset-top));left:calc(6px + env(safe-area-inset-left));right:calc(6px + env(safe-area-inset-right));height:48px;grid-template-columns:auto 1fr auto;gap:4px;padding:4px}.app-wordmark{gap:5px;padding:0 2px}.app-wordmark-mark{width:30px;height:30px}.app-wordmark-mark .icn{font-size:18px}.app-wordmark-copy strong{font-size:10px}.app-wordmark-copy small{margin-top:2px;font-size:7px}.brand-full{display:none}.brand-short{display:block}.app-mode-nav{justify-self:center;padding:2px}.app-mode-btn{width:34px;min-width:34px;height:32px;padding:0}.app-mode-btn>span:not(.icn){display:none}.app-mode-btn .icn{font-size:16px}.app-header .util-btn{width:32px;height:32px}.header-publish .util-label{display:none}.header-experience{min-width:32px;width:32px!important;padding:0;background:transparent!important;border-color:transparent!important}.header-experience .util-label{display:none}.app-header-tools{gap:1px}.run-state,.header-account,.header-gallery,.header-help{display:none}body:not([data-workspace=design]) .toolbar{display:none}body[data-workspace=design] .toolbar{top:auto;left:calc(6px + env(safe-area-inset-left));right:calc(6px + env(safe-area-inset-right));bottom:calc(6px + env(safe-area-inset-bottom));width:auto;flex-direction:row;justify-content:space-between;padding:4px}.tool-btn{flex:1;width:auto;min-width:0;height:50px;min-height:50px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:5px 2px;text-align:center}.tool-btn .icn{width:auto}.tool-copy{width:auto;overflow:visible;display:block;opacity:1}.tool-btn .tool-copy .lbl{max-width:62px;display:block;font-size:8px}.tool-hint,.tool-state{display:none}.tool-btn:hover,.tool-btn:focus-visible{width:auto;grid-template-columns:none;padding-right:2px}.dock{left:calc(6px + env(safe-area-inset-left));bottom:calc(6px + env(safe-area-inset-bottom));padding:3px;background:var(--glass-strong);border:1px solid var(--line)}body[data-workspace=design] .dock{bottom:calc(74px + env(safe-area-inset-bottom))}.dock-btn{width:64px;height:44px;padding:0 5px;box-shadow:none}.dock-btn.playpause{width:72px}.dock-btn span.lbl{font-size:9px}.train-panel{width:min(270px,calc(100vw - 12px))}.tipbar{top:auto;bottom:calc(228px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);font-size:11px}body[data-workspace=analyze] .tipbar{display:none}body[data-workspace=design].track-knot-selected .tipbar{top:calc(62px + env(safe-area-inset-top));padding:5px 8px;max-width:calc(100vw - 12px);overflow:hidden;font-size:10px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.track-inspector{top:auto;left:calc(6px + env(safe-area-inset-left));right:calc(6px + env(safe-area-inset-right));bottom:calc(132px + env(safe-area-inset-bottom));width:auto;max-height:calc(100vh - 204px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto}.track-inspector-head{min-height:44px;padding-top:5px;padding-bottom:5px}.track-inspector-body{padding-bottom:7px}#lab-hud{top:auto;left:calc(6px + env(safe-area-inset-left));right:calc(6px + env(safe-area-inset-right));bottom:calc(62px + env(safe-area-inset-bottom));width:auto;min-height:0;display:block;padding:7px}.lab-head{padding:0}.lab-head>span:nth-child(2){white-space:nowrap}.lab-train{margin:5px 0;padding:5px 0;border:0;border-top:1px solid var(--line)}.lab-grid{grid-template-columns:repeat(3,1fr);gap:3px}.lab-metric{padding:5px 6px}body[data-workspace=analyze] #lab-hud{top:calc(62px + env(safe-area-inset-top));left:calc(6px + env(safe-area-inset-left));right:calc(6px + env(safe-area-inset-right));bottom:auto;width:auto}body[data-workspace=analyze] .lab-grid{grid-template-columns:repeat(3,1fr)}body[data-workspace=ride] .lab-metric-jerk{display:none}#mode-bar{bottom:calc(68px + env(safe-area-inset-bottom))}#ride-cockpit{top:calc(6px + env(safe-area-inset-top));left:calc(6px + env(safe-area-inset-left));max-width:calc(100vw - 62px - env(safe-area-inset-left) - env(safe-area-inset-right));min-height:46px;padding:4px;gap:4px;-webkit-backdrop-filter:none;backdrop-filter:none}.ride-cockpit-ident{width:88px;padding:0 5px}.ride-cockpit-kicker{display:none}.ride-cockpit-name{margin:2px 0 4px;font-size:10px}.ride-cockpit-spec{font-size:7px}.ride-camera-button{width:34px;height:32px;justify-content:center;padding:0}.ride-camera-button>span:not(.icn){display:none}#exit-ride{top:calc(6px + env(safe-area-inset-top));right:calc(6px + env(safe-area-inset-right));min-width:46px;width:46px;height:46px;padding:0}#exit-ride>span:not(.icn){display:none}body.riding #lab-hud{left:calc(6px + env(safe-area-inset-left));right:calc(6px + env(safe-area-inset-right));bottom:calc(6px + env(safe-area-inset-bottom));width:auto}.app-header,.train-panel,#lab-hud,#heatmap-panel,.dock,.train-modal{-webkit-backdrop-filter:none;backdrop-filter:none}}#heatmap-panel{position:fixed;top:calc(72px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));z-index:14;width:min(470px,calc(100vw - 310px));display:none;padding:10px;color:var(--ink);background:var(--glass-strong);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow-panel)}body[data-workspace=analyze] #heatmap-panel{display:block}.heatmap-head{display:flex;align-items:center;gap:7px;min-height:22px;color:#fff;font:700 12px/1 var(--font)}.heatmap-head .icn{color:var(--blue);font-size:15px}.heatmap-head strong{flex:1;font:inherit}.heatmap-coverage{color:var(--ink-faint);font:700 9px/1 var(--font);font-variant-numeric:tabular-nums}.heatmap-modes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:8px;padding:3px;background:#ffffff09;border:1px solid var(--line);border-radius:5px}.heatmap-mode{min-width:0;height:29px;display:flex;align-items:center;justify-content:center;gap:5px;padding:0 5px;overflow:hidden;color:var(--ink-faint);border:1px solid transparent;border-radius:3px;font:700 10px/1 var(--font);white-space:nowrap}.heatmap-mode:hover{color:#fff;background:#ffffff0d}.heatmap-mode[aria-pressed=true]{color:#fff;background:#2b3a4e;border-color:#ffffff1f}.heatmap-swatch{width:8px;height:8px;flex:none;border-radius:2px}.swatch-speed{background:#2fc0b0}.swatch-verticalG{background:#e2b548}.swatch-lateralG{background:#4c78d6}.swatch-airtime{background:#39bbc8}.swatch-comfort{background:#d8565d}.heatmap-legend{margin-top:9px}.heatmap-legend-bar{height:8px;border:1px solid rgba(255,255,255,.12);border-radius:3px}.heatmap-legend-ticks{display:flex;justify-content:space-between;margin-top:4px;color:var(--ink-faint);font:700 9px/1 var(--font);font-variant-numeric:tabular-nums}@media(max-width:700px){#heatmap-panel{top:calc(62px + env(safe-area-inset-top));left:calc(6px + env(safe-area-inset-left));right:calc(6px + env(safe-area-inset-right));width:auto;padding:8px}.heatmap-modes{margin-top:6px;gap:2px}.heatmap-mode{height:27px;gap:3px;padding:0 2px;font-size:9px}.heatmap-swatch{width:7px;height:7px}.heatmap-legend{margin-top:7px}body[data-workspace=analyze] #lab-hud{top:calc(182px + env(safe-area-inset-top))}}#analysis-panel{position:fixed;left:250px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:15;height:218px;display:none;overflow:hidden;color:var(--ink);background:#0d131cf5;border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}body[data-workspace=analyze] #analysis-panel{display:block}#analysis-panel.is-empty{height:86px}.analysis-head{height:34px;display:flex;align-items:center;gap:12px;padding:0 10px;border-bottom:1px solid var(--line)}.analysis-journey{min-width:270px;margin:0 auto;padding:0;display:flex;align-items:center;justify-content:center;gap:0;list-style:none}.analysis-journey li{position:relative;min-width:64px;display:flex;align-items:center;gap:5px;color:var(--ink-faint);font:700 8px/1 var(--font)}.analysis-journey li:not(:last-child):after{width:18px;height:1px;margin:0 6px;content:"";background:#ffffff1f}.analysis-journey-mark{width:7px;height:7px;flex:none;background:#ffffff29;border-radius:50%}.analysis-journey li[data-state=active]{color:#dbeafe}.analysis-journey li[data-state=active] .analysis-journey-mark{background:var(--blue-deep);box-shadow:0 0 0 3px #3b82f624}.analysis-journey li[data-state=complete]{color:#9eddb7}.analysis-journey li[data-state=complete] .analysis-journey-mark{background:var(--green)}.analysis-zero{height:calc(100% - 34px);display:flex;align-items:center;gap:10px;padding:8px 10px}.analysis-zero[hidden]{display:none}.analysis-zero-icon{width:32px;height:32px;flex:none;display:grid;place-items:center;color:#9fc3f6;background:#3b82f61a;border:1px solid rgba(116,167,247,.2);border-radius:5px}.analysis-zero-icon .icn{font-size:16px}.analysis-zero-copy{min-width:0;display:flex;flex:1;flex-direction:column;gap:3px}.analysis-zero-copy strong{color:#fff;font:750 10px/1 var(--font)}.analysis-zero-copy small{color:var(--ink-faint);font:650 8px/1 var(--font)}.analysis-zero-action{height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;color:#fff;background:#2f6fcd;border-radius:5px;font:750 9px/1 var(--font)}.analysis-zero-action:hover{background:#3f7ed8}.analysis-zero-action .icn{font-size:13px}.geometry-workbench{position:fixed;left:322px;right:calc(8px + env(safe-area-inset-right));bottom:calc(8px + env(safe-area-inset-bottom));z-index:16;height:250px;display:none;overflow:hidden;color:var(--ink);background:#0d131cf7;border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}body[data-workspace=design] .geometry-workbench{display:block}body[data-workspace=design].geometry-workbench-expanded .tipbar{display:none}.geometry-workbench.is-collapsed{height:40px}.geometry-workbench.has-repair:not(.is-collapsed){height:286px}.geometry-workbench.is-collapsed .geometry-workbench-head{border-bottom:0}.geometry-workbench.is-collapsed .geometry-workbench-body{display:none}.geometry-workbench-head{height:40px;display:flex;align-items:center;gap:8px;padding:0 6px 0 10px;border-bottom:1px solid var(--line)}.geometry-workbench-title{min-width:156px;display:flex;align-items:center;gap:8px}.geometry-workbench-title>.icn{flex:none;color:#55d6c2;font-size:16px}.geometry-workbench-title>span{min-width:0;display:flex;flex-direction:column;gap:3px}.geometry-workbench-title strong{color:#fff;font:750 11px/1 var(--font)}.geometry-workbench-context{max-width:220px;overflow:hidden;color:var(--ink-faint);font:700 8px/1 var(--font);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.geometry-status{min-width:52px;padding:4px 6px;color:#91e0b0;background:#37b26c21;border-radius:4px;font:750 8px/1 var(--font);text-align:center;text-transform:uppercase}.geometry-status[data-status=review]{color:#f0ca6c;background:#e9b94924}.geometry-status[data-status=limit]{color:#ff9189;background:#ef625726}.geometry-compare-command{max-width:154px;height:30px;min-width:0;display:flex;align-items:center;gap:6px;padding:0 8px;color:#dffbf6;background:#55d6c217;border:1px solid rgba(85,214,194,.24);border-radius:4px;text-align:left}.geometry-compare-command[hidden]{display:none}.geometry-compare-command:hover:not(:disabled){color:#fff;background:#55d6c229}.geometry-compare-command:disabled{color:var(--ink-faint);background:#ffffff09;border-color:var(--line);cursor:default}.geometry-compare-command[data-state=complete]{color:#dbeafe;background:#78a9ff1a;border-color:#78a9ff40}.geometry-compare-command>.icn{flex:none;font-size:13px}.geometry-compare-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.geometry-compare-copy>span{overflow:hidden;font:750 8px/1 var(--font);text-overflow:ellipsis;white-space:nowrap}.geometry-compare-copy>small{overflow:hidden;color:var(--ink-faint);font:650 6px/1 var(--font);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.geometry-curve-select{width:84px;height:28px;padding:0 24px 0 7px;color:var(--ink-soft);background:#ffffff0e;border:1px solid var(--line);border-radius:4px;font:700 9px/1 var(--font)}.geometry-tabs{margin-left:auto;display:flex;padding:2px;background:#ffffff0a;border:1px solid var(--line);border-radius:5px}.geometry-tabs button{min-width:72px;height:25px;padding:0 8px;color:var(--ink-faint);border-radius:3px;font:700 9px/1 var(--font)}.geometry-tabs button[aria-pressed=true]{color:#fff;background:#2b3a4e}.geometry-tab-compact{display:none}.geometry-icon-button{width:30px;height:30px;display:grid;flex:none;place-items:center;color:var(--ink-faint);border-radius:4px}.geometry-icon-button:hover{color:#fff;background:#ffffff12}.geometry-icon-button[aria-pressed=true]{color:#55d6c2;background:#55d6c21a}.geometry-collapse .icn{transition:transform .16s ease}.geometry-workbench.is-collapsed .geometry-collapse .icn{transform:rotate(180deg)}.geometry-workbench-body{height:calc(100% - 40px)}.geometry-tab-body{height:100%;min-width:0;display:grid;grid-template-rows:38px minmax(0,1fr) 22px 27px;padding:6px 8px 7px}.geometry-tab-body[hidden]{display:none}.geometry-metrics,.commission-summary{min-width:0;display:grid;grid-template-columns:repeat(6,minmax(68px,1fr));gap:4px}.geometry-metric{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:8px minmax(0,1fr);align-items:baseline;column-gap:4px;padding:5px 7px;background:#ffffff09;border-left:2px solid rgba(120,169,255,.45)}.geometry-metric span{grid-column:1 / -1;overflow:hidden;color:var(--ink-faint);font:700 7px/1 var(--font);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.geometry-metric strong{grid-column:1;grid-row:2;color:#fff;font:750 11px/1 var(--font);font-variant-numeric:tabular-nums}.geometry-metric small{grid-column:2;grid-row:2;color:var(--ink-faint);font:650 7px/1 var(--font)}.geometry-views{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:5px}.geometry-view{min-width:0;min-height:0;overflow:hidden;background:#04090f61;border:1px solid rgba(255,255,255,.07)}.geometry-view-head{height:20px;display:flex;align-items:center;justify-content:space-between;padding:0 6px;color:var(--ink-faint);font:700 7px/1 var(--font);text-transform:uppercase}.geometry-view-head strong{color:var(--ink-soft);font:inherit}.geometry-canvas{width:100%;height:calc(100% - 20px);display:block;cursor:crosshair}.geometry-cursor-readout{min-width:0;overflow:hidden;padding:6px 2px 0;color:var(--ink-soft);font:650 8px/1 var(--font);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.geometry-diagnostics{min-width:0;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.geometry-diagnostic{min-width:0;height:24px;display:grid;grid-template-columns:6px minmax(84px,auto) auto 14px;align-items:center;gap:5px;padding:0 7px;color:var(--ink-soft);background:#ffffff09;border-radius:3px;text-align:left}.geometry-diagnostic:hover,.geometry-diagnostic[aria-pressed=true]{color:#fff;background:#ffffff13}.geometry-diagnostic[aria-pressed=true]{box-shadow:inset 2px 0 #55d6c2}.geometry-diagnostic-dot{width:5px;height:5px;background:#55d6c2;border-radius:50%}.geometry-diagnostic[data-severity=review] .geometry-diagnostic-dot{background:#e5b84e}.geometry-diagnostic[data-severity=limit] .geometry-diagnostic-dot{background:#f06f62}.geometry-diagnostic strong{overflow:hidden;font:700 8px/1 var(--font);text-overflow:ellipsis;white-space:nowrap}.geometry-diagnostic small{color:var(--ink-faint);font:650 7px/1 var(--font);white-space:nowrap}.geometry-diagnostic-action{width:14px;display:grid;place-items:center;color:#55d6c2;font-size:10px}.geometry-body.has-repair{grid-template-columns:minmax(0,1fr) 292px;column-gap:8px}.geometry-body.has-repair>.geometry-metrics{grid-column:1;grid-row:1}.geometry-body.has-repair>.geometry-views{grid-column:1;grid-row:2}.geometry-body.has-repair>.geometry-cursor-readout{grid-column:1;grid-row:3}.geometry-body.has-repair>.geometry-diagnostics{grid-column:1;grid-row:4}.geometry-repair{min-width:0;min-height:0;grid-column:2;grid-row:1 / -1;display:flex;flex-direction:column;gap:7px;padding:7px 0 0 9px;overflow-y:auto;border-left:1px solid var(--line)}.geometry-repair[hidden]{display:none}.geometry-repair-head{min-height:27px;display:grid;grid-template-columns:minmax(0,1fr) auto 24px;align-items:center;gap:6px}.geometry-repair-head>div{min-width:0;display:flex;flex-direction:column;gap:3px}.geometry-repair-title{overflow:hidden;color:#fff;font:750 10px/1 var(--font);text-overflow:ellipsis;white-space:nowrap}.geometry-repair-context{color:var(--ink-faint);font:650 7px/1 var(--font);text-transform:uppercase}.geometry-repair-state{padding:3px 5px;color:#f0ca6c;background:#e5b84e1f;border-radius:3px;font:750 7px/1 var(--font);text-transform:uppercase;white-space:nowrap}.geometry-repair-state[data-state=pass],.geometry-repair-state[data-state=improved]{color:#8de2ad;background:#37b26c21}.geometry-repair-state[data-state=blocked]{color:#ff9189;background:#ef625726}.geometry-repair-close{width:24px;height:24px;display:grid;place-items:center;color:var(--ink-faint);border-radius:3px}.geometry-repair-close:hover{color:#fff;background:#ffffff12}.geometry-repair-recommendation{min-height:22px;margin:0;color:var(--ink-soft);font:550 8px/1.35 var(--font)}.geometry-repair-delta{min-height:35px;display:grid;grid-template-columns:minmax(64px,1fr) 18px minmax(64px,1fr) auto;align-items:center;gap:5px;padding:5px 7px;background:#ffffff09;border-left:2px solid #55d6c2}.geometry-repair-delta>span:not(.geometry-repair-to){display:flex;flex-direction:column;gap:3px}.geometry-repair-delta small{color:var(--ink-faint);font:700 6px/1 var(--font);text-transform:uppercase}.geometry-repair-delta strong{color:#fff;font:750 11px/1 var(--font);font-variant-numeric:tabular-nums}.geometry-repair-delta>small{align-self:end;padding-bottom:2px;color:var(--ink-faint);font-size:7px;text-transform:none}.geometry-repair-to{color:var(--ink-faint);font:700 7px/1 var(--font);text-align:center;text-transform:uppercase}.geometry-repair-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px}.geometry-repair-control{min-width:0;display:flex;flex-direction:column;gap:3px}.geometry-repair-control>span{display:flex;justify-content:space-between;color:var(--ink-faint);font:700 7px/1 var(--font);text-transform:uppercase}.geometry-repair-control output{color:var(--ink-soft);font-variant-numeric:tabular-nums}.geometry-repair-range{width:100%;height:14px;margin:0;accent-color:#55d6c2;cursor:pointer}.geometry-repair-constraints{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px}.geometry-repair-constraint{min-width:0;display:flex;align-items:center;gap:5px;color:var(--ink-soft);font:650 7px/1 var(--font);white-space:nowrap}.geometry-repair-constraint input{width:12px;height:12px;margin:0;accent-color:#55d6c2}.geometry-repair-constraint:has(input:disabled){opacity:.45}.geometry-repair-actions{min-height:29px;margin-top:auto;display:grid;grid-template-columns:minmax(0,1fr) 94px;align-items:center;gap:7px;padding-bottom:1px}.geometry-repair-footnote{overflow:hidden;color:var(--ink-faint);font:600 7px/1.25 var(--font);text-overflow:ellipsis;white-space:nowrap}.geometry-repair-apply{height:27px;display:flex;align-items:center;justify-content:center;gap:5px;color:#dffbf6;background:#55d6c221;border:1px solid rgba(85,214,194,.36);border-radius:4px;font:750 8px/1 var(--font)}.geometry-repair-apply:hover:not(:disabled){color:#fff;background:#55d6c233}.geometry-repair-apply:disabled{opacity:.35;cursor:default}.geometry-repair-apply .icn{font-size:11px}.commission-body{grid-template-rows:40px 50px minmax(0,1fr);gap:5px}.commission-summary{grid-template-columns:repeat(5,minmax(80px,1fr))}.commission-asset-strip{position:relative;min-width:0;margin:0 13px}.commission-track-line{position:absolute;top:24px;left:0;right:0;height:2px;background:#47586c}.commission-asset{position:absolute;top:12px;width:25px;height:25px;display:grid;place-items:center;color:#dbe7f5;background:#1e2a39;border:1px solid #52677e;border-radius:50%;transform:translate(-50%)}.commission-asset:hover{color:#fff;border-color:#78a9ff;background:#2a3a4e}.commission-asset .icn{font-size:13px}.commission-checks{min-width:0;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:4px;overflow-y:auto}.commission-check{min-width:0;min-height:48px;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:6px;padding:5px 7px;color:var(--ink-soft);background:#ffffff09;border-left:2px solid #55d6c2;text-align:left}.commission-check[data-status=review]{border-left-color:#e5b84e}.commission-check[data-status=limit]{border-left-color:#f06f62}.commission-check:disabled{opacity:1;cursor:default}.commission-check-state{width:22px;height:22px;display:grid;place-items:center;color:#55d6c2}.commission-check[data-status=review] .commission-check-state{color:#e5b84e}.commission-check[data-status=limit] .commission-check-state{color:#f06f62}.commission-check-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.commission-check-copy strong{color:#fff;font:700 8px/1 var(--font)}.commission-check-copy small{overflow:hidden;color:var(--ink-faint);font:600 7px/1.2 var(--font);text-overflow:ellipsis;white-space:nowrap}.commission-check-status{color:var(--ink-faint);font:750 7px/1 var(--font);text-transform:uppercase}@media(max-width:1050px)and (min-width:701px){.geometry-workbench{left:300px}.geometry-workbench-title{min-width:128px}.geometry-workbench-context{max-width:145px}.geometry-compare-command{max-width:122px}.geometry-compare-copy>small{display:none}.geometry-tabs button{min-width:62px}.geometry-views{overflow-x:auto;grid-template-columns:repeat(4,minmax(170px,1fr))}.commission-checks{grid-template-columns:repeat(2,minmax(180px,1fr))}}@media(max-width:700px){.geometry-workbench{top:calc(62px + env(safe-area-inset-top));left:calc(6px + env(safe-area-inset-left));right:calc(6px + env(safe-area-inset-right));bottom:auto;height:238px;-webkit-backdrop-filter:none;backdrop-filter:none}.geometry-workbench.has-repair:not(.is-collapsed){height:270px}.geometry-workbench.is-collapsed{height:38px}.geometry-workbench-head{height:38px;gap:4px;padding-left:7px}.geometry-workbench-body{height:calc(100% - 38px)}.geometry-workbench-title{min-width:0;flex:1}.geometry-workbench-title>span{flex:1}.geometry-workbench-title strong{font-size:9px}.geometry-workbench-context{max-width:115px;font-size:6px}.geometry-status{min-width:43px;padding:3px 4px;font-size:7px}.geometry-compare-command{width:27px;height:27px;flex:none;justify-content:center;padding:0}.geometry-compare-copy{display:none}.geometry-curve-select{width:68px;height:26px;font-size:8px}.geometry-tabs button{min-width:32px;width:32px;padding:0;overflow:hidden;color:transparent}.geometry-tabs button{color:var(--ink-faint)}.geometry-tab-full{display:none}.geometry-tab-compact{display:inline}.geometry-icon-button{width:27px;height:27px}.geometry-tab-body{grid-template-rows:34px minmax(0,1fr) 20px 24px;padding:4px 5px}.geometry-metrics{grid-template-columns:repeat(6,minmax(70px,1fr));overflow-x:auto}.geometry-metric{padding:4px 5px}.geometry-views{grid-template-columns:repeat(4,180px);overflow-x:auto;gap:4px}.geometry-cursor-readout{font-size:7px}.geometry-diagnostics{display:flex}.geometry-body.has-repair{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr)}.geometry-body.has-repair>.geometry-metrics,.geometry-body.has-repair>.geometry-views,.geometry-body.has-repair>.geometry-cursor-readout,.geometry-body.has-repair>.geometry-diagnostics{display:none}.geometry-body.has-repair>.geometry-repair{grid-column:1;grid-row:1;padding:4px 2px;border-left:0}.geometry-repair-recommendation{min-height:18px}.geometry-repair-actions{grid-template-columns:minmax(0,1fr) 105px}.commission-body{grid-template-rows:34px 42px minmax(0,1fr)}.commission-summary{grid-template-columns:repeat(5,minmax(75px,1fr));overflow-x:auto}.commission-checks{grid-template-columns:repeat(4,190px);overflow:auto hidden}.commission-check{min-height:45px}}.analysis-title{min-width:0;display:flex;align-items:center;gap:7px}.analysis-title .icn{color:var(--blue-deep);font-size:15px}.analysis-title strong{font:750 12px/1 var(--font)}.analysis-view-toggle{margin-left:auto;display:flex;padding:2px;background:#ffffff0a;border:1px solid var(--line);border-radius:5px}.analysis-view-toggle[hidden]{display:none}.analysis-view-toggle button{min-width:58px;height:24px;padding:0 8px;color:var(--ink-faint);border-radius:3px;font:700 8px/1 var(--font)}.analysis-view-toggle button[aria-pressed=true]{color:#fff;background:#2b3a4e}.analysis-view-toggle button:disabled{opacity:.38}.analysis-view-toggle:not([hidden])+.analysis-head-meta{margin-left:0}.analysis-run-status{padding:3px 6px;color:var(--ink-soft);background:#ffffff0f;border-radius:4px;font:700 9px/1 var(--font);text-transform:uppercase}.analysis-run-status[data-status=clear]{color:#8de2ad;background:#37b26c24}.analysis-run-status[data-status=review]{color:#f0ca6c;background:#e9b94924}.analysis-run-status[data-status=limit]{color:#ff9189;background:#ef625726}.analysis-head-meta{min-width:0;margin-left:auto;display:flex;align-items:center;gap:12px;color:var(--ink-faint);font:700 9px/1 var(--font);font-variant-numeric:tabular-nums}.analysis-cursor-time{min-width:42px;color:var(--ink-soft);text-align:right}.analysis-layout{height:calc(100% - 34px);display:grid;grid-template-columns:minmax(280px,1.35fr) minmax(210px,.85fr) minmax(260px,1fr)}.analysis-layout[hidden]{display:none}.analysis-timeline,.analysis-issues,.analysis-detail{min-width:0;min-height:0;padding:8px 10px}.analysis-issues,.analysis-detail{border-left:1px solid var(--line)}.analysis-subhead{height:18px;display:flex;align-items:center;gap:8px;color:var(--ink-faint);font:750 9px/1 var(--font);text-transform:uppercase}.analysis-subhead>span:first-child{flex:1}.analysis-legend{display:flex;align-items:center;gap:8px;text-transform:none}.analysis-legend span{display:inline-flex;align-items:center;gap:4px}.analysis-legend span:before{width:12px;height:2px;content:"";background:currentColor}.analysis-legend .speed{color:#45c3b8}.analysis-legend .vertical{color:#e3b94e}.analysis-legend .lateral{color:#6f86df}.analysis-chart{width:100%;height:116px;display:block}.analysis-scrubber{width:100%;height:18px;margin:1px 0 0;accent-color:var(--blue-deep);cursor:pointer}.analysis-issue-count{min-width:18px;padding:3px 5px;color:var(--ink-soft);background:#ffffff12;border-radius:4px;text-align:center;font-variant-numeric:tabular-nums}.analysis-issue-list{height:calc(100% - 18px);overflow-y:auto;scrollbar-width:thin}.analysis-issue{width:100%;min-height:42px;display:grid;grid-template-columns:7px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 4px;color:var(--ink-soft);border-bottom:1px solid rgba(255,255,255,.07);text-align:left}.analysis-issue:hover,.analysis-issue[aria-pressed=true]{color:#fff;background:#ffffff0e}.analysis-issue[aria-pressed=true]{box-shadow:inset 2px 0 var(--blue-deep)}.analysis-issue-dot{width:6px;height:6px;border-radius:50%;background:var(--amber)}.analysis-issue[data-severity=limit] .analysis-issue-dot{background:var(--coral)}.analysis-issue-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.analysis-issue-copy strong{overflow:hidden;font:700 10px/1.15 var(--font);text-overflow:ellipsis;white-space:nowrap}.analysis-issue-copy small{color:var(--ink-faint);font:650 8px/1 var(--font);white-space:nowrap}.analysis-issue-value{color:var(--ink-soft);font:750 9px/1 var(--font);font-variant-numeric:tabular-nums}.analysis-empty{height:100%;display:grid;place-items:center;color:var(--ink-faint);font:650 10px/1.3 var(--font);text-align:center}.analysis-detail{display:flex;flex-direction:column;gap:5px;overflow-y:auto}.analysis-detail-top{display:flex;align-items:center;gap:8px}.analysis-detail-severity{padding:3px 6px;color:var(--blue-deep);background:#3b82f61f;border-radius:4px;font:750 8px/1 var(--font);text-transform:uppercase}.analysis-detail-severity[data-severity=review]{color:#f0ca6c;background:#e9b94924}.analysis-detail-severity[data-severity=limit]{color:#ff9189;background:#ef625726}.analysis-detail-metric{margin-left:auto;color:var(--ink-soft);font:750 9px/1 var(--font);font-variant-numeric:tabular-nums}.analysis-detail-title{color:#fff;font:750 12px/1.2 var(--font)}.analysis-detail p{margin:0;color:var(--ink-soft);font:500 9px/1.35 var(--font)}.analysis-detail p:last-of-type{color:#dce6f0}.analysis-actions{margin-top:auto;display:flex;gap:5px}.analysis-action{min-width:0;height:28px;flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 6px;color:var(--ink-soft);background:#ffffff12;border:1px solid transparent;border-radius:5px;font:700 9px/1 var(--font)}.analysis-action:hover:not(:disabled){color:#fff;background:#ffffff1f}.analysis-action.primary{color:#dbeafe;border-color:#74a7f752;background:#3b82f61f}.analysis-action:disabled{opacity:.38;cursor:default}.analysis-action .icn{font-size:13px}#analysis-panel.has-comparison{height:246px}.analysis-compare{height:calc(100% - 34px);min-width:0;display:grid;grid-template-columns:minmax(230px,.85fr) minmax(310px,1.3fr) minmax(290px,1fr)}.analysis-compare[hidden]{display:none}.analysis-compare>section{min-width:0;min-height:0;padding:9px 10px}.analysis-compare-trace,.analysis-compare-guardrails{border-left:1px solid var(--line)}.analysis-compare-focus{display:flex;flex-direction:column;gap:5px}.analysis-compare-focus-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.analysis-compare-verdict{padding:3px 6px;color:var(--ink-soft);background:#ffffff0f;border-radius:3px;font:750 7px/1 var(--font);text-transform:uppercase}.analysis-compare-verdict[data-status=improved],.analysis-compare-verdict[data-status=complete]{color:#8de2ad;background:#37b26c24}.analysis-compare-verdict[data-status=mixed],.analysis-compare-verdict[data-status=ready]{color:#f0ca6c;background:#e9b94924}.analysis-compare-verdict[data-status=regressed]{color:#ff9189;background:#ef625726}.analysis-compare-verdict[data-status=inconclusive]{color:#a8c7f5;background:#78a9ff21}.analysis-output-label{color:var(--ink-faint);font:750 7px/1 var(--font);letter-spacing:0}.analysis-compare-focus-title{overflow:hidden;color:#fff;font:750 12px/1.15 var(--font);text-overflow:ellipsis;white-space:nowrap}.analysis-compare-context{overflow:hidden;color:var(--ink-faint);font:650 7px/1 var(--font);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.analysis-compare-values{min-height:42px;display:grid;grid-template-columns:minmax(60px,1fr) 18px minmax(60px,1fr) auto;align-items:center;gap:5px;padding:5px 7px;background:#ffffff09;border-left:2px solid #55d6c2}.analysis-compare-values>span:not(.analysis-compare-to){display:flex;flex-direction:column;gap:3px}.analysis-compare-values small{color:var(--ink-faint);font:700 6px/1 var(--font);text-transform:uppercase}.analysis-compare-values strong{color:#fff;font:750 13px/1 var(--font);font-variant-numeric:tabular-nums}.analysis-compare-values>small{align-self:end;padding-bottom:2px;text-transform:none}.analysis-compare-to{color:var(--ink-faint);font:700 7px/1 var(--font);text-align:center;text-transform:uppercase}.analysis-compare-delta{color:var(--ink-soft);font:750 8px/1 var(--font);font-variant-numeric:tabular-nums}.analysis-compare-delta[data-status=resolved],.analysis-compare-delta[data-status=improved]{color:#8de2ad}.analysis-compare-delta[data-status=regressed]{color:#ff9189}.analysis-compare-summary{margin:0;color:var(--ink-soft);font:550 8px/1.3 var(--font)}.analysis-compare-primary{min-height:28px;margin-top:auto;display:flex;align-items:center;justify-content:center;gap:5px;color:#dffbf6;background:#55d6c221;border:1px solid rgba(85,214,194,.32);border-radius:4px;font:750 8px/1 var(--font)}.analysis-compare-primary[hidden]{display:none}.analysis-compare-primary:hover{background:#55d6c233}.analysis-compare-section-head{height:28px;display:flex;align-items:center;justify-content:space-between;gap:8px}.analysis-compare-section-head>div:first-child{min-width:0;display:flex;flex-direction:column;gap:3px}.analysis-compare-section-head strong{color:#fff;font:750 9px/1 var(--font)}.analysis-compare-section-head small{color:var(--ink-faint);font:650 7px/1 var(--font);text-transform:uppercase}.analysis-compare-metric-tabs{display:flex;padding:2px;background:#ffffff0a;border:1px solid var(--line);border-radius:4px}.analysis-compare-metric-tabs button{min-width:42px;height:21px;padding:0 5px;color:var(--ink-faint);border-radius:2px;font:700 7px/1 var(--font)}.analysis-compare-metric-tabs button[aria-pressed=true]{color:#fff;background:#2b3a4e}.analysis-compare-chart-wrap{position:relative;height:142px;margin-top:2px;overflow:hidden;background:#04090f57}.analysis-compare-chart{width:100%;height:100%;display:block}.analysis-compare-chart-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--ink-faint);font:650 9px/1 var(--font)}.analysis-compare-chart-empty[hidden]{display:none}.analysis-compare-legend{height:20px;display:flex;align-items:end;gap:12px;color:var(--ink-faint);font:650 7px/1 var(--font)}.analysis-compare-legend span{display:inline-flex;align-items:center;gap:5px}.analysis-compare-legend span:before{width:16px;height:2px;content:"";background:currentColor}.analysis-compare-legend .baseline{color:#8190a4}.analysis-compare-legend .candidate{color:#55d6c2}.analysis-compare-guardrails{display:flex;flex-direction:column}.analysis-compare-metrics{min-height:0;overflow-y:auto}.analysis-compare-metric{min-height:29px;display:grid;grid-template-columns:minmax(82px,1fr) minmax(94px,auto) 58px;align-items:center;gap:6px;border-bottom:1px solid rgba(255,255,255,.065)}.analysis-compare-metric>span:first-child{overflow:hidden;color:var(--ink-soft);font:650 8px/1 var(--font);text-overflow:ellipsis;white-space:nowrap}.analysis-compare-metric-values{display:grid;grid-template-columns:1fr 1fr;gap:7px;font-variant-numeric:tabular-nums;text-align:right}.analysis-compare-metric-values small{color:var(--ink-faint);font:650 7px/1 var(--font)}.analysis-compare-metric-values strong{color:#fff;font:750 8px/1 var(--font)}.analysis-compare-metric-delta{color:var(--ink-faint);font:700 7px/1 var(--font);text-align:right;white-space:nowrap}.analysis-compare-metric[data-status=improved] .analysis-compare-metric-delta{color:#8de2ad}.analysis-compare-metric[data-status=regressed] .analysis-compare-metric-delta{color:#ff9189}.analysis-compare-actions{margin-top:auto;display:flex;gap:4px;padding-top:6px}.analysis-compare-action{min-width:0;height:27px;flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 5px;color:var(--ink-soft);background:#ffffff0f;border-radius:4px;font:700 8px/1 var(--font)}.analysis-compare-action.primary{color:#dffbf6;background:#55d6c21f}.analysis-compare-action.icon-only{width:27px;flex:none;padding:0}.analysis-compare-action:hover:not(:disabled){color:#fff;background:#ffffff1c}.analysis-compare-action:disabled{opacity:.35;cursor:default}#compare-ride-progress{position:fixed;top:calc(70px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));z-index:26;width:360px;min-height:52px;display:grid;grid-template-columns:minmax(0,1fr) 28px;grid-template-rows:auto 3px;gap:6px 9px;padding:7px 8px;color:var(--ink);background:#0d131cf2;border:1px solid rgba(85,214,194,.28);border-radius:6px;box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}#compare-ride-progress[hidden]{display:none}.compare-ride-copy{min-width:0;display:flex;flex-direction:column;gap:4px}.compare-ride-kicker{color:#55d6c2;font:750 7px/1 var(--font);text-transform:uppercase}.compare-ride-title{min-width:0;display:flex;align-items:center;gap:6px}.compare-ride-title>.icn{color:#55d6c2;font-size:12px}.compare-ride-title strong{overflow:hidden;color:#fff;font:750 10px/1 var(--font);text-overflow:ellipsis;white-space:nowrap}.compare-ride-title strong:last-child{margin-left:auto;color:var(--ink-soft);font-variant-numeric:tabular-nums}.compare-ride-track{grid-column:1 / -1;height:3px;overflow:hidden;background:#ffffff14}.compare-ride-track>span{width:0;height:100%;display:block;background:#55d6c2;transition:width .12s linear}.compare-ride-cancel{width:28px;height:28px;grid-column:2;grid-row:1;display:grid;place-items:center;color:var(--ink-faint);border-radius:4px}.compare-ride-cancel:hover{color:#fff;background:#ffffff12}@media(max-width:980px)and (min-width:701px){#analysis-panel{left:240px;height:226px}#analysis-panel.has-comparison{height:246px}.analysis-journey{display:none}.analysis-layout{grid-template-columns:minmax(250px,1.15fr) minmax(190px,.85fr) minmax(220px,1fr)}.analysis-detail p:nth-of-type(2){display:none}.analysis-compare{grid-template-columns:minmax(180px,.8fr) minmax(250px,1.2fr) minmax(210px,1fr)}.analysis-compare>section{padding:7px}.analysis-compare-metric-tabs button{min-width:34px;padding:0 3px}.analysis-compare-metric{grid-template-columns:minmax(70px,1fr) minmax(80px,auto)}.analysis-compare-metric-delta{display:none}.analysis-compare-action{font-size:0}.analysis-compare-action .icn{font-size:12px}}@media(max-width:700px){body[data-workspace=analyze] #lab-hud{padding:6px}body[data-workspace=analyze] .lab-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}body[data-workspace=analyze] .lab-metric{padding:4px 5px}body[data-workspace=analyze] .lab-value{font-size:17px}#analysis-panel{top:calc(400px + env(safe-area-inset-top));left:calc(6px + env(safe-area-inset-left));right:calc(6px + env(safe-area-inset-right));bottom:calc(62px + env(safe-area-inset-bottom));height:auto;-webkit-backdrop-filter:none;backdrop-filter:none}#analysis-panel.is-empty{top:auto;height:86px}#analysis-panel.has-comparison{top:calc(340px + env(safe-area-inset-top));height:auto}.analysis-head{height:32px;padding:0 8px}.analysis-journey{display:none}.analysis-zero{height:calc(100% - 32px);padding:7px 8px}.analysis-head-meta{gap:6px}.analysis-title strong{font-size:10px}.analysis-run-status{display:none}.analysis-view-toggle button{min-width:48px;height:22px;padding:0 5px;font-size:7px}.analysis-view-toggle:not([hidden])+.analysis-head-meta .analysis-run-meta{display:none}.analysis-layout{height:calc(100% - 32px);grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:92px minmax(0,1fr)}.analysis-timeline{grid-column:1 / -1;padding:5px 8px}.analysis-chart{height:47px}.analysis-scrubber{height:15px;margin:0}.analysis-issues,.analysis-detail{padding:6px;border-top:1px solid var(--line)}.analysis-issues{border-left:0}.analysis-subhead{height:16px}.analysis-issue{min-height:38px;grid-template-columns:6px minmax(0,1fr);padding:5px 3px}.analysis-issue-value{display:none}.analysis-issue-copy strong{font-size:9px}.analysis-issue-copy small{font-size:7px}.analysis-detail{gap:4px}.analysis-detail-title{font-size:10px}.analysis-detail p{font-size:8px;line-height:1.3}.analysis-detail p:nth-of-type(2){display:none}.analysis-actions{flex-wrap:wrap}.analysis-action{height:25px;font-size:8px}.analysis-action.primary{flex-basis:100%}.analysis-compare{height:calc(100% - 32px);grid-template-columns:1fr;grid-auto-rows:max-content;overflow-y:auto}.analysis-compare>section{padding:8px}.analysis-compare-trace,.analysis-compare-guardrails{border-top:1px solid var(--line);border-left:0}.analysis-compare-focus{min-height:176px}.analysis-compare-trace .analysis-compare-section-head{height:auto;align-items:stretch;flex-direction:column}.analysis-compare-metric-tabs button{min-width:0;flex:1}.analysis-compare-chart-wrap{height:112px}.analysis-compare-guardrails{min-height:214px}.analysis-compare-metric{grid-template-columns:minmax(86px,1fr) minmax(104px,auto) 62px}.analysis-compare-actions{position:sticky;bottom:-8px;padding:7px 0 8px;background:#0d131cfa}.analysis-compare-action{height:29px;font-size:8px}.analysis-compare-action.primary{flex:1.4}#compare-ride-progress{top:calc(58px + env(safe-area-inset-top));left:calc(6px + env(safe-area-inset-left));right:calc(6px + env(safe-area-inset-right));width:auto;min-height:48px;padding:6px 7px;-webkit-backdrop-filter:none;backdrop-filter:none}}@media(max-width:700px){.train-panel{width:min(326px,calc(100vw - 12px))}}
