:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-sans:"Inter", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", "Cascadia Mono", "Cascadia Code", "SF Mono", Consolas, ui-monospace, monospace;--font-display:"DSEG14 Classic", "Cascadia Mono", Consolas, ui-monospace, monospace;--text-xs:11px;--text-sm:12px;--text-md:13px;--text-lg:15px;--text-xl:18px;--text-2xl:22px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius-sm:6px;--radius-md:9px;--radius-lg:14px;--radius-pill:999px;--bg:#0b0c0f;--bg-grad:radial-gradient(1200px 600px at 50% 20%, #171a20 0%, #0b0c0f 70%);--surface-1:#121419;--surface-2:#181b21;--surface-3:#20242c;--surface-4:#2a2f38;--border:#262a32;--border-strong:#363c47;--text:#e9ecf1;--text-dim:#a4abb8;--text-faint:#8d95a3;--accent:#4fd6b8;--accent-strong:#6ae6ca;--accent-ink:#04221b;--accent-soft:#4fd6b824;--danger:#ff6464;--danger-soft:#ff646424;--warning:#ffb547;--warning-soft:#ffb54721;--success:#54d98c;--info:#7aa7ff;--edited:#ffb547;--focus:#8ee9d4;--shadow-sm:0 1px 2px #0006;--shadow-md:0 8px 24px #00000073;--shadow-lg:0 24px 64px #0009;--hw-body:#34363a;--hw-body-hi:#3d3f44;--hw-body-lo:#2a2c30;--hw-rear:#1b1c1f;--hw-teal:#5fb8a2;--hw-switch:#151618;--hw-switch-edge:#26282c;--hw-pedal:#1c1d20;--hw-screen:#050506;--hw-label:#dfe3ea;--hw-print:#cfd3d8;--hw-display:#ff3b30;--topbar-h:56px;--browser-w:248px;--inspector-w:384px}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef0f3;--bg-grad:radial-gradient(1200px 600px at 50% 20%, #f8f9fb 0%, #e9ecf0 70%);--surface-1:#fff;--surface-2:#f6f7f9;--surface-3:#eceef2;--surface-4:#e1e4e9;--border:#dde1e7;--border-strong:#c7ccd4;--text:#161a20;--text-dim:#4d5562;--text-faint:#5f6774;--accent:#0a7a63;--accent-strong:#06604e;--accent-ink:#fff;--accent-soft:#0f9e801f;--danger:#b52d2d;--danger-soft:#d23c3c1a;--warning:#8a5200;--warning-soft:#e6961e24;--success:#16733f;--info:#3767d6;--edited:#945800;--focus:#0a7a63;--shadow-sm:0 1px 2px #141e2814;--shadow-md:0 8px 24px #141e281f;--shadow-lg:0 24px 64px #141e2838}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);background-image:var(--bg-grad);color:var(--text);font-family:var(--font-sans);font-size:var(--text-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.45}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background:var(--accent-soft)}.skip-link{z-index:100;background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-sm);padding:6px 10px;position:absolute;top:-40px;left:8px}.skip-link:focus{top:8px}*{scrollbar-width:thin;scrollbar-color:var(--surface-4) transparent}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{grid-template-rows:auto minmax(0,1fr) auto;height:100vh;display:grid;overflow:hidden}.app__main{grid-template-columns:var(--browser-w) minmax(0, 1fr) var(--inspector-w);min-height:0;display:grid}.view-ledlab .app__main{grid-template-columns:var(--browser-w) minmax(0, 1fr)}.app__inspector{border-left:1px solid var(--border);background:var(--surface-1);min-height:0;overflow:auto}.topbar{align-items:center;gap:var(--space-3);min-height:var(--topbar-h);padding:8px var(--space-4);background:color-mix(in srgb, var(--surface-1) 92%, transparent);border-bottom:1px solid var(--border);z-index:20;flex-wrap:wrap;display:flex;position:relative}.topbar__brand{margin-right:var(--space-1);align-items:center;gap:10px;display:flex}.brand-mark{background:var(--hw-body);width:26px;height:20px;box-shadow:inset 0 0 0 1.5px var(--hw-teal);border-radius:6px;grid-template-columns:1fr 1fr;gap:3px;padding:3px;display:grid}.brand-mark i{background:var(--hw-switch);border-top:3px solid var(--accent);border-radius:2px}.brand-mark i+i{border-top-color:#ff5a4f}.brand-name{font-size:var(--text-lg);letter-spacing:.01em;white-space:nowrap;color:var(--text-dim)}.brand-name b{color:var(--text);font-weight:650}.topbar__center{flex:1 1 0;justify-content:center;min-width:0;display:flex}.topbar__group{align-items:center;gap:6px;display:flex}.op{border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border);align-items:center;gap:10px;width:100%;min-width:0;max-width:420px;padding:4px 6px 4px 12px;display:flex}.op__label{white-space:nowrap;text-overflow:ellipsis;font-size:var(--text-sm);color:var(--text-dim);overflow:hidden}.op .progress{flex:80px}.op__count{font-size:var(--text-xs);color:var(--text-faint)}.browser{min-height:0;padding:var(--space-4) var(--space-3);border-right:1px solid var(--border);background:var(--surface-1);gap:var(--space-3);flex-direction:column;display:flex;overflow:auto}.browser__header{justify-content:space-between;align-items:center;padding:0 2px;display:flex}.panel-title{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);font-weight:650}.browser__legend{font-size:var(--text-xs);color:var(--text-faint);align-items:center;gap:6px;display:inline-flex}.browser__banner{font-size:var(--text-sm);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-strong);padding:6px 10px}.browser__grid{gap:var(--space-3);flex-direction:column;display:flex}.browser__tip{font-size:var(--text-xs);color:var(--text-faint);margin-top:auto;padding:0 2px}.bank{grid-template-columns:14px 1fr;align-items:start;gap:6px;display:grid}.bank__label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint);padding-top:8px;font-weight:700}.bank__slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.stage{min-height:0;padding:var(--space-4) var(--space-5) var(--space-3);gap:var(--space-3);flex-direction:column;display:flex;overflow:auto}.stage__toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.stage__title{align-items:center;gap:var(--space-3);min-width:0;display:flex}.stage__name{font-size:var(--text-2xl);letter-spacing:.02em;font-weight:650;font-family:var(--font-mono)}.stage__status{font-size:var(--text-sm);color:var(--text-faint)}.stage__status.is-edited{color:var(--edited)}.stage__controls{gap:var(--space-4);flex-wrap:wrap;display:flex}.stage__device{flex:1 0 auto;justify-content:center;align-items:center;display:flex;position:relative}.stage__device>.pacer{width:min(100%,1180px,162vh - 453.6px);min-width:440px}.stage__hint{text-align:center;font-size:var(--text-xs);color:var(--text-faint)}.stage__empty{width:min(460px,90%);height:-moz-fit-content;height:fit-content;padding:var(--space-6);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface-1) 90%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);text-align:center;margin:auto;position:absolute;inset:0}.stage__empty h2{font-size:var(--text-xl);margin-bottom:6px}.stage__empty p{color:var(--text-dim);margin-bottom:var(--space-4)}.stage__empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.preview-banner{justify-content:space-between;align-items:center;gap:var(--space-3);border-radius:var(--radius-md);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);background:var(--accent-soft);flex-wrap:wrap;padding:8px 8px 8px 14px;display:flex}.preview-banner>div>span{color:var(--text-dim)}.preview-banner__actions{gap:6px;display:flex}.ledlab{grid-template-columns:minmax(0, 1fr) var(--inspector-w);min-height:0;display:grid}.ledlab__device{min-height:0;padding:var(--space-4) var(--space-5);gap:var(--space-4);flex-direction:column;align-items:center;display:flex;overflow:auto}.ledlab__device>.pacer{width:min(100%,1100px);min-width:440px}.ledlab__intro{flex-direction:column;align-self:stretch;gap:4px;display:flex}.ledlab__panel{border-left:1px solid var(--border);background:var(--surface-1);min-height:0;overflow:auto}.monitor{border-top:1px solid var(--border);background:var(--surface-1);flex-direction:column;min-height:0;display:flex}.monitor.is-open{height:min(280px,38vh)}@media (max-width:1360px){:root{--browser-w:220px;--inspector-w:348px}.topbar__group[aria-label=App] .btn__label{display:none}}@media (max-width:1140px){:root{--browser-w:196px;--inspector-w:320px}.brand-name{display:none}.topbar{gap:6px;padding-inline:10px}.topbar .btn--md{padding:0 9px}.topbar__group{gap:3px}.topbar__group[aria-label=Device] .btn:first-child>svg,.topbar .popover-anchor .btn>svg:first-child{display:none}.stage{padding-inline:var(--space-3)}.stage__device>.pacer,.ledlab__device>.pacer{min-width:0}}.pacer{position:relative;container-type:inline-size}.pacer__canvas{--u:calc(100cqw / 1000);aspect-ratio:1000/600;-webkit-user-select:none;user-select:none;width:100%;position:relative}.pacer__canvas>*{position:absolute}.pacer__rear{border-radius:calc(18 * var(--u)) calc(18 * var(--u)) 0 0;background:linear-gradient(180deg, #202124, var(--hw-rear));height:14%;box-shadow:inset 0 calc(2 * var(--u)) 0 #ffffff0a;top:0;left:3%;right:3%}[data-theme=light] .pacer__rear{background:linear-gradient(#3a3c40,#2a2b2e)}.rear-label{white-space:nowrap;font-size:max(7px, calc(9.5 * var(--u)));letter-spacing:.06em;color:#9aa0a8;pointer-events:none;font-weight:700;transform:translate(-50%)}.relays{pointer-events:auto;justify-content:space-between;align-items:center;display:flex}.relay{align-items:center;gap:calc(3 * var(--u));font-family:var(--font-mono);font-size:max(7px, calc(10 * var(--u)));color:#7d838b;display:inline-flex}.relay i{width:calc(8 * var(--u));height:calc(8 * var(--u));box-shadow:inset 0 0 0 calc(1.5 * var(--u)) #111;background:#3a3d42;border-radius:50%}.jack{justify-content:center;align-items:center;gap:calc(5 * var(--u));border:calc(1.5 * var(--u)) solid #34363b;border-radius:calc(8 * var(--u));color:var(--hw-label);font-family:var(--font-mono);font-size:max(8px, calc(11 * var(--u)));background:#121315;padding:0;font-weight:600;transition:border-color .15s,box-shadow .15s;display:flex}.jack__socket{width:calc(10 * var(--u));height:calc(10 * var(--u));background:radial-gradient(circle,#000 35%,#6b6f75 40%,#2c2e32 70%);border-radius:50%;flex:none}.jack.is-off{color:#7d838b}.jack:hover{border-color:#50545b}.jack[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 calc(2 * var(--u)) var(--accent-soft), 0 0 calc(14 * var(--u)) color-mix(in srgb, var(--accent) 40%, transparent);color:#fff}.jack.is-highlighted:not([aria-pressed=true]){border-style:dashed;border-color:var(--accent)}.jack:disabled{opacity:.45}.pacer__body{border-radius:calc(22 * var(--u));background:linear-gradient(180deg, #ffffff0d, #00000014), linear-gradient(90deg, var(--hw-body-lo), var(--hw-body) 12%, var(--hw-body-hi) 50%, var(--hw-body) 88%, var(--hw-body-lo));width:100%;height:88.333%;box-shadow:inset 0 calc(2 * var(--u)) 0 #ffffff12, inset 0 calc(-3 * var(--u)) 0 #00000059, 0 calc(20 * var(--u)) calc(50 * var(--u)) #00000073;pointer-events:none;top:11.667%;left:0}.pacer__stripe{height:calc(4 * var(--u));background:var(--hw-teal);opacity:.85;position:absolute}.pacer__stripe--top{top:calc(14 * var(--u));left:calc(240 * var(--u));right:calc(18 * var(--u))}.pacer__stripe--bottom{bottom:calc(14 * var(--u));left:calc(18 * var(--u));right:calc(220 * var(--u))}.pacer__tab{top:calc(6 * var(--u));left:calc(18 * var(--u));padding:calc(3 * var(--u)) calc(34 * var(--u)) calc(3 * var(--u)) calc(14 * var(--u));background:var(--hw-teal);clip-path:polygon(0 0,88% 0,100% 100%,0 100%);color:#0e1714;font-size:max(7px, calc(15 * var(--u)));letter-spacing:.12em;border-radius:calc(4 * var(--u));font-weight:800;position:absolute}.fsw{border-radius:calc(12 * var(--u));background:0 0;border:0;flex-direction:column;align-items:stretch;padding:0;transition:transform .12s;display:flex}.fsw:before{content:"";background:linear-gradient(180deg, #1b1c1f, var(--hw-switch));clip-path:polygon(0 0,100% 0,95% 100%,5% 100%);border-radius:calc(12 * var(--u));box-shadow:inset 0 0 0 calc(2 * var(--u)) var(--hw-switch-edge);position:absolute;inset:0}.fsw:after{content:"";inset:calc(-6 * var(--u));border-radius:calc(16 * var(--u));border:calc(2.5 * var(--u)) solid transparent;pointer-events:none;transition:border-color .15s,box-shadow .15s;position:absolute}.fsw:hover:not(:disabled):after{border-color:#ffffff29}.fsw[aria-pressed=true]:after{border-color:var(--accent);box-shadow:0 0 calc(22 * var(--u)) color-mix(in srgb, var(--accent) 35%, transparent)}.fsw.is-highlighted:not([aria-pressed=true]):after{border-color:color-mix(in srgb, var(--accent) 70%, transparent);border-style:dashed}.fsw:active:not(:disabled){transform:translateY(calc(2 * var(--u)))}.fsw:focus-visible{outline-offset:calc(10 * var(--u))}.fsw:disabled{cursor:default;opacity:.55}.fsw--fixed{opacity:.7;pointer-events:none}.fsw__screen{margin:calc(12 * var(--u)) calc(14 * var(--u)) 0;border-radius:calc(5 * var(--u));background:var(--hw-screen);height:30%;box-shadow:inset 0 0 0 calc(1.5 * var(--u)) #000, inset 0 calc(8 * var(--u)) calc(16 * var(--u)) #ffffff08;justify-content:center;align-items:center;gap:calc(9 * var(--u));flex-direction:column;display:flex;position:relative}.fsw__label{text-overflow:ellipsis;white-space:nowrap;max-width:94%;font-size:max(8px, calc(16 * var(--u)));letter-spacing:.04em;color:var(--hw-label);font-weight:650;line-height:1;overflow:hidden}.fsw.is-off .fsw__label{color:#6a7078}.fsw__led{width:64%;height:calc(7 * var(--u));border-radius:calc(2 * var(--u));background:#2b2e33;transition:background .2s,box-shadow .2s;position:relative}.led--lit{background:var(--led);box-shadow:0 0 calc(5 * var(--u)) var(--led), 0 0 calc(18 * var(--u)) color-mix(in srgb, var(--led) 60%, transparent), 0 0 calc(40 * var(--u)) color-mix(in srgb, var(--led) 25%, transparent)}.led--dim{background:color-mix(in srgb, var(--led) 48%, #000);box-shadow:0 0 calc(8 * var(--u)) color-mix(in srgb, var(--led) 35%, transparent)}.led--default{background:repeating-linear-gradient(90deg, #b9c1cc 0 calc(6 * var(--u)), #7d858f calc(6 * var(--u)) calc(9 * var(--u)));box-shadow:0 0 calc(8 * var(--u)) #c8d2e159}.led--off{background:#26292d}.fsw__lednum{right:calc(-16 * var(--u));font-family:var(--font-mono);font-size:max(7px, calc(10 * var(--u)));color:#8a9098;position:absolute;top:50%;transform:translateY(-50%)}.fsw__pedal{margin:calc(14 * var(--u)) auto calc(14 * var(--u));border-radius:calc(10 * var(--u));background:linear-gradient(180deg, #ffffff0d, transparent 30%), var(--hw-pedal);width:58%;box-shadow:inset 0 0 0 calc(2 * var(--u)) #0c0d0f, inset 0 calc(3 * var(--u)) calc(6 * var(--u)) #ffffff0d, 0 calc(4 * var(--u)) calc(6 * var(--u)) #00000080;flex:1;position:relative}.fsw__dots{left:50%;bottom:calc(10 * var(--u));gap:calc(4 * var(--u));display:flex;position:absolute;transform:translate(-50%)}.fsw__dots i{width:calc(6 * var(--u));height:calc(6 * var(--u));background:#34373c;border-radius:50%}.fsw__dots i.on{background:var(--accent);box-shadow:0 0 calc(4 * var(--u)) var(--accent)}.fsw__mode{top:calc(8 * var(--u));padding:0 calc(4 * var(--u));border-radius:calc(3 * var(--u));font-family:var(--font-mono);font-size:max(7px, calc(9.5 * var(--u)));color:#0b1512;background:var(--hw-teal);font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.fsw__caption{justify-content:center;align-items:flex-start;gap:calc(7 * var(--u));pointer-events:none;padding-top:calc(4 * var(--u));display:flex}.fsw__badge{min-width:calc(24 * var(--u));height:calc(24 * var(--u));padding:0 calc(4 * var(--u));border-radius:calc(12 * var(--u));background:var(--hw-teal);color:#0c1512;font-size:max(8px, calc(13 * var(--u)));flex:none;place-items:center;font-weight:800;display:grid}.fsw__summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);font-size:max(8px, calc(12.5 * var(--u)));line-height:calc(24 * var(--u));color:var(--hw-print);overflow:hidden}.pacer__display{justify-content:center;align-items:center;gap:calc(2 * var(--u));border:calc(2 * var(--u)) solid #000;border-radius:calc(6 * var(--u));box-shadow:inset 0 0 calc(14 * var(--u)) #000, 0 0 0 calc(3 * var(--u)) #232427;font-family:var(--font-display);color:var(--hw-display);text-shadow:0 0 calc(6 * var(--u)) #ff3228cc, 0 0 calc(18 * var(--u)) #ff281e59;background:radial-gradient(at 50% 30%,#1a0707,#070202 70%);flex-direction:column;padding:0;display:flex}.pacer__display:after{content:"";inset:calc(-8 * var(--u));border-radius:calc(10 * var(--u));border:calc(2.5 * var(--u)) solid transparent;pointer-events:none;position:absolute}.pacer__display[aria-pressed=true]:after{border-color:var(--accent)}.pacer__display:hover:after{border-color:#ffffff29}.pacer__display-name{font-size:max(10px, calc(27 * var(--u)));letter-spacing:.12em;white-space:pre;font-style:italic;font-weight:700;line-height:1}.pacer__display-slot{font-size:max(9px, calc(22 * var(--u)));letter-spacing:.1em;font-style:italic;font-weight:700;line-height:1}.pacer__knob{background:radial-gradient(circle at 40% 35%, #ffffff24, transparent 45%), repeating-conic-gradient(#1a1b1d 0 5deg, #0f1011 5deg 10deg);box-shadow:0 calc(6 * var(--u)) calc(14 * var(--u)) #0009, inset 0 0 0 calc(3 * var(--u)) #0a0a0b;pointer-events:none;border-radius:50%}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-3);height:32px;color:var(--text);font-size:var(--text-md);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-weight:550;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-4)}.btn:disabled{opacity:.45}.btn--sm{height:26px;font-size:var(--text-sm);gap:5px;padding:0 9px}.btn--icon{width:32px;padding:0}.btn--sm.btn--icon{width:26px}.btn--primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn--primary:hover:not(:disabled){background:var(--accent-strong)}.btn--danger{background:var(--danger);color:#fff;border-color:#0000}.btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 85%, #fff)}.btn--ghost{color:var(--text-dim);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.btn--subtle{background:var(--accent-soft);color:var(--accent-strong);border-color:#0000}.btn__badge{border-radius:var(--radius-pill);min-width:20px;height:18px;font-family:var(--font-mono);font-size:var(--text-xs);text-align:center;background:#00000038;padding:0 6px;line-height:18px}.link-button{color:var(--accent);font-size:var(--text-sm);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);background:0 0;border:0;padding:0}.link-button:hover{color:var(--accent-strong)}.seg{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);gap:2px;padding:2px;display:inline-flex}.seg__option{height:28px;color:var(--text-dim);font-size:var(--text-sm);white-space:nowrap;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;gap:5px;padding:0 11px;font-weight:550;display:inline-flex}.seg--sm .seg__option{height:22px;font-size:var(--text-xs);padding:0 8px}.seg__option:hover:not(:disabled):not(.is-checked){color:var(--text);background:var(--surface-3)}.seg__option.is-checked{background:var(--surface-4);color:var(--text);box-shadow:var(--shadow-sm), inset 0 0 0 1px var(--border-strong)}.seg__option:disabled{opacity:.45}.seg--full{display:flex}.seg--full .seg__option{flex:1}.toggle{color:var(--text-dim);font-size:var(--text-sm);background:0 0;border:0;align-items:center;gap:8px;padding:2px 0;display:inline-flex}.toggle__track{border-radius:var(--radius-pill);background:var(--surface-4);width:32px;height:18px;box-shadow:inset 0 0 0 1px var(--border-strong);flex:none;transition:background .15s;position:relative}.toggle__thumb{background:var(--text-dim);border-radius:50%;width:14px;height:14px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.toggle.is-on .toggle__track{background:var(--accent);box-shadow:none}.toggle.is-on .toggle__thumb{background:#fff;transform:translate(14px)}.toggle:disabled{opacity:.45}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field__label{font-size:var(--text-xs);color:var(--text-faint);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.field__aside{color:var(--text-faint);opacity:.8;font-weight:400}.input{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);width:100%;height:30px;color:var(--text);font-size:var(--text-md);padding:0 9px;transition:border-color .12s,box-shadow .12s}.input:hover:not(:disabled){border-color:color-mix(in srgb, var(--text-faint) 60%, var(--border-strong))}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input:focus-visible{outline:none}.input:disabled{opacity:.55}.input--mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.input.is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.input--display{height:42px;font-family:var(--font-mono);letter-spacing:.3em;text-transform:uppercase;color:var(--hw-display);text-shadow:0 0 8px #ff322880;background:#0c0404;border-color:#3a1612;font-size:22px;font-weight:700}[data-theme=light] .input--display{background:#1a0a09}.select{display:block;position:relative}.select:after{content:"";border-right:1.5px solid var(--text-faint);border-bottom:1.5px solid var(--text-faint);pointer-events:none;width:6px;height:6px;position:absolute;top:50%;right:10px;transform:translateY(-70%)rotate(45deg)}.select__input{appearance:none;cursor:pointer;text-overflow:ellipsis;padding-right:26px}.select__input option,.select__input optgroup{background:var(--surface-2);color:var(--text)}.hint{font-size:var(--text-sm);color:var(--text-faint);line-height:1.45}.hint--warning{color:var(--warning)}.progress{border-radius:var(--radius-pill);background:var(--surface-4);height:6px;overflow:hidden}.progress__bar{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--accent-strong));height:100%;transition:width .15s linear}.popover-anchor{position:relative}.pill{border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface-2);max-width:220px;height:30px;color:var(--text);font-size:var(--text-sm);align-items:center;gap:8px;padding:0 10px 0 12px;font-weight:550;display:inline-flex}.pill__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pill__dot{background:var(--text-faint);border-radius:50%;flex:none;width:8px;height:8px}.pill--ok .pill__dot{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb, var(--success) 25%, transparent)}.pill--warn .pill__dot{background:var(--warning)}.pill--error{border-color:color-mix(in srgb, var(--danger) 50%, var(--border-strong))}.pill--error .pill__dot{background:var(--danger)}.pill--idle{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, var(--border-strong))}.pill--idle .pill__dot{background:var(--accent)}.popover,.menu--anchored{z-index:40;position:absolute;top:calc(100% + 6px);left:0}.popover{width:340px;padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface-2);box-shadow:var(--shadow-lg)}.connection__body{gap:var(--space-3);flex-direction:column;display:flex}.connection__title{align-items:center;gap:8px;font-weight:650;display:flex}.connection__error{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:var(--text-sm);padding:8px 10px}.connection__actions{gap:6px;display:flex}.status-dot{background:var(--warning);border-radius:50%;width:8px;height:8px}.status-dot.is-ok{background:var(--success)}.port-status{text-transform:lowercase;color:var(--text-faint);font-weight:500}.port-status--open{color:var(--success)}.port-status--busy,.port-status--disconnected{color:var(--danger)}.menu{z-index:60;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface-2);min-width:230px;box-shadow:var(--shadow-lg);flex-direction:column;padding:5px;display:flex;position:fixed}.menu--anchored{position:absolute;left:auto;right:0}.menu__title{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:6px;padding:7px 9px 3px;font-weight:650;display:flex}.menu__item{justify-content:space-between;align-items:center;gap:var(--space-4);height:30px;color:var(--text);font-size:var(--text-md);text-align:left;background:0 0;border:0;border-radius:5px;padding:0 9px;display:flex}.menu__item:hover:not(:disabled),.menu__item:focus-visible{background:var(--surface-4)}.menu__item:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.menu__item:disabled{color:var(--text-faint)}.menu__item--danger{color:var(--danger)}.menu__hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint)}.slot{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);text-align:left;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;height:46px;padding:5px 7px;transition:border-color .12s,background .12s;display:flex;position:relative}.slot:hover{border-color:var(--border-strong);background:var(--surface-3)}.slot--wide{flex-direction:row;align-items:center;gap:10px;width:100%;height:40px}.slot__id{font-family:var(--font-mono);color:var(--text-faint);letter-spacing:.04em;font-size:10px;font-weight:700}.slot__name{text-overflow:ellipsis;white-space:pre;max-width:100%;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text);font-weight:600;overflow:hidden}.slot.is-empty .slot__name{color:var(--text-faint)}.slot__status{color:var(--text-faint);align-items:center;gap:3px;display:flex;position:absolute;top:5px;right:5px}.slot__status .is-sync{color:var(--success)}.slot.is-selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.slot.is-swap-source{border-style:dashed;border-color:var(--warning)}.slot.is-drop-target{border-color:var(--accent-strong);box-shadow:0 0 0 3px var(--accent-soft)}@media (max-width:1140px){.slot{padding:5px 4px}.slot__name{letter-spacing:-.03em;font-size:11px}.slot__status svg{display:none}}.dot{border-radius:50%;width:7px;height:7px;display:inline-block}.dot--edited{background:var(--edited);box-shadow:0 0 0 2px color-mix(in srgb, var(--edited) 25%, transparent)}.slot-chip{border-radius:var(--radius-sm);background:var(--surface-3);border:1px solid var(--border-strong);min-width:40px;height:30px;font-family:var(--font-mono);font-weight:700;font-size:var(--text-md);color:var(--accent);place-items:center;padding:0 8px;display:inline-grid}.slot-chip--lg{min-width:46px;height:36px;font-size:var(--text-lg)}.labelled{align-items:center;gap:8px;display:flex}.labelled__label{font-size:var(--text-xs);color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.chip{border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface-3);height:26px;font-size:var(--text-sm);align-items:center;gap:6px;padding:0 9px;display:inline-flex}.chip.is-checked{border-color:var(--accent);color:var(--accent-strong)}.tag{border-radius:var(--radius-pill);font-size:var(--text-xs);margin-left:6px;padding:0 6px;display:inline-block}.tag--error{background:var(--danger-soft);color:var(--danger)}.swatch{border-radius:4px;flex:none;width:16px;height:16px;display:inline-block;box-shadow:inset 0 0 0 1px #00000059}.swatch--sm{border-radius:3px;width:12px;height:12px}.swatch.led--lit{background:var(--led);box-shadow:inset 0 0 0 1px #0003, 0 0 8px color-mix(in srgb, var(--led) 55%, transparent)}.swatch.led--dim{background:color-mix(in srgb, var(--led) 48%, #000)}.swatch.led--off{background:repeating-linear-gradient(135deg,#2a2d32 0 3px,#1a1c20 3px 6px)}.swatch.led--default{background:repeating-linear-gradient(90deg,#c3cad4 0 3px,#7d858f 3px 5px)}.color-picker{position:relative}.color-trigger{text-align:left;align-items:center;gap:8px;display:flex}.color-trigger__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);flex:1;overflow:hidden}.color-trigger__code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint)}.color-popover{z-index:30;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface-2);box-shadow:var(--shadow-lg);padding:10px;position:absolute;top:calc(100% + 6px);left:0}.color-grid{flex-direction:column;gap:4px;display:flex}.color-grid__row{grid-template-columns:repeat(12,22px);gap:4px;display:grid}.color-cell{background:0 0;border:1px solid #0000;border-radius:5px;place-items:center;width:22px;height:22px;padding:0;display:grid}.color-cell .swatch{width:16px;height:16px}.color-cell:hover{border-color:var(--border-strong)}.color-cell[aria-checked=true]{border-color:var(--text)}.color-popover__extra{gap:6px;margin-top:8px;display:flex}.inspector{flex-direction:column;display:flex}.inspector__notice{margin:var(--space-3) var(--space-4) 0;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-strong);font-size:var(--text-sm);padding:8px 10px}.inspector__header{gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border);flex-direction:column;display:flex}.inspector__heading{align-items:center;gap:var(--space-3);display:flex}.inspector__badge{background:var(--hw-teal);color:#0c1512;min-width:38px;height:38px;font-weight:800;font-size:var(--text-md);border-radius:10px;place-items:center;padding:0 6px;display:grid}.inspector__badge--display{color:var(--hw-display);background:#1a0606;box-shadow:inset 0 0 0 1px #3a1612}.inspector__title{font-size:var(--text-xl);font-weight:650}.inspector__meta{font-size:var(--text-sm);color:var(--text-faint)}.inspector__section{gap:var(--space-2);padding:var(--space-4);border-bottom:1px solid var(--border);flex-direction:column;display:flex}.section-title{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-weight:650;display:flex}.section-title__aside{letter-spacing:0;text-transform:none;font-weight:500}.step-list,.midi-list{gap:var(--space-2);flex-direction:column;display:flex}.empty{align-items:flex-start;gap:var(--space-2);padding:var(--space-6) var(--space-4);flex-direction:column;display:flex}.empty__title{font-size:var(--text-lg);font-weight:650}.empty__text{color:var(--text-dim);margin-bottom:var(--space-2)}.step-card{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);overflow:visible}.step-card.is-inactive{background:color-mix(in srgb, var(--surface-2) 55%, transparent)}.step-card__header{align-items:center;gap:10px;padding:8px 10px;display:flex}.step-card__num{background:var(--surface-4);width:22px;height:22px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);border-radius:6px;flex:none;place-items:center;font-weight:700;display:grid}.step-card:not(.is-inactive) .step-card__num{background:var(--accent-soft);color:var(--accent-strong)}.step-card__title{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.step-card__type{font-weight:600}.step-card.is-inactive .step-card__type{color:var(--text-faint)}.step-card__summary{font-size:var(--text-xs);color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.step-card__leds{gap:3px;display:flex}.step-card__body{gap:var(--space-2);border:0;flex-direction:column;min-width:0;margin:0;padding:0 10px 10px;display:flex}.step-card__row{gap:var(--space-2);grid-template-columns:minmax(0,1fr) 84px;display:grid}.step-card__row>.field:only-child{grid-column:1/-1}.step-card__data{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(84px,1fr));display:grid}.led-section{border-top:1px dashed var(--border);padding-top:6px}.led-section summary{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:2px 0 6px;font-weight:650;list-style:none;display:flex}.led-section summary::-webkit-details-marker{display:none}.led-section summary:before{content:"▸";margin-right:4px}.led-section[open] summary:before{content:"▾"}.led-section summary>span:first-child{flex:1}.led-section__hint{letter-spacing:0;text-transform:none;font-weight:500}.led-section__grid{gap:var(--space-2) var(--space-3);grid-template-columns:1fr 1fr;display:grid}.dialog{color:var(--text);background:0 0;border:0;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);padding:0;overflow:visible}.dialog:focus,.dialog:focus-visible{outline:none}.dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0506089e}.dialog--sm{width:440px}.dialog--md{width:600px}.dialog--lg{width:760px}.dialog__panel{border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--surface-1);max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.dialog__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3);display:flex}.dialog__title{font-size:var(--text-xl);font-weight:650}.dialog__subtitle{color:var(--text-faint);font-size:var(--text-sm);margin-top:2px}.dialog__body{gap:var(--space-4);padding:0 var(--space-5) var(--space-4);flex-direction:column;display:flex;overflow:auto}.dialog__text{color:var(--text-dim)}.dialog__footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex}.callout{justify-content:space-between;align-items:flex-start;gap:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-strong);padding:12px 14px;display:flex}.callout--warning{border-color:color-mix(in srgb, var(--warning) 40%, transparent);background:var(--warning-soft);color:var(--warning);justify-content:flex-start;align-items:center}.callout--info{border-color:color-mix(in srgb, var(--accent) 40%, transparent);background:var(--accent-soft);flex-wrap:wrap}.callout__actions{align-items:center;gap:14px;display:flex}.write-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.write-item{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);padding:10px 12px}.write-item.is-excluded{opacity:.5}.write-item__main{align-items:center;gap:var(--space-3);display:flex}.write-item__text{flex-direction:column;flex:1;gap:2px;display:flex}.write-item__parts{font-size:var(--text-xs);color:var(--text-dim);columns:2;margin:8px 0 0 58px;padding:0;list-style:none}.write-options{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.write-progress{font-size:var(--text-sm);color:var(--text-dim);flex-direction:column;gap:6px;display:flex}.backup-ok{color:var(--success);align-items:center;gap:6px;display:flex}.template-card{border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--surface-2);padding:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.template-card.is-selected{border-color:color-mix(in srgb, var(--accent) 55%, transparent)}.template-card h3{font-size:var(--text-lg);margin-bottom:4px}.template-card__options{gap:var(--space-4);flex-direction:column;display:flex}.slot-picker{flex-direction:column;gap:5px;display:flex}.slot-picker__row{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;display:grid}.slot-option{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-3);height:32px;font-family:var(--font-mono);color:var(--text-dim);font-weight:700;position:relative}.slot-option--wide{width:calc(33.3333% - 3.33333px)}.slot-option.is-checked{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.slot-option:disabled{opacity:.35;text-decoration:line-through}.slot-option__tag{background:var(--accent);color:var(--accent-ink);font-family:var(--font-sans);border-radius:4px;padding:0 4px;font-size:9px;font-weight:700;line-height:13px;position:absolute;top:-7px;right:4px}.ledlab__tests{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ledlab__facts{gap:var(--space-2);flex-direction:column;margin:0;padding-left:1.2em;display:flex}.monitor__bar{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:34px;padding:0 var(--space-3);display:flex}.monitor__toggle{min-width:0;height:34px;color:var(--text-dim);font-size:var(--text-sm);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:0;font-weight:600;display:flex}.monitor__count{border-radius:var(--radius-pill);background:var(--surface-3);font-size:var(--text-xs);color:var(--text-faint);padding:0 6px}.monitor__last{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-xs);color:var(--text-faint);font-weight:400;overflow:hidden}.monitor__chevron{flex:none;margin-left:auto;transition:transform .15s;transform:rotate(180deg)}.monitor.is-open .monitor__chevron{transform:none}.monitor__tools{align-items:center;gap:var(--space-3);display:flex}.monitor__list{border-top:1px solid var(--border);flex:1;min-height:0;overflow:auto}.monitor__empty{padding:var(--space-4);color:var(--text-faint)}.monitor__table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.monitor__table td{border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);vertical-align:top;padding:3px 10px}.monitor__time{white-space:nowrap;width:1%;color:var(--text-faint);font-size:var(--text-xs)}.monitor__dir{width:1%;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700}.dir-in .monitor__dir{color:var(--info)}.dir-out .monitor__dir{color:var(--accent)}.monitor__hex{width:40%;color:var(--text-faint);font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;max-width:0;overflow:hidden}.monitor__table tr.is-bad td{background:var(--danger-soft)}.toasts{z-index:80;flex-direction:column;gap:8px;width:min(380px,100vw - 32px);display:flex;position:fixed;bottom:52px;right:16px}.toast{border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface-2);box-shadow:var(--shadow-md);border-left-width:3px;align-items:flex-start;gap:10px;padding:10px 10px 10px 12px;animation:.18s ease-out toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.toast--success{border-left-color:var(--success)}.toast--info{border-left-color:var(--info)}.toast--warning{border-left-color:var(--warning)}.toast--error{border-left-color:var(--danger)}.toast__icon{margin-top:1px}.toast--success .toast__icon{color:var(--success)}.toast--warning .toast__icon{color:var(--warning)}.toast--error .toast__icon{color:var(--danger)}.toast--info .toast__icon{color:var(--info)}.toast__body{flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;display:flex}.toast__body p{font-size:var(--text-sm);color:var(--text-dim)}.toast__close{color:var(--text-faint);background:0 0;border:0;border-radius:4px;padding:2px}.about{color:var(--text-dim);flex-direction:column;gap:8px;display:flex}.about h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin-top:8px}.shortcuts{flex-direction:column;gap:4px;margin:0;display:flex}.shortcuts div{grid-template-columns:200px 1fr;gap:8px;display:grid}.shortcuts dt{font-size:var(--text-sm);color:var(--text)}.shortcuts dd{margin:0}.dropzone{z-index:90;pointer-events:none;background:#0506088c;place-items:center;display:grid;position:fixed;inset:0}.dropzone__panel{border-radius:var(--radius-lg);border:2px dashed var(--accent);background:var(--surface-1);font-size:var(--text-lg);padding:28px 40px;font-weight:600}.btn.is-toggled{color:var(--accent);background:var(--accent-soft)}.pill__fw{border-radius:var(--radius-pill);background:var(--surface-4);font-size:var(--text-xs);color:var(--text-dim);white-space:nowrap;padding:0 6px}kbd,.palette__kbd{border:1px solid var(--border-strong);background:var(--surface-3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);white-space:nowrap;border-bottom-width:2px;border-radius:4px;padding:1px 6px;display:inline-block}.connection__identity{font-family:var(--font-mono);font-size:var(--text-xs)}.stage__actions{gap:2px;display:flex}@media (max-width:1360px){.topbar__palette{display:none}}.flash{inset:calc(-8 * var(--u));border-radius:calc(16 * var(--u));pointer-events:none;box-shadow:0 0 0 calc(3 * var(--u)) var(--accent), 0 0 calc(30 * var(--u)) var(--accent);z-index:2;animation:.9s ease-out forwards follow-flash;position:absolute}@keyframes follow-flash{0%{opacity:1}to{opacity:0}}.badge{border-radius:var(--radius-pill);background:var(--surface-4);height:18px;color:var(--text-dim);letter-spacing:.03em;white-space:nowrap;align-items:center;padding:0 7px;font-size:10px;font-weight:650;display:inline-flex}.badge--unverified{background:var(--warning-soft);color:var(--warning)}.badge--diff{background:var(--accent-soft);color:var(--accent-strong)}.badge--same{color:var(--text-faint)}.global-view{min-height:0;padding:var(--space-4) var(--space-5);gap:var(--space-4);flex-direction:column;display:flex;overflow:auto}.view-global .app__main{grid-template-columns:var(--browser-w) minmax(0, 1fr)}.global-view__header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.global-view__actions{gap:6px;display:flex}.global-view__warning{font-size:var(--text-sm);align-items:flex-start;line-height:1.5}.global-view__warning svg{flex:none;margin-top:2px}.global-view__empty{padding:var(--space-6);border-radius:var(--radius-lg);border:1px dashed var(--border-strong);text-align:center;color:var(--text-dim);gap:var(--space-3);flex-direction:column;display:flex}.global-view__tabs{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.tab-dot{background:var(--success);border-radius:50%;width:6px;height:6px;margin-left:5px}.global-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start;display:grid}.global-card{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-1);flex-direction:column;display:flex}.global-card--wide{grid-column:1/-1}.global-field{border-left:2px solid #0000;flex-direction:column;gap:4px;padding-left:10px;display:flex}.global-field.is-changed{border-left-color:var(--edited)}.global-field__meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.global-field__addr{font-size:var(--text-xs);color:var(--text-faint)}.global-field .hint{font-size:var(--text-xs)}.kv{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:0;display:grid}.kv dt{font-size:var(--text-xs);color:var(--text-faint)}.kv dd{margin:0;font-weight:600}.table-wrap{overflow-x:auto}.state-table{border-collapse:collapse;font-size:var(--text-sm)}.state-table th,.state-table td{border-bottom:1px solid var(--border);text-align:center;padding:3px 8px}.state-table th:first-child{text-align:left;white-space:nowrap;color:var(--text-faint);font-weight:500}.raw-list{font-size:var(--text-sm);margin:0;padding-left:16px}.write-item--global .slot-chip{color:var(--warning)}.templates{gap:var(--space-3);grid-template-columns:200px minmax(0,1fr);align-items:start;display:grid}.template-list{flex-direction:column;gap:6px;display:flex}.template-option{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.template-option:hover{border-color:var(--border-strong)}.template-option.is-checked{border-color:var(--accent);background:var(--accent-soft)}@media (max-width:760px){.templates{grid-template-columns:1fr}}.share-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;display:grid}.share-summary__row{font-size:var(--text-sm);--u:1px;grid-template-columns:34px 72px minmax(0,1fr);align-items:center;gap:8px;display:grid}.share-summary__row .fsw__badge{height:20px;font-size:10px}.share-summary__row.is-off{color:var(--text-faint)}.share-summary__label{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.restore-pick{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.restore-pick .hint,.restore-pick .connection__error{flex-basis:100%}.restore{gap:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);min-height:360px;display:grid}.restore__toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.restore__file{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.restore__rows{flex-direction:column;gap:3px;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.restore-row{border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:8px;padding:3px 6px;display:flex}.restore-row.is-focused{border-color:var(--accent);background:var(--accent-soft)}.restore-row__main{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-width:0;padding:2px;display:flex}.restore-row__main .slot-chip{min-width:40px;height:26px}.restore-row__names{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.restore__globals{align-items:center;margin-top:10px}.restore__diff{border-left:1px solid var(--border);padding-left:var(--space-4);max-height:460px;overflow:auto}.restore__diff-title{font-size:var(--text-md);margin-bottom:10px}.restore__note{align-items:center;gap:6px;margin-top:12px;display:flex}.diff-group{margin-bottom:12px}.diff-group h4{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);margin:0 0 4px}.diff-group ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.diff-group li{font-size:var(--text-xs);grid-template-columns:90px minmax(0,1fr) 14px minmax(0,1fr);align-items:baseline;gap:6px;display:grid}.diff-part{color:var(--text-dim)}.diff-before{color:var(--text-faint);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--danger) 50%, transparent);text-decoration-color:color-mix(in srgb, var(--danger) 50%, transparent)}.diff-after{color:var(--text)}.diff-arrow{color:var(--accent)}@media (max-width:900px){.restore{grid-template-columns:1fr}.restore__diff{border-left:0;padding-left:0}}.palette{gap:var(--space-2);flex-direction:column;display:flex}.palette__input{height:38px;font-size:var(--text-lg)}.palette__list{max-height:380px;margin:0;padding:0;list-style:none;overflow:auto}.palette__item{border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 10px;display:grid}.palette__item.is-active{background:var(--accent-soft)}.palette__item.is-disabled{opacity:.45;cursor:default}.palette__group{font-size:var(--text-xs);color:var(--text-faint);white-space:nowrap}.palette__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.palette__empty{padding:10px}.about__device{border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--text-sm);padding:8px 10px}.cheat-sheet{display:none}@media print{@page{size:A4 landscape;margin:12mm}body:has(.cheat-sheet){background:#fff!important}body:has(.cheat-sheet) .app{display:none!important}.cheat-sheet{display:block}}.cheat-sheet{color:#111;font-family:var(--font-sans);-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;print-color-adjust:exact;background:#fff;font-size:10pt}.cheat-sheet__header{border-bottom:2px solid #111;justify-content:space-between;align-items:flex-end;margin-bottom:10pt;padding-bottom:6pt;display:flex}.cheat-sheet h1{font-size:20pt;font-family:var(--font-mono)}.cheat-sheet h2{text-transform:uppercase;letter-spacing:.1em;color:#555;margin:12pt 0 6pt;font-size:10pt}.cheat-sheet__meta{color:#666;font-size:9pt}.cheat-sheet__row{grid-template-columns:repeat(6,1fr);gap:6pt;margin-bottom:6pt;display:grid}.sheet-cell{break-inside:avoid;border:1px solid #999;border-radius:5pt;flex-direction:column;gap:2pt;min-height:62pt;padding:6pt;display:flex}.sheet-cell--fixed{color:#888;border-style:dashed}.sheet-cell--display{color:#ff3b30;background:#1a0606;border-color:#1a0606;justify-content:center;align-items:center;font-size:14pt}.sheet-cell__badge{color:#06120f;background:#5fb8a2;border-radius:8pt;align-self:flex-start;padding:0 5pt;font-size:8pt;font-weight:800}.sheet-cell__title{font-size:11pt}.sheet-cell__hold{color:#444;font-size:9pt;font-style:italic}.sheet-cell__msg{color:#333;font-size:8pt}.sheet-cell__leds{color:#555;align-items:center;gap:3pt;margin-top:auto;font-size:7.5pt;display:flex}.sheet-led{background:#fff;border:1px solid #555;border-radius:2pt;width:9pt;height:9pt;display:inline-block}.sheet-led.led--lit{background:var(--led)}.sheet-led.led--dim{background:color-mix(in srgb, var(--led) 50%, #000)}.sheet-led.led--default{background:repeating-linear-gradient(90deg,#bbb 0 2pt,#fff 2pt 3pt)}.cheat-sheet__list{margin:0;padding-left:14pt;font-size:9pt}.cheat-sheet__footer{color:#777;margin-top:12pt;font-size:8pt}.first-run{border-radius:var(--radius-md);border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border));background:var(--surface-1);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.first-run__head{justify-content:space-between;align-items:center;display:flex}.first-run__head h2{font-size:var(--text-md)}.first-run__steps{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.first-run__step{font-size:var(--text-sm);color:var(--text-dim);align-items:flex-start;gap:8px;display:flex}.first-run__num{background:var(--surface-3);width:22px;height:22px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-dim);border-radius:50%;flex:none;place-items:center;display:grid}.first-run__step.is-next .first-run__num{background:var(--accent);color:var(--accent-ink)}.first-run__step.is-done .first-run__num{background:var(--accent-soft);color:var(--accent-strong)}.first-run__step.is-next strong{color:var(--text)}.first-run__text{font-size:var(--text-xs);color:var(--text-faint);display:block}.first-run__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.help-glyph{text-align:center;width:16px;font-size:15px;font-weight:800;display:inline-block}.help-steps{color:var(--text-dim);flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.help-steps strong{color:var(--text)}.help-heading{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-weight:650}.help-topic{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.help-topic summary{cursor:pointer;padding:8px 12px;font-weight:600}.help-topic__body{color:var(--text-dim);flex-direction:column;gap:6px;padding:0 12px 10px;display:flex}.help-topic__body ul{margin:0;padding-left:18px}.template-channel{grid-template-columns:150px minmax(0,1fr);align-items:end;gap:12px;display:grid}.template-channel__note{border-radius:var(--radius-sm);border-left:3px solid var(--warning);background:var(--warning-soft);color:var(--text);font-size:var(--text-sm);padding:8px 10px}.bitwig-hints{border-radius:var(--radius-md);border:1px dashed var(--border-strong);padding:10px 12px}.bitwig-hints h4{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0 0 6px;font-weight:650}.bitwig-hints dl{flex-direction:column;gap:4px;margin:0;display:flex}.bitwig-hints dl>div{font-size:var(--text-sm);grid-template-columns:140px minmax(0,1fr);gap:8px;display:grid}.bitwig-hints dt{color:var(--text-faint)}.bitwig-hints dd{color:var(--text-dim);margin:0}.palette__footer{font-size:var(--text-xs);color:var(--text-faint);flex-wrap:wrap;justify-content:space-between;gap:8px;margin:2px 0 0;display:flex}.topbar__drawer-toggle,.drawer-scrim{display:none}@media (max-width:1180px){.app__main{grid-template-columns:minmax(0, 1fr) var(--inspector-w)}.view-ledlab .app__main,.view-global .app__main{grid-template-columns:minmax(0,1fr)}.topbar__drawer-toggle{display:inline-flex}.browser{z-index:50;border-right:1px solid var(--border-strong);width:min(300px,86vw);box-shadow:var(--shadow-lg);visibility:hidden;transition:transform .2s,visibility .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-102%)}.browser-open .browser{visibility:visible;transform:none}.browser-open .drawer-scrim{z-index:45;background:#05060880;display:block;position:fixed;inset:0}}@media (max-width:900px){.app{height:auto;min-height:100vh;overflow:visible}.app__main,.view-ledlab .app__main,.view-global .app__main{grid-template-columns:minmax(0,1fr)}.stage,.app__inspector,.global-view,.ledlab__device,.ledlab__panel{min-height:auto;overflow:visible}.app__inspector,.ledlab__panel{border-left:0;border-top:1px solid var(--border)}.ledlab{grid-template-columns:minmax(0,1fr)}.stage__device>.pacer,.ledlab__device>.pacer{width:100%;min-width:0}.monitor{z-index:15;position:sticky;bottom:0}.topbar__center{display:none}.template-channel{grid-template-columns:minmax(0,1fr)}.bitwig-hints dl>div{grid-template-columns:minmax(0,1fr);gap:0}.op{max-width:none}.topbar:has(.op) .topbar__center{flex-basis:100%;order:99;display:flex}}@media (prefers-reduced-motion:reduce){.browser{transition:none}.flash{opacity:.8;animation:none}}
