
:root{
  --bg:#0c1118;--panel:#121923;--panel2:#172130;--line:#29374a;--text:#edf4ff;
  --muted:#8fa2b8;--accent:#4da3ff;--accent2:#7bd389;--danger:#ff6b6b;--grid:#1d2a3a;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,Tahoma,Arial,sans-serif}
button,input,select{font:inherit}
button{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:8px 10px;cursor:pointer}
button:hover{border-color:var(--accent)}
button:disabled{opacity:.45;cursor:not-allowed}
button.primary{background:var(--accent);color:#07121f;border-color:transparent;font-weight:700}
.app-shell{min-height:100vh;display:flex;flex-direction:column}
.topbar{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;background:#0f1620;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;min-width:240px}
.brand-mark{width:40px;height:40px;border-radius:12px;background:var(--accent);color:#07121f;display:grid;place-items:center;font-weight:800}
.brand-title{font-weight:700}.version{font-size:11px;color:var(--accent)}
.brand-sub{font-size:12px;color:var(--muted);margin-top:3px}
.toolbar{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.workspace{display:grid;grid-template-columns:235px minmax(0,1fr) 270px;min-height:610px;flex:1}
.sidebar{background:var(--panel);padding:14px;border-left:1px solid var(--line);overflow:auto}
.parts{border-left:none;border-right:1px solid var(--line)}
.sidebar h2,.sidebar h3{margin:0 0 12px}.sidebar h2{font-size:16px}.sidebar h3{font-size:13px;color:var(--muted);margin-top:18px}
.searchbox input{width:100%;background:#0f1620;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px}
.part-group{display:flex;flex-direction:column;gap:7px}.part{text-align:right}
.help,.empty-props{font-size:12px;color:var(--muted);line-height:1.8;margin-top:18px}
.canvas-wrap{min-width:0;display:flex;flex-direction:column}
.canvas-head{min-height:52px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;background:#101720}
.canvas-head span{font-size:12px;color:var(--muted);margin-right:10px}.canvas-actions{display:flex;gap:7px;flex-wrap:wrap}
.board{position:relative;flex:1;min-height:558px;overflow:hidden;background-color:#0b1119;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px}
.empty-hint{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:8px;pointer-events:none}.hint-icon{font-size:48px;color:var(--accent)}
.wire-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.wire{stroke:#a8bfd8;stroke-width:3;fill:none}
.component{position:absolute;z-index:2;min-width:110px;background:#111a26;border:1px solid #33455c;border-radius:12px;user-select:none;box-shadow:0 8px 20px rgba(0,0,0,.2);transform-origin:center center}
.component.selected{outline:2px solid var(--accent)}
.comp-title{padding:8px 10px;border-bottom:1px solid #27374a;display:flex;justify-content:space-between;font-size:12px;color:#dbe8f7;cursor:move}
.comp-body{min-height:66px;display:flex;align-items:center;justify-content:center;gap:10px;padding:8px}
.symbol{font-family:Consolas,monospace;font-weight:700;color:var(--accent);font-size:19px;white-space:nowrap}
.pin{width:14px;height:14px;border-radius:50%;background:#dbe7f5;border:3px solid #36506b;cursor:crosshair;position:relative}.pin.active{background:var(--accent2)}
.pin-label{font-size:10px;color:var(--muted)}.pin-wrap{display:flex;flex-direction:column;align-items:center;gap:3px}
.props-form{display:flex;flex-direction:column;gap:11px}.props-form.hidden{display:none}
.props-form label,.sim-settings label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:5px}
.props-form input,.props-form select,.sim-settings select{width:100%;background:#0f1620;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px}
.bool-row{display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between}
.bool-row input{width:auto!important}
.sim-settings{border-top:1px solid var(--line);padding-top:14px;margin-top:18px;display:flex;flex-direction:column;gap:10px}
.measurement-box{border-top:1px solid var(--line);padding-top:14px;margin-top:18px}.measurement-box h3{margin-bottom:10px}
.measurement-results{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--muted)}
.measure-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:7px 8px;background:#0f1620;border:1px solid var(--line);border-radius:8px}
.measure-row strong{color:var(--text);font-weight:600}.measure-values{font-family:Consolas,monospace;color:#cde0f5;text-align:left;direction:ltr}
.scope{border-top:1px solid var(--line);background:#071018;padding:10px 14px 16px}
.scope-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:7px}.scope-head span{color:var(--muted);font-size:12px;margin-right:8px}
.scope-actions{display:flex;gap:8px;align-items:center}.mini-check{font-size:12px;color:var(--muted);display:flex;gap:5px;align-items:center}
.scope-legend{display:flex;gap:15px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:7px;direction:ltr}
.dot{width:9px;height:9px;display:inline-block;border-radius:50%;margin-right:4px}.ch1{background:#4da3ff}.ch2{background:#7bd389}.ch3{background:#f4c95d}.ch4{background:#d894ff}
.scope-stage{position:relative}
#scopeCanvas{width:100%;height:230px;background:#02080d;border:1px solid #213044;border-radius:10px;display:block}
.cursor-line{position:absolute;top:1px;bottom:1px;width:2px;display:none;cursor:ew-resize;z-index:5}.cursor-a{left:32%;background:#f4c95d}.cursor-b{left:67%;background:#d894ff}
.netlist-dialog,.fft-dialog{width:min(800px,92vw);max-height:80vh;background:#101720;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:0}
.netlist-dialog::backdrop,.fft-dialog::backdrop{background:rgba(0,0,0,.65)}
.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
#netlistText{direction:ltr;text-align:left;white-space:pre-wrap;margin:0;padding:14px;max-height:65vh;overflow:auto;color:#cfe4fa;font-family:Consolas,monospace;font-size:12px}
#fftCanvas{width:100%;height:330px;background:#02080d;display:block}.fft-info{padding:10px 14px;color:var(--muted);font-size:12px;direction:ltr;text-align:left}
@media(max-width:1150px){.workspace{grid-template-columns:200px minmax(0,1fr)}.props{grid-column:1/-1;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:18px}.topbar{align-items:flex-start;flex-direction:column}.toolbar{justify-content:flex-start}}

#zoomLabel{font-size:12px;color:var(--muted)}
.net-label{position:absolute;z-index:3;background:#0f1620;color:#cfe4fa;border:1px solid var(--accent);border-radius:7px;padding:3px 6px;font:11px Consolas,monospace;pointer-events:none}
#bodeCanvas{width:100%;height:330px;background:#02080d;display:block}

.junction-dot{fill:#dcecff;stroke:#071018;stroke-width:2}.board.panning{cursor:grab}.board.panning:active{cursor:grabbing}

.digital-grid{stroke:#16324b;stroke-width:1}
#digitalCanvas{width:100%;height:360px;background:#02080d;display:block}
.logic-node-badge{position:absolute;z-index:4;padding:2px 5px;border-radius:6px;font:10px Consolas,monospace;background:#102030;border:1px solid var(--line);color:#cfe4fa;pointer-events:none}

.analysis-dialog{width:min(920px,94vw);max-height:85vh;background:#101720;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:0}
.analysis-dialog::backdrop{background:rgba(0,0,0,.65)}
.analysis-body{padding:14px;max-height:70vh;overflow:auto}
.analysis-controls{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:12px;border-bottom:1px solid var(--line)}
.analysis-controls label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:5px}
.analysis-controls input,.analysis-controls select{width:100%;background:#0f1620;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px}
.analysis-table{width:100%;border-collapse:collapse;font-size:12px}
.analysis-table th,.analysis-table td{border-bottom:1px solid var(--line);padding:8px;text-align:left;direction:ltr}
.analysis-table th{color:var(--muted);font-weight:600}
#sweepCanvas,#mcCanvas{width:100%;height:330px;background:#02080d;display:block}
@media(max-width:900px){.analysis-controls{grid-template-columns:1fr 1fr 1fr}}

#tempCanvas,#dc2dCanvas{width:100%;height:340px;background:#02080d;display:block}
.heatmap-legend{font-size:12px;color:var(--muted)}

#snapBtn.primary,#duplicateBtn.primary{font-weight:700}
.solver-status{font:11px Consolas,monospace;color:var(--muted)}
.analysis-body code{font-family:Consolas,monospace;color:#cfe4fa}
