:root{--bg-0: #0b0d10;--bg-1: #111418;--bg-2: #161a1f;--bg-3: #1c2128;--bg-4: #232a33;--bg-5: #2d3540;--line-1: #222830;--line-2: #2c333d;--line-3: #3a4350;--fg-0: #e6e9ee;--fg-1: #b8bfc9;--fg-2: #8b95a3;--fg-3: #5f6875;--fg-4: #3f4651;--sig-power: oklch(.68 .18 28);--sig-ground: oklch(.7 .14 245);--sig-digital: oklch(.75 .16 150);--sig-analog: oklch(.75 .16 60);--sig-bus: oklch(.7 .18 300);--sig-passive: oklch(.7 .02 260);--sig-power-dim: oklch(.68 .18 28 / .15);--sig-ground-dim: oklch(.7 .14 245 / .15);--sig-digital-dim: oklch(.75 .16 150 / .15);--sig-analog-dim: oklch(.75 .16 60 / .15);--sig-bus-dim: oklch(.7 .18 300 / .15);--sig-passive-dim: oklch(.7 .02 260 / .12);--accent: oklch(.8 .15 85);--accent-dim: oklch(.8 .15 85 / .15);--danger: oklch(.68 .19 25);--warn: oklch(.8 .16 80);--ok: oklch(.75 .15 150);--radius: 6px;--radius-sm: 4px;--font-ui: "Inter", "Helvetica Neue", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, monospace}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg-0);color:var(--fg-0);font-family:var(--font-ui);font-size:13px;line-height:1.4;-webkit-font-smoothing:antialiased;overflow:hidden}button{font-family:inherit;font-size:inherit;color:inherit;background:transparent;border:none;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit}.mono{font-family:var(--font-mono);font-feature-settings:"zero" 1,"ss01" 1}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-4);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--bg-5)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent)!important;box-shadow:0 0 0 2px color-mix(in oklch,var(--accent) 45%,transparent)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app{display:grid;grid-template-columns:var(--left-w, 240px) 1fr var(--right-w, 320px);grid-template-rows:40px 1fr 26px;height:100vh;width:100vw;background:var(--bg-0)}.app.app-report .sidebar-left,.app.app-report .sidebar-right,.app.app-report .resize-handle{display:none!important}.topbar{grid-column:1 / -1;display:flex;align-items:center;gap:12px;padding:0 12px;background:var(--bg-1);border-bottom:1px solid var(--line-1);user-select:none}.topbar .brand{display:flex;align-items:center;gap:8px;font-weight:600;letter-spacing:.01em}.topbar .brand .logo{width:18px;height:18px;border-radius:3px;background:linear-gradient(135deg,var(--accent),oklch(.7 .18 28));position:relative}.topbar .brand .logo:after{content:"";position:absolute;inset:4px;border:1.5px solid var(--bg-0);border-radius:1px}.topbar .spacer{flex:1}.tabs{display:flex;gap:2px;height:100%;align-items:stretch}.tabs .tab{display:flex;align-items:center;padding:0 14px;font-size:12px;color:var(--fg-2);border-bottom:2px solid transparent;cursor:pointer}.tabs .tab:hover{color:var(--fg-0)}.tabs .tab.active{color:var(--fg-0);border-bottom-color:var(--accent)}.topbar .actions{display:flex;gap:6px;align-items:center}.btn{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--fg-1);font-size:12px;cursor:pointer;transition:background .1s,border-color .1s,color .1s}.btn:hover{background:var(--bg-4);color:var(--fg-0);border-color:var(--line-3)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent-dim);border-color:#eab53266;color:var(--accent)}.btn.primary:hover{background:#eab53240}.btn.icon{padding:5px 7px}.skip-link{position:fixed;top:-40px;left:8px;background:var(--accent);color:var(--bg-0);padding:6px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;text-decoration:none;z-index:10000;transition:top .15s}.skip-link:focus{top:8px}.login-screen{position:fixed;inset:0;background:var(--bg-0);display:grid;place-items:center;z-index:300}.login-card{width:360px;background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--radius);padding:28px}.login-sub{text-align:center;color:var(--fg-3);font-size:12px;margin-bottom:18px}.login-alt{display:flex;gap:6px;margin-top:10px}.login-foot{text-align:center;color:var(--fg-3);font-size:11.5px;margin-top:14px}.login-foot a{color:var(--accent);cursor:pointer;text-decoration:none}.login-foot a:hover{text-decoration:underline}.login-err{margin-top:10px;padding:8px 10px;background:#f75d591f;border:1px solid oklch(.68 .19 25 / .45);border-radius:var(--radius-sm);color:oklch(.85 .15 25);font-size:11.5px;line-height:1.4}.login-hint{margin-top:12px;padding:8px 10px;background:var(--bg-2);border:1px dashed var(--line-2);border-radius:var(--radius-sm);color:var(--fg-2);font-size:11px;text-align:center}.login-hint code{color:var(--accent);font-family:var(--font-mono);font-size:10.5px}.field{display:grid;grid-template-columns:1fr;gap:4px;margin-bottom:10px}.field label{font-size:11px;color:var(--fg-2);font-weight:500}.field input,.field select,.field textarea{background:var(--bg-0);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--fg-0);padding:7px 10px;font-size:13px;outline:none}.field input:focus{border-color:var(--accent)}.loading-screen{position:fixed;inset:0;display:grid;place-items:center;background:var(--bg-0);color:var(--fg-2);font-size:13px;z-index:200}.loading-spinner{width:20px;height:20px;border:2px solid var(--line-2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:10px}@keyframes spin{to{transform:rotate(360deg)}}.canvas-placeholder{grid-column:1 / -1;display:grid;place-items:center;padding:40px;color:var(--fg-2);text-align:center}.canvas-placeholder h2{color:var(--fg-0);margin-bottom:8px;font-size:18px;font-weight:600}.canvas-placeholder p{margin:4px 0;font-size:12.5px;line-height:1.6}.canvas-placeholder code{background:var(--bg-2);padding:2px 6px;border-radius:3px;font-family:var(--font-mono);font-size:11.5px;color:var(--accent)}.canvas-placeholder a{color:var(--accent)}
