:root{--bg-primary: #09090b;--bg-secondary: #111113;--bg-tertiary: #18181b;--bg-panel: #0f0f12;--bg-input: #0c0c0f;--bg-hover: #1c1c22;--bg-active: #27272a;--text-primary: #fafafa;--text-secondary: #a1a1aa;--text-muted: #52525b;--accent: #6366f1;--accent-dim: #4f46e5;--accent2: #8b5cf6;--accent3: #a78bfa;--success: #22c55e;--warning: #eab308;--danger: #ef4444;--border: #27272a;--border-light: #3f3f46;--shadow: rgba(0, 0, 0, .6);--layer-fcu: #ef4444;--layer-bcu: #3b82f6;--layer-fsilk: #facc15;--layer-bsilk: #d946ef;--layer-fmask: #7c3aed;--layer-bmask: #06b6d4;--layer-edge: #facc15;--layer-drill: #ffffff;--gradient-brand: linear-gradient(135deg, #6366f1, #8b5cf6, #a78bfa);--canvas-bg: #0a0a1a;--grid-color: #1a1a3a;--grid-major: #252545;--font-mono: "JetBrains Mono", "Consolas", monospace;--font-ui: "Inter", -apple-system, sans-serif;--toolbar-width: 48px;--panel-width: 260px;--menubar-height: 32px;--statusbar-height: 26px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-ui);background:var(--bg-primary);color:var(--text-primary);overflow:hidden;height:100vh;width:100vw;font-size:13px;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column}#menu-bar{height:var(--menubar-height);background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 8px;z-index:100}.menu-left{display:flex;align-items:center;gap:2px}.menu-right{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:11px;color:var(--text-secondary)}.app-logo{font-weight:700;font-size:13px;color:var(--text-primary);margin-right:12px;letter-spacing:-.3px;display:flex;align-items:center;gap:0}.logo-y12{color:#fff;font-weight:800}.logo-ai{background:var(--gradient-brand);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:transparent;font-weight:800}.logo-sep{color:var(--border-light);margin:0 6px;font-weight:300}.menu-btn{background:none;border:none;color:var(--text-secondary);padding:4px 10px;font-size:12px;cursor:pointer;border-radius:4px;font-family:var(--font-ui);transition:all .15s}.menu-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.menu-divider{width:1px;height:16px;background:var(--border);margin:0 4px}.mode-btn{background:none;border:1px solid transparent;color:var(--text-muted);padding:3px 10px;font-size:11px;cursor:pointer;border-radius:4px;font-family:var(--font-ui);transition:all .15s}.mode-btn:hover{color:var(--text-secondary);background:var(--bg-hover)}.mode-btn.active{color:var(--accent);border-color:var(--accent);background:#6366f11a}.test-btn{display:flex;align-items:center;gap:5px;background:var(--gradient-brand);border:none;color:#fff;padding:4px 14px;font-size:11px;font-weight:600;cursor:pointer;border-radius:6px;font-family:var(--font-ui);transition:all .2s;white-space:nowrap}.test-btn:hover{opacity:.85;transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.test-btn:active{transform:translateY(0)}.test-btn svg{flex-shrink:0}#menu-bar,#status-bar,#devtools-panel{flex-shrink:0}#app-layout{display:flex;flex:1;min-height:0;overflow:hidden}#toolbar{width:var(--toolbar-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:6px 4px;gap:2px;overflow-y:auto}.tool-group{display:flex;flex-direction:column;gap:2px}.tool-separator{width:32px;height:1px;background:var(--border);margin:4px 0}.tool-btn{width:36px;height:36px;background:none;border:1px solid transparent;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:6px}.tool-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-light)}.tool-btn.active{background:var(--accent);color:#000;border-color:var(--accent)}.tool-btn svg{width:20px;height:20px}#left-panel,#right-panel{width:var(--panel-width);background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}#right-panel{border-right:none;border-left:1px solid var(--border)}.panel-section{display:flex;flex-direction:column;min-height:0;flex:1;border-bottom:1px solid var(--border)}.panel-section:last-child{border-bottom:none}#ai-panel{flex:2}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--bg-secondary);border-bottom:1px solid var(--border);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);flex-shrink:0}.panel-btn{background:var(--bg-hover);border:none;color:var(--accent);width:20px;height:20px;border-radius:4px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.panel-content{flex:1;overflow-y:auto;padding:6px}.empty-state{color:var(--text-muted);font-size:11px;text-align:center;padding:16px 8px}.layer-item{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:4px;cursor:pointer;font-size:11px;transition:background .1s}.layer-item:hover{background:var(--bg-hover)}.layer-item.active{background:var(--bg-active)}.layer-color{width:12px;height:12px;border-radius:2px;flex-shrink:0}.layer-name{flex:1}.layer-visibility{width:16px;height:16px;background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:10px;opacity:.6}.layer-visibility:hover{opacity:1}.layer-visibility.hidden-layer{opacity:.2}#component-search{width:100%;background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);padding:3px 6px;border-radius:4px;font-size:11px;font-family:var(--font-ui);margin-left:6px;max-width:120px}#component-search:focus{outline:none;border-color:var(--accent)}.component-category{margin-bottom:4px}.category-header{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-muted);padding:6px 8px 3px;letter-spacing:.5px}.component-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:4px;cursor:grab;font-size:11px;transition:background .1s}.component-item:hover{background:var(--bg-hover)}.component-item:active{cursor:grabbing}.component-icon{width:24px;height:24px;background:var(--bg-tertiary);border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--accent);flex-shrink:0;font-family:var(--font-mono)}.component-info{display:flex;flex-direction:column}.component-name{font-weight:500}.component-desc{font-size:10px;color:var(--text-muted)}#canvas-container{flex:1;position:relative;overflow:hidden;background:var(--canvas-bg)}#pcb-canvas{position:absolute;top:0;left:0;cursor:crosshair}#canvas-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.prop-group{margin-bottom:8px}.prop-group-title{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-muted);padding:4px 0;letter-spacing:.5px}.prop-row{display:flex;align-items:center;justify-content:space-between;padding:3px 0;font-size:11px}.prop-label{color:var(--text-secondary)}.prop-value{background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);padding:2px 6px;border-radius:3px;font-size:11px;font-family:var(--font-mono);width:90px;text-align:right}.prop-value:focus{outline:none;border-color:var(--accent)}.ai-config{padding:8px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.ai-config-label{font-size:10px;color:var(--text-secondary);display:block;margin-bottom:4px}.ai-config-hint{color:var(--text-muted);font-size:9px}.ai-config-row{display:flex;gap:4px}.ai-config-row input{flex:1;background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);padding:4px 8px;border-radius:4px;font-size:11px;font-family:var(--font-mono)}.ai-config-row input:focus{outline:none;border-color:var(--accent)}.btn-sm{background:var(--accent);border:none;color:#fff;padding:4px 10px;border-radius:4px;font-size:10px;font-weight:600;cursor:pointer;font-family:var(--font-ui)}.btn-sm:hover{opacity:.85}.ai-config-status{font-size:9px;margin-top:3px;min-height:14px}.ai-config-status.ok{color:var(--success)}.ai-config-status.err{color:var(--danger)}#ai-chat{display:flex;flex-direction:column;padding:0}#ai-messages{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:6px;min-height:100px}.ai-msg{padding:8px 10px;border-radius:8px;font-size:11px;line-height:1.5;max-width:95%;word-wrap:break-word}.ai-msg.system{background:linear-gradient(135deg,rgba(99,102,241,.1),var(--bg-secondary));border:1px solid rgba(99,102,241,.3);color:var(--text-primary)}.ai-msg.user{background:var(--accent);color:#fff;align-self:flex-end;font-weight:500}.ai-msg.assistant{background:var(--bg-secondary);border:1px solid var(--border)}.test-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:5000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.test-modal{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:12px;width:520px;max-height:80vh;overflow:hidden;box-shadow:0 20px 60px #0009}.test-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.test-modal-header h2{font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px}.test-modal-close{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer}.test-modal-close:hover{color:var(--text-primary)}.test-modal-body{padding:16px 20px;overflow-y:auto;max-height:calc(80vh - 120px)}.test-score{text-align:center;padding:20px;margin-bottom:16px;border-radius:8px;background:var(--bg-secondary)}.test-score-value{font-size:48px;font-weight:800;line-height:1;margin-bottom:4px}.test-score-value.pass{color:var(--success)}.test-score-value.warn{color:var(--warning)}.test-score-value.fail{color:var(--danger)}.test-score-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.test-section{margin-bottom:12px}.test-section-title{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;display:flex;align-items:center;gap:6px}.test-item{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:4px;font-size:11px;line-height:1.4;margin-bottom:2px}.test-item.error{background:#ef444414;color:#fca5a5}.test-item.warning{background:#eab30814;color:#fde68a}.test-item.info{background:#6366f10d;color:var(--text-secondary)}.test-item.pass{background:#22c55e14;color:#86efac}.test-icon{flex-shrink:0;font-size:12px}.test-modal-footer{padding:12px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.ai-msg.action{background:#4ade801a;border:1px solid var(--success);color:var(--success);font-family:var(--font-mono);font-size:10px}.ai-status{font-size:10px;color:var(--success);font-family:var(--font-mono)}#ai-input-area{display:flex;gap:4px;padding:6px 8px;border-top:1px solid var(--border)}#ai-input{flex:1;background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);padding:6px 8px;border-radius:6px;font-size:11px;font-family:var(--font-ui);resize:none;line-height:1.4}#ai-input:focus{outline:none;border-color:var(--accent)}#ai-send{background:var(--accent);border:none;color:#000;width:32px;height:32px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}#ai-send:hover{opacity:.85}#ai-send svg{width:16px;height:16px}#ai-suggestions{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;border-top:1px solid var(--border)}.ai-suggestion{background:var(--bg-secondary);border:1px solid var(--border);color:var(--accent);padding:4px 8px;border-radius:12px;font-size:10px;cursor:pointer;font-family:var(--font-ui);transition:all .15s}.ai-suggestion:hover{background:var(--bg-hover);border-color:var(--accent)}#status-bar{height:var(--statusbar-height);background:var(--bg-secondary);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 10px;font-size:11px;font-family:var(--font-mono);color:var(--text-secondary)}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:16px}.status-btn{background:var(--bg-hover);border:1px solid var(--border);color:var(--accent);padding:2px 8px;border-radius:3px;font-size:10px;cursor:pointer;font-family:var(--font-mono)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.context-menu{position:fixed;background:var(--bg-panel);border:1px solid var(--border-light);border-radius:6px;padding:4px;min-width:180px;box-shadow:0 8px 24px var(--shadow);z-index:1000}.context-menu-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-radius:4px;cursor:pointer;font-size:12px;color:var(--text-primary)}.context-menu-item:hover{background:var(--bg-hover)}.context-menu-item .shortcut{color:var(--text-muted);font-size:10px;font-family:var(--font-mono)}.context-menu-separator{height:1px;background:var(--border);margin:4px 0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000}.modal{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:10px;padding:20px;min-width:400px;max-width:600px;box-shadow:0 16px 48px var(--shadow)}.modal-title{font-size:16px;font-weight:600;margin-bottom:12px;color:var(--accent)}.modal-body{margin-bottom:16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.btn{padding:6px 16px;border-radius:6px;font-size:12px;font-family:var(--font-ui);cursor:pointer;border:1px solid var(--border);transition:all .15s}.btn-primary{background:var(--accent);color:#000;border-color:var(--accent);font-weight:600}.btn-primary:hover{opacity:.85}.btn-secondary{background:var(--bg-hover);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-active)}.tooltip{position:fixed;background:var(--bg-panel);border:1px solid var(--border-light);color:var(--text-primary);padding:4px 8px;border-radius:4px;font-size:11px;pointer-events:none;z-index:3000;box-shadow:0 4px 12px var(--shadow)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.ai-thinking{animation:pulse 1.5s infinite}#layer-viewer{position:absolute;top:8px;right:8px;width:160px;max-height:calc(100% - 16px);background:#0a0a1aeb;border:1px solid var(--border);border-radius:8px;z-index:50;overflow:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 20px #00000080}.lv-header{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--border);cursor:default}.lv-title{font-size:10px;font-weight:600;color:var(--text-primary)}.lv-subtitle{font-size:9px;color:var(--accent);flex:1}.lv-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:0 4px;line-height:1}.lv-toggle:hover{color:var(--text-primary)}.lv-body{display:flex;flex-direction:column;gap:2px;padding:4px;max-height:500px;overflow-y:auto}.lv-item{display:flex;flex-direction:column;gap:2px;padding:3px;border-radius:4px;cursor:pointer;border:1px solid transparent;transition:all .15s}.lv-item:hover{background:var(--bg-hover)}.lv-item.lv-active{border-color:var(--accent);background:#00d4ff0f}.lv-item.lv-hidden{opacity:.35}.lv-canvas{width:100%;height:50px;border-radius:3px;background:#0d0d1a;display:block}.lv-label{display:flex;align-items:center;gap:4px;font-size:9px;color:var(--text-secondary);font-family:JetBrains Mono,monospace}.lv-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.lv-controls{display:flex;gap:3px}.lv-btn{background:var(--bg-hover);border:none;color:var(--text-muted);font-size:9px;padding:1px 5px;border-radius:3px;cursor:pointer}.lv-btn:hover{background:var(--bg-active);color:var(--text-primary)}#drc-overlay{position:absolute;bottom:8px;left:8px;width:340px;max-height:280px;background:#0a0a1af2;border:1px solid var(--border);border-radius:8px;z-index:50;overflow:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 20px #00000080}.drc-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid var(--border)}.drc-title{font-size:11px;font-weight:600;color:var(--text-primary)}.drc-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:0 2px}.drc-close:hover{color:var(--text-primary)}.drc-body{padding:8px;overflow-y:auto;max-height:230px;font-size:10px;line-height:1.6;font-family:JetBrains Mono,monospace}.drc-pass{color:#4ade80;font-weight:600}.drc-fail{color:#f87171;font-weight:600}.drc-error{color:#f87171}.drc-warn{color:#fbbf24}.drc-info{color:var(--text-muted)}.drc-section{margin-top:6px;font-weight:600;color:var(--text-secondary)}#parts-search-panel{flex:1;min-height:200px}#parts-search-container{padding:0}.ps-header{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--border)}.ps-title{font-size:11px;font-weight:600;color:var(--text-primary)}.ps-subtitle{font-size:9px;color:var(--accent)}.ps-search-box{padding:6px 8px;border-bottom:1px solid var(--border)}.ps-search-box input{width:100%;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);padding:5px 8px;border-radius:4px;font-size:11px;font-family:JetBrains Mono,monospace}.ps-search-box input:focus{outline:none;border-color:var(--accent)}.ps-filters{margin-top:4px;font-size:10px;color:var(--text-muted)}.ps-filters label{cursor:pointer;display:flex;align-items:center;gap:4px}.ps-filters input[type=checkbox]{width:12px;height:12px}.ps-results,.ps-local{max-height:200px;overflow-y:auto;padding:4px}.ps-local-header{font-size:9px;text-transform:uppercase;color:var(--text-muted);padding:6px 8px 2px;border-top:1px solid var(--border);letter-spacing:.5px}.ps-empty{padding:12px 8px;font-size:10px;color:var(--text-muted);text-align:center}.ps-loading{padding:12px 8px;font-size:10px;color:var(--accent);text-align:center}.ps-part-item{padding:5px 6px;border-radius:4px;cursor:pointer;border:1px solid transparent;margin-bottom:2px;transition:all .1s}.ps-part-item:hover{background:var(--bg-hover);border-color:var(--border)}.ps-part-item[draggable=true]{cursor:grab}.ps-part-row{display:flex;align-items:center;gap:4px;margin-bottom:2px}.ps-part-lcsc{font-size:10px;font-weight:600;color:var(--accent);font-family:JetBrains Mono,monospace}.ps-badge-basic{font-size:8px;background:#22c55e;color:#000;padding:0 4px;border-radius:3px;font-weight:600}.ps-badge-ext{font-size:8px;background:#6366f1;color:#fff;padding:0 4px;border-radius:3px}.ps-price{font-size:9px;color:#fbbf24;margin-left:auto;font-family:JetBrains Mono,monospace}.ps-part-name{font-size:10px;color:var(--text-primary);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps-part-meta{font-size:9px;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:4px;align-items:center}.ps-stock{font-size:9px}.ps-in-stock{color:#4ade80}.ps-no-stock{color:#f87171}.ps-unknown{color:var(--text-muted)}.ps-link{font-size:9px;color:var(--accent);text-decoration:none;display:block;margin-top:2px}.ps-link:hover{text-decoration:underline}.ps-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:5000;display:flex;align-items:center;justify-content:center}.ps-detail{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:8px;width:360px;box-shadow:0 8px 30px #00000080}.ps-detail-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--accent)}.ps-detail-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px}.ps-detail-body{padding:10px 12px}.ps-detail-row{font-size:11px;color:var(--text-secondary);margin-bottom:4px;line-height:1.5}.ps-detail-row b{color:var(--text-primary)}.ps-detail-note{margin-top:8px;padding:6px 8px;background:#fbbf241a;border:1px solid rgba(251,191,36,.3);border-radius:4px;font-size:10px;color:#fbbf24}#devtools-panel{border-top:2px solid var(--accent);background:var(--bg-panel);display:flex;flex-direction:column;height:280px;min-height:120px;z-index:80}#devtools-header{display:flex;align-items:center;justify-content:space-between;padding:0 8px;height:32px;min-height:32px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.devtools-tabs{display:flex;gap:0}.devtools-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);padding:6px 14px;font-size:11px;font-family:var(--font-ui);cursor:pointer;transition:all .15s}.devtools-tab:hover{color:var(--text-secondary)}.devtools-tab.active{color:var(--text-primary);border-bottom-color:var(--accent)}.devtools-actions{display:flex;gap:4px;align-items:center}.devtools-action-btn{display:flex;align-items:center;gap:4px;background:var(--bg-hover);border:1px solid var(--border);color:var(--text-secondary);padding:3px 10px;font-size:10px;font-family:var(--font-ui);border-radius:4px;cursor:pointer;transition:all .15s}.devtools-action-btn:hover{background:var(--bg-active);color:var(--text-primary)}#devtools-run{color:var(--success);border-color:#22c55e4d}#devtools-run:hover{background:#22c55e1a}#devtools-test{color:var(--accent);border-color:#6366f14d}#devtools-test:hover{background:#6366f11a}#devtools-body{flex:1;overflow:hidden;position:relative}.devtools-content{display:none;position:absolute;top:0;right:0;bottom:0;left:0}.devtools-content.active{display:flex}#code-editor-wrap,#test-editor-wrap{display:flex;flex:1;overflow:hidden}#code-line-numbers,#test-line-numbers{width:40px;min-width:40px;background:var(--bg-secondary);border-right:1px solid var(--border);padding:8px 4px;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--text-muted);text-align:right;overflow:hidden;-webkit-user-select:none;user-select:none}#code-editor,#test-editor{flex:1;background:var(--bg-primary);color:var(--text-primary);border:none;padding:8px 12px;font-family:var(--font-mono);font-size:12px;line-height:1.6;resize:none;outline:none;-moz-tab-size:2;tab-size:2;white-space:pre;overflow:auto}#code-editor::placeholder,#test-editor::placeholder{color:var(--text-muted);opacity:.6}#console-output{flex:1;background:var(--bg-primary);padding:8px 12px;font-family:var(--font-mono);font-size:11px;line-height:1.6;overflow-y:auto;color:var(--text-secondary)}.console-line{margin-bottom:1px;white-space:pre-wrap;word-break:break-all}.console-line.log{color:var(--text-secondary)}.console-line.info{color:var(--accent3)}.console-line.warn{color:var(--warning)}.console-line.error{color:var(--danger)}.console-line.result{color:var(--success)}.console-line.timestamp{color:var(--text-muted);font-size:9px}#test-results-bar{display:flex;align-items:center;padding:4px 12px;background:var(--bg-secondary);border-top:1px solid var(--border);font-size:11px;font-family:var(--font-mono);min-height:24px}#test-results-summary{flex:1}.test-pass-count{color:var(--success);font-weight:600}.test-fail-count{color:var(--danger);font-weight:600}.test-result-item{padding:2px 0}.test-result-item.pass{color:var(--success)}.test-result-item.pass:before{content:"✓ "}.test-result-item.fail{color:var(--danger)}.test-result-item.fail:before{content:"✕ "}.hidden{display:none!important}
