.bb-wrap{position:relative;width:100%;height:100%;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center}.bb-svg{width:100%;height:100%;display:block}.bb-svg text{pointer-events:none}.bb-washer{fill:var(--hole-ring)}.bb-hole{fill:var(--hole);pointer-events:none}.bb-hit{fill:transparent}.bb-svg.placing .bb-hit{cursor:copy}.bb-svg.wiring .bb-hit{cursor:crosshair}.bb-svg.locked .bb-hit{cursor:not-allowed}.bb-halo{fill:var(--phosphor);opacity:.4;pointer-events:none}.bb-silk{font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.bb-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.bb-wires{pointer-events:none}.bb-wire-in{stroke-dasharray:1;stroke-dashoffset:1;animation:bb-wire-in .2s ease-out forwards}@keyframes bb-wire-in{to{stroke-dashoffset:0}}.bb-wire-draft{stroke:var(--ghost);opacity:.5}.bb-wirestart{fill:none;stroke:var(--phosphor);stroke-width:2;pointer-events:none;animation:bb-pulse 1.1s ease-in-out infinite}@keyframes bb-pulse{0%,to{opacity:.9}50%{opacity:.35}}.bb-comp{pointer-events:none}.bb-comp .bb-clickable{pointer-events:all;cursor:pointer}.bb-comp.draft{opacity:.5}.bb-comp.draft .cbody{stroke:var(--ghost);stroke-width:1.4;stroke-dasharray:4 3}.bb-toast{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:5;max-width:min(540px,92%);padding:9px 13px;background:#142022f2;border:1px solid var(--panel-edge);border-left:3px solid var(--warning);border-radius:6px;color:var(--ink);font-family:var(--font-prose);font-size:12.5px;line-height:1.45;box-shadow:0 8px 22px #00000073;animation:bb-toast-in .16s ease-out}@keyframes bb-toast-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.app{display:flex;flex-direction:column;height:100vh;background:var(--mat);overflow:hidden}.app-header{display:flex;align-items:center;gap:14px;padding:0 16px;height:48px;flex:none;background:var(--mat-deep);border-bottom:1px solid var(--panel-edge)}.brand{font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:16px;color:var(--ink)}.hdr-group{display:flex;align-items:center;gap:8px}.hdr-spacer{flex:1}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--ink-dim);opacity:.5;flex:none}.status-dot.running{background:var(--ok);opacity:1;animation:dot-pulse 1.2s ease-in-out infinite}@keyframes dot-pulse{0%,to{box-shadow:0 0 #7fe3a08c}50%{box-shadow:0 0 0 5px #7fe3a000}}.sim-clock{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink-dim);min-width:72px;text-align:right}.hdr-btn{background:var(--panel);color:var(--ink);border:1px solid var(--panel-edge);border-radius:4px;padding:4px 12px;font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.hdr-btn:hover:not(:disabled){border-color:var(--ink-dim)}.hdr-btn:disabled{opacity:.4;cursor:default}.hdr-btn.run{color:var(--ok);border-color:var(--phosphor-dim)}.hdr-btn.stop{color:var(--error)}.hdr-btn.active{background:var(--panel-edge);color:var(--ink)}.hdr-select{background:var(--panel);color:var(--ink);border:1px solid var(--panel-edge);border-radius:4px;padding:4px 6px;font-family:var(--font-mono);font-size:12px}.webmcp-badge{font-family:var(--font-mono);font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid var(--panel-edge);color:var(--ink-dim);cursor:help}.webmcp-badge.on{color:var(--ok);border-color:var(--phosphor-dim)}.toast-error{position:fixed;top:56px;left:50%;transform:translate(-50%);z-index:60;max-width:640px;background:var(--panel);border:1px solid var(--error);border-left-width:4px;color:var(--ink);border-radius:6px;padding:10px 14px;display:flex;gap:12px;align-items:flex-start;box-shadow:0 6px 24px #00000073;font-size:13px}.toast-error .dismiss{background:none;border:none;color:var(--ink-dim);font-size:16px;line-height:1;padding:0}.app-main{flex:1;display:flex;min-height:0}.board-area{flex:1;min-width:0;overflow:auto;display:flex;align-items:center;justify-content:center;padding:16px}.sidebar{width:300px;flex:none;display:flex;flex-direction:column;min-height:0;background:var(--panel);border-left:1px solid var(--panel-edge)}.sidebar-tabs{display:flex;flex:none;border-bottom:1px solid var(--panel-edge)}.sidebar-tab{flex:1;background:none;border:none;border-bottom:2px solid transparent;padding:8px 4px;color:var(--ink-dim);font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.sidebar-tab.active{color:var(--ink);border-bottom-color:var(--phosphor)}.sidebar-body{flex:1;overflow-y:auto;min-height:0}.scope-wrap{position:relative;flex:none;height:180px;background:var(--scope-bg);border-top:1px solid var(--panel-edge)}.scope-canvas{display:block;width:100%;height:100%}.staging-bar{position:absolute;bottom:calc(100% + 10px);left:16px;right:332px;z-index:20;background:var(--panel);border:1px solid var(--ghost);border-left-width:4px;border-radius:6px;padding:8px 12px;display:flex;align-items:center;gap:14px;box-shadow:0 6px 24px #0006}.staging-count{font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.06em;font-size:13px;color:var(--ghost);white-space:nowrap}.staging-lines{flex:1;min-width:0;font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);overflow:hidden}.staging-lines div{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.staging-bar .apply{background:var(--ghost);color:#1c1608;border:none;border-radius:4px;padding:5px 14px;font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.staging-bar .discard{background:none;color:var(--ink-dim);border:1px solid var(--panel-edge);border-radius:4px;padding:5px 12px;font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.drc-panel{padding:10px;display:flex;flex-direction:column;gap:8px}.drc-empty{color:var(--ink-dim);font-size:13px;padding:12px 4px}.drc-empty .ok-dot{color:var(--ok);margin-right:6px}.drc-row{border:1px solid var(--panel-edge);border-left-width:4px;border-radius:5px;padding:8px 10px;font-size:12.5px;line-height:1.4}.drc-row.error{border-left-color:var(--error)}.drc-row.warning{border-left-color:var(--warning)}.drc-row.info{border-left-color:var(--ink-dim)}.drc-head{display:flex;gap:8px;align-items:baseline;margin-bottom:3px}.drc-sev{font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.drc-row.error .drc-sev{color:var(--error)}.drc-row.warning .drc-sev{color:var(--warning)}.drc-row.info .drc-sev{color:var(--ink-dim)}.drc-code{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-dim)}.drc-msg{color:var(--ink)}.drc-holes{margin-top:3px;font-family:var(--font-mono);font-size:11px;color:var(--ink-dim)}.toollog{display:flex;flex-direction:column}.toollog-empty{color:var(--ink-dim);font-size:13px;padding:16px 12px}.toollog-entry{border-bottom:1px solid var(--panel-edge);padding:8px 10px;cursor:pointer}.toollog-entry:hover{background:#ffffff05}.toollog-entry.error{border-left:3px solid var(--error);background:color-mix(in srgb,var(--error) 7%,transparent)}.toollog-head{display:flex;align-items:baseline;gap:8px}.toollog-name{font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.06em;font-size:12px;color:var(--ink)}.toollog-entry.error .toollog-name{color:var(--error)}.toollog-ms{margin-left:auto;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:11px;color:var(--ink-dim)}.toollog-args,.toollog-result{font-family:var(--font-mono);font-size:11px;white-space:pre-wrap;word-break:break-word;margin-top:3px}.toollog-args{color:var(--ink-dim)}.toollog-result{color:var(--ink)}.toollog-entry.error .toollog-result{color:var(--error)}.toollog-entry .clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.learn-page{flex:1;min-height:0;overflow-y:auto;padding:24px}.learn-inner{max-width:1100px;margin:0 auto}.learn-title{font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.1em;font-size:20px;color:var(--ink);margin:0 0 6px}.learn-intro{color:var(--ink-dim);font-size:14px;max-width:72ch;margin:0 0 20px}.learn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;margin-bottom:28px}.tool-card{background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px}.tool-card-head{display:flex;align-items:center;gap:8px}.tool-card-name{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--ink)}.tool-badge{margin-left:auto;font-family:var(--font-mono);font-size:10px;padding:2px 7px;border-radius:999px;border:1px solid var(--panel-edge);color:var(--ink-dim)}.tool-badge.active{color:var(--ok);border-color:var(--phosphor-dim)}.tool-card-desc{font-size:12.5px;color:var(--ink-dim);line-height:1.45}.tool-card-toggle{align-self:flex-start;background:none;border:none;padding:0;color:var(--phosphor);font-family:var(--font-mono);font-size:11px}.tool-card-schema{background:var(--mat-deep);border:1px solid var(--panel-edge);border-radius:5px;padding:8px;margin:0;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-dim);overflow-x:auto;max-height:220px;overflow-y:auto}.tool-card-invoke{display:flex;gap:8px;align-items:stretch}.tool-card-invoke textarea{flex:1;min-width:0;background:var(--mat-deep);border:1px solid var(--panel-edge);border-radius:5px;color:var(--ink);font-family:var(--font-mono);font-size:11px;padding:6px 8px;resize:vertical;min-height:34px}.tool-card-invoke button{background:var(--panel-edge);border:1px solid var(--panel-edge);border-radius:5px;color:var(--ink);font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.06em;font-size:11px;padding:4px 12px}.tool-card-invoke button:disabled{opacity:.4;cursor:default}.tool-card-result{background:var(--scope-bg);border:1px solid var(--panel-edge);border-radius:5px;padding:8px;font-family:var(--font-mono);font-size:11px;color:var(--phosphor);white-space:pre-wrap;word-break:break-word;max-height:160px;overflow-y:auto}.tool-card-result.error{color:var(--error)}.learn-log{background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;overflow:hidden}.learn-log-title{font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:var(--ink);padding:10px 12px;border-bottom:1px solid var(--panel-edge);margin:0}.learn-log .toollog{max-height:380px;overflow-y:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0a1210a6;display:flex;align-items:center;justify-content:center}.modal{width:min(520px,calc(100vw - 48px));background:var(--panel);border:1px solid var(--panel-edge);border-top:3px solid var(--ghost);border-radius:8px;padding:18px 20px;box-shadow:0 14px 48px #0000008c}.modal-title{font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.08em;font-size:15px;color:var(--ghost);margin:0 0 8px}.modal-summary{font-size:13.5px;color:var(--ink);margin:0 0 12px}.modal-changes{background:var(--mat-deep);border:1px solid var(--panel-edge);border-radius:5px;padding:8px 10px;margin-bottom:16px;max-height:180px;overflow-y:auto;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-dim)}.modal-changes div{padding:1px 0}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.modal-actions .approve{background:var(--ok);color:#10241a;border:none;border-radius:4px;padding:6px 18px;font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;font-weight:600}.modal-actions .reject{background:none;color:var(--ink);border:1px solid var(--panel-edge);border-radius:4px;padding:6px 16px;font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.06em;font-size:12.5px}.palette{padding:10px;display:flex;flex-direction:column;gap:6px}.palette-note{color:var(--ghost);font-size:12px;line-height:1.4;padding:4px 2px 8px}.palette-hint{color:var(--ink-dim);font-size:11.5px;padding:2px 2px 8px}.palette-btn{display:flex;align-items:center;gap:10px;background:var(--mat-deep);border:1px solid var(--panel-edge);border-radius:6px;padding:8px 10px;color:var(--ink);text-align:left}.palette-btn:hover:not(:disabled){border-color:var(--ink-dim)}.palette-btn.selected{border-color:var(--phosphor);background:#7fe3a014}.palette-btn:disabled{opacity:.4;cursor:default}.palette-ref{font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);background:var(--panel);border:1px solid var(--panel-edge);border-radius:4px;padding:1px 6px;min-width:34px;text-align:center}.palette-btn.selected .palette-ref{color:var(--phosphor)}.palette-label{font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.05em;font-size:12.5px}:root{--mat: #24383a;--mat-deep: #1c2d2f;--board: #efebe0;--board-edge: #d6d0c2;--channel: #c4bdac;--hole: #2b2b2b;--hole-ring: #ddd7c9;--rail-pos: #c1272d;--rail-neg: #1b4f8a;--phosphor: #7fe3a0;--phosphor-dim: #3d7a55;--ghost: #e0a93b;--silk: #6d675a;--ink: #e8ebe9;--ink-dim: #9db0ad;--panel: #1d2f31;--panel-edge: #35494b;--error: #e05c4b;--warning: #e0a93b;--ok: #7fe3a0;--scope-bg: #0d1a14;--scope-grid: #1e3a2c;--wire-red: #c1272d;--wire-orange: #e87722;--wire-yellow: #f2c230;--wire-green: #4c9a2a;--wire-blue: #1b4f8a;--wire-purple: #6b3fa0;--wire-black: #2b2b2b;--wire-white: #f5f5f5;--font-silk: "Archivo Narrow", "Arial Narrow", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-prose: "Inter", -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--mat);color:var(--ink);font-family:var(--font-prose);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.silk{font-family:var(--font-silk);text-transform:uppercase;letter-spacing:.02em}button{font-family:var(--font-prose);cursor:pointer}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
