:root{--bg:#f3f7fb;--bg-2:#e9f0f7;--surface:#ffffffd1;--surface-strong:#fff;--border:#0f172a24;--text:#0f172a;--muted:#5b6b81;--primary:#0e7490;--primary-strong:#155e75;--accent:#ea580c;--success:#16a34a;--danger:#dc2626;--grid-major:#0e74903d;--grid-minor:#0f172a1a;--item-bg:#deebf8;--terminal-bg:#0f172a;--wire-color:#2dd4bf;--shadow-md:0 16px 36px #0f172a1f;--shadow-sm:0 8px 18px #0f172a1a}[data-theme=dark]{--bg:#060c1b;--bg-2:#111b32;--surface:#0a1428c7;--surface-strong:#10203b;--border:#94a3b838;--text:#e2e8f0;--muted:#9fb0c4;--primary:#22d3ee;--primary-strong:#0891b2;--accent:#fb923c;--success:#22c55e;--danger:#f87171;--grid-major:#22d3ee3d;--grid-minor:#94a3b824;--item-bg:#1d355f;--terminal-bg:#f8fafc;--wire-color:#38bdf8;--shadow-md:0 16px 38px #0206178c;--shadow-sm:0 8px 18px #02061773}*{box-sizing:border-box;margin:0;padding:0}.workbench-app{color:var(--text);background:radial-gradient(circle at 8% 10%, #0e749033, transparent 34%), radial-gradient(circle at 90% 12%, #ea580c29, transparent 32%), linear-gradient(145deg, var(--bg), var(--bg-2));flex-direction:column;height:100vh;font-family:Space Grotesk,Trebuchet MS,sans-serif;display:flex;position:relative;overflow:hidden}.workbench-app:before{content:"";pointer-events:none;opacity:.24;background-image:linear-gradient(90deg,#94a3b814 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lab-header{z-index:30;background:var(--surface);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);flex-wrap:nowrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:6px 16px;display:flex;position:relative;overflow-x:auto}.header-left{flex-shrink:0;align-items:center;gap:8px;display:flex}.header-center{flex-shrink:0;justify-content:center;align-items:center;display:flex}.header-right{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.back-btn{color:var(--text);border:1px solid var(--border);border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;padding:8px;font-size:.82rem;font-weight:600;text-decoration:none;transition:border-color .2s,transform .2s,background .2s;display:flex}.back-btn:hover{border-color:var(--primary);background:#0e749014;transform:translate(-2px)}.logo{align-items:center;gap:10px;display:flex}.logo-badge{background:linear-gradient(150deg, var(--primary), var(--accent));color:#fff;letter-spacing:.08em;border-radius:10px;padding:6px 10px;font-family:JetBrains Mono,Consolas,monospace;font-size:.76rem;font-weight:700}.logo-title{font-size:.98rem;font-weight:700}.logo-subtitle{color:var(--muted);margin-top:0;font-size:.72rem;line-height:1.2}.project-name-input{width:min(420px,100%);color:var(--text);text-align:center;background:#94a3b81a;border:1px solid #0000;border-radius:12px;padding:6px 12px;font-size:.98rem;font-weight:600;transition:border-color .2s,background .2s}.project-name-input:hover,.project-name-input:focus{border-color:var(--primary);background:#94a3b824;outline:none}.wire-color-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-family:JetBrains Mono,Consolas,monospace;font-size:.73rem}.btn{cursor:pointer;letter-spacing:.02em;border:none;border-radius:10px;padding:8px 10px;font-size:.82rem;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(150deg, var(--primary), var(--primary-strong));color:#fff;box-shadow:0 10px 18px #0e749040}.btn.primary:hover{box-shadow:0 12px 22px #0e74904d}.btn.secondary{background:var(--surface-strong);color:var(--text);border:1px solid var(--border)}.btn.secondary:hover{border-color:var(--primary)}.btn.is-active{background:var(--primary);color:#fff;border-color:var(--primary-strong);box-shadow:inset 0 2px 4px #0000001a}.btn.danger{background:linear-gradient(150deg, var(--danger), #b91c1c);color:#fff;box-shadow:0 10px 20px #dc26264d}.theme-toggle{border:1px solid var(--border);background:var(--surface-strong);min-width:42px;color:var(--text);cursor:pointer;border-radius:999px;padding:4px 8px;font-size:1.2rem;font-weight:700;transition:border-color .2s,transform .2s}.theme-toggle:hover{border-color:var(--primary);transform:translateY(-1px)}[data-theme=light] .theme-toggle .sun,[data-theme=dark] .theme-toggle .moon{display:none}.color-picker{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;width:42px;height:34px}.lab-container{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.lab-sidebar{background:linear-gradient(170deg, var(--surface), #94a3b814);border-right:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;flex-direction:column;flex-shrink:0;gap:14px;width:320px;min-width:280px;padding:14px;transition:width .2s,padding .2s;display:flex;position:relative;overflow:hidden auto}.lab-sidebar.collapsed{border-right:none!important;width:0!important;min-width:0!important;padding:0!important;overflow:hidden!important}.lab-sidebar::-webkit-scrollbar{width:8px}.lab-sidebar::-webkit-scrollbar-thumb{background:#94a3b873;border-radius:999px}.sidebar-top{border:1px solid var(--border);background:#94a3b814;border-radius:14px;padding:12px}.sidebar-kicker{letter-spacing:.11em;text-transform:uppercase;color:var(--muted);font-family:JetBrains Mono,Consolas,monospace;font-size:.68rem}.sidebar-top h2{margin-top:4px;font-size:1.16rem;line-height:1.2}.sidebar-copy{color:var(--muted);margin-top:6px;font-size:.78rem;line-height:1.4}.search-wrap{margin-top:10px}.search-wrap input{border:1px solid var(--border);background:var(--surface-strong);width:100%;color:var(--text);border-radius:10px;padding:10px 12px;font-size:.82rem}.search-wrap input:focus{border-color:var(--primary);outline:none}.sidebar-section{border:1px solid var(--border);background:#94a3b80f;border-radius:14px;padding:12px}.sidebar-section h3{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:.73rem}.sidebar-section.empty{display:none}.component-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.component-item{appearance:none;border:1px solid var(--border);background:linear-gradient(150deg, var(--surface-strong), #94a3b829);color:var(--text);text-align:left;cursor:grab;border-radius:12px;flex-direction:column;gap:4px;min-height:62px;padding:10px;font-family:inherit;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.component-item:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 8px 14px #0e74902e}.component-item:active{cursor:grabbing}.component-item[hidden]{display:none}.component-name{font-size:.78rem;font-weight:700;line-height:1.2}.component-meta{color:var(--muted);font-family:JetBrains Mono,Consolas,monospace;font-size:.68rem}.lab-workspace{background:linear-gradient(160deg, #0e749014, transparent 28%), var(--bg);flex:1;position:relative;overflow:hidden}.ambient-glow{pointer-events:none;z-index:1;background:radial-gradient(circle at 75% 80%,#38bdf829,#0000 35%),radial-gradient(circle at 30% 20%,#22c55e1a,#0000 30%);position:absolute;inset:0}.grid-background{pointer-events:none;z-index:2;background-image:linear-gradient(var(--grid-major) 1px, transparent 1px), linear-gradient(90deg, var(--grid-major) 1px, transparent 1px), linear-gradient(var(--grid-minor) 1px, transparent 1px), linear-gradient(90deg, var(--grid-minor) 1px, transparent 1px);opacity:.66;background-size:160px 160px,160px 160px,32px 32px,32px 32px;position:absolute;inset:0}.drop-zone{z-index:20;pointer-events:none;width:100%;height:100%;position:relative}.wire-layer{z-index:14;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.workspace-hint{z-index:3;pointer-events:none;text-align:center;color:var(--text);opacity:.42;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.workspace-hint p{font-size:1.56rem;font-weight:700}.workspace-hint span{color:var(--muted);margin-top:7px;font-size:.88rem;display:block}.lab-hud{z-index:28;gap:8px;display:grid;position:absolute;top:12px;right:12px}.hud-card{background:var(--surface);border:1px solid var(--border);min-width:136px;box-shadow:var(--shadow-sm);border-radius:12px;gap:2px;padding:9px 11px;display:grid}.hud-card span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-family:JetBrains Mono,Consolas,monospace;font-size:.66rem}.hud-card strong{font-size:1.12rem;line-height:1}.lab-item{color:var(--text);cursor:grab;-webkit-user-select:none;user-select:none;z-index:26;pointer-events:auto;background:0 0;border-radius:12px;justify-content:center;align-items:center;transition:transform .15s;display:flex;position:absolute}.lab-item:active{cursor:grabbing}.lab-item .item-label{letter-spacing:.06em;text-transform:uppercase;pointer-events:none;text-align:center;font-family:JetBrains Mono,Consolas,monospace;font-size:.72rem;font-weight:700}.lab-item.selected{border-color:var(--primary);box-shadow:0 0 0 2px #0e749066, var(--shadow-md)}.lab-item.active{border-color:var(--success);box-shadow:0 0 0 2px #22c55e54,0 0 18px #22c55e42}.lab-item.power-item{background:linear-gradient(155deg,#ea580c33,#fbbf241f);border-color:#ea580c80}.lab-item.chip-item{color:#f8fafc;background:linear-gradient(160deg,#1f2937,#111827);border-color:#94a3b866}.lab-item.sensor-item{background:linear-gradient(150deg,#14b8a642,#38bdf829);border-color:#14b8a675}.lab-item.board-item{color:#d1fae5;background:linear-gradient(155deg,#0f5a3b,#0a3f2b);border-color:#10b9816b;border-radius:14px}.lab-item.module-item{background:linear-gradient(150deg,#1e40af47,#0e749033);border-color:#38bdf880}.lab-item[data-type=ground]{color:#e2e8f0;background:linear-gradient(160deg,#47556952,#0f172a75);border-radius:50%}.lab-item[data-type=breadboard]{color:#1e293b;background:repeating-linear-gradient(90deg,#f8fafc,#f8fafc 8px,#e2e8f0 8px 16px);border-color:#94a3b8}[data-theme=dark] .lab-item[data-type=breadboard]{color:#0f172a}.lab-item[data-type=led].active,.lab-item[data-type=rgb_led].active{box-shadow:0 0 0 2px #facc158c,0 0 20px #facc1573}.lab-item[data-type=bulb].active{box-shadow:0 0 0 2px #fde0478c,0 0 24px #fde04780}.lab-item[data-type=motor].active{animation:.7s linear infinite motor-spin}@keyframes motor-spin{to{transform:rotate(360deg)}}.terminal{background:var(--terminal-bg);cursor:crosshair;z-index:40;border:2px solid #e2e8f0;border-radius:50%;width:12px;height:12px;transition:transform .15s,background .2s;position:absolute}[data-theme=dark] .terminal{border-color:#334155}.terminal:hover{background:var(--primary);transform:scale(1.22)}.terminal.connected{background:var(--primary)}.wire-line{stroke-width:4.5px;stroke-linecap:round;fill:none;pointer-events:stroke;cursor:pointer;transition:stroke-width .15s,filter .15s}.wire-line:hover{stroke-width:6px;filter:drop-shadow(0 0 6px #38bdf8b3)}.wire-line.selected{stroke-width:6px;filter:drop-shadow(0 0 8px #f59e0b)drop-shadow(0 0 3px #fbbf24)}.wire-line.active{filter:drop-shadow(0 0 5px #ffffff73)}.wire-electron-pulse{animation:.85s linear infinite electron-dash}@keyframes electron-dash{to{stroke-dashoffset:-20px}}@media (max-width:1320px){.lab-sidebar{width:350px}.lab-header{grid-template-columns:minmax(270px,1.1fr) minmax(220px,.9fr) auto}}@media (max-width:1040px){.workbench-app{overflow:auto}.lab-header{grid-template-columns:1fr;gap:10px}.header-center{justify-content:flex-start}.project-name-input{text-align:left;width:100%}.lab-container{flex-direction:column;min-height:0}.lab-sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;max-height:45vh}.component-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-workspace{min-height:58vh}.lab-hud{grid-template-columns:repeat(3,minmax(0,1fr));inset:auto 10px 10px}.hud-card{min-width:0}}@media (max-width:680px){.header-right{flex-wrap:wrap;justify-content:flex-start}.component-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-hint p{font-size:1.22rem}.workspace-hint span{font-size:.78rem}}.lab-item{cursor:grab;-webkit-user-select:none;user-select:none;z-index:20;pointer-events:auto;border-radius:10px;transition:box-shadow .2s,transform .15s;position:absolute;box-shadow:0 8px 24px #0000008c}.lab-item:hover{box-shadow:0 12px 32px #000000bf}.lab-item.selected{outline-offset:3px;z-index:25;outline:2px solid #38bdf8}.lab-item.active{box-shadow:0 0 20px #10b98180}.lab-item.fault{outline:2px solid #ef4444;box-shadow:0 0 20px #ef444499}.lab-item.spinning .item-visual-container{animation:.7s linear infinite motor-spin}.item-visual-container{pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;padding:4px;display:flex}.item-visual-container.blueprint svg{stroke:#334155;stroke-width:1.5px;fill:none;stroke-linecap:round;stroke-linejoin:round;width:100%;max-width:48px;height:100%;max-height:48px}.item-visual-container.real .emoji-visual{font-size:28px;line-height:1}.item-label{color:#475569;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#ffffffd9;border-radius:3px;max-width:90%;padding:1px 4px;font-size:9px;font-weight:700;position:absolute;bottom:2px;overflow:hidden}.power-item{background:#eff6ff;border-color:#bfdbfe}.power-item .item-visual-container svg{stroke:#2563eb}.sensor-item{background:#f0fdf4;border-color:#bbf7d0}.sensor-item .item-visual-container svg{stroke:#16a34a}.module-item{background:#fdf4ff;border-color:#f5d0fe}.module-item .item-visual-container svg{stroke:#c026d3}.chip-item{background:#1e293b;border-color:#0f172a;border-radius:2px}.chip-item .item-label{color:#cbd5e1;background:0 0;font-family:monospace;font-size:11px;top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%)}.board-item{background:#0f766e;border-color:#115e59;border-radius:4px}.board-item .item-label{color:#fff;text-align:center;background:0 0;width:100%;font-size:12px;top:50%;bottom:auto;transform:translateY(-50%)}.terminal{cursor:crosshair;z-index:30;background:#fff;border:2px solid #475569;border-radius:50%;width:12px;height:12px;transition:all .15s;position:absolute;box-shadow:0 1px 2px #0000001a}.terminal:hover{background:#eff6ff;border-color:#2563eb;transform:scale(1.4)}.terminal.connected{background:#475569;border-color:#1e293b}#dropZone{position:relative}#wireLayer{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;top:0;left:0}.wire-group{cursor:pointer}.wire-hit{fill:none;stroke:#0000!important;stroke-width:18px!important;pointer-events:all!important}.wire-group:hover .wire-line{stroke-width:6px}.wire-group.selected .wire-line{stroke-width:6px;filter:drop-shadow(0 0 8px #f59e0b)}.wire-line.conflict{stroke:#a855f7;stroke-dasharray:5;animation:.5s linear infinite wire-flow}@keyframes wire-flow{to{stroke-dashoffset:-10px}}.lab-tooltip{color:#fff;pointer-events:none;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172af2;border:1px solid #334155;border-radius:6px;max-width:220px;padding:8px 12px;font-size:12px;line-height:1.4;display:none;position:absolute;box-shadow:0 4px 6px #0000001a}.view-toggle-container{z-index:1000;background:#fff;border:1px solid #e2e8f0;border-radius:30px;align-items:center;gap:12px;padding:8px 16px;font-family:system-ui,sans-serif;font-size:14px;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 12px #00000026}.toggle-switch{cursor:pointer;background:#cbd5e1;border-radius:12px;width:44px;height:24px;transition:background .3s;position:relative}.toggle-switch.active{background:#3b82f6}.toggle-knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .3s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.toggle-switch.active .toggle-knob{transform:translate(20px)}body.blueprint-theme{background-color:#f0f9ff;background-image:radial-gradient(#bae6fd 1px,#0000 1px);background-size:20px 20px}body.blueprint-theme .lab-item{box-shadow:none;background:#fff;border:2px solid #0ea5e9;border-radius:0}body.blueprint-theme .wire-line{stroke:#0369a1!important}.analyzer-panel{z-index:900;color:#cbd5e1;background:#0f172a;border-top:1px solid #334155;flex-direction:column;width:100%;height:340px;font-family:monospace;font-size:11px;display:none;position:fixed;bottom:0;left:0;box-shadow:0 -4px 10px #0000004d}.analyzer-panel.visible{display:flex}.analyzer-header{background:#1e293b;border-bottom:1px solid #334155;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.analyzer-canvas-container{background:#0f172a;flex:1;position:relative;overflow:hidden}canvas#analyzerCanvas{width:100%;height:100%;display:block}#workspaceStatus{background:var(--surface);box-shadow:var(--shadow-sm);border:1px solid var(--border);z-index:100;pointer-events:none;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;border-radius:20px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:opacity .3s,transform .3s;position:absolute;top:20px;left:20px;transform:translateY(-10px)}#workspaceStatus.visible{opacity:1;transform:translateY(0)}#workspaceStatus[data-tone=info]{border-color:var(--primary);color:var(--primary-strong)}#workspaceStatus[data-tone=success]{border-color:var(--success);color:var(--success)}#workspaceStatus[data-tone=warning]{border-color:var(--accent);color:var(--accent)}#workspaceStatus[data-tone=danger]{border-color:var(--danger);color:var(--danger)}.voltage-control-panel{background:var(--surface-strong);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:1000;border-radius:12px;min-width:220px;padding:14px;animation:.2s fadeIn;position:absolute}.vc-header{color:var(--text);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:.9rem;font-weight:700;display:flex}.vc-close{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0 4px;font-size:1.2rem;line-height:1}.vc-close:hover{color:var(--danger)}.vc-body{flex-direction:column;gap:10px;display:flex}.vc-row{justify-content:space-between;align-items:center;gap:8px;font-size:.85rem;display:flex}.vc-input{border:1px solid var(--border);background:var(--bg);width:80px;color:var(--text);border-radius:6px;padding:6px 8px;font-family:monospace}.vc-slider{cursor:pointer;width:100%;accent-color:var(--primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.sidebar-toggle{justify-content:center;align-items:center;padding:6px;display:flex}.sidebar-icon{margin-bottom:0;font-size:1.6rem;line-height:1;display:none}.lab-sidebar{transition:width .3s cubic-bezier(.4,0,.2,1)}.lab-sidebar.compact{width:80px;padding:16px 8px}.lab-sidebar.compact .sidebar-top h2,.lab-sidebar.compact .sidebar-top p,.lab-sidebar.compact .sidebar-kicker,.lab-sidebar.compact .search-summary,.lab-sidebar.compact .sidebar-section h3,.lab-sidebar.compact .component-name,.lab-sidebar.compact .component-meta{display:none}.lab-sidebar.compact .sidebar-top,.lab-sidebar.compact .sidebar-section{background:0 0;border:none;padding:8px 4px}.lab-sidebar.compact .component-grid{grid-template-columns:1fr;gap:8px}.lab-sidebar.compact .component-item{justify-content:center;align-items:center;min-height:48px;padding:8px}.lab-sidebar.compact .sidebar-icon{display:block}.lab-sidebar.compact .search-wrap input{text-align:center;padding:8px 4px;font-size:.7rem}.lab-sidebar.compact .search-wrap input::placeholder{color:#0000}.workbench-top-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:40;background:#0a1020f2;border-bottom:1px solid #38bdf833;flex-wrap:nowrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:6px 16px;display:flex;overflow-x:auto}.ece-track-badge{color:#38bdf8;background:#0e74904d;border:1px solid #38bdf84d;border-radius:6px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:700}.track-switcher{background:#0006;border:1px solid #ffffff1a;border-radius:10px;gap:4px;padding:3px;display:inline-flex}.track-btn{color:#94a3b8;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:.78rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex}.track-btn.active{color:#fff;background:linear-gradient(135deg,#10b981,#06b6d4);box-shadow:0 4px 12px #10b9814d}.track-btn:hover:not(.active){color:#e2e8f0;background:#ffffff0f}.circuit-preset-select{background:var(--surface-strong);color:#22d3ee;cursor:pointer;border:1px solid #22d3ee66;border-radius:10px;outline:none;max-width:320px;padding:6px 12px;font-family:inherit;font-size:.82rem;font-weight:700}.wire-palette{background:#0000004d;border:1px solid #ffffff14;border-radius:10px;align-items:center;gap:4px;padding:3px 8px;display:flex}.color-dot{cursor:pointer;border:1px solid #0006;border-radius:50%;width:18px;height:18px;transition:transform .15s}.color-dot:hover{transform:scale(1.2)}.color-dot.active{border:2px solid #fff;transform:scale(1.3);box-shadow:0 0 8px}.category-filter-pills{scrollbar-width:none;gap:4px;margin-top:8px;padding:6px 0;display:flex;overflow-x:auto}.cat-pill{appearance:none;color:#94a3b8;cursor:pointer;white-space:nowrap;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;padding:4px 10px;font-size:.72rem;font-weight:700;transition:all .15s}.cat-pill:hover{color:#fff;background:#ffffff14}.cat-pill.active{color:#22d3ee;background:#0e749066;border-color:#22d3ee}.code-drawer{z-index:55;background:#080d1a;border-left:1px solid #38bdf840;flex-direction:column;width:440px;max-width:100%;transition:width .22s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-10px 0 30px #0009}.code-drawer.maximized{z-index:60;border-left:none;width:100%!important}.code-drawer-header{background:#0d1629;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}.code-btn-close{color:#fca5a5;cursor:pointer;background:#ef444426;border:1px solid #ef444466;border-radius:8px;align-items:center;gap:5px;padding:4px 10px;font-size:.74rem;font-weight:700;transition:all .15s;display:inline-flex}.code-btn-close:hover{color:#fff;background:#ef44444d;border-color:#ef4444;transform:translateY(-1px)}.code-textarea{color:#34d399;resize:none;background:#050811;border:none;outline:none;flex:1;padding:14px;font-family:JetBrains Mono,Consolas,monospace;font-size:.8rem;line-height:1.6}.serial-console{z-index:35;background:#060913;border-top:1px solid #38bdf840;flex-direction:column;height:160px;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #0006}.serial-console-header{background:#0d1629;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:6px 14px;font-size:.76rem;display:flex}.serial-log-body{color:#38bdf8;flex-direction:column;flex:1;gap:3px;padding:8px 14px;font-family:JetBrains Mono,Consolas,monospace;font-size:.72rem;display:flex;overflow-y:auto}.alert-short-circuit{color:#fff;z-index:60;background:#dc2626f2;border-radius:999px;align-items:center;gap:8px;padding:8px 20px;font-size:.82rem;font-weight:800;animation:1s infinite alternate pulse;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 0 25px #dc262699}@keyframes pulse{0%{opacity:.85;transform:translate(-50%)scale(.98)}to{opacity:1;transform:translate(-50%)scale(1.02)}}.canvas-floating-controls{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:25;background:#0a1020eb;border:1px solid #38bdf847;border-radius:12px;align-items:center;gap:6px;padding:4px 8px;display:flex;position:absolute;bottom:16px;right:16px;box-shadow:0 4px 20px #00000080}.canvas-floating-btn{color:#e2e8f0;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;gap:4px;padding:5px 10px;font-size:.78rem;font-weight:700;transition:all .15s;display:inline-flex}.canvas-floating-btn:hover{color:#fff;background:#38bdf833;border-color:#38bdf8}.canvas-floating-btn.danger:hover{color:#fca5a5;background:#ef444433;border-color:#ef4444}.canvas-zoom-display{color:#38bdf8;text-align:center;min-width:44px;font-family:JetBrains Mono,Consolas,monospace;font-size:.74rem;font-weight:700}.canvas-floating-hint{color:#94a3b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;z-index:25;background:#0a1020e0;border:1px solid #ffffff1a;border-radius:10px;align-items:center;gap:8px;padding:6px 12px;font-size:.72rem;display:flex;position:absolute;bottom:16px;left:16px}.seg-bar{border-radius:2px;transition:all .12s}.seg-bar.lit{box-shadow:0 0 8px #ef4444,inset 0 0 4px #fecaca;opacity:1!important;background:#ef4444!important}.seg-bar.unlit{opacity:.35!important;background:#ef44441f!important}.lcd-screen-bg{background:#024;border:2px solid #012;font-family:JetBrains Mono,Consolas,monospace;box-shadow:inset 0 2px 8px #000000b3}.lcd-char-line{letter-spacing:1.5px;color:#e0f2fe;text-shadow:0 0 4px #38bdf8;line-height:1.3}:-webkit-any(.workbench-app:fullscreen,.workbench-app:-webkit-full-screen,.workbench-app.workbench-fullscreen-active){z-index:99999!important;background:#070b14!important;border-radius:0!important;width:100vw!important;height:100vh!important;margin:0!important;padding:0!important;position:fixed!important;inset:0!important;overflow:hidden!important}:is(.workbench-app:fullscreen,.workbench-app:fullscreen,.workbench-app.workbench-fullscreen-active){z-index:99999!important;background:#070b14!important;border-radius:0!important;width:100vw!important;height:100vh!important;margin:0!important;padding:0!important;position:fixed!important;inset:0!important;overflow:hidden!important}.workbench-app.workbench-fullscreen-active .lab-container{border-radius:0!important;height:calc(100vh - 56px)!important}.wire-floating-action-badge{z-index:45;pointer-events:auto;animation:.15s cubic-bezier(.16,1,.3,1) badge-pop;position:absolute;transform:translate(-50%,-50%)}@keyframes badge-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.wire-delete-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#dc2626 0%,#991b1b 100%);border:1px solid #ffffff4d;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-family:JetBrains Mono,Consolas,monospace;font-size:.72rem;font-weight:800;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex;box-shadow:0 4px 14px #dc262699,0 2px 6px #0006}.wire-delete-btn:hover{background:#ef4444;transform:scale(1.08);box-shadow:0 6px 18px #ef4444cc}.wire-inspector-card{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;-webkit-user-select:none;user-select:none;background:#0a101ef2;border:1px solid #38bdf866;border-radius:12px;flex-direction:column;gap:8px;min-width:280px;max-width:380px;padding:10px 12px;font-family:JetBrains Mono,Consolas,monospace;animation:.16s cubic-bezier(.16,1,.3,1) inspector-pop;display:flex;position:absolute;transform:translate(-50%,-100%)translateY(-12px);box-shadow:0 16px 36px #000000bf,0 0 20px #38bdf833}@keyframes inspector-pop{0%{opacity:0;transform:translate(-50%,-100%)translateY(0)scale(.85)}to{opacity:1;transform:translate(-50%,-100%)translateY(-12px)scale(1)}}.wire-inspector-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding-bottom:6px;display:flex}.wire-inspector-pins{background:#0f172ab3;border:1px solid #ffffff0f;border-radius:8px;justify-content:space-between;align-items:center;gap:6px;padding:6px 8px;display:flex}.wire-pin-pill{flex-direction:column;gap:2px;max-width:130px;display:flex}.wire-pin-pill .comp-name{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;font-size:.65rem;font-weight:700;overflow:hidden}.wire-pin-pill .pin-name{color:#38bdf8;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:900;overflow:hidden}.wire-arrow-glyph{color:#f59e0b;flex-shrink:0;font-size:1rem;font-weight:900}.wire-inspector-colors{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.wire-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:18px;height:18px;transition:transform .12s,border-color .12s}.wire-color-swatch:hover{border-color:#fff;transform:scale(1.25)}.wire-color-swatch.active{border-color:#fff;transform:scale(1.15);box-shadow:0 0 8px}.wire-inspector-actions{border-top:1px solid #ffffff14;align-items:center;gap:6px;padding-top:6px;display:flex}.wire-pin-tag-badge{color:#f8fafc;white-space:nowrap;pointer-events:none;z-index:60;background:#090d16;border:1.5px solid #38bdf8;border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,Consolas,monospace;font-size:.65rem;font-weight:800;animation:.15s ease-out tag-fade;position:absolute;transform:translate(-50%,-100%)translateY(-6px);box-shadow:0 4px 12px #0009,0 0 8px #38bdf880}@keyframes tag-fade{0%{opacity:0;transform:translate(-50%,-100%)translateY(0)}to{opacity:1;transform:translate(-50%,-100%)translateY(-6px)}}.wire-endpoint-handle{cursor:grab;transition:transform .12s}.wire-endpoint-handle:hover{transform:scale(1.3)}.wire-endpoint-handle:active{cursor:grabbing}.wire-waypoint-handle{cursor:grab;transition:transform .12s}.wire-waypoint-handle:hover{transform:scale(1.3)}.wire-waypoint-handle:active{cursor:grabbing}.terminal.terminal-power{box-shadow:0 0 6px #ef444499;background:#7f1d1d!important;border-color:#ef4444!important}.terminal.terminal-power:hover{box-shadow:0 0 10px #ef4444;background:#ef4444!important}.terminal.terminal-gnd{box-shadow:0 0 4px #64748b66;background:#0f172a!important;border-color:#64748b!important}.terminal.terminal-gnd:hover{background:#334155!important;border-color:#94a3b8!important}.terminal.terminal-analog{box-shadow:0 0 6px #06b6d480;background:#164e63!important;border-color:#06b6d4!important}.terminal.terminal-analog:hover{box-shadow:0 0 10px #06b6d4;background:#06b6d4!important}.terminal.terminal-gpio{box-shadow:0 0 6px #f59e0b80;background:#78350f!important;border-color:#f59e0b!important}.terminal.terminal-gpio:hover{box-shadow:0 0 10px #f59e0b;background:#f59e0b!important}.pin-hud-card{z-index:55;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;background:#0a101ef0;border:1px solid #38bdf866;border-radius:12px;align-items:center;gap:14px;padding:8px 16px;animation:.15s ease-out hud-slide-up;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #000000b3,0 0 20px #38bdf833}@keyframes hud-slide-up{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.pin-hud-badge{border-radius:6px;padding:3px 8px;font-family:JetBrains Mono,Consolas,monospace;font-size:.74rem;font-weight:900}.led-burnt-shatter{animation:.3s cubic-bezier(.36,.07,.19,.97) both led-pop}@keyframes led-pop{0%{filter:brightness(2)contrast(2);transform:scale(1)}25%{filter:brightness(3);transform:scale(1.25)rotate(-3deg);box-shadow:0 0 40px #fa0}50%{filter:brightness(.4);transform:scale(.92)rotate(3deg)}to{filter:grayscale()brightness(.4);transform:scale(1)}}.datasheet-drawer{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:48;background:#0a101ef5;border-left:1px solid #ffffff1f;flex-direction:column;width:380px;max-width:90vw;animation:.2s cubic-bezier(.16,1,.3,1) drawer-slide-in;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #000000b3}@keyframes drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.datasheet-table-wrap{flex:1;padding:8px 12px;overflow-y:auto}.datasheet-table{border-collapse:collapse;width:100%;font-family:JetBrains Mono,Consolas,monospace;font-size:.7rem}.datasheet-table th{text-align:left;color:#94a3b8;text-transform:uppercase;border-bottom:1px solid #ffffff1a;padding:6px 8px;font-size:.65rem;font-weight:700}.datasheet-table td{color:#e2e8f0;border-bottom:1px solid #ffffff0d;padding:6px 8px}.datasheet-table tr:hover td{background:#38bdf814}.real-pcb{box-sizing:border-box;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;height:100%;font-family:JetBrains Mono,Consolas,monospace;position:relative;overflow:hidden;box-shadow:0 14px 34px #000000a6,0 2px 6px #0006}.board-smd-led{background:#27272a;border:.5px solid #52525b;border-radius:1px;width:5px;height:7px;transition:all .12s;display:inline-block;position:relative;box-shadow:inset 0 1px 2px #000c}.board-smd-led.green.active{background:#22c55e;border-color:#86efac;box-shadow:0 0 10px #22c55e,0 0 3px #86efac}.board-smd-led.yellow.active{background:#eab308;border-color:#fde047;box-shadow:0 0 10px #eab308,0 0 3px #fde047}.board-smd-led.blue.active{background:#38bdf8;border-color:#7dd3fc;box-shadow:0 0 10px #38bdf8,0 0 3px #bae6fd}.board-smd-led.red.active{background:#ef4444;border-color:#fca5a5;box-shadow:0 0 10px #ef4444,0 0 3px #fca5a5}.board-header-strip{background:#0f141e;border:1px solid #283248;border-radius:2px;padding:1px;display:flex;box-shadow:0 2px 4px #00000080}.board-pin-socket{background:#060a12;border:1px solid #1a2234;border-radius:1px;justify-content:center;align-items:center;width:9px;height:9px;margin:1px;display:flex;position:relative}.board-pin-socket:after{content:"";background:#334155;border-radius:.5px;width:3.5px;height:3.5px;box-shadow:inset 0 1px 2px #000000e6}.board-mounting-hole{pointer-events:none;background:#0a101ee6;border:2px solid #ca8a04;border-radius:50%;width:14px;height:14px;position:absolute;box-shadow:0 0 4px #ca8a0466,inset 0 1px 3px #000000e6}.firmware-toolbar{background:#0b1222;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.firmware-status-tag{text-transform:uppercase;border-radius:6px;align-items:center;gap:6px;padding:3px 8px;font-family:JetBrains Mono,Consolas,monospace;font-size:.68rem;font-weight:800;display:inline-flex}.firmware-status-tag.idle{color:#94a3b8;background:#64748b33;border:1px solid #64748b66}.firmware-status-tag.running{color:#34d399;background:#10b98133;border:1px solid #10b98166;box-shadow:0 0 12px #10b98140}.firmware-status-tag.running .pulse-dot{background:#10b981;border-radius:50%;width:6px;height:6px;animation:1s infinite pulse-green}@keyframes pulse-green{0%{opacity:.8;transform:scale(.9);box-shadow:0 0 #10b981b3}70%{opacity:1;transform:scale(1.2);box-shadow:0 0 0 6px #10b98100}to{opacity:.8;transform:scale(.9);box-shadow:0 0 #10b98100}}.firmware-status-tag.compiling{color:#fbbf24;background:#f59e0b33;border:1px solid #f59e0b66}.firmware-status-tag.error{color:#f87171;background:#ef444433;border:1px solid #ef444466}.workbench-modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:99999;background:#030712bf;justify-content:center;align-items:center;padding:16px;animation:.15s ease-out modal-fade;display:flex;position:fixed;inset:0}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.workbench-modal-card{background:#0d1629;border:1px solid #38bdf859;border-radius:16px;flex-direction:column;width:100%;max-width:520px;display:flex;overflow:hidden;box-shadow:0 24px 60px #000c,0 0 30px #38bdf826}.workbench-modal-header{background:#0f172acc;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.workbench-modal-body{flex-direction:column;gap:14px;padding:16px 18px;display:flex}.storage-warning-box{background:#f59e0b14;border:1px solid #f59e0b66;border-left:4px solid #f59e0b;border-radius:8px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.storage-warning-icon{font-size:1.3rem;line-height:1}.storage-warning-title{color:#fbbf24;margin-bottom:4px;font-size:.82rem;font-weight:800}.storage-warning-text{color:#e2e8f0;font-size:.74rem;line-height:1.45}.storage-warning-tip{color:#38bdf8;margin-top:6px;font-size:.7rem;font-weight:600}.workbench-modal-footer{background:#090e1c;border-top:1px solid #ffffff14;justify-content:flex-end;gap:10px;padding:12px 18px;display:flex}.saved-circuits-drawer{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:48;background:#0a101ef7;border-right:1px solid #ffffff1f;flex-direction:column;width:380px;max-width:90vw;animation:.2s cubic-bezier(.16,1,.3,1) drawer-slide-left;display:flex;position:absolute;top:0;bottom:0;left:0;box-shadow:8px 0 32px #000000bf}@keyframes drawer-slide-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.saved-circuit-card{background:#0f172ab3;border:1px solid #ffffff14;border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;transition:all .15s;display:flex}.saved-circuit-card:hover{background:#1e293bcc;border-color:#38bdf866;transform:translateY(-1px)}.resistor-modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;background:#040812c7;justify-content:center;align-items:center;padding:16px;animation:.18s ease-out modal-fade-in;display:flex;position:fixed;inset:0}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.resistor-modal{background:#0b1325;border:1px solid #38bdf84d;border-radius:16px;flex-direction:column;width:520px;max-width:95vw;max-height:90vh;animation:.2s cubic-bezier(.16,1,.3,1) modal-pop;display:flex;overflow:hidden;box-shadow:0 24px 60px #000000b3,0 0 20px #38bdf826}@keyframes modal-pop{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.resistor-modal-header{background:#0f172a99;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1.1rem;transition:all .15s}.modal-close-btn:hover{color:#ef4444;background:#ef444433}.resistor-preview-chamber{background:radial-gradient(circle,#152238 0%,#0a1120 100%);border-bottom:1px solid #ffffff14;flex-direction:column;align-items:center;gap:12px;padding:16px 20px;display:flex}.resistor-preview-graphic{justify-content:center;align-items:center;width:100%;height:64px;display:flex}.resistor-preview-lead{background:linear-gradient(#e2e8f0 0%,#94a3b8 50%,#475569 100%);border-radius:3px;flex:1;height:6px;box-shadow:0 2px 6px #0006}.resistor-preview-body{background:radial-gradient(at 50% 30%,wheat 0%,#deb887 60%,#c89d66 100%);border:1px solid #8b5a2b59;border-radius:24px;justify-content:space-around;align-items:center;width:220px;height:48px;padding:0 26px;display:flex;position:relative;box-shadow:inset 0 3px 6px #ffffffb3,inset 0 -4px 8px #0006,0 6px 16px #00000073}.resistor-preview-band{border-radius:2px;width:12px;height:100%;transition:background-color .2s;box-shadow:inset 1px 0 2px #ffffff4d,inset -1px 0 3px #0006}.resistor-preview-stats{flex-direction:column;align-items:center;gap:2px;display:flex}.resistor-preview-ohm{color:#38bdf8;letter-spacing:-.02em;font-family:monospace;font-size:1.4rem;font-weight:800}.resistor-tabs-bar{background:#0f172a66;border-bottom:1px solid #ffffff14;display:flex}.resistor-tab-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px 14px;font-size:.8rem;font-weight:700;transition:all .15s}.resistor-tab-btn:hover{color:#f8fafc;background:#ffffff08}.resistor-tab-btn.active{color:#38bdf8;background:#38bdf814;border-bottom-color:#38bdf8}.resistor-modal-body{max-height:380px;padding:16px 20px;overflow-y:auto}.resistor-preset-chip{color:#e2e8f0;cursor:pointer;background:#1e293bcc;border:1px solid #ffffff1a;border-radius:6px;align-items:center;padding:5px 10px;font-size:.74rem;font-weight:700;transition:all .15s;display:inline-flex}.resistor-preset-chip:hover{color:#fff;background:#38bdf826;border-color:#38bdf8}.resistor-preset-chip.selected{color:#fff;background:#0284c7;border-color:#38bdf8;box-shadow:0 0 10px #38bdf866}.band-picker-row{flex-wrap:wrap;gap:5px;display:flex}.band-swatch-btn{cursor:pointer;border:1px solid #fff3;border-radius:6px;flex:1;justify-content:center;align-items:center;min-width:32px;height:28px;font-size:.75rem;font-weight:800;transition:all .15s;display:flex;box-shadow:0 2px 4px #0000004d}.band-swatch-btn:hover{transform:translateY(-2px)scale(1.06);box-shadow:0 4px 10px #00000080}.band-swatch-btn.selected{outline-offset:1px;outline:2.5px solid #fff;transform:translateY(-2px)scale(1.08);box-shadow:0 0 12px #fffc}@keyframes sonar-wave-pulse{0%{stroke-opacity:.9;transform:scale(.96)}50%{stroke-opacity:.4;transform:scale(1.04)}to{stroke-opacity:.9;transform:scale(.96)}}.sonar-pulse-arc{transform-origin:50%;animation:1.4s ease-in-out infinite sonar-wave-pulse}@keyframes sonar-echo-ping{0%{r:8px;opacity:1}50%{r:16px;opacity:.4}to{r:8px;opacity:1}}.sonar-echo-ring{animation:1.2s ease-out infinite sonar-echo-ping}
