.main-landing{position:relative;display:flex;flex-direction:column;--circuit-trace: var(--text);--circuit-alpha: .11;--circuit-silk-alpha: .08}:root[data-theme=dark] .main-landing{--circuit-alpha: .13;--circuit-silk-alpha: .1}.circuit-bg{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;mask-image:radial-gradient(ellipse 46% 34% at 50% 48%,#00000059,#0000008c 55%,#000)}.landing{flex:1;display:grid;place-items:center;padding:var(--space-8) var(--space-4)}.hero{position:relative;max-width:760px;text-align:center}.hero h1,.hero-lead{text-shadow:0 0 2px var(--bg),0 0 14px var(--bg),0 0 28px var(--bg)}.hero h1{font-size:52px;line-height:1.08;letter-spacing:-.022em;margin:0;text-wrap:balance}.hero-lead{margin:var(--space-5) 0 0;font-size:var(--text-xl);color:var(--text-muted);text-wrap:balance}.hero-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-7)}.landing .btn-hero{height:40px;padding:0 var(--space-5);font-size:var(--text-lg)}.landing .btn-hero:not(.btn-primary){background:var(--bg)}.landing .btn-hero:not(.btn-primary):hover{background:var(--surface-2)}.landing-footer{position:relative;display:flex;justify-content:center;padding:var(--space-4) var(--space-4) var(--space-5)}.landing-footer nav{display:flex;gap:var(--space-5);font-size:var(--text-md)}.landing-footer a{color:var(--text-faint)}.landing-footer a:hover{color:var(--text)}@media(max-width:639px){.hero h1{font-size:34px}.hero-lead{font-size:var(--text-lg)}.hero-actions{flex-direction:column;align-items:stretch;max-width:320px;margin-left:auto;margin-right:auto}.circuit-bg{mask-image:radial-gradient(ellipse 70% 32% at 50% 48%,#0000004d,#0000008c 60%,#000)}}.tutorial-dim{position:fixed;inset:0;z-index:59;pointer-events:none}.tutorial-dim path{fill:#0a0a0e85}.tutorial-dim-block path{pointer-events:auto}:root[data-theme=dark] .tutorial-dim path{fill:#0000009e}.tutorial-ring{position:fixed;z-index:60;pointer-events:none;border:2px solid var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent);animation:tutorial-pulse 1.6s ease-in-out infinite}@keyframes tutorial-pulse{50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 8%,transparent)}}.tutorial-card,.tutorial-offer{position:fixed;z-index:61;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-top:3px solid var(--accent);box-shadow:0 6px 24px #0000002e}.tutorial-card{width:320px;max-width:calc(100vw - 16px);padding:var(--space-3) var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.tutorial-head{display:flex;align-items:center;justify-content:space-between}.tutorial-count{font-size:var(--text-sm);color:var(--text-muted)}.tutorial-title{margin:0;font-family:var(--font-sans);font-size:var(--text-lg);font-weight:600;display:flex;align-items:center;gap:var(--space-2)}.tutorial-tick{display:inline-block;width:14px;height:14px;background:var(--success);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8.5l4 4 8-9' fill='none' stroke='black' stroke-width='2.4'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8.5l4 4 8-9' fill='none' stroke='black' stroke-width='2.4'/%3E%3C/svg%3E") center / contain no-repeat}.tutorial-body{margin:0;font-size:var(--text-md);line-height:1.45}.tutorial-error{margin:0;color:var(--danger)}.tutorial-extra{flex-wrap:wrap;align-items:center}.tutorial-nav{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1)}.tutorial-offer{left:var(--space-4);bottom:var(--space-4);max-width:calc(100vw - 2 * var(--space-4));padding:var(--space-3) var(--space-4);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);font-size:var(--text-md)}@media(prefers-reduced-motion:reduce){.tutorial-ring{animation:none}}.tutorial-link{padding:0;border:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.hotkey-tutorial{margin:0 0 var(--space-3)}.tutorial-arrow{position:absolute;width:0;height:0;border:9px solid transparent}.tutorial-pop-bottom .tutorial-arrow{top:-21px;margin-left:-9px;border-bottom-color:var(--accent)}.tutorial-pop-top .tutorial-arrow{bottom:-19px;margin-left:-9px;border-top-color:var(--accent)}.tutorial-pop-right .tutorial-arrow{left:-19px;margin-top:-9px;border-right-color:var(--accent)}.tutorial-pop-left .tutorial-arrow{right:-19px;margin-top:-9px;border-left-color:var(--accent)}.tabs.admin-tabs{padding:0;background:transparent;margin-bottom:var(--space-3)}.admin-tabs .tab{display:inline-flex;align-items:center;text-decoration:none}.admin-bar{display:flex;justify-content:flex-end;margin-bottom:var(--space-2)}.admin-page h2{font-size:var(--text-sm);margin:var(--space-4) 0 var(--space-2)}.admin-page .mono{font-family:var(--font-mono);font-size:var(--text-xs)}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-5)}.admin-table td,.admin-kv td{font-size:var(--text-sm)}.admin-key{color:var(--text-muted)}.admin-message{max-width:520px}.admin-message summary{cursor:pointer;overflow-wrap:anywhere;padding:var(--space-1) 0}.admin-message pre{font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;overflow:auto;background:var(--surface-2);padding:var(--space-2);margin:var(--space-1) 0}.admin-message dl{display:grid;grid-template-columns:auto 1fr;gap:2px var(--space-2);font-size:var(--text-xs);margin:0 0 var(--space-2)}.admin-message dt{color:var(--text-muted)}.admin-message dd{margin:0;overflow-wrap:anywhere}.admin-ok{color:var(--success)}.admin-bad{color:var(--danger);font-weight:600}.admin-bars{display:block;max-width:100%;height:auto}.bar-accepted,.key-accepted{fill:var(--success);background:var(--success)}.bar-rejected,.key-rejected{fill:var(--danger);background:var(--danger)}.bar-other,.key-other{fill:var(--text-faint);background:var(--text-faint)}.admin-legend{font-size:var(--text-xs);color:var(--text-muted)}.admin-legend .key{display:inline-block;width:8px;height:8px;margin-left:var(--space-2)}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-400-normal-DQi5PRDE.woff2) format("woff2"),url(/assets/source-sans-3-latin-400-normal-RR2C27NP.woff) format("woff")}@font-face{font-family:"Source Sans 3";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-400-italic-bFKvakRX.woff2) format("woff2"),url(/assets/source-sans-3-latin-400-italic-V6AhVXnr.woff) format("woff")}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/source-sans-3-latin-500-normal-DiWS0tcR.woff2) format("woff2"),url(/assets/source-sans-3-latin-500-normal-BHNJO6aI.woff) format("woff")}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-600-normal-DeckBYAU.woff2) format("woff2"),url(/assets/source-sans-3-latin-600-normal-Ck0n4g8U.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-600-normal-DouSKlru.woff2) format("woff2"),url(/assets/source-serif-4-latin-600-normal-DeJomR3S.woff) format("woff")}@font-face{font-family:Source Code Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-code-pro-latin-400-normal-DEXWLoHG.woff2) format("woff2"),url(/assets/source-code-pro-latin-400-normal-C5QriPt2.woff) format("woff")}@font-face{font-family:Source Code Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/source-code-pro-latin-500-normal-DrRT_DWv.woff2) format("woff2"),url(/assets/source-code-pro-latin-500-normal-DwGdNAND.woff) format("woff")}@font-face{font-family:Source Code Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-code-pro-latin-600-normal-DVVSlvOB.woff2) format("woff2"),url(/assets/source-code-pro-latin-600-normal-CW7IRCee.woff) format("woff")}:root{--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-lg: 15px;--text-xl: 18px;--text-2xl: 24px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 40px;--space-8: 48px;--control-h: 28px;--control-h-lg: 32px;--nav-height: 44px;--row-h: 36px}:root{--font-sans: "Source Sans 3", ui-sans-serif, system-ui, sans-serif;--font-display: "Source Serif 4", Georgia, "Times New Roman", serif;--font-mono: "Source Code Pro", ui-monospace, SFMono-Regular, Menlo, monospace;--heading-weight: 600;--heading-tracking: -.01em;--label-font: var(--font-sans);--label-size: var(--text-sm);--label-weight: 600;--label-transform: none;--label-tracking: 0;--btn-font: var(--font-sans);--btn-transform: none;--btn-tracking: 0;--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--bg: #f7f7f8;--surface: #ffffff;--surface-2: #f3f3f5;--surface-3: #e9e9ed;--border: #e3e3e8;--border-strong: #cdcdd5;--rule-strong: #18181b;--text: #18181b;--text-muted: #52525b;--text-faint: #6b6b74;--accent: #0a5fd6;--accent-strong: #084caf;--accent-soft: #e9f0fc;--accent-text: #ffffff;--primary-bg: var(--accent);--primary-hover: var(--accent-strong);--primary-text: var(--accent-text);--nav-bg: var(--surface);--nav-text: var(--text);--nav-muted: var(--text-muted);--nav-hover: var(--surface-2);--nav-border: var(--rule-strong);--success: #1a7f37;--success-soft: #e7f4ea;--warning: #9a6200;--warning-soft: #fbf3e2;--danger: #c8202d;--danger-soft: #fceaeb;--tier-easy: #1a7f37;--tier-medium: #9a6200;--tier-hard: #c8202d;--focus-ring: #0a5fd6;--overlay: rgb(24 24 27 / 24%);--canvas-bg: #fbfbf8;--canvas-grid: #e3e3dc;--canvas-grid-major: #c9c9c0;--canvas-ink: #7a1f1f;--canvas-wire: #1d7a32;--canvas-select: #0a5fd6;--canvas-net-highlight: #c2188f;--canvas-pin: #b4232f;--canvas-label: #3c3ca8;--canvas-cursor: #52525b;--canvas-box-window: #8a8a00;--canvas-box-crossing: #1a1aff;--probe-bg: #fff6d6;--probe-text: #7a4a00;--pcb-bg: #f4f3ee;--pcb-grid: #d6d5cc;--pcb-f-cu: #c0282a;--pcb-in1-cu: #a07a10;--pcb-in2-cu: #2a8a4a;--pcb-b-cu: #2f62b0;--pcb-pad: #a87c10;--pcb-hole: #fbfaf5;--pcb-edge: #8f8400;--pcb-silk: #2e2e33;--pcb-b-silk: #7a3b5c;--pcb-cmts: #2b5d9e;--pcb-courtyard: #6b6b74;--pcb-fab: #9a9aa3;--pcb-ratsnest: #3c3c50;--pcb-select: #0a5fd6;--pcb-drc: #c4127f;--pcb-highlight: #000000;--plot-1: #0a5fd6;--plot-2: #c8202d;--plot-3: #1a7f37;--plot-4: #9a6200;--plot-5: #7b3fc4;--plot-6: #0e7490;--plot-grid: #e6e6ea;--plot-axis: #52525b;color-scheme:light}:root[data-theme=dark]{--bg: #0d0d0f;--surface: #141416;--surface-2: #1b1b1e;--surface-3: #252529;--border: #29292e;--border-strong: #3b3b42;--rule-strong: #8c8c96;--text: #ececef;--text-muted: #a3a3ad;--text-faint: #8c8c96;--accent: #4c8dff;--accent-strong: #79a9ff;--accent-soft: #15233b;--accent-text: #05132b;--success: #4cc26a;--success-soft: #11261a;--warning: #e0a63a;--warning-soft: #2a2010;--danger: #f2626b;--danger-soft: #311519;--tier-easy: #4cc26a;--tier-medium: #e0a63a;--tier-hard: #f2626b;--focus-ring: #4c8dff;--overlay: rgb(0 0 0 / 50%);--canvas-bg: #111113;--canvas-grid: #222226;--canvas-grid-major: #34343a;--canvas-ink: #e2a3a3;--canvas-wire: #4cc26a;--canvas-select: #4c8dff;--canvas-net-highlight: #ff6ad5;--canvas-pin: #f2626b;--canvas-label: #a9a9ff;--canvas-cursor: #a3a3ad;--canvas-box-window: #ffff66;--canvas-box-crossing: #6f6fff;--probe-bg: #2a2010;--probe-text: #f5cf73;--pcb-bg: #0f1416;--pcb-grid: #2c3438;--pcb-f-cu: #c83434;--pcb-in1-cu: #c2a33a;--pcb-in2-cu: #3ea562;--pcb-b-cu: #4d7fc4;--pcb-pad: #c9a03a;--pcb-hole: #05080a;--pcb-edge: #d0d23c;--pcb-silk: #e8e8e0;--pcb-b-silk: #e8b2a7;--pcb-cmts: #7fb0ea;--pcb-courtyard: #c0c0c8;--pcb-fab: #8a8a94;--pcb-ratsnest: #e6e6f0;--pcb-select: #4c8dff;--pcb-drc: #ff4fd8;--pcb-highlight: #ffffff;--plot-1: #4c8dff;--plot-2: #f2626b;--plot-3: #4cc26a;--plot-4: #e0a63a;--plot-5: #b48cff;--plot-6: #4fc8dc;--plot-grid: #232327;--plot-axis: #a3a3ad;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-md);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}::selection{background:var(--accent-soft)}code,kbd,samp,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}code,kbd{font-size:.92em}code{color:inherit}kbd{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:0 4px;font-size:var(--text-xs)}h1,h2,h3{font-family:var(--font-display);font-weight:var(--heading-weight);letter-spacing:var(--heading-tracking);line-height:1.25;margin:0 0 var(--space-3)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-md)}strong,b{font-weight:600}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:var(--text-sm)}.row{display:flex;align-items:center}.gap-xs{gap:var(--space-1)}.gap-sm{gap:var(--space-2)}.grow{flex:1;min-width:0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-2)}.num{text-align:right;font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.app{display:flex;flex-direction:column;height:100%}.nav{height:var(--nav-height);flex:none;display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3) 0 var(--space-4);background:var(--nav-bg);color:var(--nav-text);border-bottom:1px solid var(--nav-border)}.brand{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);color:inherit;letter-spacing:-.01em;margin-right:var(--space-4)}.brand:hover{text-decoration:none}.brand-mark{width:22px;height:22px}.nav-links{display:flex;align-self:stretch;gap:var(--space-1)}.nav-link{display:inline-flex;align-items:center;height:100%;padding:0 var(--space-2);color:var(--nav-muted);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.nav-link:hover{color:var(--nav-text);text-decoration:none}.nav-link.active{color:var(--nav-text);border-bottom-color:var(--accent)}.nav-button{height:var(--control-h);border:0;margin:0;background:transparent;font:inherit;font-weight:500;cursor:pointer;border-radius:var(--radius-md)}.nav-button:hover{background:var(--nav-hover)}.nav-spacer{flex:1}.nav-sep{width:1px;height:20px;background:var(--nav-hover);margin:0 var(--space-1)}.conn{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--nav-muted);margin-right:var(--space-2)}.nav .icon-btn{color:var(--nav-muted)}.nav .icon-btn:hover:not(:disabled){background:var(--nav-hover);color:var(--nav-text)}.user-menu{display:flex;align-items:center;align-self:stretch;gap:var(--space-2)}.user-name{color:var(--nav-text);font-weight:500}.main{flex:1;min-height:0;overflow:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--control-h);padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-family:var(--btn-font);font-size:var(--text-sm);font-weight:500;text-transform:var(--btn-transform);letter-spacing:var(--btn-tracking);cursor:pointer;white-space:nowrap;text-decoration:none}.btn:hover:not(:disabled){background:var(--surface-2);text-decoration:none}.btn:active:not(:disabled){background:var(--surface-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:not(.btn-primary){border-color:transparent;background:transparent}.btn-primary{background:var(--primary-bg);border-color:var(--primary-bg);color:var(--primary-text)}.btn-primary:hover:not(:disabled),.btn-primary:active:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn-success{border-color:var(--success);color:var(--success)}.btn-success:hover:not(:disabled){background:var(--success-soft)}.btn-ghost{border-color:transparent;background:transparent}.btn-sm{height:24px;padding:0 var(--space-2)}.btn-xs{height:20px;padding:0 6px;font-size:var(--text-xs)}.btn-lg{height:var(--control-h-lg);padding:0 var(--space-4)}.btn-block{width:100%}.input{height:var(--control-h);padding:0 var(--space-2);border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-md);min-width:0}.input:hover:not(:disabled){border-color:var(--text-faint)}.input:focus-visible{outline-offset:0;border-color:var(--focus-ring)}.input::placeholder{color:var(--text-faint)}.input:disabled{opacity:.6}.input-xs{height:24px;padding:0 6px}.select,select.input{padding-right:2px;cursor:pointer}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3);min-width:0}.field-label{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--label-font);font-size:var(--label-size);font-weight:var(--label-weight);color:var(--text-muted);text-transform:var(--label-transform);letter-spacing:var(--label-tracking)}.field-aside{font-family:var(--font-sans);font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-faint)}.field-hint{font-size:var(--text-xs);color:var(--text-faint)}.field-error{font-size:var(--text-sm);color:var(--danger)}.tier{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:500;white-space:nowrap}.tier-easy{color:var(--tier-easy)}.tier-medium{color:var(--tier-medium)}.tier-hard{color:var(--tier-hard)}.badge{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.badge-easy{color:var(--success)}.badge-medium{color:var(--warning)}.badge-hard{color:var(--danger)}.tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.tag-list{display:inline-flex;flex-wrap:wrap;gap:0 var(--space-3)}.notice{padding:0 0 0 var(--space-3);font-size:var(--text-sm);border-left:2px solid var(--border-strong);color:var(--text)}.notice-warning{border-left-color:var(--warning)}.notice-danger{border-left-color:var(--danger)}.notice-success{border-left-color:var(--success)}.notice-inline{margin:0 0 var(--space-3)}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border);padding:0 var(--space-3);background:var(--surface);flex:none}.tab{border:0;background:transparent;color:var(--text-muted);font:inherit;font-family:var(--btn-font);text-transform:var(--btn-transform);letter-spacing:var(--btn-tracking);font-size:var(--text-sm);font-weight:500;height:36px;padding:0 var(--space-2);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab:focus-visible{outline-offset:-2px}.tab-count{margin-left:5px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint)}.table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.table th{text-align:left;font-family:var(--label-font);font-size:var(--label-size);font-weight:var(--label-weight);text-transform:var(--label-transform);letter-spacing:var(--label-tracking);color:var(--text-muted);height:32px;padding:0 var(--space-3);border-bottom:1px solid var(--rule-strong);white-space:nowrap}.table td{height:var(--row-h);padding:0 var(--space-3);border-bottom:1px solid var(--border);vertical-align:middle}.table th.num,.table td.num{text-align:right}.table tbody tr:hover{background:var(--surface-2)}.page{max-width:1120px;margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-8)}.page-narrow{max-width:720px}.page-head{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-4)}.page-head h1{margin:0}.empty-line{margin:0;padding:var(--space-3) 0;color:var(--text-muted)}.filters{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-bottom:var(--space-3)}.filters .search{flex:1;min-width:220px}.seg-count{margin-left:4px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint)}.segmented button.active .seg-count{color:var(--text-muted)}.solved-count{margin-left:auto;font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.dev-strip{margin:calc(-1 * var(--space-4)) 0 var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--warning)}.problem-table{border-top:1px solid var(--border);table-layout:fixed}.problem-table td{height:40px}.problem-table .col-status{width:32px;padding-right:0}.problem-table .col-num{width:44px;color:var(--text-faint);font-size:var(--text-sm)}.problem-table .col-tags{width:32%}.problem-table td.col-title,.problem-table td.col-tags{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-text{font-size:var(--text-sm);color:var(--text-muted)}.problem-table .col-type{width:96px;color:var(--text-muted)}.problem-table .col-tier{width:96px}.problem-table td.col-type{font-size:var(--text-sm)}.problem-title{font-weight:500;color:var(--text)}.problem-table tbody tr:hover .problem-title{color:var(--accent)}.empty-cell{color:var(--text-muted)}.status-icon{width:16px;height:16px;display:block}.status-solved{color:var(--success)}.status-attempted{color:var(--warning)}.status-todo{color:var(--border-strong)}.progress-total{color:var(--text-muted);font-variant-numeric:tabular-nums}.progress-next{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);text-decoration:none}.progress-next:hover{border-color:var(--accent);text-decoration:none}.progress-next-label{font-family:var(--label-font);font-size:var(--label-size);font-weight:var(--label-weight);text-transform:var(--label-transform);letter-spacing:var(--label-tracking);color:var(--text-muted)}.progress-next-title{flex:1;min-width:0;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-next:hover .progress-next-title{color:var(--accent)}.progress-tier{margin-bottom:var(--space-6)}.progress-tier h2{display:flex;align-items:baseline;gap:var(--space-2);margin:0 0 var(--space-2)}.progress-tier-count{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:400;color:var(--text-muted);font-variant-numeric:tabular-nums}.progress-table{border-top:1px solid var(--border);table-layout:fixed}.progress-table td{height:40px}.progress-table .col-status{width:32px;padding-right:0}.progress-table td.col-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-table .col-progress{width:104px;text-align:right;font-size:var(--text-sm)}.progress-table tbody tr:hover .problem-title{color:var(--accent)}.workspace{display:flex;height:100%;min-height:0}.pane{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--surface)}.pane-left{border-right:1px solid var(--border)}.splitter{flex:none;width:5px;margin:0 -2px;cursor:col-resize;z-index:2;background:transparent}.splitter:hover,.splitter.dragging{background:var(--accent)}.splitter-h{height:5px;width:auto;margin:-2px 0;cursor:row-resize}.pane-scroll{flex:1;overflow:auto;padding:var(--space-4) var(--space-5) var(--space-6)}.problem-head{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.problem-head h1{font-size:var(--text-xl);margin:0}.problem-meta{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2);align-items:center}.problem-meta .tier{margin-right:var(--space-1)}.problem-meta .badge{font-family:var(--font-sans);font-size:var(--text-sm)}.problem-meta .tag{margin-left:var(--space-1)}.markdown{max-width:68ch;font-size:14px;line-height:1.6}.markdown code{background:none;border:0;padding:0;color:var(--canvas-label);font-weight:500}.net-ref{cursor:default;border-radius:2px;text-decoration:underline dotted;text-underline-offset:3px}.net-ref:hover,.net-ref:focus-visible{color:var(--canvas-net-highlight);outline:none;text-decoration-style:solid}.markdown h1{display:none}.markdown h2{font-size:var(--text-lg);margin-top:var(--space-5);margin-bottom:var(--space-2)}.markdown h3{margin-top:var(--space-4);margin-bottom:var(--space-2)}.markdown p{margin:0 0 var(--space-3)}.markdown img{display:block;max-width:100%;height:auto;margin:var(--space-3) 0}.markdown ul,.markdown ol{padding-left:20px;margin:0 0 var(--space-3)}.markdown li+li{margin-top:2px}.hint{border-bottom:1px solid var(--border)}.hint-head{display:flex;justify-content:space-between;align-items:center;min-height:36px;font-weight:600;font-size:var(--text-sm)}.hint-body{padding:0 0 var(--space-1)}.hint-body h2{display:none}.test-row{border-bottom:1px solid var(--border);padding:var(--space-2) 0}.test-row:first-child{border-top:1px solid var(--border)}.test-row-head{display:flex;justify-content:space-between;gap:var(--space-2);align-items:center}.test-measure{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500}.conditions{display:grid;grid-template-columns:max-content 1fr;gap:0;font-size:var(--text-sm);border-top:1px solid var(--border);max-width:68ch}.conditions dt,.conditions dd{margin:0;padding:var(--space-1) var(--space-4) var(--space-1) 0;border-bottom:1px solid var(--border);font-family:var(--font-mono)}.conditions dt{color:var(--text-muted)}.answer-panel{flex:none;display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-3) var(--space-4);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border);background:var(--surface)}.answer-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.answer-input{display:flex;align-items:center;gap:var(--space-2)}.answer-input .input{width:12ch}.answer-unit{font-family:var(--font-mono);color:var(--text-muted)}.answer-submit{margin-left:auto;align-self:center}.rework-panel{flex:none;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border);background:var(--surface);max-height:40%;overflow-y:auto}.rework-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.rework-title{font-weight:600}.rework-count{font-family:var(--font-mono);font-size:var(--text-sm);padding:0 var(--space-2);border-radius:999px;background:var(--success-soft);color:var(--success)}.rework-count.over{background:var(--danger-soft);color:var(--danger)}.rework-list,.rework-violations{margin:var(--space-1) 0 0;padding:0;list-style:none;font-size:var(--text-sm)}.rework-list li{display:flex;align-items:baseline;gap:var(--space-2);padding:2px 0}.rework-kind{flex:none;min-width:5ch;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;color:var(--text-muted)}.rework-violations li{color:var(--danger);padding:2px 0 2px var(--space-2);border-left:2px solid var(--danger)}.rework-empty{margin:var(--space-1) 0 0}.pane-right{flex:1;background:var(--bg)}.workbar{display:flex;align-items:center;gap:var(--space-2);height:37px;padding:0 var(--space-3);background:var(--surface);border-bottom:1px solid var(--border);flex:none;font-weight:500}.toolbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--surface);border-bottom:1px solid var(--border);flex:none;flex-wrap:wrap;row-gap:var(--space-1)}.toolbar-group{display:flex;align-items:center;gap:2px}.toolbar-sep{width:1px;height:20px;background:var(--border)}.toolbar-spacer{flex:1}.tool-btn{display:inline-flex;align-items:center;gap:6px;height:var(--control-h);padding:0 var(--space-2);border:1px solid transparent;background:transparent;border-radius:var(--radius-md);color:var(--text-muted);font:inherit;font-size:var(--text-sm);font-weight:500;cursor:pointer;white-space:nowrap}.tool-btn:hover{background:var(--surface-2);color:var(--text)}.tool-btn.is-active{background:var(--surface-3);color:var(--text);border-color:var(--border-strong);box-shadow:inset 0 -2px 0 var(--accent)}.tool-icon{display:inline-flex;width:14px;justify-content:center;font-family:var(--font-mono);font-weight:500;color:var(--text-faint)}.tool-btn:hover .tool-icon,.tool-btn.is-active .tool-icon{color:inherit}.value-picker{position:relative;min-width:0}.value-picker>.input{width:100%}.value-picker-list{position:absolute;z-index:10;top:calc(100% + 2px);left:0;right:0;max-height:260px;overflow:auto;margin:0;padding:2px 0;list-style:none;background:var(--surface);border:1px solid var(--border-strong);font-family:var(--font-mono);font-size:var(--text-sm)}.value-picker-decade{padding:4px var(--space-2) 1px;font-family:var(--font-sans);font-size:11px;color:var(--text-muted)}.value-picker-opt{display:flex;justify-content:space-between;gap:var(--space-2);padding:1px var(--space-2);cursor:pointer}.value-picker-opt:hover,.value-picker-opt.is-active{background:var(--accent-soft)}.value-picker-opt.is-current{color:var(--accent);font-weight:500}.label-input{width:64px;font-family:var(--font-mono)}.symbol-icon{display:block;flex:none}.icon-btn{width:var(--control-h);height:var(--control-h);display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:default}.editor-area{display:flex;flex:1;min-height:0}.editor-canvas-wrap{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden}.editor-canvas{display:block;outline:none;touch-action:none}.editor-hud{position:absolute;right:var(--space-2);bottom:var(--space-1);display:flex;gap:var(--space-3);align-items:center;font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--text-muted);background:var(--canvas-bg)}.editor-hint{position:absolute;left:50%;top:var(--space-2);transform:translate(-50%);font-size:var(--text-sm);background:var(--canvas-bg);padding:0 var(--space-2);color:var(--text-muted);pointer-events:none}.props{width:248px;flex:none;border-left:1px solid var(--border);background:var(--surface);padding:var(--space-3);overflow:auto}.props-fields{display:contents;border:0;margin:0;padding:0;min-width:0}.props-units{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.props-unplaced{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.props-switch{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-3)}.props-switch p{margin:0}.props-locked{color:var(--text-muted);border-left:2px solid var(--border-strong);padding-left:var(--space-2)}.props-title{font-weight:600;margin-bottom:var(--space-3);display:flex;gap:var(--space-2);align-items:baseline;flex-wrap:wrap}.props .field-label{font-size:12px;font-weight:500;text-transform:none;letter-spacing:0}.props-kind{font-weight:400;color:var(--text-muted)}.props-readout{margin-top:var(--space-3);font-size:var(--text-sm)}.props-readout-title{font-size:12px;font-weight:500;color:var(--text-muted);margin-bottom:4px}.props-readout ul{list-style:none;margin:0;padding:0}.props-readout li{font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.6}.props-readout a{display:inline-block;margin-top:6px;font-size:var(--text-xs)}.chooser-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;background:var(--overlay)}.chooser{width:min(640px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);display:flex;flex-direction:column;overflow:hidden}.chooser-head{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3) 0}.chooser-title{font-weight:600}.chooser-search{margin:var(--space-2) var(--space-3)}.chooser-body{display:flex;border-top:1px solid var(--border);height:min(360px,55vh)}.chooser-list{list-style:none;margin:0;padding:4px 0;flex:1;overflow:auto;min-width:0}.chooser-group{font-size:12px;color:var(--text-muted);padding:6px var(--space-3) 2px}.chooser-item{display:flex;align-items:center;gap:var(--space-2);padding:3px var(--space-3);cursor:pointer;color:var(--text);font-size:var(--text-sm)}.chooser-item.is-current{background:var(--accent-soft);color:var(--accent)}.chooser-empty{padding:var(--space-3);color:var(--text-muted);font-size:var(--text-sm)}.chooser-preview{width:220px;flex:none;border-left:1px solid var(--border);padding:var(--space-3);display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;color:var(--text)}.chooser-preview-name{font-weight:600;margin-top:var(--space-2)}.chooser-preview{overflow-y:auto}.chooser-specs{margin:0;padding:0;list-style:none;text-align:left;color:var(--text-muted);font-variant-numeric:tabular-nums}.chooser-specs li+li{margin-top:2px}.chooser-foot{display:flex;gap:var(--space-3);border-top:1px solid var(--border);padding:6px var(--space-3)}.label-prompt{position:absolute;left:50%;top:12px;transform:translate(-50%);z-index:3;width:260px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.label-prompt .field{margin-bottom:4px}.label-prompt .field-label{font-size:12px;font-weight:500;text-transform:none;letter-spacing:0}.note-dialog{width:min(340px,calc(100% - 32px))}.note-text{width:100%;min-height:72px;resize:vertical;font-family:var(--font-mono);font-size:12px;line-height:1.4;white-space:pre-wrap}.note-row{display:flex;gap:var(--space-2)}.note-row .field{flex:1;min-width:0}.note-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.import-dialog{width:min(720px,calc(100vw - 32px))}.import-text{height:min(300px,40vh);margin:var(--space-2) var(--space-3);padding:var(--space-2);font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.45;resize:vertical;white-space:pre}.import-preview{border-top:1px solid var(--border);padding:var(--space-2) var(--space-3);max-height:140px;overflow:auto}.import-warnings{margin:4px 0 0;padding-left:1.2em;color:var(--text-muted)}.import-error{color:var(--danger)}.import-actions{display:flex;align-items:center;gap:var(--space-2);border-top:1px solid var(--border);padding:var(--space-2) var(--space-3)}.netlist-head{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-2)}.bench{display:flex;flex-direction:column;background:var(--surface);border-top:1px solid var(--border);min-height:0;flex:none}.bench-bar{display:flex;align-items:center;gap:var(--space-2);min-height:37px;padding:var(--space-1) var(--space-3);border-bottom:1px solid var(--border);flex-wrap:wrap}.bench-conditions{display:inline-flex;align-items:center;gap:var(--space-3);padding-left:var(--space-2);border-left:1px solid var(--border)}.input.input-sm{height:24px;font-size:var(--text-sm);padding:0 var(--space-1)}.bench-temp{width:8ch}.bench-title{font-family:var(--label-font);font-weight:600;font-size:var(--text-sm);text-transform:var(--label-transform);letter-spacing:var(--label-tracking);margin-right:var(--space-2);display:flex;align-items:center;gap:6px}.bench-title svg{display:none}.segmented{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius-md);overflow:hidden;flex:none}.segmented button{border:0;background:var(--surface);color:var(--text-muted);font-family:var(--btn-font);text-transform:var(--btn-transform);letter-spacing:var(--btn-tracking);font-size:var(--text-sm);font-weight:500;padding:0 var(--space-3);height:calc(var(--control-h) - 2px);cursor:pointer}.segmented button+button{border-left:1px solid var(--border-strong)}.segmented button:hover{color:var(--text);background:var(--surface-2)}.segmented button.active{background:var(--surface-3);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.segmented button:focus-visible{outline-offset:-2px}.analysis-params{display:flex;gap:var(--space-2);align-items:center}.analysis-params label{display:flex;align-items:center;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.analysis-params .input{width:72px;height:var(--control-h);font-family:var(--font-mono);font-size:var(--text-sm)}.bench-body{flex:1;min-height:0;display:flex}.bench-main{flex:1;min-width:0;overflow:auto;padding:var(--space-3)}.bench-side{width:300px;flex:none;border-left:1px solid var(--border);overflow:auto;padding:var(--space-3)}.bench-side h3{font-family:var(--label-font);font-size:var(--label-size);font-weight:var(--label-weight);text-transform:var(--label-transform);letter-spacing:var(--label-tracking);color:var(--text-muted);margin-bottom:var(--space-2)}.progress{height:2px;width:120px;background:var(--surface-3);overflow:hidden}.progress-bar{height:100%;background:var(--accent);transition:width .15s}.progress-indeterminate .progress-bar{width:40%!important;animation:slide 1s infinite ease-in-out}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media(prefers-reduced-motion:reduce){.progress-indeterminate .progress-bar{animation:none;width:100%!important;opacity:.5}}.empty{min-height:80px;color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-1) 0}.op-table{border-collapse:collapse;font-size:var(--text-sm);min-width:300px;font-variant-numeric:tabular-nums}.op-table th{text-align:left;font-family:var(--label-font);font-size:var(--label-size);font-weight:var(--label-weight);text-transform:var(--label-transform);letter-spacing:var(--label-tracking);color:var(--text-muted);height:28px;padding:0 var(--space-4) 0 0;border-bottom:1px solid var(--rule-strong)}.op-table td{height:28px;padding:0 var(--space-4) 0 0;border-bottom:1px solid var(--border);font-family:var(--font-mono)}.op-table th:last-child,.op-table td.num{text-align:right;padding-right:0}.op-table td.num{font-weight:500}.result-test{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-2) 0;border-bottom:1px solid var(--border);font-size:var(--text-sm)}.result-test:last-child{border-bottom:0}.result-test .mono{font-weight:500!important}.pass-icon,.fail-icon{flex:none;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;margin-top:2px}.pass-icon{color:var(--success)}.fail-icon{color:var(--danger)}.issue{font-size:var(--text-sm);padding:0 0 0 var(--space-3);border-left:2px solid var(--border-strong);margin-bottom:var(--space-3);color:var(--text)}.issue-error{border-left-color:var(--danger)}.issue-warning{border-left-color:var(--warning)}.issue ul{margin:4px 0 0;padding-left:18px}.issue-title{font-weight:600}.issue-error .issue-title{color:var(--danger)}.issue-warning .issue-title{color:var(--warning)}.netlist{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--surface-2);padding:var(--space-2);white-space:pre;overflow:auto;max-height:200px;margin:0}details>summary{cursor:pointer;font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-2) 0}details>summary:hover{color:var(--text)}.plot{width:100%;height:100%;min-height:160px}.plot .u-legend{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.plot .u-legend .u-marker{border-radius:0}.plot .u-select{background:color-mix(in srgb,var(--accent) 15%,transparent)}.plot-toolbar{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2);font-size:var(--text-xs);color:var(--text-muted)}.auth-page{display:flex;justify-content:center;padding:15vh var(--space-4) var(--space-6)}.auth-card{width:100%;max-width:360px}.auth-card h1{font-size:var(--text-xl);margin-bottom:var(--space-1)}.auth-lede{margin:0 0 var(--space-5);color:var(--text-muted)}.auth-notice{margin-bottom:var(--space-4)}.auth-card .notice-danger{margin-bottom:var(--space-3)}.auth-card .btn-primary{margin-top:var(--space-2)}.auth-alt{margin:var(--space-4) 0 0;padding-top:var(--space-3);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-muted)}.auth-oauth-error{margin-top:var(--space-2)}.oauth{display:grid;gap:var(--space-2)}.oauth .btn,.auth-card .input{height:var(--control-h-lg)}.divider{display:flex;align-items:center;gap:var(--space-3);color:var(--text-faint);font-size:var(--text-xs);margin:var(--space-3) 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.editor-settings{position:absolute;right:var(--space-2);bottom:40px;display:flex;flex-direction:column;gap:6px;font-size:var(--text-sm);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);z-index:2}.editor-settings label{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.editor-settings label.check{justify-content:flex-start}.hotkey-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--overlay);z-index:50;outline:none}.hotkey-panel{width:min(960px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4)}.hotkey-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.hotkey-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4) var(--space-5)}.hotkey-groups h3{font-family:var(--label-font);font-size:var(--label-size);font-weight:var(--label-weight);text-transform:var(--label-transform);letter-spacing:var(--label-tracking);color:var(--text-muted);margin:0 0 var(--space-1);padding-bottom:var(--space-1);border-bottom:1px solid var(--border)}.hotkey-groups dl{margin:0}.hotkey-row{display:grid;grid-template-columns:136px 1fr;gap:var(--space-2);font-size:var(--text-sm);padding:2px 0}.hotkey-row dd{margin:0}.instrument-menu-wrap{position:relative;display:inline-flex}.instrument-menu{position:absolute;top:calc(100% + 2px);left:0;z-index:30;min-width:200px;background:var(--surface);border:1px solid var(--border-strong);padding:2px 0;display:flex;flex-direction:column}.instrument-item{display:flex;align-items:center;gap:8px;border:0;border-left:2px solid transparent;background:none;color:var(--text);font:inherit;font-size:var(--text-sm);text-align:left;padding:4px 10px;height:28px;cursor:pointer}.instrument-item:hover,.instrument-item:focus-visible{background:var(--surface-2);outline:none}.instrument-item:focus-visible{border-left-color:var(--accent)}.swatches{display:flex;gap:4px;align-items:center}.swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;outline:1px solid var(--border-strong);cursor:pointer;padding:0}.swatch.active{border-color:var(--surface);outline:2px solid var(--text)}.swatch-auto{width:auto;border-radius:var(--radius-sm);padding:0 6px;font:inherit;font-size:var(--text-xs);background:var(--surface);color:var(--text-muted)}.swatch-auto.active{outline:2px solid var(--text)}.segmented-wrap{flex-wrap:wrap}.layout-canvas-wrap{background:var(--pcb-bg)}.layout-gl,.layout-overlay{position:absolute;inset:0 auto auto 0;display:block}.layout-canvas-wrap .editor-hud,.layout-canvas-wrap .editor-hint{background:var(--pcb-bg)}.layout-stale{color:var(--warning)}.layout-pair-stat{white-space:nowrap;margin-left:.75em;color:var(--text-muted)}.layout-pair-over{color:var(--warning)}.sev-error{color:var(--danger)}.sev-warning{color:var(--warning)}.layers{width:148px;flex:none;border-right:1px solid var(--border);background:var(--surface);overflow:auto;padding:var(--space-2) 0;font-size:var(--text-sm)}.layer-list{list-style:none;margin:0 0 var(--space-2);padding:0}.layer-row{display:flex;align-items:center;height:24px;padding:0 var(--space-2);border-left:2px solid transparent}.layer-row.is-active{border-left-color:var(--accent);background:var(--surface-2)}.layer-row.is-hidden .layer-name{color:var(--text-faint)}.layer-eye{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:0;background:transparent;cursor:pointer;padding:0}.layer-swatch{width:12px;height:12px;border:1px solid var(--border-strong)}.layer-name{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font-family:var(--font-mono);font-size:var(--text-xs);text-align:left;padding:0 var(--space-1);height:20px}button.layer-name{cursor:pointer}button.layer-name:hover{color:var(--accent)}.layer-row.is-active .layer-name{font-weight:600}.layers-contrast{display:flex;flex-direction:column;gap:var(--space-1);padding:0 var(--space-2)}.layers-contrast .segmented button{padding:0 6px}.layout-side{width:300px;flex:none;display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--border);background:var(--surface)}.layout-tabs{margin:var(--space-2) var(--space-2) 0;display:flex}.layout-tabs button{flex:1;padding:0 4px}.layout-side-body{flex:1;min-height:0;overflow:auto;padding:var(--space-3)}.layout-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.layout-lock{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.layout-kv{margin:0 0 var(--space-3);font-size:var(--text-sm)}.layout-kv>div{display:flex;justify-content:space-between;gap:var(--space-2);padding:2px 0;border-bottom:1px solid var(--border)}.layout-kv dt{color:var(--text-muted)}.layout-kv dd{margin:0;text-align:right;overflow-wrap:anywhere}.layout-drc-counts{display:flex;gap:var(--space-3);margin:0 0 var(--space-2)}.layout-list{list-style:none;margin:0;padding:0}.layout-list li+li{border-top:1px solid var(--border)}.layout-list-row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:6px var(--space-1);border:0;border-left:2px solid transparent;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.layout-list-row:hover{background:var(--surface-2)}.layout-list-row.is-active{border-left-color:var(--accent);background:var(--surface-2)}.layout-net-head{display:flex;gap:var(--space-2);align-items:baseline}.layout-h{font-size:var(--text-sm);font-weight:600;margin:var(--space-3) 0 var(--space-1)}.layout-table{width:100%;min-width:0;margin-bottom:var(--space-2);font-size:var(--text-xs)}.layout-rules{margin:0;padding-left:var(--space-4)}.layout-rules li{margin-bottom:2px}@media(max-width:899px){.workspace{flex-direction:column;overflow:auto}.workspace>.pane-left{width:auto!important;flex:1 0 auto!important;border-right:0}.workspace>.splitter,.workspace>.pane-right{display:none}.workspace:after{content:"The schematic editor needs a screen at least 900 px wide. Your draft is saved on this device.";flex:none;padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);font-size:var(--text-sm)}.pane-scroll{padding:var(--space-4)}}@media(max-width:639px){.nav{padding:0 var(--space-2) 0 var(--space-3)}.brand{margin-right:var(--space-1)}.nav-links{gap:0}.user-menu .btn-primary,.conn,.nav-sep,.user-name{display:none}.page{padding:var(--space-4) var(--space-3) var(--space-6)}.filters .search{flex-basis:100%}.solved-count{margin-left:0}.dev-strip{margin-top:0}.problem-table .col-tags,.problem-table .col-type,.problem-table .col-num{display:none}.problem-table .col-tier{width:72px}}.table th,.op-table th{color:var(--text);font-weight:600}.table,.problem-table{border-top:2px solid var(--rule-strong);border-bottom:2px solid var(--rule-strong)}.nav{border-bottom-width:2px}.page-head{padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.problem-head h1{font-size:var(--text-2xl)}.markdown h2{padding-bottom:var(--space-1);border-bottom:1px solid var(--rule-strong)}.spec-row{padding:var(--space-2) 0;border-bottom:1px solid var(--border);font-size:var(--text-sm)}.spec-row:last-child{border-bottom:0}.spec-head{display:flex;gap:var(--space-2);align-items:flex-start}.spec-grid{display:grid;grid-template-columns:auto auto auto 1fr;column-gap:var(--space-3);margin:4px 0 2px 26px;font-size:var(--text-xs)}.spec-grid dt{color:var(--text-faint);font-weight:600}.spec-grid dd{margin:0;font-family:var(--font-mono)}.test-group+.test-group{margin-top:var(--space-3)}.test-group-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule-strong);padding-bottom:2px}.test-group-head h4{margin:0;font-family:var(--label-font);font-size:var(--label-size);font-weight:var(--label-weight);text-transform:var(--label-transform);letter-spacing:var(--label-tracking);color:var(--text-muted)}.test-name{font-weight:600}.test-detail{margin:2px 0 0 22px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.test-detail-fail{color:var(--danger)}.spec-head .grow{min-width:0}.lissajous{flex:none;overflow:visible;vertical-align:middle}.lissajous path{fill:none;stroke-linecap:round;stroke-linejoin:round}.lissajous-curve{stroke:var(--border-strong)}.lissajous-comet{stroke:var(--accent)}.bench-plan{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);display:inline-flex;gap:var(--space-2);align-items:center}.bench-ran{animation:bench-ran .8s ease-out}@keyframes bench-ran{0%{color:var(--accent)}}@media(prefers-reduced-motion:reduce){.bench-ran{animation:none}}.scope{display:flex;flex-direction:column;height:100%;min-height:0}.scope .plot-toolbar{flex:none}.scope-plot{flex:1;min-height:120px;position:relative}.chart{position:absolute;inset:0}.chart-canvas{width:100%;height:100%}.chart-tip{display:none;position:absolute;pointer-events:none;z-index:5;background:var(--surface);border:1px solid var(--border);padding:4px 8px;font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap;color:var(--text)}.chart-tip-x{color:var(--text-muted)}.chart-tip-dot,.trace-dot{display:inline-block;width:8px;height:8px;margin-right:6px;vertical-align:0}.trace-dash{height:2px;vertical-align:3px}.measure-table{flex:none;margin-top:var(--space-2);width:100%}.measure-table th.num,.measure-table td.num{text-align:right}.readouts{display:flex;gap:var(--space-6);flex-wrap:wrap;align-items:flex-start}.layout-menu{min-width:250px}.layout-menu .instrument-item{justify-content:space-between}.layout-menu-key{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.layout-menu-sep{height:1px;margin:2px 0;background:var(--border)}.sync-ok{padding:0 var(--space-2);white-space:nowrap}.sync-wrap{position:relative;display:inline-flex}.sync-out{border-color:var(--accent);color:var(--accent);font-weight:600}.sync-out:hover:not(:disabled){background:var(--accent-soft)}.sync-user{border-color:transparent;background:transparent;color:var(--warning)}.sync-list{display:none;position:absolute;top:calc(100% + 2px);right:0;z-index:30;min-width:240px;max-width:360px;padding:var(--space-2);background:var(--surface);border:1px solid var(--border-strong)}.sync-wrap:hover .sync-list,.sync-wrap:focus-within .sync-list{display:block}.sync-list ul{margin:0 0 var(--space-1);padding-left:var(--space-4)}.sync-list li{font-size:var(--text-sm)}.sync-needs-user{color:var(--warning)}.sync-list p{margin:0}.bench-banner{margin-bottom:var(--space-3)}.bench-status{font-size:var(--text-sm);border-left:2px solid var(--warning);padding-left:var(--space-3);margin-bottom:var(--space-3)}.bench-status-head{font-weight:600;color:var(--warning)}.bench-status details{margin-top:var(--space-2)}.bench-view{position:relative;height:100%}.bench-stale>:not(.bench-stale-badge){opacity:.45;filter:grayscale(.6)}.bench-stale-badge{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--warning);border:1px solid var(--warning);padding:0 var(--space-2);margin-bottom:var(--space-2)}.issue-note{border-left-color:var(--accent)}.netlist-added{color:var(--warning);font-weight:600}.editor-alert{color:var(--danger);border:1px solid var(--danger);max-width:80%;text-align:center}.text-danger{color:var(--danger)}.share-control{margin:var(--space-2) 0 var(--space-3);padding:var(--space-3);border:1px solid var(--border);background:var(--surface-2)}.share-url{flex:1;min-width:0;font-family:var(--font-mono);font-size:var(--text-sm)}.spoiler-gate{margin-top:var(--space-7);padding:var(--space-5);border:1px solid var(--border-strong);background:var(--surface)}.spoiler-gate-label{margin:0 0 var(--space-2);font-family:var(--label-font);font-size:var(--label-size);font-weight:var(--label-weight);color:var(--text-muted)}.spoiler-gate-text{margin:0 0 var(--space-4);font-size:var(--text-lg)}.shared{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--surface)}.shared-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.shared-title h1{margin:0 0 var(--space-2);font-size:var(--text-xl)}.shared-stars{color:var(--accent);letter-spacing:1px}.shared-body{display:flex;flex:1;min-height:0}.shared-result{width:500px;flex:none;overflow:auto;padding:var(--space-4) var(--space-5) var(--space-6);border-right:1px solid var(--border)}.shared-circuit{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}@media(max-width:800px){.shared-body{flex-direction:column}.shared-result{width:auto;border-right:none;border-bottom:1px solid var(--border)}.shared-circuit{min-height:420px}}.solutions-bar{align-items:center;margin-bottom:var(--space-3)}.solution-stats{margin-bottom:var(--space-4);padding:var(--space-3);border:1px solid var(--border);background:var(--surface)}.solution-stats-title{margin:0 0 var(--space-2);font-size:var(--text-sm)}.solution-stats p{margin:0}.solution-stats-head{display:flex;flex-wrap:wrap;gap:var(--space-5)}.stat-tile{display:flex;flex-direction:column;gap:2px;min-width:0}.stat-tile-wide{flex:1 1 200px;max-width:320px}.stat-label{font-family:var(--label-font);font-size:var(--label-size);font-weight:var(--label-weight);text-transform:var(--label-transform);letter-spacing:var(--label-tracking);color:var(--text-muted)}.stat-value{font-size:20px;font-variant-numeric:tabular-nums;line-height:1.2}.star-split{display:block;width:100%;height:8px;margin:6px 0 4px;background:var(--surface-2)}.star-split-legend{display:flex;flex-wrap:wrap;gap:var(--space-3);font-variant-numeric:tabular-nums}.star-key{display:inline-block;width:8px;height:8px;margin-right:4px;background:currentColor}.star-split .star-seg-1,.star-split .star-seg-2,.star-split .star-seg-3{fill:var(--accent)}.star-split .star-seg-1,.star-key.star-seg-1{opacity:.35}.star-split .star-seg-2,.star-key.star-seg-2{opacity:.65}.star-key{color:var(--accent)}.stat-rows{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;column-gap:var(--space-3);row-gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.stat-row{display:contents}.stat-you{font-variant-numeric:tabular-nums;white-space:nowrap}.stat-hist{display:block;width:96px;height:24px}.stat-hist .hist-bar{fill:var(--border-strong)}.stat-hist .hist-you{fill:var(--accent)}.stat-hist .hist-axis{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}.solution-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3)}.solution-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--border);background:var(--surface);color:inherit;text-decoration:none}.solution-card:hover,.solution-card:focus-within{border-color:var(--accent)}.solution-card-link{display:flex;flex-direction:column;color:inherit;text-decoration:none}.solution-card-post{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);padding:0 var(--space-3) var(--space-3)}.post-control{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.solution-card-meta{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-top:1px solid var(--border)}.solution-card-meta .row{align-items:center}.solution-card-author{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schematic-thumb{overflow:hidden;background:var(--canvas-bg)}.schematic-thumb-empty{display:flex;align-items:center;justify-content:center;color:var(--text-faint);font-size:var(--text-sm)}.solutions-pager{align-items:center;justify-content:center;margin-top:var(--space-4)}.error-fallback{display:flex;align-items:center;justify-content:center;gap:var(--space-3);flex:1;min-height:80px;height:100%;padding:var(--space-4);color:var(--text-muted);background:var(--surface)}
