:root{
--bg:#0a1220;--panel:#101b2c;--panel2:#15263c;--panel3:#0b1727;
--border:#29435f;--text:#edf5ff;--muted:#9cafc3;--accent:#735cff;
--ok:#2fd183;--warn:#ffc858;--bad:#ff5b73;
--pos:#ef4053;--neg:#171a1f;--signal:#31b9e8;--float:#98a6b5;--short:#ff9d2e;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}
button,input,select{font:inherit}
button{color:inherit}
.app{
height:100vh;
display:grid;
grid-template-columns:360px minmax(0,1fr) 300px;
grid-template-rows:62px minmax(0,1fr);
}
.top{
grid-column:1/4;background:#071421;border-bottom:1px solid #21364f;
display:flex;align-items:center;justify-content:space-between;padding:0 14px;z-index:100
}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;min-width:0}
.logo{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#735cff,#23c7ff);display:grid;place-items:center;flex:none}
.brandText{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.version{font-weight:500;color:#7f96ad}
.topActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.topBtn{
border:1px solid #29435e;background:#152941;border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer
}
.topBtn.primary{background:var(--accent);border-color:transparent}
.topBtn.danger{background:#512330;border-color:#673040}
.simLamp{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:#0d211b;color:#5df1a0;font-size:12px;font-weight:800}
.simLamp i{width:9px;height:9px;border-radius:50%;background:#38df86}
.drawer{
background:#eadffc;color:#3d2d54;border-right:1px solid #cdb9e8;
min-width:0;position:relative;display:flex;flex-direction:column;overflow:visible;z-index:60
}
.drawerHead{padding:13px 12px 11px;background:linear-gradient(180deg,#e1d0f7,#e8dcfa);border-bottom:1px solid #c9b5e5}
.drawerTitle{display:flex;justify-content:space-between;align-items:center;font-weight:1000;font-size:16px;color:#55327d;letter-spacing:.15px}
.drawerSub{font-size:10px;color:#8365a5;font-weight:800;margin:2px 0 10px;text-transform:uppercase;letter-spacing:.65px}
.drawerTools{display:grid;grid-template-columns:1fr 46px;gap:8px}
.searchWrap{position:relative}
.searchWrap input{
width:100%;height:42px;border:1px solid #c6afe2;border-radius:8px;background:#fbf8ff;color:#3a294f;
padding:0 38px 0 12px;outline:none;font-size:14px
}
.searchWrap input:focus{border-color:#8b64bd;box-shadow:0 0 0 3px rgba(139,100,189,.13)}
.searchIcon{position:absolute;right:12px;top:10px;font-size:19px;color:#987caf}
.viewBtn{border:1px solid #c6afe2;background:#f8f3ff;color:#65458a;border-radius:8px;cursor:pointer;font-size:20px}
.filterRow{display:grid;grid-template-columns:1fr 46px;gap:8px;margin-top:8px}
.filterRow select{height:42px;border:1px solid #c6afe2;background:#fbf8ff;color:#49345f;border-radius:8px;padding:0 10px}
.drawerScroll{
overflow:auto;padding:10px 10px 30px;scrollbar-width:none;overscroll-behavior:contain;
background:linear-gradient(180deg,#eee5fb 0%,#e8dcf7 100%)
}
.drawerScroll::-webkit-scrollbar{width:0;height:0}
.categoryBlock{margin-bottom:18px}
.categoryTitle{
color:#6e459b;font-size:18px;font-weight:750;margin:5px 2px 8px;padding-bottom:5px;border-bottom:1px solid #d3c1e8
}
.compGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.compGrid.listView{grid-template-columns:1fr}
.compCard{
min-height:136px;background:#f7f1ff;border:1px solid #ddcdef;border-radius:10px;
padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
cursor:grab;user-select:none;transition:.15s;min-width:0
}
.compCard:hover{background:#fff;border-color:#aa84d1;box-shadow:0 4px 10px rgba(89,50,126,.12);transform:translateY(-1px)}
.compCard:active{cursor:grabbing}
.listView .compCard{min-height:82px;display:grid;grid-template-columns:82px 1fr;align-items:center;text-align:left}
.compArt{height:72px;width:100%;display:flex;align-items:center;justify-content:center}
.listView .compArt{height:64px}
.compName{font-size:13px;line-height:1.18;text-align:center;color:#4e3866;margin-top:7px;overflow-wrap:anywhere;font-weight:650}
.listView .compName{text-align:left;margin:0 0 4px}
.compMini{font-size:10px;color:#8a759f;text-align:center;margin-top:3px}
.listView .compMini{text-align:left}
.drawerToggle{
position:absolute;right:-25px;top:46%;width:50px;height:86px;border:3px solid #fff;background:linear-gradient(145deg,#8b5cf6,#5b21b6);
color:#fff;border-radius:25px;cursor:pointer;z-index:170;font-size:30px;font-weight:1000;padding:0 0 3px 18px;
box-shadow:0 8px 24px rgba(91,33,182,.42);transition:transform .18s,filter .18s
}
.drawerToggle:hover{filter:brightness(1.15);transform:scale(1.06)}
.drawerToggle::after{content:'OCULTAR';position:absolute;right:35px;top:28px;padding:5px 8px;border-radius:8px;background:#4c1d95;color:#fff;font-size:9px;letter-spacing:.7px;white-space:nowrap;box-shadow:0 4px 12px #0003}
.drawer.collapsed{width:42px}
.drawer.collapsed .drawerHead,.drawer.collapsed .drawerScroll{display:none}
.drawer.collapsed .drawerToggle{right:-25px;padding-left:18px}
.drawer.collapsed .drawerToggle::after{content:'MOSTRAR';right:auto;left:37px}
body.drawer-collapsed .app{grid-template-columns:42px minmax(0,1fr) 300px}
body.inspector-collapsed .app{grid-template-columns:360px minmax(0,1fr) 42px}
body.drawer-collapsed.inspector-collapsed .app{grid-template-columns:42px minmax(0,1fr) 42px}
body.inspector-collapsed .inspector{padding:0;overflow:hidden}
body.inspector-collapsed .inspector>*:not(.inspectorPeek){display:none}
body.inspector-collapsed .inspectorPeek{display:block;left:-25px}
body.top-compact .app{grid-template-rows:42px minmax(0,1fr)}
body.top-compact .top{padding:0 8px}
body.top-compact .brandText,body.top-compact .simLamp,body.top-compact .topActions>*:not(#uiBtn){display:none}
.topActions{min-width:0;max-width:calc(100vw - 255px);flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none}.topActions::-webkit-scrollbar{display:none}.topBtn,.viewModeBtn{white-space:nowrap;line-height:1.1}
.topBtn{min-height:36px;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.categoryBlock{content-visibility:auto;contain-intrinsic-size:320px}
.quickActions{position:absolute;z-index:140;display:none;gap:4px;padding:4px;border-radius:10px;background:rgba(8,20,34,.96);border:1px solid #42627f;box-shadow:0 7px 22px #0006;transform:translate(-50%,-100%)}
.quickActions.show{display:flex}.quickActions button{width:32px;height:30px;padding:0;border:1px solid #31506c;border-radius:7px;background:#17304a;color:#fff;cursor:pointer;font-weight:900}.quickActions button:hover{background:#704eb5}
.inspector{position:relative;overflow:visible!important}.inspectorPeek{position:absolute;left:-25px;top:46%;z-index:170;width:50px;height:86px;transform:translateY(-50%);border:3px solid #fff;border-radius:25px;background:linear-gradient(145deg,#23b8e6,#1769aa);color:#fff;cursor:pointer;font-size:30px;font-weight:1000;padding:0 18px 3px 0;box-shadow:0 8px 24px rgba(23,105,170,.4);transition:filter .18s,transform .18s}.inspectorPeek:hover{filter:brightness(1.15);transform:translateY(-50%) scale(1.06)}.inspectorPeek::after{content:'OCULTAR';position:absolute;left:35px;top:28px;padding:5px 8px;border-radius:8px;background:#124f7d;color:#fff;font-size:9px;letter-spacing:.7px;white-space:nowrap;box-shadow:0 4px 12px #0003}body.inspector-collapsed .inspectorPeek::after{content:'MOSTRAR';left:auto;right:37px}
.fileInput{display:none}
.wirePalette{position:fixed;right:24px;top:84px;z-index:500;width:300px;padding:16px;border:2px solid #7c5ce0;border-radius:18px;background:#101f33;color:#fff;box-shadow:0 18px 55px #0008;display:none}.wirePalette.show{display:block}.wirePaletteHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.wirePaletteHead strong{font-size:17px}.wirePaletteClose{width:34px;height:34px;border:1px solid #46627d;border-radius:9px;background:#1a3550;color:#fff;cursor:pointer}.wirePaletteHint{font-size:11px;line-height:1.45;color:#afc3d8;margin-bottom:12px}.wireSwatches{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.wireSwatch{height:32px;border:3px solid #fff;border-radius:50%;cursor:pointer;box-shadow:0 2px 8px #0005}.wireSwatch.auto{border-radius:9px;background:linear-gradient(90deg,#ef4053,#31b9e8,#8b5cf6);font-size:10px;color:#fff;font-weight:900}.wirePalette label{display:block;margin:13px 0 6px;font-size:12px;color:#c8d8e7}.wirePalette input[type=range]{width:100%}.wirePaletteActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.wirePaletteActions button{border:1px solid #45627e;border-radius:9px;padding:9px;background:#18334e;color:#fff;font-weight:800;cursor:pointer}.wirePaletteActions button.primary{background:#735cff;border-color:#735cff}
.workspaceWrap{position:relative;overflow:hidden;background:#182433;min-width:0}
.viewStage{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr);min-width:0}
.viewStage.mode-dual{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1px;background:#4b5a68}
.viewStage.mode-board .schematicPane{display:none}
.viewStage.mode-schematic .boardPane{display:none}
.viewPane{position:relative;overflow:hidden;min-width:0;background:#182433}
.viewPaneTitle{
position:absolute;left:12px;top:9px;z-index:85;
display:flex;align-items:baseline;gap:8px;
padding:5px 9px;border-radius:9px;
background:rgba(9,22,35,.84);border:1px solid #35516d;
color:#eaf5ff;font-size:10px;font-weight:900;pointer-events:none
}
.viewPaneTitle small{color:#8fa9bf;font-size:8px;font-weight:700}
.boardPane #work{top:0}
.viewModeGroup{display:flex;gap:3px;padding:3px;border-radius:10px;background:#10243a;border:1px solid #2e4965}
.viewModeBtn{
border:0;border-radius:7px;background:transparent;color:#9db4ca;
padding:7px 9px;font-weight:900;font-size:10px;cursor:pointer
}
.viewModeBtn:hover{background:#1a3652;color:white}
.viewModeBtn.active{background:#7248be;color:#fff;box-shadow:0 2px 8px rgba(114,72,190,.35)}
#schematicWork{
position:absolute;inset:0;overflow:hidden;cursor:grab;
background-color:#fbfaf5;
background-image:
linear-gradient(rgba(75,87,99,.09) 1px,transparent 1px),
linear-gradient(90deg,rgba(75,87,99,.09) 1px,transparent 1px),
linear-gradient(rgba(75,87,99,.04) 1px,transparent 1px),
linear-gradient(90deg,rgba(75,87,99,.04) 1px,transparent 1px);
background-size:100px 100px,100px 100px,20px 20px,20px 20px
}
#schematicWork.panning{cursor:grabbing}
#schematicWorld{
position:absolute;left:0;top:0;width:3200px;height:2200px;
transform-origin:0 0
}
#schematicWireLayer{position:absolute;inset:0;width:3200px;height:2200px;overflow:visible;pointer-events:none}
#schematicScene{position:absolute;inset:0;width:3200px;height:2200px}
.schNode{
position:absolute;user-select:none;cursor:grab;z-index:12;
border:1px solid transparent;border-radius:8px
}
.schNode:hover{background:rgba(119,77,180,.035)}
.schNode.selected{outline:2px dashed #8057ce;outline-offset:4px;background:rgba(128,87,206,.055)}
.schNode.dragging{cursor:grabbing;z-index:30}
.schSymbolRotator{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none}
.schSvg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.schNode.rotatingSch{animation:schRotatePulse .22s ease}
@keyframes schRotatePulse{50%{filter:drop-shadow(0 0 8px rgba(123,76,195,.48))}}
.schLocalTools{
position:absolute;left:50%;top:-62px;transform:translateX(-50%);z-index:90;
display:flex;align-items:center;gap:6px;padding:6px;border-radius:14px;
background:#10243a;border:2px solid #55c9ea;box-shadow:0 8px 22px rgba(19,52,76,.32)
}
.schLocalTools::after{
content:'';position:absolute;left:50%;bottom:-7px;width:10px;height:10px;
transform:translateX(-50%) rotate(45deg);background:#10243a;border-right:2px solid #55c9ea;border-bottom:2px solid #55c9ea
}
.schLocalTools button{
position:relative;z-index:1;min-width:43px;height:38px;padding:0 10px;border:1px solid #3b6684;border-radius:9px;
background:#17324d;color:#fff;font-size:18px;font-weight:950;line-height:1;cursor:pointer;white-space:nowrap
}
.schLocalTools button[data-sch-edit]{min-width:86px;font-size:12px;background:#6345c8}
.schNode:not(.actionsVisible) .schLocalTools{display:none}
.schLocalTools button:hover,.schLocalTools button:focus-visible{background:#7250d4;border-color:#fff;transform:translateY(-1px)}
.schematicEditor{
position:absolute;z-index:140;width:min(310px,calc(100% - 28px));max-height:calc(100% - 160px);overflow:auto;
padding:14px;border-radius:16px;background:#10243a;color:#f7fbff;border:2px solid #55c9ea;
box-shadow:0 18px 46px rgba(8,26,44,.42);scrollbar-width:thin
}
.schematicEditor[hidden]{display:none}
.schematicEditorHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.schematicEditorTitle{font-size:16px;font-weight:950;line-height:1.15}
.schematicEditorSub{font-size:12px;color:#9fd9ff;margin-top:3px}
.schematicEditorClose{width:34px;height:34px;border:1px solid #52708a;border-radius:9px;background:#18334e;color:#fff;font-size:18px;cursor:pointer}
.schematicEditor label{display:block;font-size:13px;font-weight:850;color:#d7eaff;margin:10px 0 5px}
.schematicEditor input,.schematicEditor select{
width:100%;height:42px;border:1px solid #4d6e8a;border-radius:10px;background:#091a2c;color:#fff;padding:8px 10px;font-size:16px;font-weight:800
}
.schematicEditorActions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}
.schematicEditorActions button{min-height:40px;border:1px solid #4c718f;border-radius:10px;background:#193853;color:#fff;font-size:12px;font-weight:900;cursor:pointer}
.schematicEditorActions .primary{grid-column:1/-1;background:#6b49d2;border-color:#9b83ed}
.schematicEditorHint{margin-top:9px;color:#a9c5d8;font-size:11px;line-height:1.35}
.schRouteHandle.connectionTarget,.schWirePoint.connectionTarget{
cursor:crosshair;box-shadow:0 0 0 5px rgba(53,198,235,.30),0 3px 7px rgba(54,38,74,.22)
}
.schRouteHandle.connectionTarget{background:#45c7eb}
.schWirePoint.connectionTarget{background:#45c7eb}
.schPin{
position:absolute;width:14px;height:14px;border-radius:50%;
transform:translate(-50%,-50%);z-index:20;cursor:crosshair;
background:#fdfdfd;border:3px solid #4f6578;box-shadow:0 0 0 3px rgba(67,184,222,.20)
}
.schPin:hover,.schPin.active{background:#49d4f4;border-color:#173a52;box-shadow:0 0 0 5px rgba(73,212,244,.28)}
.schPin.pos{border-color:#d74655}.schPin.neg{border-color:#25282b}.schPin.signal{border-color:#2caed9}
.schPinLabel{
position:absolute;white-space:nowrap;font-size:8px;font-weight:850;color:#384b5a;
background:rgba(251,250,245,.88);padding:1px 3px;border-radius:3px;pointer-events:none
}
.schWire{
fill:none;stroke-width:3;stroke-linejoin:round;stroke-linecap:round;pointer-events:none
}
.schWire.manualRoute{stroke-width:3.4}
.schRouteHandle{
position:absolute;width:18px;height:18px;border-radius:5px;
transform:translate(-50%,-50%) rotate(45deg);
background:#8b5ed0;border:3px solid #fff;
box-shadow:0 0 0 2px rgba(94,55,146,.28),0 3px 7px rgba(54,38,74,.22);
cursor:move;z-index:44;pointer-events:auto
}
.schRouteHandle:hover{background:#7044b7;box-shadow:0 0 0 4px rgba(139,94,208,.22)}
.schRouteHandle.dragging{background:#4d2c88;cursor:grabbing}
.schRouteHandle::after{
content:'';position:absolute;inset:4px;border-radius:1px;background:rgba(255,255,255,.75)
}
.schWirePoint{
position:absolute;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);
background:#7c50c3;border:3px solid #fff;box-shadow:0 0 0 2px rgba(91,53,148,.25);
z-index:46;cursor:move;pointer-events:auto
}
.schWirePoint:hover{background:#56308f;box-shadow:0 0 0 4px rgba(124,80,195,.20)}
.schWirePoint.dragging{cursor:grabbing;background:#41216f}
.schBoardPoint{position:absolute;width:22px;height:22px;border-radius:50%;transform:translate(-50%,-50%);z-index:72;background:#e0f5ff;border:3px solid #168ac2;box-shadow:0 0 0 3px rgba(22,138,194,.16),0 4px 9px #0002;cursor:pointer;pointer-events:auto}.schBoardPoint:hover{background:#fff;transform:translate(-50%,-50%) scale(1.18)}.schBoardPoint::before{content:'';position:absolute;left:7px;top:7px;width:3px;height:3px;border-radius:50%;background:#174b67}.schBoardPointLabel{position:absolute;left:24px;top:0;min-width:28px;padding:2px 5px;border-radius:5px;background:#0f5f89;color:#fff;font-size:8px;font-weight:950;white-space:nowrap;pointer-events:none;opacity:0;transform:translateX(-4px);transition:opacity .14s,transform .14s}.schBoardPoint:hover .schBoardPointLabel,.schBoardPoint.selectedLink .schBoardPointLabel{opacity:1;transform:none}.schBoardPoint.selectedLink{box-shadow:0 0 0 5px rgba(22,138,194,.22),0 4px 9px #0002}.schBoardLead{position:absolute;height:2px;background:#58a9cc;transform-origin:0 50%;z-index:69;pointer-events:none}.schBoardLegend{position:absolute;left:12px;top:54px;z-index:83;padding:7px 10px;border-radius:9px;background:rgba(225,247,255,.96);border:1px solid #86c8e5;color:#185b7b;font-size:9px;font-weight:900;pointer-events:none}.schBoardLegend i{display:inline-block;width:10px;height:10px;border-radius:50%;background:#dff6ff;border:2px solid #168ac2;vertical-align:-2px;margin-right:5px}
.schPendingNode{fill:#7c50c3;stroke:#fff;stroke-width:2}
.boardSyncBadge{
position:absolute;left:50%;bottom:54px;transform:translateX(-50%);z-index:84;
padding:6px 9px;border-radius:999px;background:rgba(238,229,250,.95);border:1px solid #c9b4e7;
color:#67438e;font-size:9px;font-weight:950;pointer-events:none
}
.schRouteHandleLabel{
position:absolute;left:14px;top:-7px;transform:rotate(-45deg);
white-space:nowrap;font-size:7px;font-weight:950;color:#6e4b98;
background:#fbfaf5;border:1px solid #ddcfed;border-radius:4px;padding:1px 4px
}
.schWireClickable{
fill:none;stroke:transparent;stroke-width:13;pointer-events:stroke;cursor:pointer
}
.schWireClickable:hover + .schWire{stroke-width:4}
.schWireHalo{fill:none;stroke:#fff;stroke-width:7;opacity:.9;pointer-events:none}
.schJunction{stroke:#fff;stroke-width:2}
.schComponentTitle{
position:absolute;left:0;right:0;bottom:-18px;text-align:center;
font-size:9px;font-weight:900;color:#314352;white-space:nowrap;pointer-events:none
}
.schComponentValue{
position:absolute;left:0;right:0;top:-16px;text-align:center;
font-size:8px;font-weight:800;color:#72539c;white-space:nowrap;pointer-events:none
}
.schNode.opampNode{background:rgba(255,255,255,.22)}
.schNode.opampNode .schComponentTitle{bottom:-23px;font-size:10px;color:#563b77}
.schOpRef{font:900 9px Inter,Arial,sans-serif;fill:#73529a}
.schOpName{font:900 9px Inter,Arial,sans-serif;fill:#314351}
.schOpPinNum{font:950 8px Inter,Arial,sans-serif;fill:#263946;paint-order:stroke;stroke:#fbfaf5;stroke-width:3px}
.schOpPinRole{font:850 7px Inter,Arial,sans-serif;fill:#71808b;paint-order:stroke;stroke:#fbfaf5;stroke-width:3px}
.schOpSign{font:950 17px Inter,Arial,sans-serif;fill:#263946}
.schOpChannel{font:950 10px Inter,Arial,sans-serif;fill:#7550a1}
.schOpPower{font:950 8px Inter,Arial,sans-serif;fill:#b13e50;paint-order:stroke;stroke:#fbfaf5;stroke-width:3px}
.schOpAux{font:800 6.5px Inter,Arial,sans-serif;fill:#8b949b;paint-order:stroke;stroke:#fbfaf5;stroke-width:3px}
.schematicHud{position:absolute;right:12px;top:54px;z-index:80;display:flex;gap:6px;align-items:center}
#schRotateLeftBtn,#schRotateRightBtn{width:70px;font-size:12px;font-weight:950}
.schZoomValue{font-size:10px;font-weight:900;color:#5c4778;min-width:40px;text-align:center}
.schematicHelp{
position:absolute;right:12px;bottom:12px;z-index:80;
padding:7px 9px;border-radius:8px;background:rgba(255,255,255,.92);
border:1px solid #d7cfdf;color:#675975;font-size:9px;font-weight:700;pointer-events:none
}
.schematicPreview{
position:absolute;display:none;z-index:95;padding:5px 7px;border-radius:6px;
background:#24364a;color:#fff;font-size:9px;font-weight:800;pointer-events:none
}
.schNetLabel{font-size:8px;font-weight:850;fill:#506273;paint-order:stroke;stroke:#fbfaf5;stroke-width:4px}
.schSyncBadge{
position:absolute;right:12px;top:12px;z-index:82;
padding:5px 9px;border-radius:999px;background:#e8ddfa;border:1px solid #c8b3e8;
color:#684593;font-size:9px;font-weight:950;pointer-events:none
}
@media(max-width:1100px){
.viewStage.mode-dual{grid-template-columns:1fr;grid-template-rows:1fr 1fr}
.viewModeBtn{padding:6px 7px}
}
#work{
position:absolute;inset:0;overflow:hidden;
background:
linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
background-size:24px 24px
}
#work{cursor:grab}
#work.panning{cursor:grabbing!important}
#work.panning *{cursor:grabbing!important}
.panHint{position:absolute;right:14px;bottom:58px;z-index:44;padding:6px 9px;border-radius:8px;background:rgba(9,20,34,.82);border:1px solid #344e69;color:#9db1c5;font-size:10px;pointer-events:none}
#wireLayer{position:absolute;inset:0;width:100%;height:100%;z-index:15;pointer-events:none}
.fxLayer{position:absolute;inset:0;z-index:80;pointer-events:none;overflow:hidden}
.workHud{position:absolute;left:14px;top:54px;z-index:45;display:flex;gap:7px}
.hudBtn{width:38px;height:38px;border-radius:9px;border:1px solid #314b68;background:#10233a;color:white;cursor:pointer}
.status{
position:absolute;left:14px;right:14px;bottom:12px;z-index:45;background:rgba(6,18,30,.95);
border:1px solid #29445f;border-radius:12px;padding:10px 13px;display:flex;align-items:center;gap:9px;font-size:12px
}
.dot{width:11px;height:11px;border-radius:50%;background:#65788d;flex:none}
.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.bad{background:var(--bad)}
.previewLabel{position:absolute;z-index:50;pointer-events:none;padding:5px 8px;border-radius:7px;background:#07111e;border:1px solid #36516f;font-size:11px;display:none}
.board{
position:absolute;width:980px;height:390px;background:#f1efe9;border:2px solid #bbb6aa;border-radius:19px;
box-shadow:0 16px 30px rgba(0,0,0,.24);z-index:4;user-select:none;cursor:grab;touch-action:none
}
.board.dragging{cursor:grabbing!important;box-shadow:0 22px 42px rgba(0,0,0,.32)}
.board .hole{cursor:crosshair}
.board::before{
content:"";
position:absolute;
left:18px;
top:10px;
width:338px;
height:28px;
border-radius:16px;
background:
radial-gradient(circle at 15% 35%, rgba(255,255,255,.35), transparent 20%),
radial-gradient(circle at 82% 30%, rgba(255,255,255,.22), transparent 16%),
linear-gradient(90deg,#4220a8 0%,#5d28d2 30%,#7c33e6 62%,#4f21bb 100%);
border:2px solid rgba(255,255,255,.45);
box-shadow:
0 4px 12px rgba(59,24,132,.35),
inset 0 0 14px rgba(255,255,255,.12);
}
.board::after{
content:"PROTOBOARD - TRINCABOARD";
position:absolute;
left:34px;
top:13px;
font-size:14px;
font-weight:1000;
letter-spacing:1.1px;
color:#ffd64a;
text-shadow:
0 1px 0 #9a4e00,
0 2px 0 #7e3900,
0 0 3px rgba(78,25,255,.75),
0 0 8px rgba(170,88,255,.55);
}
.rail{position:absolute;left:20px;right:20px;height:52px;border-radius:8px;background:#faf8f3;z-index:2}
.rail.top{top:42px}.rail.bottom{bottom:8px}
.rail::before,.rail::after{content:"";position:absolute;left:12px;right:12px;height:3px;border-radius:2px;z-index:3}
.rail::before{top:15px;background:#d64949}.rail::after{bottom:15px;background:#4a74cc}
.boardCenter{position:absolute;left:20px;right:20px;top:103px;bottom:72px;background:#faf8f3;border-radius:8px}
.boardGap{position:absolute;left:20px;right:20px;top:50%;height:14px;transform:translateY(-50%);background:#e6e2d9}
.hole{
position:absolute;width:9px;height:9px;border-radius:50%;background:#5d5d59;
box-shadow:inset 0 0 0 2px #2e2e2c,0 1px 0 white;
transform:translate(-50%,-50%);
cursor:crosshair;
z-index:30 !important;
}
.hole.railHole{
width:9px;
height:9px;
background:#555 !important;
border:1px solid rgba(255,255,255,.7);
box-shadow:
inset 0 0 0 2px #242424,
0 0 0 1px rgba(0,0,0,.25),
0 1px 1px rgba(255,255,255,.45);
z-index:50 !important;
visibility:visible !important;
opacity:1 !important;
}
.hole.active{outline:5px solid rgba(115,92,255,.28)}
.hole.net-pos{box-shadow:inset 0 0 0 2px #4f151e,0 0 7px var(--pos)}
.hole.net-neg{box-shadow:inset 0 0 0 2px #090a0c,0 0 7px #343a42}
.hole.net-signal{box-shadow:inset 0 0 0 2px #084c63,0 0 7px var(--signal)}
.freeNode{position:absolute;z-index:20;cursor:move;user-select:none;min-width:40px;min-height:30px}
.freeNode.selected{outline:2px dashed #806cff;outline-offset:5px}
.partRefTag{
position:absolute;left:50%;top:-19px;transform:translateX(-50%);z-index:34;pointer-events:none;
min-width:30px;padding:2px 6px;border-radius:6px;background:#6945c6;color:#fff;border:1px solid #fff;
box-shadow:0 2px 7px rgba(41,25,78,.28);font-size:10px;font-weight:950;text-align:center;white-space:nowrap
}
.pin{
position:absolute;width:14px;height:14px;border-radius:50%;border:2px solid #fff;
transform:translate(-50%,-50%);cursor:crosshair;z-index:28;background:#c39c35
}
.pin.pos{background:#e54e5d}.pin.neg{background:#347ed4}.pin.signal{background:#20afd8}.pin.neu{background:#c39c35}
.pin.active{outline:5px solid rgba(115,92,255,.28)}
.partSvg{display:block;overflow:visible}
.chipLabel{font:700 10px Consolas,monospace;fill:#e8e8e8}
.moduleLabel{font:700 9px Inter,Arial;fill:#eef5ff}
.benchSource{
width:190px;background:#2b333c;border:2px solid #4b5968;border-radius:13px;padding:10px;
box-shadow:0 10px 22px rgba(0,0,0,.2)
}
.benchDisplay{background:#050b10;border-radius:7px;padding:8px;text-align:center;font:20px Consolas,monospace;color:#49ef95}
.benchSub{display:flex;justify-content:space-between;color:#bcc7d0;font-size:10px;margin-top:7px}
.inspector{
background:#0f1b2c;border-left:1px solid #21364f;padding:14px;overflow:auto;scrollbar-width:none;min-width:0
}
.inspector::-webkit-scrollbar{width:0;height:0}
.inspector h3{font-size:12px;color:#9db2c8;text-transform:uppercase;letter-spacing:1px;margin:5px 0 10px}
.propTitle{font-size:17px;font-weight:900;margin-bottom:10px}
.prop label{display:block;font-size:11px;color:#9cafc3;margin:8px 0 5px}
.prop input,.prop select{
width:100%;border:1px solid #2d4864;background:#0d1a2b;color:white;border-radius:9px;padding:9px
}
.prop input[type=range]{padding:0}
.infoBox{background:#14263d;border:1px solid #29445f;border-radius:11px;padding:10px;margin-top:10px}
.metric{font-size:12px;color:#a5b7c8;line-height:1.45}
.metric strong{color:#edf5ff}
.liveValue{font-size:24px;font-weight:900;margin:4px 0}
.supportBadge{display:inline-block;font-size:10px;padding:5px 8px;border-radius:999px;background:#17374a;color:#70d7ff;font-weight:800}
.supportBadge.basic{background:#1f3a2c;color:#6dea9c}.supportBadge.approx{background:#43371f;color:#ffd26a}
.wireCard{background:#14263d;border:1px solid #29445f;border-radius:11px;padding:10px;margin-top:10px}
.wireBadge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:5px 9px;background:#0a1727;font-size:11px;font-weight:800}
.wireBadge i{width:9px;height:9px;border-radius:50%}
.analysisBox{
background:#101f33;border:1px solid #2b4663;border-radius:12px;padding:11px;margin-top:11px
}
.analysisTitle{font-size:11px;color:#9fb4c9;text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;font-weight:900}
.analysisGrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.analysisMetric{background:#0a1727;border:1px solid #233a53;border-radius:9px;padding:8px;min-width:0}
.analysisMetric small{display:block;color:#8fa5ba;font-size:10px;margin-bottom:3px}
.analysisMetric strong{display:block;color:#f3f8ff;font-size:15px;overflow-wrap:anywhere}
.analysisNote{font-size:11px;color:#9eb1c4;line-height:1.45;margin-top:8px}
.branchTable{margin-top:9px;border-top:1px solid #29435e}
.branchRow{display:grid;grid-template-columns:minmax(0,1fr) 72px 72px;gap:6px;padding:6px 0;border-bottom:1px solid #20364e;font-size:10px}
.branchRow b{color:#edf5ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.branchRow span{color:#9fb2c5;text-align:right}
.rcBar{height:8px;border-radius:99px;background:#0a1421;border:1px solid #2b4057;overflow:hidden;margin-top:7px}
.rcFill{height:100%;width:0;background:linear-gradient(90deg,#2abf7b,#39c2e5);transition:width .18s linear}
.keyboardHint{margin-top:10px;font-size:10px;color:#7e94aa}
.bookPolarityBox{
margin-top:10px;
padding:11px;
border-radius:10px;
background:#edf6ff;
border:1px solid #b9d6ef;
color:#365a73;
font-size:11px;
line-height:1.5;
}
.bookPolarityBox strong{color:#173f5d}
.altEquation{
margin-top:9px;
padding:11px;
border-radius:9px;
background:#fff9e8;
border:1px solid #ead08a;
}
.altEquation .altTitle{
font-size:10px;
font-weight:900;
color:#7a5a0e;
text-transform:uppercase;
letter-spacing:.6px;
margin-bottom:6px;
}
.altEquation .altMath{
font-family:"Cambria Math","Times New Roman",serif;
font-size:17px;
color:#5d4710;
text-align:center;
}
.pinPolarityHint{
margin-top:7px;
padding:7px 8px;
border-radius:8px;
background:#102b42;
border:1px solid #2b5778;
color:#a9d8f4;
font-size:10px;
line-height:1.45;
}
.exactBadge{
display:inline-flex;
align-items:center;
gap:5px;
padding:4px 7px;
border-radius:999px;
background:#0f513d;
color:#a7f3d0;
font-size:10px;
font-weight:900;
margin-left:6px;
}
.numericNote{
margin-top:8px;
padding:8px 9px;
border-radius:8px;
background:#eef6fb;
border:1px solid #bfd8ea;
color:#4b6173;
font-size:10px;
line-height:1.45;
}
.bookSolution{
margin-top:12px;
background:#fbfbf8;
color:#20242a;
border:1px solid #c9cdd2;
border-radius:12px;
padding:14px;
box-shadow:0 5px 16px rgba(0,0,0,.14)
}
.bookHeader{
display:flex;justify-content:space-between;gap:8px;align-items:center;
border-bottom:1px solid #dadde1;padding-bottom:9px;margin-bottom:10px
}
.bookHeader strong{font-size:13px;color:#162434}
.bookTag{
padding:4px 8px;border-radius:999px;background:#15324a;color:#bdeaff;
font-size:9px;font-weight:900;letter-spacing:.6px
}
.bookStep{margin:10px 0;color:#343a42;font-size:11px;line-height:1.5}
.bookStepNum{font-weight:900;color:#345d7e;margin-right:5px}
.bookEq{
margin:6px 0;padding:7px 9px;border-left:3px solid #7c8997;
background:#f1f2ef;font:italic 14px Georgia,'Times New Roman',serif;
color:#16191d;overflow-wrap:anywhere
}
.bookSystem{
margin:7px 0;padding:8px 10px;border-radius:8px;background:#f3f4f1;
font:italic 13px Georgia,'Times New Roman',serif;line-height:1.8
}
.bookConstants{
margin:9px 0;padding:8px 10px;border-radius:8px;background:#eaf5ef;
border:1px solid #b9d9c5;font:italic 13px Georgia,'Times New Roman',serif
}
.bookFinal{
margin-top:12px;padding:12px 10px;border:2px solid #248264;border-radius:9px;
background:#effaf5;text-align:center;
font:bold italic 16px Georgia,'Times New Roman',serif;color:#163d32
}
.bookMeta{font-size:10px;color:#69727c;margin-top:7px;line-height:1.4}
.bookWarn{
margin-top:8px;padding:7px 9px;border-radius:7px;background:#fff4d7;
border:1px solid #e2c36a;color:#765f1b;font-size:10px;line-height:1.4
}
.analyticResult{
margin-top:11px;padding:11px;border-radius:11px;
background:#071a22;border:1px solid #28715e
}
.analyticResult .eq{
margin-top:7px;padding:9px;border-radius:8px;background:#041219;
border:1px solid #205244;color:#93f2cf;
font:600 12px Consolas,Monaco,monospace;overflow-wrap:anywhere
}
.analyticResult .eqBig{
font-size:14px;color:#c8ffed
}
.analyticLabel{
display:inline-flex;padding:4px 7px;border-radius:999px;
background:#174536;color:#82efc2;font-size:10px;font-weight:900
}
.polarityChoice{
display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px
}
.polarityChoice button{
border:1px solid #2d4864;background:#0c1b2b;color:#b8c9d9;border-radius:8px;padding:7px 6px;cursor:pointer;font-size:10px
}
.polarityChoice button.active{
background:#173d35;border-color:#2d8d73;color:#89f2cd
}
.diagnosticBox{
margin-top:9px;padding:9px;border-radius:9px;background:#332a12;border:1px solid #6f5c27;
color:#f5d574;font-size:11px;line-height:1.45
}
.freeNode{
pointer-events:none !important;
}
.freeNode .partRotator{
pointer-events:none !important;
}
.freeNode .partSvg{
pointer-events:none !important;
overflow:visible;
}
.freeNode .partSvg rect,
.freeNode .partSvg circle,
.freeNode .partSvg ellipse,
.freeNode .partSvg path,
.freeNode .partSvg polygon,
.freeNode .partSvg polyline,
.freeNode .partSvg text{
pointer-events:visiblePainted;
cursor:move;
}
.freeNode .partSvg line{
pointer-events:none !important;
}
.freeNode .benchSource,
.freeNode .timeSourceFace{
pointer-events:auto !important;
cursor:move;
}
.freeNode .pin{
pointer-events:auto !important;
}
.freeNode.selected{
pointer-events:none !important;
}
.freeNode.selected{
outline:1px dashed #806cff;
outline-offset:1px;
pointer-events:none !important;
}
#zoomResetBtn{
width:52px;
font-size:10px;
}
.zoomToast{
position:absolute;
right:14px;
top:14px;
z-index:52;
pointer-events:none;
background:rgba(6,18,30,.9);
border:1px solid #315474;
border-radius:999px;
padding:6px 10px;
color:#a9ddff;
font-size:11px;
font-weight:900;
opacity:0;
transform:translateY(-5px);
transition:opacity .12s,transform .12s;
}
.zoomToast.show{
opacity:1;
transform:translateY(0);
}
.partRotator{
position:absolute;
inset:0;
width:100%;
height:100%;
transform-origin:50% 50%;
overflow:visible;
transition:transform .14s ease;
}
.freeNode.rotating .partRotator{transition:transform .18s ease}
.hudBtn:disabled{
opacity:.38;
cursor:not-allowed;
}
.hudBtn.ready{
border-color:#3c7e67;
box-shadow:inset 0 0 0 1px rgba(74,222,164,.18);
}
.rotationBadge{
display:inline-flex;align-items:center;gap:5px;margin-top:7px;padding:4px 7px;
border-radius:999px;background:#172d42;color:#92dfff;font-size:10px;font-weight:800
}
.freeNode::before,
.freeNode::after{
pointer-events:none !important;
}
.snapHint,
.previewLabel,
.zoomToast{
pointer-events:none !important;
}
.mountLead{
pointer-events:none !important;
}
.pin.flexMounted{
background:#b5bcc2!important;
opacity:.82;
}
.mountLead{
filter:drop-shadow(0 1px 0 rgba(255,255,255,.35));
}
.mountLead.flexLead{
stroke:#aeb7bf;
stroke-width:3.2;
}
.mountLead.rigidLead{
stroke:#c5ccd2;
}
.hole.occupied{
outline:2px solid rgba(59,199,255,.42);
outline-offset:2px;
}
.hole.occupiedByOther{
outline:2px solid rgba(255,174,67,.26);
outline-offset:1px;
}
.freeNode.breadboardMounted .partRefTag{
top:-13px;font-size:9px;line-height:1;padding:2px 5px;min-width:0;
background:#6341b9cc;border-color:#d7cff8;
}
.freeNode.breadboardMounted .pin.mounted{
opacity:.18!important;box-shadow:none!important;outline:none!important;
}
.freeNode.breadboardMounted.selected .pin.mounted{opacity:.5!important}
.freeNode.breadboardMounted.selected .livePartValue{
left:calc(100% + 8px);top:50%;transform:translateY(-50%);
font-size:10px;padding:2px 5px;
}
.freeNode.mountedAxial .partSvg{
filter:drop-shadow(0 1px 1px rgba(0,0,0,.14));
}
.fitBadge{
display:inline-flex;
align-items:center;
gap:5px;
margin-top:6px;
padding:4px 7px;
border-radius:999px;
background:#143d34;
color:#85efcc;
font-size:10px;
font-weight:900;
}
.pin{
transition:width .12s,height .12s,opacity .12s,box-shadow .12s;
}
.pin.mounted{
width:7px!important;height:7px!important;border:0!important;
background:#aeb5bc!important;opacity:.68;
box-shadow:0 0 0 1px rgba(0,0,0,.35)!important
}
.hole.occupied{
outline:2px solid rgba(59,199,255,.38);
outline-offset:2px
}
.mountLead{
stroke:#b6bcc2;
stroke-width:4;
stroke-linecap:round;
pointer-events:none
}
.mountLead.ledLead{stroke-width:3}
.snapHint{
position:absolute;z-index:55;pointer-events:none;
padding:5px 8px;border-radius:7px;
background:#082438;border:1px solid #2e83a8;
color:#8fe4ff;font-size:10px;font-weight:800;
transform:translate(-50%,-120%);
opacity:0;transition:opacity .12s
}
.snapHint.show{opacity:1}
.procedureBox{
margin-top:12px;background:#0b1828;border:1px solid #2b4663;border-radius:12px;padding:11px
}
.procedureTitle{
font-size:11px;color:#9fb4c9;text-transform:uppercase;letter-spacing:.8px;font-weight:900;margin-bottom:8px
}
.procedureStep{
display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;padding:7px 0;border-bottom:1px solid #20364e
}
.procedureStep:last-child{border-bottom:0}
.stepNum{
width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#193651;color:#8edcff;font-size:10px;font-weight:900
}
.stepText{font-size:11px;color:#a9bacb;line-height:1.48;min-width:0}
.stepText b{color:#f1f7ff}
.mathLine{
margin-top:5px;padding:6px 8px;background:#071320;border:1px solid #203750;border-radius:7px;
font:11px Consolas,Monaco,monospace;color:#d9efff;overflow-wrap:anywhere
}
.deltaBadge,.starBadge,.rcBadge{
display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900;margin-right:5px
}
.deltaBadge{background:#432a1e;color:#ffbd7a}
.starBadge{background:#1f3348;color:#7bd4ff}
.rcBadge{background:#1f3b2c;color:#75eca0}
.topologyDiagram{
margin-top:8px;padding:8px;border:1px solid #27435f;border-radius:9px;background:#071421;text-align:center
}
.topologyDiagram svg{max-width:190px;width:100%;height:auto}
.formulaResult{color:#71eca0;font-weight:900}
.sourceKnob{
width:38px;height:38px;border-radius:50%;margin:8px auto 3px;
background:radial-gradient(circle at 35% 30%,#7d858d,#30363c 58%,#161a1e);
border:2px solid #8a929a;position:relative
}
.sourceKnob:after{content:"";position:absolute;left:50%;top:4px;width:3px;height:13px;background:#f2f2f2;transform:translateX(-50%)}
.acBadge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;background:#18364b;color:#73d9ff;font-size:10px;font-weight:900;margin-right:5px}
.transientBadge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;background:#392d18;color:#ffd16d;font-size:10px;font-weight:900;margin-right:5px}
.phasorGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:8px}
.phasorMetric{background:#081521;border:1px solid #26415b;border-radius:9px;padding:8px;min-width:0}
.phasorMetric small{display:block;font-size:10px;color:#8ea5ba;margin-bottom:3px}.phasorMetric strong{display:block;font-size:14px;color:#eef7ff;overflow-wrap:anywhere}
.acTable{margin-top:9px;border-top:1px solid #29435e}.acRow{display:grid;grid-template-columns:minmax(0,1fr) 76px 76px;gap:6px;padding:6px 0;border-bottom:1px solid #20364e;font-size:10px}.acRow b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acRow span{text-align:right;color:#9eb2c6}
.wavePlot{margin-top:9px;border:1px solid #29435e;border-radius:10px;background:#06121e;padding:7px;overflow:hidden}.wavePlot svg{width:100%;height:150px;display:block}.waveLegend{display:flex;gap:12px;flex-wrap:wrap;font-size:10px;color:#9fb3c7;margin-top:5px}.waveKey{display:flex;align-items:center;gap:5px}.waveKey i{width:18px;height:3px;border-radius:9px;display:block}
.complexLine{font:11px Consolas,Monaco,monospace;color:#d8efff;background:#07131f;border:1px solid #213850;border-radius:7px;padding:6px 8px;margin-top:5px;overflow-wrap:anywhere}
.resultFocus{
outline:2px solid rgba(49,196,141,.42);
box-shadow:0 0 0 5px rgba(49,196,141,.08);
}
.measureBanner{
display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
margin:8px 0 10px;padding:8px 10px;border-radius:9px;
background:#0b2b25;border:1px solid #276b58;color:#83efc8;font-size:11px
}
.measureBanner b{color:#f4fffb}
.resultHelp{
margin-top:8px;padding:8px 10px;border-radius:9px;background:#10233a;border:1px solid #294762;
color:#a9bdd1;font-size:11px;line-height:1.45
}
.timeSourceExpression{margin-top:8px;padding:8px 9px;border-radius:8px;background:#071523;border:1px solid #28455f;font:12px Consolas,monospace;color:#8de8ff;overflow-wrap:anywhere}
.sourceList{margin-top:8px;display:grid;gap:6px}.sourceListRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:7px 8px;border-radius:8px;background:#091725;border:1px solid #203a52;font-size:10px}.sourceListRow b{color:#eef7ff}.sourceListRow span{color:#8fb0c7;text-align:right}
.icBadge{display:inline-flex;padding:4px 7px;border-radius:999px;background:#312a48;color:#c8b9ff;font-size:10px;font-weight:900}
.mnaBadge{display:inline-flex;padding:4px 7px;border-radius:999px;background:#15394a;color:#78dcff;font-size:10px;font-weight:900}
.snapAllBadge{display:inline-flex;padding:4px 7px;border-radius:999px;background:#193829;color:#74e9a0;font-size:10px;font-weight:900}
.pin.snapCandidate{box-shadow:0 0 0 5px rgba(45,196,255,.22)!important}.hole.snapCandidate{outline:4px solid rgba(45,196,255,.32);outline-offset:1px}
.opAmpTriangle{fill:#2a333d;stroke:#b5c0c9;stroke-width:2}
.opAmpSign{font:900 16px Inter,Arial,sans-serif;fill:#edf2f6}
.opAmpTiny{font:800 8px Inter,Arial,sans-serif;fill:#9fb2c0}
.freeNode.opampLinear .opAmpTriangle{filter:drop-shadow(0 0 5px rgba(75,210,255,.45))}
.freeNode.opampSatHigh .opAmpTriangle{stroke:#ffc15f;filter:drop-shadow(0 0 7px rgba(255,193,95,.55))}
.freeNode.opampSatLow .opAmpTriangle{stroke:#ff8294;filter:drop-shadow(0 0 7px rgba(255,130,148,.5))}
.opampStatus{margin-top:8px;padding:8px 9px;border-radius:9px;background:#102a40;border:1px solid #2d5876;color:#afd8ef;font-size:10px;line-height:1.5}
.opampChannelCard{margin-top:8px;padding:9px;border-radius:9px;background:#132d42;border:1px solid #31566f}
.opampChannelCard strong{color:#8ee7bd}
.ledBody{transition:filter .12s ease,opacity .12s ease}
.freeNode.ledOn .ledBody{opacity:1}
.freeNode.ledDanger .ledBody{animation:ledDangerPulse .18s ease-in-out infinite alternate}
@keyframes ledDangerPulse{to{filter:brightness(2.4) drop-shadow(0 0 14px #fff) drop-shadow(0 0 26px #ff7b35)}}
.proSwitchTrack{filter:drop-shadow(0 2px 2px rgba(0,0,0,.3))}
.proSwitchKnob{transition:transform .16s cubic-bezier(.2,.85,.2,1),fill .16s ease;transform-box:fill-box;transform-origin:center}
.freeNode.switchOn .proSwitchKnob{transform:translateX(28px)}
.freeNode.switchOn .proSwitchGlow{opacity:1}
.proSwitchGlow{opacity:.12;transition:opacity .16s ease}
.instrumentFace{filter:drop-shadow(0 2px 2px rgba(0,0,0,.22))}
.instrumentScreen{fill:#06120e;stroke:#394b43;stroke-width:1}
.instrumentText{fill:#66f5a6;font:700 11px Consolas,monospace}
.instrumentSmall{fill:#71808e;font:700 7px Inter,Arial,sans-serif}
.instrumentKnob{fill:#313840;stroke:#87919a;stroke-width:2;cursor:pointer}
.instrumentButton{cursor:pointer}
.instrumentLedOn{fill:#48df8d;filter:drop-shadow(0 0 4px #48df8d)}
.instrumentLedOff{fill:#515b61}
.instrumentWave{fill:none;stroke:#53d8ff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.instrumentGrid{stroke:#294352;stroke-width:.7;opacity:.7}
.instrumentControlLabel{fill:#d2dce5;font:800 6px Inter,Arial,sans-serif}
.meterContinuityOn .instrumentFace{filter:drop-shadow(0 0 7px #6cf4af)}
.scopeRunning .scopeTrace{filter:drop-shadow(0 0 3px #56ef9c)}
.schLiveBadge{position:absolute;right:4px;top:-22px;z-index:85;max-width:190px;padding:3px 7px;border-radius:999px;background:#10273c;color:#89e8ff;border:1px solid #2f6686;font-size:9px;font-weight:950;white-space:nowrap;box-shadow:0 3px 9px #0003;pointer-events:none}
.schLiveBadge.digital{background:#2b1848;color:#e5c8ff;border-color:#8d5ddb}.schLiveBadge.source{background:#3a2310;color:#ffd486;border-color:#9a6a27}.schLiveBadge.meter{background:#203a18;color:#a8f08c;border-color:#5d9b48}
.schPin.logicHigh,.pin.logicHigh{background:#fff4ba!important;border-color:#f0a516!important;box-shadow:0 0 0 3px rgba(250,177,28,.22),0 0 10px rgba(255,187,32,.85)!important}
.schPin.logicLow,.pin.logicLow{box-shadow:0 0 0 2px rgba(39,174,255,.12)}
.schLiveScope{position:absolute;left:8px;right:8px;bottom:7px;height:24px;border-radius:5px;background:#06151e;border:1px solid #345465;overflow:hidden;pointer-events:none}.schLiveScope svg{width:100%;height:100%;display:block}.schLiveScope path{fill:none;stroke:#54ef9d;stroke-width:1.7;vector-effect:non-scaling-stroke}
.livePartValue.liveDigital{background:#37205d;color:#eedbff;border-color:#7651a9}.sevenSegLive{filter:drop-shadow(0 0 5px rgba(255,55,80,.45))}
#simSpeedBtn{min-width:66px}
.benchSource.proSource{background:linear-gradient(145deg,#323b44,#242c33);border:1px solid #65717b;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.sourceMiniControls{display:flex;gap:5px;justify-content:center;margin:6px 0 3px;pointer-events:auto!important}
.sourceMiniBtn{pointer-events:auto!important;border:1px solid #536777;background:#172533;color:#d9e9f5;border-radius:7px;min-width:30px;height:25px;font-size:12px;font-weight:900;cursor:pointer}
.sourceMiniBtn.on{background:#174c38;border-color:#338963;color:#86efc3}
.sourceMiniBtn:active{transform:translateY(1px)}
@media(prefers-reduced-motion:reduce){.freeNode.ledDanger .ledBody{animation:none!important}.proSwitchKnob{transition:none}}
.partSvg [data-action]{
pointer-events:all!important;
cursor:pointer!important;
}
.pinLabel{
font:800 8px Inter,Arial,sans-serif;
fill:#cbd7e2;
paint-order:stroke;
stroke:#17202a;
stroke-width:2px;
stroke-linejoin:round;
}
.polarityMark{
font:900 10px Inter,Arial,sans-serif;
fill:#f6f8fb;
paint-order:stroke;
stroke:#1a2430;
stroke-width:2px;
}
.freeNode.componentOn .bulbGlass{
fill:#fff1a8!important;
filter:drop-shadow(0 0 8px #ffe27a) drop-shadow(0 0 18px #ffd54f);
}
.freeNode.componentOn .bulbFilament{
stroke:#ff9d22!important;
}
.freeNode.componentOn .neoCore,
.freeNode.componentOn .rgbBody{
filter:drop-shadow(0 0 8px currentColor) drop-shadow(0 0 15px currentColor);
}
.freeNode.piezoOn .piezoBody{
animation:proPiezo .25s ease-in-out infinite alternate;
}
.freeNode.vibrationOn .vibrationBody{
animation:proVibrate .10s linear infinite;
}
.freeNode.relayOn .relayArm{
transform:translateX(14px);
}
.relayArm{transition:transform .14s ease;transform-box:fill-box;transform-origin:center}
.freeNode.switchOn .switchKnob{transform:translateX(24px)}
.switchKnob{transition:transform .12s ease}
.freeNode.tiltOn .tiltLever{transform:rotate(-28deg)}
.tiltLever{transition:transform .15s ease;transform-box:fill-box;transform-origin:left center}
.freeNode.pushOn .pushCap{transform:translateY(5px)}
.pushCap{transition:transform .08s ease}
.freeNode.ledOn .ledBody{
filter:drop-shadow(0 0 9px var(--led-glow,#ff4057)) drop-shadow(0 0 18px var(--led-glow,#ff4057));
}
.freeNode.diodeOn .diodeBody{
filter:drop-shadow(0 0 5px #70e6ff);
}
.freeNode.zenerOn .diodeBody{
filter:drop-shadow(0 0 5px #b995ff);
}
.freeNode.motorOn .rotor{animation:spin var(--motor-speed,.45s) linear infinite}
.freeNode.servoOn .servoHorn{filter:drop-shadow(0 0 4px #8ed8ff)}
.freeNode.sensorActive .sensorFace{filter:drop-shadow(0 0 5px #56d7ff)}
.freeNode.outputDim{opacity:.72}
@keyframes proPiezo{to{transform:scale(1.05)}}
@keyframes proVibrate{
0%{transform:translate(0)}
25%{transform:translate(1.5px,-1px)}
50%{transform:translate(-1px,1px)}
75%{transform:translate(1px,1px)}
100%{transform:translate(-1.5px,-1px)}
}
.interactionHint{
margin-top:7px;padding:7px 8px;border-radius:8px;
background:#102a40;border:1px solid #2b5576;color:#a9d9f5;
font-size:10px;line-height:1.45
}
.auditGood{
display:inline-flex;gap:6px;align-items:center;padding:5px 8px;border-radius:999px;
background:#153d31;color:#7ee5ba;font-size:10px;font-weight:900;margin:6px 0
}
.auditWarn{
display:inline-flex;gap:6px;align-items:center;padding:5px 8px;border-radius:999px;
background:#473715;color:#f2cf72;font-size:10px;font-weight:900;margin:6px 0
}
@media(prefers-reduced-motion:reduce){
.freeNode.piezoOn .piezoBody,.freeNode.vibrationOn .vibrationBody,.freeNode.motorOn .rotor{animation:none!important}
}
.fxFlash{position:absolute;inset:0;background:radial-gradient(circle at var(--fx-x) var(--fx-y),rgba(255,255,255,.95),rgba(255,120,31,.45) 12%,rgba(255,46,46,.1) 30%,transparent 58%);animation:fxFlash .42s ease-out forwards}
.fxCore{position:absolute;width:20px;height:20px;border-radius:50%;transform:translate(-50%,-50%);background:#fff5a6;box-shadow:0 0 15px #fff,0 0 35px #ffbd37,0 0 65px #ff4a32;animation:fxCore .6s ease-out forwards}
.fxSpark{position:absolute;width:5px;height:15px;border-radius:99px;background:linear-gradient(#fff,#ffd24b,#ff572f);transform-origin:50% 100%;animation:fxSpark .7s ease-out forwards}
.fxText{position:absolute;transform:translate(-50%,-50%) scale(.4);font-size:27px;font-weight:1000;color:#fff;text-shadow:0 0 8px #ffb12e,0 0 18px #ff3f2f;animation:fxText 1.05s ease-out forwards;white-space:nowrap}
.shake{animation:shake .45s linear}
@keyframes fxFlash{0%{opacity:0}12%{opacity:1}100%{opacity:0}}
@keyframes fxCore{0%{width:8px;height:8px;opacity:1}45%{width:90px;height:90px}100%{width:135px;height:135px;opacity:0}}
@keyframes fxSpark{0%{opacity:1;transform:translate(-50%,-100%) rotate(var(--rot)) translateY(0)}100%{opacity:0;transform:translate(-50%,-100%) rotate(var(--rot)) translateY(var(--dist))}}
@keyframes fxText{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}100%{opacity:0;transform:translate(-50%,-90%) scale(1)}}
@keyframes shake{0%,100%{transform:translate(0)}20%{transform:translate(-7px,3px)}40%{transform:translate(7px,-3px)}60%{transform:translate(-4px,-2px)}80%{transform:translate(4px,2px)}}
@keyframes spin{to{transform:rotate(360deg)}}.spin{transform-origin:50% 50%;animation:spin .45s linear infinite}
@keyframes blink{50%{opacity:.18}}.blink{animation:blink .8s infinite}
.shortWire{animation:shortWire .5s infinite}@keyframes shortWire{50%{stroke-width:9;opacity:.58}}
@media(prefers-reduced-motion:reduce){.spin,.blink,.shortWire,.shake{animation:none}.fxSpark{display:none}}
.emptySearch{padding:30px 12px;text-align:center;color:#728399;font-size:13px}
@media(max-width:1080px){
.app{grid-template-columns:320px minmax(0,1fr)}
.inspector{display:none}
.top{grid-column:1/3}
body.drawer-collapsed .app{grid-template-columns:42px minmax(0,1fr)}
}
@media(max-width:720px){
.app{grid-template-columns:280px minmax(0,1fr)}
.brandText{max-width:210px}.topActions .optional{display:none}
body.drawer-collapsed .app{grid-template-columns:42px minmax(0,1fr)}
.compGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.componentResponse{
margin-top:10px;padding:10px;border-radius:11px;background:#0f263a;border:1px solid #31536e;color:#bcd5e7
}
.componentResponseTitle{font-weight:950;color:#91e4bd;font-size:12px;margin-bottom:7px;display:flex;justify-content:space-between;gap:8px}
.responseGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:7px}
.responseMetric{padding:7px 8px;border-radius:8px;background:#142f46;border:1px solid #284b66;min-width:0}
.responseMetric small{display:block;color:#86a6bc;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}
.responseMetric strong{display:block;color:#f4f8fb;font-size:11px;overflow-wrap:anywhere}
.responseFormula{margin-top:7px;padding:7px 8px;border-left:3px solid #8b64bd;background:#172c40;border-radius:4px;color:#d5e2ec;font-family:"Cambria Math","Times New Roman",serif;font-size:12px;overflow-wrap:anywhere}
.responseNote{margin-top:7px;color:#9bb8ca;font-size:9px;line-height:1.45}
.responseStatus{display:inline-flex;align-items:center;padding:3px 6px;border-radius:999px;font-size:8px;font-weight:900;background:#24455d;color:#b8ddf3}
.responseStatus.functional{background:#174a39;color:#83e5ba}
.responseStatus.approx{background:#513f18;color:#f1d37d}
.responseStatus.info{background:#38314f;color:#cdbbf3}
@media(max-width:900px){.responseGrid{grid-template-columns:1fr}}
:root{--accent:#7041cf;--panel:#132239;--text:#eef5ff}
html{font-size:16px}body{font-family:Segoe UI,Arial,sans-serif}
.app{grid-template-columns:268px minmax(0,1fr) 292px;grid-template-rows:auto minmax(0,1fr);height:100dvh}
.top{min-height:68px;flex-wrap:wrap;justify-content:flex-start;gap:12px;padding:12px 16px;background:#0b1729}
.brand{gap:10px}.brandText{font-size:17px;letter-spacing:.3px}.logo{width:46px;height:42px;border-radius:9px;background:#fff;overflow:hidden}.logo img{width:100%;height:100%;object-fit:contain}
.topActions{flex:1 1 800px;max-width:100%;gap:7px;flex-wrap:wrap!important;overflow:visible}
.topBtn{font-size:14px;min-height:38px;padding:9px 11px;border-radius:8px;flex-shrink:0}.topBtn.primary{background:#7845d9;min-width:105px}.simLamp{font-size:12px;padding:8px}.viewModeBtn{font-size:13px;padding:8px}.viewModeGroup{flex-shrink:0}
.drawer{background:#f5f1fc}.drawerHead{padding:14px;background:#efe7ff}.drawerTitle{font-size:16px}.drawerSub{font-size:12px;letter-spacing:.2px;margin:6px 0 12px}.drawerScroll{background:#f7f4fd;padding:10px}.compGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.compCard{min-height:154px;padding:9px;border-radius:10px;background:white;border-color:#e0d5f1}.compName{font-size:14px;line-height:1.3}.compMini{font-size:12px;line-height:1.4;color:#706080}.compArt{height:72px}.compArt svg{max-width:100%;max-height:72px}.categoryTitle{font-size:17px}
.viewPaneTitle{top:10px;left:12px;max-width:calc(100% - 24px);height:27px;padding:4px 9px;font-size:13px;border-radius:6px}.viewPaneTitle small{display:none}
.workHud,.schematicHud{top:47px;left:12px;right:12px;width:calc(100% - 24px);height:49px;display:flex;align-items:center;gap:5px;padding:5px;background:#101f32f2;border:1px solid #3c536b;border-radius:10px;z-index:82;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;flex-wrap:nowrap;box-shadow:0 3px 10px #0002}
.hudBtn{flex:0 0 auto;min-width:36px;width:auto;height:36px;padding:0 10px;white-space:nowrap;border-radius:7px;font-size:14px;font-weight:700;line-height:1}.hudBtn:hover:not(:disabled){background:#7443c6;border-color:#c6b0ee}.hudBtn:disabled{opacity:.4;cursor:default}.hudBtn:focus-visible,.topBtn:focus-visible{outline:3px solid #44c9f0;outline-offset:2px}
#schAutoLayoutBtn{min-width:105px}.schZoomValue,#zoomValue{font-size:12px;min-width:40px;color:#c9edff;flex-shrink:0}.schSyncBadge{top:12px;right:12px;font-size:11px;padding:4px 7px;max-width:42%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.boardSyncBadge{display:none}.schBoardLegend{top:auto;bottom:52px;left:12px;font-size:11px;padding:5px 8px;max-width:calc(100% - 24px)}.schematicHelp{font-size:12px;line-height:1.35;left:12px;right:12px;bottom:10px;padding:7px 9px;max-height:55px;overflow:auto}
.panHint{font-size:12px;bottom:58px}.status{left:12px;right:12px;bottom:10px;padding:10px 12px;font-size:12px;line-height:1.35;max-height:70px}.status #statusText{min-width:0;overflow-wrap:anywhere}
.drawerToggle,.inspectorPeek{width:31px;height:76px;border-radius:10px;font-size:23px;padding:0;border:2px solid white;box-shadow:0 4px 15px #0003}.drawerToggle{right:-16px}.inspectorPeek{left:-16px}.drawerToggle::after,.inspectorPeek::after{display:none}.drawer.collapsed .drawerToggle{padding:0;right:-16px}body.inspector-collapsed .inspectorPeek{left:-16px}
.drawer.collapsed{width:32px}body.drawer-collapsed .app{grid-template-columns:32px minmax(0,1fr) 292px}body.inspector-collapsed .app{grid-template-columns:268px minmax(0,1fr) 32px}body.drawer-collapsed.inspector-collapsed .app{grid-template-columns:32px minmax(0,1fr) 32px}
.inspector{padding:16px;background:#122035;overflow-y:auto!important;scrollbar-width:thin}.inspector h3{font-size:13px;letter-spacing:.7px}.propTitle{font-size:20px;line-height:1.3;overflow-wrap:anywhere}.prop label,.metric{font-size:14px;line-height:1.45}.prop input,.prop select{font-size:16px;min-height:40px;max-width:100%;width:100%;border-radius:8px}.prop .supportBadge,.rotationBadge,.responseNote,.responseStatus{font-size:12px;line-height:1.5}.infoBox{padding:12px;margin-top:12px}.branchRow{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);font-size:12px;gap:7px}.branchRow>*{overflow-wrap:anywhere}.analysisMetric small{font-size:12px}.analysisMetric strong{font-size:15px}.analysisTitle{font-size:14px}.keyboardHint{font-size:12px;line-height:1.45}.responseFormula{font-size:14px}.extraModelControls{margin:10px 0}
.quickActions{border:2px solid #58c2e8}.quickActions button{width:36px;height:34px;font-size:18px}.schLocalTools{top:-55px;padding:4px;border-radius:10px}.schLocalTools button{height:32px;min-width:32px;font-size:16px}.schLocalTools button[data-sch-edit]{font-size:13px;min-width:78px}.schematicEditor{font-size:14px;max-height:calc(100% - 140px);border-radius:12px}.schematicEditor input,.schematicEditor select{font-size:16px}.schematicEditor label{font-size:13px}
.livePartValue{display:none;position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%);white-space:nowrap;background:#0d2035;color:#cef4e2;border:1px solid #46647b;border-radius:5px;padding:3px 6px;font-size:12px;pointer-events:none}.freeNode.selected .livePartValue{display:block}.schNode.electricallyActive .schSvg{filter:drop-shadow(0 0 2px #40b78355)}.partRefTag{font-size:13px;line-height:1.3}.schComponentTitle{font-size:12px;line-height:1.3;white-space:nowrap}.schComponentValue{font-size:12px}.schPinLabel{font-size:10px}.schBoardPoint{width:17px;height:17px;border-width:2px}.schBoardPoint::before{top:5px;left:5px}.schBoardPointLabel{left:18px;font-size:11px}
body.top-compact .app{grid-template-rows:52px minmax(0,1fr)}body.top-compact .top{min-height:52px;padding:6px 12px;flex-wrap:nowrap}body.top-compact .logo{height:34px;width:38px}body.top-compact .topActions{justify-content:flex-end}body.top-compact .topActions #simulateBtn,body.top-compact .topActions #uiBtn{display:inline-flex}
@media(max-width:1200px){.app{grid-template-columns:220px minmax(0,1fr) 250px}.topActions{flex-basis:100%}.brandText{max-width:none}.drawerTitle{font-size:14px}.inspector{display:block;padding:12px}.top{grid-column:1/4}.compGrid{grid-template-columns:1fr}.compCard{min-height:100px;display:grid;grid-template-columns:72px 1fr;gap:6px}.compMini{display:none}body.inspector-collapsed .app{grid-template-columns:220px minmax(0,1fr) 32px}body.drawer-collapsed .app{grid-template-columns:32px minmax(0,1fr) 250px}.schSyncBadge{display:none}}
@media(max-width:900px){.app{grid-template-columns:190px minmax(0,1fr) 32px}.inspector{display:none}.top{grid-column:1/4}.viewStage.mode-dual{grid-template-columns:1fr;grid-template-rows:minmax(260px,1fr) minmax(260px,1fr);overflow:auto}.viewStage.mode-dual .viewPane{min-height:260px}.panHint,.boardSyncBadge,.schBoardLegend{display:none}.viewModeBtn{font-size:12px}.topActions .optional{display:inline-flex}.topActions{gap:5px}.topBtn{font-size:12px;min-height:34px}.brandText{font-size:16px}.simLamp{font-size:11px}body.drawer-collapsed .app,body.drawer-collapsed.inspector-collapsed .app{grid-template-columns:32px minmax(0,1fr) 0}body.inspector-collapsed .app{grid-template-columns:190px minmax(0,1fr) 0}.schematicEditor{z-index:180;max-height:calc(100% - 80px);width:min(310px,calc(100% - 24px))}.schComponentTitle{font-size:13px}.status{max-height:46px}.schematicHelp{max-height:43px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
.workHud,.schematicHud{gap:4px;padding:5px 4px;scrollbar-width:none}.workHud::-webkit-scrollbar,.schematicHud::-webkit-scrollbar{height:0}.hudBtn{padding:0 8px}#schAutoLayoutBtn{min-width:70px}#schBoardPointsBtn{min-width:36px}#schNetLabelBtn{min-width:62px}.schZoomValue,#zoomValue{min-width:30px!important;font-size:11px}.schBoardLegend{bottom:78px}.filterRow select,.drawerTools,.searchWrap{min-width:0;width:100%}.compCard{min-width:0;overflow:hidden}.inspectorPeek{position:fixed;left:auto!important;right:276px;top:45%;z-index:210}body.inspector-collapsed .inspectorPeek{right:0}.freeNode:not(.componentOn) .pixel{opacity:.15}.freeNode.componentOn .pixel{opacity:1}
@media(max-width:1200px){.inspectorPeek{right:234px}}
@media(max-width:900px){body.mobile-properties .inspector{display:block!important;position:fixed;right:0;top:105px;bottom:0;width:280px;z-index:200;box-shadow:-10px 0 40px #0007}.inspectorPeek{right:0;top:110px;height:42px}body.mobile-properties .inspectorPeek{right:264px}.hudBtn{min-width:32px;padding:0 6px}}
#schRotateLeftBtn,#schRotateRightBtn{width:36px;font-size:18px}.schComponentTitle,.schComponentValue{pointer-events:auto;cursor:pointer}.prop details{margin-top:12px;border:1px solid #34506b;border-radius:9px;padding:10px}.prop summary{font-size:14px;cursor:pointer;color:#d5beff;font-weight:600}.prop details .infoBox{padding:9px}.prop details .metric{font-size:12px}
.freeNode:not(.componentOn) .neoCore,.freeNode:not(.componentOn) .neoPixel{opacity:.15}.freeNode.componentOn .neoCore,.freeNode.componentOn .neoPixel{opacity:1}
.schNode.topTerminal .schComponentValue{left:calc(50% + 18px);right:auto;top:-19px;text-align:left;white-space:nowrap}.schNode.topTerminal .schComponentTitle{left:calc(50% + 18px);right:auto;bottom:-15px;text-align:left;white-space:nowrap}
.schNode.topTerminal .schComponentValue,.schNode.topTerminal .schComponentTitle{left:auto;right:calc(50% + 18px);text-align:right}
.board,.board .rail,.board .boardCenter{background:#f1efe9}
.board::before{display:none}
.board::after{content:"trincaboard";color:#6e35b6;text-shadow:none;font-size:16px;letter-spacing:.6px;top:13px;left:30px}
.autoArrangeControl{display:flex;align-items:center;gap:7px;font-size:12px;color:#e0d7ff;padding:8px;white-space:nowrap;cursor:pointer}
.autoArrangeControl input{accent-color:#8650df;width:17px;height:17px}
.resistancePanel{margin:16px 0;padding:14px;border:1px solid #6f50a5;border-radius:12px;background:#17273c;color:#ecf3ff;font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.resistancePanel summary{font-size:15px;font-weight:800;cursor:pointer;color:#d7bbff}
.resistanceTerminals{display:grid;gap:8px;margin:12px 0}
.resistanceTerminals label{display:grid;gap:3px}
.resistanceTerminals select{width:100%;min-width:0;padding:8px;background:#0d1b2c;color:#fff;border:1px solid #536482;border-radius:7px}
.resistancePanel h3{font-size:14px;margin:12px 0 5px;color:#d7bbff}
.resistancePanel p{margin:7px 0}.resistancePanel ol{padding-left:20px}
.resistancePanel .eqResult{font-size:21px;font-weight:800;color:#6bf2c0}
.resistancePanel details{border-top:1px solid #3b4a63;padding-top:10px;margin-top:10px}
.resistancePanel details summary{font-size:13px}
.resistancePanel table{width:100%;border-collapse:collapse;font-size:11px}
.resistancePanel td,.resistancePanel th{padding:4px;border-bottom:1px solid #3b4a63;text-align:left}
.schNode.compactDiscrete .schComponentTitle{font-size:9px!important;bottom:-14px!important;line-height:1.1}
.schNode.compactDiscrete .schComponentValue{font-size:8px!important;top:-12px!important;line-height:1.1}
.schNode.compactDiscrete .schPinLabel{font-size:7px!important;padding:0 1px!important}
.schNode.compactDiscrete .schPin{width:12px;height:12px}
.schNode.netLabelNode{background:transparent!important}.schNode.netLabelNode .schComponentTitle,.schNode.netLabelNode .schComponentValue{display:none!important}.schNode.netLabelNode .schPin{width:13px;height:13px}.schNode.netLabelNode .schLocalTools{top:-46px}
.schNode.display7Node .schComponentValue{display:none!important}
.schNode.display7Node .schComponentTitle{bottom:-18px;font-size:10px;font-weight:950}
.schNode.display7Node .schPin{width:13px;height:13px}
#work .freeNode[data-type="net_label"],
#work .freeNode[data-type="term_vplus"],
#work .freeNode[data-type="term_vminus"],
#work .freeNode[data-type="term_gnd"]{display:none!important;}
.trincaProgrammer{position:fixed;inset:0;z-index:1200;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(3,9,17,.78);backdrop-filter:blur(5px)}
.trincaProgrammer.show{display:flex}
.trincaProgrammerCard{width:min(980px,96vw);max-height:92vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#0c1828;border:2px solid #9a4fd1;border-radius:20px;box-shadow:0 28px 90px #000b;overflow:hidden}
.trincaProgrammerHead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;background:linear-gradient(135deg,#4b0c4e,#7a176f 52%,#361044);border-bottom:1px solid #ba79c9;color:white}
.trincaProgrammerHead strong{font-size:19px}.trincaProgrammerHead small{display:block;margin-top:3px;color:#eed8f3}
.trincaProgrammerClose{width:38px;height:38px;border:1px solid #ffffff55;border-radius:10px;background:#ffffff17;color:#fff;font-size:19px;cursor:pointer}
.trincaProgrammerBody{min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:0}
.trincaCodePane{min-height:0;padding:15px;display:flex;flex-direction:column;gap:10px;border-right:1px solid #30465d}
.trincaEditorShell{position:relative;min-height:430px;flex:1;border:1px solid #47617b;border-radius:12px;background:#06111d;overflow:hidden}
.trincaEditorShell:focus-within{border-color:#bd72db;box-shadow:0 0 0 3px #9a4fd122}
.trincaCodePane textarea{position:relative;z-index:3;width:100%;height:100%;min-height:430px;resize:none;border:0;border-radius:0;background:transparent;color:#dff5ff;padding:14px 14px 14px 58px;font:14px/22px Consolas,Monaco,monospace;tab-size:2;outline:none;white-space:pre;overflow:auto}
.trincaLineGutter{position:absolute;z-index:4;left:0;top:0;bottom:0;width:48px;padding-top:14px;background:#081522;border-right:1px solid #243d55;overflow:hidden;pointer-events:none;font:12px/22px Consolas,Monaco,monospace;color:#607a91;text-align:right}
.trincaLineGutter span{display:block;height:22px;padding-right:10px}
.trincaLineGutter span.error{color:#fff;background:#c62943;font-weight:950}
.trincaErrorStripe{display:none;position:absolute;z-index:2;left:48px;right:0;height:22px;background:rgba(230,42,70,.22);border-top:1px solid rgba(255,82,104,.55);border-bottom:1px solid rgba(255,82,104,.55);pointer-events:none}
.trincaErrorStripe.show{display:block}
.trincaEditorShell.hasError{box-shadow:inset 4px 0 0 #ef4053}
.trincaErrorDetails{display:none;padding:10px 12px;border-radius:9px;background:#3a101b;border:1px solid #a7334c;color:#ffd6de;font-size:12px;line-height:1.45}
.trincaErrorDetails.show{display:block}
.trincaErrorDetails strong{color:#fff}.trincaErrorDetails code{color:#ffb8c6}
.compMini,.supportBadge,.rotationBadge{display:none!important}
.schBoardLegend{opacity:.7}
.schBoardPoint{opacity:.48;transform:translate(-50%,-50%) scale(.82)}
.schBoardPoint:hover,.schBoardPoint.selectedLink{opacity:1;transform:translate(-50%,-50%) scale(1)}
.schBoardLead{opacity:.4}
.trincaProgramSide{min-height:0;overflow:auto;padding:15px;background:#0e1e30}
.trincaProgramSide h4{margin:4px 0 8px;color:#e4b8f2}.trincaProgramSide p,.trincaProgramSide li{font-size:12px;line-height:1.48;color:#b8cada}
.trincaExamples{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:12px}.trincaExamples button,.trincaProgramActions button{border:1px solid #496581;border-radius:9px;background:#18344f;color:#fff;padding:9px;cursor:pointer;font-weight:850}.trincaExamples button:hover,.trincaProgramActions button:hover{background:#6340aa}
.trincaProgramActions{display:flex;gap:8px;flex-wrap:wrap;padding:13px 15px;background:#091522;border-top:1px solid #29435f}.trincaProgramActions .primary{background:#7a2b94;border-color:#c06ad4}.trincaProgramActions .success{background:#176c50;border-color:#43bd8c}
.trincaCompileStatus{padding:9px 11px;border-radius:9px;background:#101f31;border:1px solid #314b67;color:#b9cee0;font-size:12px;white-space:pre-wrap}.trincaCompileStatus.ok{background:#102b21;border-color:#2e7d5f;color:#92eac6}.trincaCompileStatus.bad{background:#321823;border-color:#87364c;color:#ffb9c7}
.trincaSerial{height:150px;overflow:auto;white-space:pre-wrap;padding:10px;border-radius:9px;background:#030a10;border:1px solid #2e465d;color:#6ff0ac;font:11px/1.5 Consolas,monospace}
.trincaBoardBadge{display:inline-flex;align-items:center;gap:6px;margin-top:7px;padding:5px 8px;border-radius:999px;background:#3c1141;color:#f0c8f7;border:1px solid #743f79;font-size:10px;font-weight:900}.trincaBoardBadge i{width:8px;height:8px;border-radius:50%;background:#50e696;box-shadow:0 0 8px #50e696}
.freeNode[data-type="trincabot_s3"]{
filter:drop-shadow(0 16px 20px rgba(18,8,28,.34));
}
.freeNode[data-type="trincabot_s3"].selected{
outline:2px dashed #aa5ce7!important;
outline-offset:8px!important;
}
.freeNode[data-type="trincabot_s3"].componentOn{
filter:drop-shadow(0 0 11px rgba(111,240,177,.22)) drop-shadow(0 16px 20px rgba(18,8,28,.34));
}
.freeNode[data-type="trincabot_s3"] .partRefTag{
top:-28px;background:#6d2388;border-color:#e4c2ef;padding:4px 9px;font-size:11px;
}
.freeNode[data-type="trincabot_s3"] .pin{
width:15px;height:15px;border:3px solid #fff;
box-shadow:0 0 0 2px #14253a,0 2px 8px #0007;
transition:transform .12s,box-shadow .12s,filter .12s;
}
.freeNode[data-type="trincabot_s3"] .pin:hover,
.freeNode[data-type="trincabot_s3"] .pin.active{
transform:translate(-50%,-50%) scale(1.5);
z-index:90!important;
box-shadow:0 0 0 3px #fff,0 0 0 7px rgba(129,79,211,.38),0 4px 12px #0009;
}
.freeNode[data-type="trincabot_s3"] .pin::after{
content:attr(data-pin-name);
position:absolute;left:50%;top:-31px;transform:translateX(-50%) scale(.72);
transform-origin:50% 100%;opacity:0;pointer-events:none;white-space:nowrap;
padding:5px 7px;border-radius:7px;background:#081727;color:#f7fbff;
border:1px solid #6e83a0;box-shadow:0 6px 16px #0008;
font:900 10px/1 Inter,Segoe UI,Arial,sans-serif;
transition:opacity .12s,transform .12s;
}
.freeNode[data-type="trincabot_s3"] .pin:hover::after,
.freeNode[data-type="trincabot_s3"] .pin.active::after{
opacity:1;transform:translateX(-50%) scale(1);
}
.freeNode[data-type="trincabot_s3"] .pin.pos{background:#f25062}
.freeNode[data-type="trincabot_s3"] .pin.neg{background:#15181e}
.freeNode[data-type="trincabot_s3"] .pin.signal{background:#25bff0}
.freeNode[data-type="trincabot_s3"] .pin.motorPin{background:#f3a42b}
.schNode[data-sch-type="trincabot_s3"]{
border-radius:18px;background:rgba(255,255,255,.86);
box-shadow:0 16px 28px rgba(54,31,74,.15);
}
.schNode[data-sch-type="trincabot_s3"] .schPin{
width:16px;height:16px;border-width:3px;box-shadow:0 0 0 3px rgba(43,151,199,.13),0 3px 9px #0003;
}
.schNode[data-sch-type="trincabot_s3"] .schPin:hover{
transform:translate(-50%,-50%) scale(1.35);
box-shadow:0 0 0 4px rgba(75,194,239,.24),0 4px 11px #0004;
}
.schNode[data-sch-type="trincabot_s3"] .schPinLabel{display:none!important}
.schNode[data-sch-type="trincabot_s3"] .schComponentValue{display:none!important}
.schNode[data-sch-type="trincabot_s3"] .schComponentTitle{
bottom:-27px;font-size:12px;color:#5f1d68;font-weight:1000;
}
.trincaPowerRow{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.trincaPowerRow select,.trincaPowerRow input{width:100%}
.trincaRealBoardGlow{filter:drop-shadow(0 8px 10px rgba(0,0,0,.22))}
.trincaProgrammerCard{width:min(1160px,97vw)!important}
.trincaCodePane textarea{min-height:500px!important;font-size:14px!important}
.trincaPowerSwitchBadge{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:11px;background:#0b1727;border:1px solid #2b4564;color:#f5fbff;font-weight:800}
.trincaPowerSwitchBadge i{display:inline-block;width:12px;height:12px;border-radius:50%}
.freeNode[data-type="trincabot_s3"] [data-trinca-switch-knob],
.schNode[data-sch-type="trincabot_s3"] [data-trinca-switch-knob]{transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.trincaGuidePulse{animation:trincaGuidePulse 1.45s ease-in-out infinite}
@keyframes trincaGuidePulse{0%,100%{opacity:.58}50%{opacity:1}}
.trincaPhysicalLed{
position:absolute;z-index:95;pointer-events:none;width:15px;height:18px;border-radius:5px;
transform:translate(-50%,-50%);opacity:0;background:#8affbd;
transition:opacity .08s,filter .08s,transform .08s;
}
.trincaPhysicalLed.on{
opacity:1;filter:brightness(1.8) drop-shadow(0 0 7px #57ff9f) drop-shadow(0 0 15px #57ff9f);
transform:translate(-50%,-50%) scale(1.08);
}
.freeNode[data-type="trincabot_s3"] .pin.trincaLedPinOn{
background:#82ffb9!important;border-color:#eafff4!important;
box-shadow:0 0 0 2px #1c8c59,0 0 12px 5px #52ff9c!important;
}
.resistanceHero{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:9px 0}.resistanceHero>div{padding:8px;border:1px solid #425771;border-radius:9px;background:#0c1c2d}.resistanceHero small{display:block;color:#8eabc2;font-size:9px}.resistanceHero b{display:block;margin-top:3px;color:#82f0c6;font-size:13px}
@media(max-width:780px){.trincaProgrammerBody{grid-template-columns:1fr}.trincaProgramSide{max-height:260px}.trincaCodePane{border-right:0;border-bottom:1px solid #30465d}.trincaCodePane textarea{min-height:300px}.trincaExamples{grid-template-columns:1fr}.resistanceHero{grid-template-columns:1fr}}
:root{--trinca-purple:#a855f7;--trinca-purple-2:#7c3aed;--trinca-gold:#f4c77a;--trinca-ink:#120a1d}
.trincaCommentsBtn{
flex:none;position:fixed;right:14px;top:12px;z-index:500;text-decoration:none!important;
border:1px solid rgba(196,149,255,.72)!important;
background:linear-gradient(135deg,#5f2ea4,#8d43df)!important;
color:#fff!important;box-shadow:0 4px 14px rgba(116,65,196,.28);
min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;
border-radius:10px;padding:9px 12px;font-weight:850;white-space:nowrap
}
.trincaCommentsBtn:hover{filter:brightness(1.09);border-color:#d9b7ff!important}
body.top-compact .topActions>*:not(#uiBtn):not(#trincaCommentsBtn){display:none}
body.top-compact #trincaCommentsBtn{display:inline-flex!important}
.top{padding-right:188px}
.trincaWelcomeOverlay,.trincaSecurityOverlay{
position:fixed;inset:0;z-index:10000;display:grid;place-items:center;
padding:clamp(10px,2.4vw,28px);background:
radial-gradient(circle at 15% 8%,rgba(137,63,201,.20),transparent 34%),
radial-gradient(circle at 88% 90%,rgba(112,42,175,.14),transparent 34%),
rgba(6,3,12,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)
}
.trincaWelcomeOverlay[hidden],.trincaSecurityOverlay[hidden]{display:none!important}
.trincaWelcomeCard{
width:min(920px,96vw);max-height:calc(100dvh - clamp(20px,4.8vw,56px));
display:flex;flex-direction:column;overflow:hidden;
border:1px solid rgba(190,118,255,.78);border-radius:22px;
background:linear-gradient(180deg,rgba(34,17,48,.98),rgba(17,10,27,.99));
box-shadow:0 34px 90px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.05)
}
.trincaWelcomeHead{display:flex;align-items:center;gap:16px;padding:22px 24px 14px;flex:none}
.trincaWelcomeLogo{
width:70px;height:70px;flex:none;border-radius:18px;background:#fff;display:grid;place-items:center;
overflow:hidden;border:1px solid rgba(255,255,255,.72);box-shadow:0 8px 24px rgba(0,0,0,.2)
}
.trincaWelcomeLogo img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-drag:none;user-select:none}
.trincaWelcomeEyebrow{color:var(--trinca-gold);font-size:11px;line-height:1.2;font-weight:950;letter-spacing:1.5px;text-transform:uppercase}
.trincaWelcomeTitle{margin:5px 0 0;color:#fff8eb;font-size:clamp(28px,3vw,40px);line-height:1.02;font-weight:950;letter-spacing:-.7px}
.trincaWelcomeBody{min-height:0;flex:1 1 auto;overflow:auto;overscroll-behavior:contain;padding:4px 24px 10px;scrollbar-width:thin;scrollbar-color:#7540a5 transparent}
.trincaWelcomeBody p{margin:0 0 12px;color:#eee8f2;font-size:13.5px;line-height:1.56}
.trincaWelcomeBody strong{color:#fff;font-weight:900}
.trincaWelcomePanel{
margin:3px 0 12px;padding:14px 16px;border:1px solid rgba(196,154,225,.17);border-radius:15px;
background:rgba(255,255,255,.035)
}
.trincaWelcomePanel p:last-child{margin-bottom:0}
.trincaWelcomeCallout{
margin:2px 0 4px;padding:13px 16px;border:1px solid rgba(209,119,255,.30);border-radius:15px;
background:linear-gradient(105deg,rgba(105,46,145,.24),rgba(188,113,73,.12));
color:#fff;font-size:13px;line-height:1.5
}
.trincaWelcomeFoot{
flex:none;display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap;
padding:12px 24px 17px;border-top:1px solid rgba(255,255,255,.06);background:rgba(11,6,18,.86)
}
.trincaWelcomeTagline{margin-right:auto;color:#9f91a9;font-size:10px;letter-spacing:.15px}
.trincaWelcomeAction{
min-height:40px;padding:9px 16px;border-radius:10px;border:1px solid #8b5bbb;
color:#fff!important;background:#21122f;text-decoration:none!important;font-weight:900;font-size:13px;
display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer
}
.trincaWelcomeAction:hover{filter:brightness(1.12)}
.trincaWelcomeAction.primary{border-color:#b865ff;background:linear-gradient(135deg,#7335c8,#a24be2);box-shadow:0 6px 18px rgba(143,59,209,.25)}
.trincaSecurityCard{
width:min(610px,94vw);border-radius:20px;border:1px solid rgba(198,129,255,.62);
background:linear-gradient(180deg,#21112d,#100919);box-shadow:0 28px 80px #0009;padding:24px
}
.trincaSecurityIcon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#4b2760;font-size:25px;margin-bottom:12px}
.trincaSecurityCard h2{margin:0 0 11px;color:#fff3dd;font-size:24px}
.trincaSecurityCard p{margin:0 0 10px;color:#e7deeb;line-height:1.58;font-size:14px}
.trincaSecurityCard p:last-of-type{margin-bottom:18px}
.trincaSecurityClose{border:1px solid #9b63cc;border-radius:10px;background:#6f36a9;color:#fff;padding:9px 15px;font-weight:900;cursor:pointer}
.trincaOwnershipMark{
position:fixed;right:8px;bottom:5px;z-index:210;pointer-events:none;user-select:none;
color:rgba(219,210,230,.63);background:rgba(8,10,18,.54);border:1px solid rgba(169,135,194,.18);
border-radius:8px;padding:4px 7px;font-size:8.5px;line-height:1.25;text-align:right;letter-spacing:.08px;
backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)
}
.trincaPrintNotice{display:none}
.logo img{max-width:100%;max-height:100%;object-fit:contain;-webkit-user-drag:none}
@media(max-width:700px){
.trincaWelcomeOverlay{padding:8px;align-items:center}
.trincaWelcomeCard{width:100%;max-height:calc(100dvh - 16px);border-radius:17px}
.trincaWelcomeHead{padding:15px 15px 10px;gap:11px}
.trincaWelcomeLogo{width:52px;height:52px;border-radius:13px}
.trincaWelcomeEyebrow{font-size:8.5px;letter-spacing:1px}
.trincaWelcomeTitle{font-size:24px}
.trincaWelcomeBody{padding:2px 15px 8px}
.trincaWelcomeBody p,.trincaWelcomeCallout{font-size:12.3px;line-height:1.46}
.trincaWelcomePanel,.trincaWelcomeCallout{padding:11px 12px;border-radius:12px}
.trincaWelcomeFoot{padding:10px 12px 12px;gap:7px}
.trincaWelcomeTagline{width:100%;margin:0 0 1px;text-align:center;font-size:8.5px}
.trincaWelcomeAction{flex:1 1 145px;min-height:39px;padding:8px 9px;font-size:11.5px}
.trincaCommentsBtn{top:12px;right:9px;padding:8px 10px;font-size:11px;min-width:39px}
.top{padding-right:58px}
.trincaCommentsBtn .trincaCommentsLong{display:none}
.trincaOwnershipMark{font-size:7.5px;right:4px;bottom:3px}
}
@media(max-height:690px) and (min-width:701px){
.trincaWelcomeOverlay{padding:10px}
.trincaWelcomeCard{max-height:calc(100dvh - 20px)}
.trincaWelcomeHead{padding:14px 20px 8px}.trincaWelcomeLogo{width:54px;height:54px}
.trincaWelcomeTitle{font-size:30px}.trincaWelcomeBody{padding:2px 20px 6px}
.trincaWelcomeBody p{font-size:12.2px;line-height:1.42;margin-bottom:8px}
.trincaWelcomePanel,.trincaWelcomeCallout{padding:10px 13px;margin-bottom:8px}
.trincaWelcomeFoot{padding:9px 20px 11px}
}
@media print{
html,body{height:auto!important;overflow:visible!important;background:#fff!important;color:#111!important}
body>*:not(.trincaPrintNotice){display:none!important}
.trincaPrintNotice{
display:flex!important;min-height:96vh;align-items:center;justify-content:center;flex-direction:column;
text-align:center;color:#111!important;background:#fff!important;font-family:Arial,sans-serif!important;padding:40px
}
.trincaPrintNotice h1{font-size:26pt;margin:0 0 18px}.trincaPrintNotice p{font-size:15pt;margin:6px 0}
.trincaPrintNotice small{font-size:11pt;margin-top:14px}
}
