:root{--bg:#0f151c;--bg2:#141b23;--card:#1b232d;--card2:#161e27;--ink:#dbe3ea;--ink2:#9aa7b2;--ink3:#8b97a4;--line:#2e3945;--line2:#49575f;--tung:#9aa3ad;--acc:#ff6b1f;--acc2:#ff8747;--on-acc:#16100b;--blue:#82b3da;--ok:#58b573;--warn:#d9a13c;--bad:#e06152;--scrim:#0f151cb8;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--disp:var(--mono);--t-micro:.594rem;--t-sm:.75rem;--t-base:.875rem;--t-val:1.0625rem;--t-lg:1.5rem;--t-xl:2rem;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--r-sm:2px;--r-md:3px;--tap:44px;--hair:1px;--dur-sheet:.18s;--dur-fade:.12s;--dur-color:80ms;--ease:cubic-bezier(.2, 0, 0, 1)}@media (prefers-reduced-motion:reduce){:root{--dur-sheet:0s;--dur-fade:0s}}*,:before,:after{box-sizing:border-box}#ui{font:400 var(--t-base) / 1.5 var(--body);color:var(--ink)}:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.num,.val,.k{font-variant-numeric:tabular-nums}.cells{grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.cell{padding:var(--s2) var(--s3);border-left:var(--hair) solid var(--line);min-width:0}.cell:first-child{border-left:none;padding-left:0}.cell .k{font:600 var(--t-micro) / 1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:2px}.cell .val{font:600 var(--t-val) / 1.25 var(--mono);color:var(--ink);white-space:nowrap}.cell .val2{font:400 var(--t-sm) / 1.35 var(--mono);color:var(--ink2);white-space:nowrap}.panel{background:var(--card);border:var(--hair) solid var(--line2);border-radius:var(--r-md);padding:var(--s4)}.floating{filter:drop-shadow(0 1px 2px #0009)}.skip{z-index:100;padding:var(--s2) var(--s3);background:var(--acc);color:#0f151c;font:600 var(--t-sm) / 1 var(--mono);border-radius:0 0 var(--r2) 0;position:fixed;top:0;left:0;transform:translateY(-120%)}.skip:focus-visible{transform:none}.topbar{height:calc(48px + var(--safe-t));padding:var(--safe-t) calc(var(--s4) + var(--safe-r)) 0 calc(var(--s4) + var(--safe-l));align-items:center;gap:var(--s3);background:linear-gradient(var(--bg) 45%, transparent);border-bottom:var(--hair) solid var(--line);display:flex;position:absolute;inset:0 0 auto}#app.phone-portrait .topbar,#app.phone-landscape .topbar{height:calc(40px + var(--safe-t))}#app.phone-portrait .topbar .viewbtn,#app.phone-portrait .topbar .engravebtn,#app.phone-portrait .topbar .gripbtn{display:none}#app.phone-portrait .topbar{gap:var(--s2)}.wordmark{font:600 var(--t-base) / 1 var(--disp);letter-spacing:.18em;color:var(--tung);text-transform:uppercase;white-space:nowrap}.topbar .spacer{flex:1}.tabs{gap:var(--s1);display:flex}.tab{appearance:none;color:var(--ink3);font:600 var(--t-sm) / 1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:var(--s2) var(--s2);min-height:var(--tap);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--acc)}.iconbtn{appearance:none;color:var(--ink2);min-width:var(--tap);min-height:var(--tap);border-radius:var(--r-sm);font:600 var(--t-micro) / 1 var(--mono);letter-spacing:.1em;cursor:pointer;background:0 0;border:0}.iconbtn:hover{background:var(--card2);color:var(--ink)}.iconbtn[aria-pressed=true]{color:var(--ink)}.dock{background:var(--card);border:var(--hair) solid var(--line2);gap:var(--s3);flex-direction:column;display:flex;position:absolute}#app.desktop .dock{top:calc(48px + var(--safe-t) + var(--s5));left:calc(var(--s5) + var(--safe-l));border-radius:var(--r-md);width:320px;padding:var(--s4)}#app.tablet .dock{top:calc(48px + var(--safe-t) + var(--s4));left:calc(var(--s4) + var(--safe-l));border-radius:var(--r-md);width:300px;padding:var(--s4)}#app.phone-portrait .dock{border-width:var(--hair) 0 0 0;border-radius:var(--r-md) var(--r-md) 0 0;padding:var(--s2) calc(var(--s4) + var(--safe-r)) calc(var(--s4) + var(--safe-b)) calc(var(--s4) + var(--safe-l));gap:var(--s2);inset:auto 0 0}#app.phone-landscape{--dock-w:312px}#app.phone-landscape .dock{inset:calc(40px + var(--safe-t)) 0 0 auto;width:var(--dock-w);border-width:0 0 0 var(--hair);padding:var(--s3) calc(var(--s3) + var(--safe-r)) calc(var(--s3) + var(--safe-b)) var(--s3);gap:var(--s2);overflow-y:auto}.dock .handle{display:none}#app.phone-portrait .dock .handle{background:var(--line2);width:36px;height:4px;margin:0 auto var(--s1);border-radius:2px;flex:none;display:block}.field{gap:var(--s1);flex-direction:column;display:flex}.label-row{justify-content:space-between;align-items:baseline;gap:var(--s2);flex-wrap:wrap;display:flex}.label-row .k{font:600 var(--t-micro) / 1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}.label-row .v{font:600 var(--t-sm) / 1.2 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}.metals{gap:var(--s1);grid-template-columns:repeat(6,1fr);display:grid}.metal{appearance:none;border:var(--hair) solid var(--line2);border-radius:var(--r-sm);background:var(--swatch,var(--card2));cursor:pointer;justify-content:center;align-items:flex-end;min-height:44px;padding:0;display:flex;position:relative}.metal span{font:600 var(--t-micro) / 1 var(--mono);letter-spacing:.08em;color:var(--on-swatch,var(--ink));text-shadow:0 1px 2px #0000008c;padding-bottom:3px}.metal[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--ink)}.slider{min-height:var(--tap);align-items:center;display:flex;position:relative}.slider input[type=range]{appearance:none;width:100%;height:var(--tap);cursor:pointer;background:0 0;margin:0}.slider input[type=range]::-webkit-slider-runnable-track{border-radius:var(--r-sm);background:var(--bg2);border:var(--hair) solid var(--line);height:4px}.slider input[type=range]::-moz-range-track{border-radius:var(--r-sm);background:var(--bg2);border:var(--hair) solid var(--line);height:4px}.slider input[type=range]::-webkit-slider-thumb{appearance:none;border-radius:var(--r-sm);background:var(--ink);border:var(--hair) solid var(--bg);width:20px;height:20px;margin-top:-9px}.slider input[type=range]::-moz-range-thumb{border-radius:var(--r-sm);background:var(--ink);border:var(--hair) solid var(--bg);width:20px;height:20px}.slider .ticks{pointer-events:none;height:0;position:absolute;inset:50% 10px auto}.slider .ticks i{background:var(--line2);width:1px;height:7px;position:absolute;top:4px}.slider .bubble{background:var(--card);border:var(--hair) solid var(--line2);border-radius:var(--r-sm);font:600 var(--t-sm) / 1.2 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;opacity:0;transition:opacity var(--dur-fade) linear;pointer-events:none;padding:2px 6px;position:absolute;bottom:calc(100% - 6px);transform:translate(-50%)}.slider.dragging .bubble{opacity:1}.chips{gap:var(--s1);scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;min-width:0;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}#app.phone-portrait .chips{display:none}#app.desktop .chips,#app.tablet .chips{scroll-snap-type:none;flex-wrap:wrap;overflow-x:visible}.chip{appearance:none;scroll-snap-align:start;background:var(--card2);border:var(--hair) solid var(--line);border-radius:var(--r-sm);color:var(--ink2);font:600 var(--t-sm) / 1 var(--mono);padding:6px var(--s3);min-height:var(--tap);min-width:var(--tap);cursor:pointer;flex:none}.chip[aria-pressed=true]{background:var(--tung);border-color:var(--tung);color:var(--bg)}.primary{appearance:none;border-radius:var(--r-md);background:var(--acc);color:var(--on-acc);font:600 var(--t-base) / 1 var(--body);cursor:pointer;letter-spacing:.02em;border:0;min-height:48px}.primary:active{background:var(--acc2)}.class-chip{font:600 var(--t-micro) / 1.3 var(--mono);letter-spacing:.1em;color:var(--ink2);background:var(--card2);border:var(--hair) solid var(--line);border-radius:var(--r-sm);white-space:nowrap;padding:3px 6px}.infocard{background:var(--card);border:var(--hair) solid var(--line2);border-radius:var(--r-md);padding:var(--s3);gap:var(--s2);flex-direction:column;width:280px;display:flex;position:absolute}#app.desktop .infocard,#app.tablet .infocard{top:calc(48px + var(--safe-t) + var(--s5));right:calc(var(--s5) + var(--safe-r))}#app.phone-portrait .infocard{left:var(--s4);right:var(--s4);width:auto;bottom:var(--infocard-bottom,300px)}#app.phone-portrait .infocard .cell:nth-child(n+3),#app.phone-portrait .infocard .twin,#app.phone-landscape .infocard .cell:nth-child(n+3),#app.phone-landscape .infocard .twin{display:none}#app.phone-portrait .infocard .cells,#app.phone-landscape .infocard .cells{grid-template-columns:1fr 1fr;row-gap:0}#app.phone-landscape .infocard{top:calc(40px + var(--safe-t) + var(--s3));right:calc(var(--dock-w) + var(--s3) + var(--safe-r));width:240px}.infocard .cells{row-gap:var(--s2);grid-template-columns:1fr 1fr;grid-auto-flow:row}.infocard .cell:nth-child(odd){border-left:none;padding-left:0}.infocard .cell:nth-child(n+3){border-top:var(--hair) solid var(--line);padding-top:var(--s2)}.infocard .head{justify-content:space-between;align-items:center;gap:var(--s2);display:flex}.infocard .metal-name{font:600 var(--t-base) / 1.2 var(--body);color:var(--ink)}.infocard .twin{font:400 var(--t-sm) / 1.4 var(--body);color:var(--ink2);border-top:var(--hair) solid var(--line);padding-top:var(--s2)}.infocard .twin b{color:var(--ink);font-weight:600}.infocard-actions{border-top:var(--hair) solid var(--line);padding-top:var(--s2);justify-content:flex-end;display:flex}.cardbtn{appearance:none;align-items:center;gap:var(--s2);border:var(--hair) solid var(--line2);border-radius:var(--r-sm);color:var(--ink2);font:600 var(--t-sm) / 1 var(--body);padding:0 var(--s3);cursor:pointer;min-height:32px;transition:color var(--dur-color) linear, border-color var(--dur-color) linear, background-color var(--dur-color) linear;background:0 0;display:inline-flex}#app.phone-portrait .cardbtn,#app.phone-landscape .cardbtn,#app.tablet .cardbtn{min-height:var(--tap);padding:0 var(--s4)}.cardbtn svg{display:block}.cardbtn.danger:hover,.cardbtn.danger:focus-visible{color:var(--bad);border-color:var(--bad);background:var(--card2)}.cardbtn.danger:active{background:var(--card2);color:var(--bad)}.meter{pointer-events:none;opacity:0;width:56px;height:56px;transition:opacity var(--dur-fade) linear;filter:drop-shadow(0 1px 2px #0009);position:absolute}.meter.on{opacity:1}.meter circle{fill:none;stroke-linecap:round}.meter .track{stroke:var(--line2);stroke-opacity:.4;stroke-width:3px}.meter .fill{stroke:var(--ink);stroke-width:3px;transition:stroke var(--dur-color) linear}.meter.warn .fill{stroke:var(--warn)}.meter.clamped .fill{stroke:var(--acc);stroke-width:4px}.press-ring{pointer-events:none;filter:drop-shadow(0 1px 2px #0009);width:44px;height:44px;position:absolute}.press-ring circle{fill:none;stroke-width:2.5px}.press-ring .track{stroke:var(--scrim)}.press-ring .fill{stroke:var(--acc)}.toast{left:50%;bottom:calc(var(--s5) + var(--safe-b));background:var(--card);border:var(--hair) solid var(--line2);border-radius:var(--r-md);padding:var(--s2) var(--s4);font:400 var(--t-base) / 1.3 var(--body);color:var(--ink);opacity:0;transition:opacity var(--dur-fade) linear;pointer-events:none;text-align:center;max-width:min(80vw,420px);position:absolute;transform:translate(-50%)}.toast.on{opacity:1}#app.phone-portrait .toast{bottom:calc(var(--dock-height,280px) + var(--s3))}.labpanel{position:absolute}#app.desktop .labpanel,#app.tablet .labpanel{right:calc(var(--s5) + var(--safe-r));bottom:calc(var(--s5) + var(--safe-b))}#app.phone-portrait .labpanel{left:var(--s4);bottom:calc(var(--dock-height,280px) + var(--s3))}#app.phone-portrait.has-card .labpanel{display:none}#app.phone-portrait.split .dock{width:50%;height:var(--split-h,auto);border-width:var(--hair) var(--hair) 0 0;border-radius:0 var(--r-md) 0 0;padding:var(--s2) var(--s2) calc(var(--s2) + var(--safe-b)) calc(var(--s2) + var(--safe-l));max-height:var(--split-max-h,46vh);gap:var(--s1);inset:auto 50% 0 0;overflow-y:auto}#app.phone-portrait.split .labpanel{width:50%;height:var(--split-h,auto);max-height:var(--split-max-h,46vh);inset:auto 0 0 50%;overflow-y:auto}#app.phone-portrait.split.has-card .labpanel{display:block}#app.phone-portrait.split .labpanel-inner{border-width:var(--hair) 0 0 var(--hair);border-radius:var(--r-md) 0 0 0;width:100%;min-height:100%;padding:var(--s2) calc(var(--s2) + var(--safe-r)) calc(var(--s2) + var(--safe-b)) var(--s2);gap:var(--s1)}#app.phone-portrait.split .dock .handle{margin-bottom:2px}#app.phone-portrait.split .metals{grid-template-columns:repeat(3,1fr)}#app.phone-portrait.split .chips{display:flex}#app.phone-portrait.split .label-row{gap:var(--s1)}#app.phone-portrait.split .class-chip,#app.phone-portrait.split .lp-facts,#app.phone-portrait.split .lp-primary-sub{display:none}#app.phone-portrait.split .lp-primary{font-size:var(--t-lg)}#app.phone-portrait.split .lp-seg{scrollbar-width:none;flex-wrap:nowrap;min-width:0;overflow-x:auto}#app.phone-portrait.split .lp-seg::-webkit-scrollbar{display:none}#app.phone-portrait.split .lp-seg .chip{flex:none}#app.phone-portrait.split .cells{grid-template-columns:1fr}#app.phone-portrait.split .labpanel-inner,#app.phone-portrait.split .labpanel-inner>*,#app.phone-portrait.split .lp-control,#app.phone-portrait.split .lp-head,#app.phone-portrait.split .lp-actions,#app.phone-portrait.split .lp-fact,#app.phone-portrait.split .field,#app.phone-portrait.split .label-row{min-width:0}#app.phone-portrait.split .lp-head{flex-wrap:wrap;gap:2px}#app.phone-portrait.split .lp-actions{flex-wrap:wrap}#app.phone-portrait.split .lp-actions>*{flex:100%}#app.phone-portrait.split .lp-status{white-space:normal}#app.phone-portrait.split .chips{min-width:0}#app.phone-landscape .labpanel{left:calc(var(--s3) + var(--safe-l));bottom:calc(var(--s3) + var(--safe-b))}.labpanel-inner{background:var(--card);border:var(--hair) solid var(--line2);border-radius:var(--r-md);padding:var(--s3);gap:var(--s2);flex-direction:column;display:flex}.labpanel .k{font:600 var(--t-micro) / 1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}.lineup-buttons{gap:var(--s2);display:flex}.lineup-buttons .chip{min-height:var(--tap)}.iconbtn.forklift{color:var(--acc)}.iconbtn.active{color:var(--ink)}.iconbtn svg{margin:0 auto;display:block}.iconbtn.text{font:600 var(--t-base) / 1 var(--mono);letter-spacing:.06em}.help{background:var(--scrim);padding:calc(var(--s4) + var(--safe-t)) calc(var(--s4) + var(--safe-r)) calc(var(--s4) + var(--safe-b)) calc(var(--s4) + var(--safe-l));z-index:20;place-items:center;display:grid;position:absolute;inset:0}.help[hidden]{display:none}.help-card{background:var(--card);border:var(--hair) solid var(--line2);border-radius:var(--r-md);padding:0 var(--s4) var(--s4);width:min(560px,100%);max-height:100%;scroll-padding-top:calc(var(--tap) + var(--s4) + var(--s2));gap:var(--s3);flex-direction:column;display:flex;overflow-y:auto}.help-head{justify-content:space-between;align-items:center;gap:var(--s3);z-index:1;background:var(--card);padding:var(--s4) 0 var(--s2);display:flex;position:sticky;top:0}.help-title{font:600 var(--t-lg) / 1.2 var(--disp);letter-spacing:.04em;color:var(--ink);margin:0}.help-body{gap:var(--s5);flex-direction:column;display:flex}.help-topic{gap:var(--s4);flex-direction:column;display:flex}.help-topic-title{font:600 var(--t-base) / 1.2 var(--body);color:var(--ink);padding-bottom:var(--s2);border-bottom:var(--hair) solid var(--line2);margin:0}.help-group{gap:var(--s1);flex-direction:column;display:flex}.help-group .k{font:600 var(--t-micro) / 1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin:0 0 var(--s1)}.help-row{gap:var(--s3);grid-template-columns:minmax(120px,34%) 1fr;align-items:baseline;padding:3px 0;display:grid}.help-key,.help-gesture{font:600 var(--t-sm) / 1.3 var(--mono);color:var(--ink);background:var(--card2);border:var(--hair) solid var(--line);border-radius:var(--r-sm);justify-self:start;padding:2px 6px}.help-gesture{color:var(--ink2);background:0 0;border:none;padding:2px 0;font-weight:500}.help-desc{font:400 var(--t-base) / 1.4 var(--body);color:var(--ink2)}.help-note{font:400 var(--t-sm) / 1.4 var(--body);color:var(--ink3);border-top:var(--hair) solid var(--line);padding-top:var(--s2);margin:0}@media (max-width:520px){.help-row{grid-template-columns:1fr;gap:0}}.chip.action[aria-pressed]{background:var(--card2)}.lp{gap:var(--s2);width:292px}.lp-head{justify-content:space-between;align-items:baseline;gap:var(--s3);display:flex}.lp-status{font:600 var(--t-micro) / 1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);text-align:right}.lp-status[data-tone=ok]{color:var(--ok)}.lp-status[data-tone=warn]{color:var(--warn)}.lp-status[data-tone=bad]{color:var(--bad)}.lp-primary{font:600 var(--t-xl) / 1.1 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}.lp-primary.provisional{color:var(--ink2)}.lp-primary-sub{font:400 var(--t-sm) / 1.3 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink2)}.lp-facts{flex-direction:column;gap:2px;display:flex}.lp-fact{gap:var(--s2);grid-template-columns:68px 1fr auto;align-items:baseline;display:grid}.lp-fact-v{font:600 var(--t-sm) / 1.3 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}.lp-fact-v2{font:400 var(--t-sm) / 1.3 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink3)}.lp-control{gap:var(--s1);flex-direction:column;display:flex}.lp-control-row{gap:var(--s2);justify-content:space-between;align-items:baseline;display:flex}.lp-seg{gap:var(--s1);flex-wrap:wrap;display:flex}.lp-seg-opt[aria-checked=true],.lp-toggle[aria-checked=true]{background:var(--tung);border-color:var(--tung);color:var(--bg)}.lp-actions{gap:var(--s2);display:flex}.lp-actions .primary{min-height:var(--tap);flex:1}.lp-live{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.primary:disabled,.chip:disabled{opacity:.38;cursor:default}.primary:disabled:active{background:var(--acc)}.replaybar,.labpanel.replaying .labpanel-inner{display:none}.labpanel.replaying .replaybar{align-items:center;gap:8px;padding:10px 12px;display:flex}.replaybar .replayglyph{opacity:.7}.replaybar .replayspeed,.replaybar .replaytime{font-variant-numeric:tabular-nums;min-width:4ch}.replaybar input[type=range]{flex:1;min-width:60px}.replaybar .chip[aria-pressed=true]{outline:1px solid}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
