:root{--ink: #1a1a1a;--bg: #f7f9fb;--panel: #ffffff;--border: #d0d7de;--muted: #5b6770;--accent: #1f57c8;--sel: #e04;--menu-hi: #dceaf7;--danger: #c62828}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font:13px/1.4 system-ui,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}.app,.page{height:100%;display:flex;flex-direction:column}.page-body{flex:1;overflow:auto;padding:14px 18px}.spacer{flex:1}.muted{color:var(--muted)}.small{font-size:11px}.error{background:#fdecea;color:var(--danger);border:1px solid #f5c6c0;border-radius:5px;padding:5px 9px;margin:6px 0}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:#f3f6f9;border-radius:5px;padding:5px 10px}button:hover:not(:disabled){background:#e6edf3}button:disabled{opacity:.55;cursor:default}button.ghost,a.ghost,label.import-btn{font:inherit;text-decoration:none;color:var(--ink);background:transparent;border:1px solid transparent;padding:4px 8px;border-radius:5px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}button.ghost:hover,a.ghost:hover,label.import-btn:hover{background:#e9eff5;border-color:var(--border)}button.ghost.on{background:#ddeafc;border-color:#9db8e0;color:#1f4e8c}.danger{color:var(--danger)}input{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:5px;background:var(--panel)}input:focus{outline:2px solid #bcd2f5;border-color:var(--accent)}.center-screen{height:100%;display:flex;align-items:center;justify-content:center}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:26px 30px;width:320px;display:flex;flex-direction:column;gap:10px;box-shadow:0 8px 30px #14284614}.login-card h1{margin:0;font-size:22px}.login-card p{margin:0 0 6px}.login-card label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.login-card button{margin-top:8px;background:var(--accent);color:#fff;border-color:var(--accent)}.login-card button:hover:not(:disabled){background:#1744a5}.topbar{display:flex;align-items:center;gap:8px;background:var(--panel);border-bottom:1px solid var(--border);padding:6px 12px;flex:none}.row{display:flex;gap:8px;margin:10px 0}.row input{flex:0 1 340px}.card-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:8px}.card{display:flex;align-items:stretch;gap:4px;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden}.card-main{flex:1;text-align:left;background:transparent;border:none;display:flex;flex-direction:column;gap:2px;padding:10px 14px}.card-main:hover{background:#f0f5fa}.editor-main{flex:1;display:flex;min-height:0}.side{flex:none;background:var(--panel);border-right:1px solid var(--border);overflow:auto;padding:10px 12px}.side h3{margin:8px 0 6px;font-size:13px}.stats{display:flex;flex-direction:column;gap:2px}.stage-wrap{flex:1;position:relative;min-width:0}.stage{position:absolute;inset:0;cursor:default}.stage.panning{cursor:grabbing}.stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;display:block}.sel-rect{fill:#e000440d;stroke:var(--sel);stroke-width:1.5;stroke-dasharray:5 3}.rubber-rect{stroke-width:1;stroke-dasharray:4 3}.rubber-rect.ltr{fill:#f0be001a;stroke:#b58900}.rubber-rect.rtl{fill:#1f57c814;stroke:#1f57c8}.vsplit{flex:none;width:5px;cursor:col-resize;background:transparent;position:relative}.vsplit:after{content:"";position:absolute;inset:0 auto 0 2px;width:1px;background:var(--border)}.vsplit:hover,.vsplit:active{background:#e3ecf7}.vsplit:hover:after,.vsplit:active:after{width:2px;left:1.5px}.panel-tabs{display:flex;gap:2px;flex:none;border-bottom:1px solid var(--border);margin-bottom:8px}.panel-tabs button{border:none;background:transparent;border-radius:5px 5px 0 0;padding:5px 12px;color:var(--muted);font-weight:600}.panel-tabs button.active{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.panel-tabs button:hover{color:var(--ink)}.step-back{display:flex;align-items:center;gap:8px;margin-bottom:4px}.step-back .ghost{padding:2px 8px;font-size:12px}.sym-panel{display:flex;flex-direction:column;min-height:0;flex:1}.sym-search{width:100%}.sym-results{list-style:none;margin:6px 0;padding:0;overflow:auto;flex:1;min-height:60px;border:1px solid var(--border);border-radius:6px;background:#fff}.sym-results li .pad{padding:6px 8px}.sym-results button{display:flex;width:100%;align-items:baseline;gap:6px;border:none;background:transparent;text-align:left;padding:4px 8px;border-radius:0}.sym-results button:hover{background:#f0f5fa}.sym-results button.active{background:#dbe7fb;color:var(--accent)}.sym-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sym-lib{font-size:10px;color:var(--muted)}.sym-details{flex:none;border-top:1px solid var(--border);padding-top:8px}.sym-preview{background:var(--bg);border:1px solid var(--border);border-radius:6px;overflow:hidden;height:170px}.sym-preview canvas{width:100%;height:170px;display:block}.sym-meta{margin:6px 0;font-size:12px;overflow-wrap:anywhere}.sym-place{width:100%;background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.sym-place:hover:not(:disabled){background:#1744a5}.sym-panel-top{display:flex;gap:6px;align-items:stretch}.sym-panel-top .sym-search{flex:1}.sym-new{flex:none;white-space:nowrap}.tenant-mark{color:#0a7d32;font-size:10px}.sym-actions{display:flex;gap:6px}.danger-ghost{color:#a02020;border-color:#d8b0b0}.danger-ghost:hover{background:#fbeaea}.modal-backdrop{position:fixed;inset:0;background:#0f162473;display:flex;align-items:center;justify-content:center;z-index:60}.modal{background:#fff;border-radius:10px;padding:14px 16px;width:560px;max-width:92vw;max-height:88vh;overflow:auto;display:flex;flex-direction:column;gap:8px;box-shadow:0 18px 50px #00000040}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.fp-assign{width:640px}.fp-assign-groups{display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow:auto;border:1px solid var(--line, #e3e7ee);border-radius:8px;padding:8px}.fp-assign-group{align-items:flex-start}.fp-assign-label{line-height:1.35}.pin-table{display:flex;flex-direction:column;gap:4px}.pin-row{display:grid;grid-template-columns:2.6em 1fr 9.5em 6em 4.2em 2em;gap:4px;align-items:center}.pin-row.pin-head{font-size:10px;color:var(--muted);text-transform:uppercase}.pin-row input,.pin-row select{padding:3px 5px}.pat-panel{display:flex;flex-direction:column;min-height:0;flex:1}.pat-save{display:flex;gap:6px}.pat-save input{flex:1;min-width:0}.pat-save .mini{white-space:nowrap}.pat-list{list-style:none;margin:8px 0 0;padding:0;overflow:auto;flex:1;display:flex;flex-direction:column;gap:8px}.pat-item{display:flex;gap:8px;border:1px solid var(--border);border-radius:6px;padding:6px;background:#fff;cursor:grab}.pat-item:active{cursor:grabbing}.pat-thumb{width:96px;height:64px;flex:none;border:1px solid var(--border);border-radius:4px;background:var(--bg);overflow:hidden}.pat-thumb svg{width:100%;height:100%;display:block}.pat-meta{flex:1;min-width:0;font-size:12px;display:flex;flex-direction:column;gap:4px;overflow-wrap:anywhere}.pat-actions{display:flex;gap:6px;margin-top:auto}.pat-ghost{fill:#0a7d320f;stroke:#0a7d32;stroke-dasharray:5 3;stroke-width:1.4px;pointer-events:none}.props{display:flex;flex-direction:column;gap:6px}.props .to-local{margin-top:2px;align-self:flex-start}.props h3{margin:2px 0 4px}.props h4{margin:10px 0 2px;font-size:12px;color:var(--muted)}.props label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted)}.props label.chk{flex-direction:row;align-items:flex-start;gap:8px;font-size:12px;color:var(--ink)}.props label.chk>input[type=checkbox]{flex:0 0 auto;width:13px;height:13px;margin:2px 0 0}.props label.chk>span,.props label.chk>b{flex:1;line-height:16px}.props input,.props select{width:100%;padding:4px 7px}.props input.ro{background:#f2f5f8;color:var(--muted)}.props-row{display:flex;gap:6px}.props-row label{flex:1}.prop-custom{align-items:center}.prop-custom .pn{flex:0 0 38%;background:#f2f5f8;color:var(--muted);font-size:11px}button.mini{padding:2px 7px;font-size:11px;flex:none}.add-prop{align-self:flex-start;margin-top:-2px}.props .apply{margin-top:8px;background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.props .apply:hover:not(:disabled){background:#1744a5}.part-info{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}.part-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:4px}.part-head b{font-size:12px}.part-name{font-weight:700;color:var(--ink)}.part-cat{font-size:10px;padding:1px 6px;border-radius:8px;background:#1f6f431f;color:#1f6f43}.part-libid{font-size:10px;color:var(--muted);overflow-wrap:anywhere}.part-badge{flex:none;width:8px;height:8px;border-radius:50%;background:#1f9d55;display:inline-block;margin:0 4px;box-shadow:0 0 0 2px #1f9d552e}.part-match{margin-top:2px}.part-browser-hint{line-height:1.4}.part-browser-card .part-head{margin:2px 0 6px}.part-section{border:1px solid var(--border);border-radius:5px;margin:6px 0;background:#fbfcfe}.part-section summary{cursor:pointer;list-style:none;padding:5px 9px;font-size:12px;font-weight:600;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:6px}.part-section summary::-webkit-details-marker{display:none}.part-section summary:before{content:"▸";display:inline-block;transition:transform .12s;color:var(--muted);font-size:10px}.part-section[open] summary:before{transform:rotate(90deg)}.part-section[open] summary{border-bottom:1px solid var(--border);background:#f4f7fa}.part-count{color:var(--muted);font-weight:400}.part-pins{width:100%;border-collapse:collapse;font-size:11px}.part-pins th{text-align:left;color:var(--muted);font-weight:500;padding:3px 7px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#fbfcfe}.part-pins td{padding:3px 7px;border-bottom:1px solid #eef2f6;vertical-align:top}.part-pins tr:last-child td{border-bottom:none}.part-pins .ptype{white-space:nowrap}.part-list{margin:4px 0;padding:0 16px 6px 24px;font-size:11px}.part-notes{padding:6px 10px;font-size:11px;line-height:1.45}.part-info-rows{padding:6px 10px;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.part-info-rows a{color:var(--accent)}.props-ro{display:flex;flex-direction:column;gap:3px}.props-ro .kv{display:flex;justify-content:space-between;gap:8px;background:#f6f9fc;border:1px solid #e3e9ef;border-radius:5px;padding:4px 8px;font-size:12px}.props-ro .kv span{color:var(--muted)}.pad{padding:6px 4px}.net-dot{fill:#17a01f;stroke:#fff;stroke-width:1}.net-wire{stroke:#17a01f4d;stroke-width:5;stroke-linecap:round}.net-hl{stroke:#ff7f2773;stroke-width:6;stroke-linecap:round}.net-hl-dot{fill:#ff7f27a6;stroke:#fff;stroke-width:1}.field-edit{position:absolute;z-index:8;width:220px;background:#fff;border:1px solid var(--border);border-radius:7px;box-shadow:0 6px 18px #14283c2e;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.field-edit label{font-size:11px;color:var(--muted)}.field-edit input{font:12px ui-monospace,Consolas,monospace;padding:4px 6px;border:1px solid var(--border);border-radius:4px;outline:none}.field-edit input:focus{border-color:var(--accent)}.field-edit .row{display:flex;gap:6px;justify-content:flex-end}.field-edit .apply{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;padding:3px 12px}.array-edit{width:264px}.array-edit .grid2{display:grid;grid-template-columns:96px 1fr;gap:4px 6px;align-items:center}.array-edit .grid2 label{font-size:11px;color:var(--muted)}.array-edit .grid2 input,.array-edit .grid2 select{font:12px ui-monospace,Consolas,monospace;padding:3px 6px;border:1px solid var(--border);border-radius:4px;outline:none;width:100%;box-sizing:border-box}.array-edit .grid2 input:focus,.array-edit .grid2 select:focus{border-color:var(--accent)}.array-edit .hint{font-size:11px;color:var(--muted)}.page-dialog{position:fixed;inset:0;z-index:40;background:#0810206b;display:flex;align-items:center;justify-content:center}.page-dialog-card{background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 36px #0a1e324d;padding:14px 16px;display:flex;flex-direction:column;gap:10px;width:min(720px,94vw);max-height:92vh}.page-dialog-title{font-size:13px;font-weight:700;color:var(--ink)}.page-dialog-body{display:flex;gap:14px;min-height:0;overflow:auto}.page-form{flex:0 0 264px;display:grid;grid-template-columns:110px 1fr;gap:5px 8px;align-content:start;padding-right:6px}.page-form label{font-size:11px;color:var(--muted);align-self:center}.page-form input,.page-form select{font:12px ui-monospace,Consolas,monospace;padding:3px 6px;border:1px solid var(--border);border-radius:4px;outline:none;width:100%;box-sizing:border-box}.page-form input:focus,.page-form select:focus{border-color:var(--accent)}.page-form .page-cm{display:contents}.page-form .page-up{grid-column:1 / -1;margin-top:4px;cursor:pointer;font-size:11px;color:var(--accent)}.page-preview-wrap{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;background:#f2f6fa;border:1px solid var(--border);border-radius:6px;padding:8px}.page-preview{width:100%;max-height:420px}.page-preview .fl{fill:none;stroke:var(--ink);stroke-linejoin:round}.page-preview .fl.limits{stroke:#aab6c0}.page-preview text{fill:var(--ink);font-family:system-ui,Segoe UI,Arial,sans-serif}.page-dialog-foot{display:flex;gap:8px;align-items:center;justify-content:flex-end}.page-dialog-foot .page-err{margin-right:auto;font-size:11px;color:#e53935}.page-log{font-size:11px;color:var(--muted)}.page-dialog-foot button{font-size:12px;padding:4px 12px;border:1px solid var(--border);border-radius:5px;background:#fff;cursor:pointer}.page-dialog-foot button.apply{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.page-dialog-foot button:disabled{opacity:.55;cursor:default}.wire-sel{fill:none;stroke:#1f57c88c;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.pin-ring{fill:none;stroke:var(--sel);stroke-width:2}.pin-hover{fill:none;stroke:var(--sel);stroke-width:1.5;opacity:.55}.field-lead{stroke:var(--sel);opacity:.55;stroke-width:1.25;stroke-dasharray:5 3}.stage.tool-wire,.stage.tool-bus,.stage.tool-line,.stage.tool-symbol,.stage.tool-junction,.stage.tool-noConnect,.stage.tool-label,.stage.tool-globalLabel,.stage.tool-power,.stage.tool-text{cursor:crosshair}.stage.tool-delete{cursor:pointer}.stage.moving{cursor:move}.wire-chain{fill:none;stroke:#17a01f;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.wire-preview{fill:none;stroke:#17a01f;stroke-width:2;stroke-dasharray:6 4;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.wire-preview.bus{stroke-width:4}.wire-snap-mark{fill:none;stroke-width:2}.wire-snap-mark.connect{stroke:#17a01f}.wire-snap-mark.mid{stroke:#b58900}.wire-snap-mark.grid{stroke:#8a97a5}.wire-snap-mark.label-break{stroke:#e53935}.stage.tool-link,.stage.tool-hierLabel{cursor:crosshair}.toolbar{position:absolute;top:10px;right:10px;z-index:4;display:flex;flex-direction:column;gap:2px;background:#ffffffeb;border:1px solid var(--border);border-radius:7px;padding:4px}.tool-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid transparent;background:transparent;border-radius:5px;color:var(--ink)}.tool-btn:hover:not(:disabled){background:#e6edf3}.tool-btn.active{background:#dbe7fb;border-color:var(--accent);color:var(--accent)}.tool-btn:disabled{opacity:.38}.tool-btn:disabled:hover{background:transparent}.tool-btn .kicad-icon{display:block;pointer-events:none;-webkit-user-select:none;user-select:none}.tool-btn.active .kicad-icon{filter:saturate(1.05)}.hint-toast{position:absolute;left:50%;bottom:40px;transform:translate(-50%);background:#21262de0;color:#fff;border-radius:6px;padding:5px 12px;font-size:12px;pointer-events:none;z-index:5}.filter-box{display:grid;grid-template-columns:1fr 1fr;gap:2px 8px;margin-bottom:4px}.filter-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.filter-item input{margin:0}.filter-actions{display:flex;gap:6px;margin:2px 0 6px}.filter-actions button{font-size:11px;padding:2px 8px;flex:1}.lblfont-row{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink);margin-bottom:6px}.lblfont-row span{flex:1}.lblfont-row b{min-width:38px;text-align:center;font-variant-numeric:tabular-nums}.lblfont-row button{font-size:12px;padding:2px 8px}.name-input{width:100%;margin:2px 0 6px}.ovr{position:absolute;right:10px;bottom:8px;background:#ffffffe0;border:1px solid var(--border);border-radius:5px;padding:3px 8px;font:11px ui-monospace,Consolas,monospace;color:var(--muted);pointer-events:none}.overlay-error{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:5}.hsplit{flex:none;height:5px;cursor:row-resize;background:transparent;position:relative}.hsplit:after{content:"";position:absolute;inset:2px 0 auto;height:1px;background:var(--border)}.hsplit:hover,.hsplit:active{background:#e3ecf7}.hsplit:hover:after,.hsplit:active:after{height:2px;top:1.5px}.bottom-dock{flex:none;background:var(--panel);border-top:1px solid var(--border);min-height:0;overflow:hidden;display:flex;flex-direction:column}.erc-panel{display:flex;flex-direction:column;min-height:0;flex:1;padding:6px 10px 8px}.erc-panel .panel-tabs{margin-bottom:6px}.erc-summary{margin-left:auto;align-self:center}.erc-body{display:flex;flex-direction:column;min-height:0;flex:1;gap:6px}.erc-toolbar{display:flex;align-items:center;gap:10px;flex:none;flex-wrap:wrap}.erc-list{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:1px}.erc-row{display:flex;align-items:baseline;gap:8px;width:100%;border:none;background:transparent;text-align:left;padding:3px 6px;border-radius:4px;font:inherit}.erc-row:hover{background:#f0f5fa}.erc-row.zoomable{cursor:zoom-in}.erc-code{flex:none;font:600 11px ui-monospace,Consolas,monospace;padding:0 5px;border-radius:4px;min-width:34px;text-align:center;background:#e9eef3;color:var(--muted)}.erc-row.sev-error .erc-code{background:#fdecea;color:var(--danger)}.erc-row.sev-warning .erc-code{background:#fdf3d7;color:#8a6d00}.erc-row.sev-info .erc-code{background:#e7f0fb;color:var(--accent)}.erc-sheet{flex:none;font:10px ui-monospace,Consolas,monospace;color:#5a6b7d;background:#edf1f5;border-radius:4px;padding:0 5px}.erc-msg{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.erc-loc{flex:none;margin-left:auto;font:11px ui-monospace,Consolas,monospace}.erc-fixable{flex:none;color:var(--accent)}.erc-clean{margin:6px 8px;color:#17a01f;font-weight:600}.ver-row.current{background:#f0f7ee}.erc-focus-mark{fill:#e000441a;stroke:var(--sel);stroke-width:2.5;animation:erc-pulse .9s ease-in-out 3}@keyframes erc-pulse{0%,to{opacity:.25}50%{opacity:1}}.export-wrap{position:relative}.export-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:10;background:var(--panel);border:1px solid var(--border);border-radius:7px;box-shadow:0 6px 24px #14284624;padding:4px;min-width:190px;display:flex;flex-direction:column}.export-menu a{text-align:left;padding:6px 10px;border-radius:5px;color:var(--ink);text-decoration:none;font:inherit}.export-menu a:hover{background:#e9eff5}.export-dlg{position:fixed;inset:0;z-index:40;background:#0810206b;display:flex;align-items:center;justify-content:center}.export-dlg-card{background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 36px #0a1e324d;padding:14px 16px;display:flex;flex-direction:column;gap:10px;width:min(440px,92vw)}.export-dlg-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.export-dlg-title{font-size:13px;font-weight:700;color:var(--ink)}.export-opt{display:flex;flex-direction:column;gap:3px;border:1px solid var(--border);border-radius:7px;padding:8px 10px;background:#f8fafc}.export-opt label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink);cursor:pointer}.export-opt input{accent-color:var(--accent)}.export-opt-hint{font-size:11px;color:var(--muted)}.export-err{font-size:11px;color:#e53935;background:#fdecea;border:1px solid #f2b8b0;border-radius:6px;padding:6px 8px}.export-formats{display:grid;grid-template-columns:1fr 1fr;gap:6px}.export-formats button{font-size:12px;padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;text-align:left}.export-formats button:hover{background:#eef4fa;border-color:var(--accent)}.export-formats button.apply{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.export-formats button.apply:hover{background:var(--accent)}.export-dlg-foot{display:flex;justify-content:flex-end;gap:8px}.export-dlg-foot button{font-size:12px;padding:4px 12px;border:1px solid var(--border);border-radius:5px;background:#fff;cursor:pointer}.export-dlg-foot button:hover{background:#eef4fa}.ctx-menu{position:fixed;z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:7px;box-shadow:0 6px 24px #14284629;padding:4px;min-width:210px;display:flex;flex-direction:column}.ctx-menu button{border:none;background:transparent;text-align:left;padding:6px 10px;border-radius:5px;font:inherit}.ctx-menu button:hover{background:#e9eff5}.ctx-menu button.danger{color:var(--danger)}.rt-status{font-size:13px;color:var(--muted);margin-left:2px}.rt-status.online{color:#17a01f}.rt-status.connecting{color:#b5892a}.rt-status.offline{color:var(--danger)}.rt-peers{display:inline-flex;gap:4px;margin-left:4px}.rt-peer{font-size:11px;padding:1px 7px;border-radius:10px;border:1.5px solid;background:#fff;white-space:nowrap}.rt-cursor circle{stroke:#fff;stroke-width:1.2}.rt-cursor text{font:600 11px system-ui,sans-serif;paint-order:stroke;stroke:#fff;stroke-width:2.5px;stroke-linejoin:round;pointer-events:none}.keys-drawer{position:fixed;right:16px;bottom:16px;z-index:40;width:min(480px,calc(100vw - 32px));max-height:70vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 36px #14284633;padding:14px 16px}.keys-panel h2{margin:0 0 4px;font-size:15px}.keys-panel .row{flex-wrap:wrap}.keys-panel .chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;white-space:nowrap;-webkit-user-select:none;user-select:none}.fresh-key{border:1px solid #b5892a;background:#fdf6e3;border-radius:7px;padding:8px 10px;margin:8px 0;font-size:13px}.fresh-key .key-row{display:flex;gap:6px;align-items:center;margin-top:6px}.fresh-key code{flex:1;word-break:break-all;font-size:11px}.key-card .card-main{flex-direction:column;align-items:flex-start;gap:2px}.key-card code{background:#eef2f6;border-radius:4px;padding:0 4px}.agent-help{margin:8px 0;font-size:13px}.agent-help summary{cursor:pointer;color:#33404d;-webkit-user-select:none;user-select:none}.agent-help pre{background:#eef2f6;border-radius:7px;padding:8px 10px;font-size:11px;overflow-x:auto;margin:6px 0}.wire-preview.thin{opacity:.45;stroke-width:1.5}.sym-units{margin-top:4px;font-size:12px;color:#33404d}.editor-rest{position:relative;flex:1;display:flex;flex-direction:column;min-height:0}.side.dock{padding:0;overflow:hidden;display:flex;flex-direction:column}.dock-left{border-right:1px solid var(--border)}.dock-right{border-left:1px solid var(--border)}.dock-tabs{flex:none;display:flex;align-items:stretch;gap:2px;border-bottom:1px solid var(--border);padding:4px 4px 0 6px;min-height:30px}.dock-tabs .tab{border:none;background:transparent;border-radius:5px 5px 0 0;padding:4px 10px;color:var(--muted);font-weight:600;white-space:nowrap}.dock-tabs .tab.active{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.dock-tabs .tab:hover{color:var(--ink)}.dock-tabs .spacer{min-width:4px}.dock-ic{align-self:center;flex:none;border:none;background:transparent;border-radius:4px;padding:3px 7px;color:var(--muted);font-size:12px;line-height:1.1}.dock-ic:hover:not(:disabled){background:#e6edf3;color:var(--ink)}.dock-ic:disabled{opacity:.3;cursor:default}.dock-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.dock-pad{flex:1;min-height:0;overflow:auto;padding:8px 10px}.dock.dock-collapsed{width:30px;padding:6px 0;gap:6px}.dock-strip{flex:1;min-height:0;display:flex;flex-direction:column;gap:4px;overflow:auto}.dock-strip .strip-tab{border:none;background:transparent;border-radius:5px;color:var(--muted);font-size:11px;padding:8px 1px;writing-mode:vertical-rl;white-space:nowrap;cursor:pointer}.dock-strip .strip-tab.active{color:var(--accent);background:#e9eff5}.dock-strip .strip-tab:hover{color:var(--ink)}.dock-expand{flex:none;border:none;background:transparent;color:var(--muted);border-radius:4px;padding:3px 0;font-size:13px;cursor:pointer}.dock-expand:hover{background:#e6edf3;color:var(--ink)}.bottom-dock.collapsed-h{height:30px;flex-direction:row;align-items:center;gap:6px;padding:0 8px}.collapsed-h .dock-strip-h{display:flex;gap:4px;align-items:center;flex:1;min-width:0;overflow:hidden}.collapsed-h .dock-strip-h .strip-tab-h{border:none;background:transparent;border-radius:4px;padding:3px 10px;color:var(--muted);font-weight:600;cursor:pointer}.collapsed-h .dock-strip-h .strip-tab-h.active{color:var(--accent);background:#e9eff5}.collapsed-h .dock-expand{padding:3px 8px}.dock-fullscreen{position:absolute;inset:0;z-index:30;background:var(--bg);display:flex;flex-direction:column}.dock-fs-title{align-self:center;padding:4px 8px;font-size:12px}.dock-fullscreen .dock-pad{padding:10px 14px}.sheet-tabs{display:flex;gap:2px;align-items:stretch;background:#eef2f6;border-bottom:1px solid var(--border);padding:3px 6px 0;overflow-x:auto;flex:none}.sheet-tab{display:inline-flex;align-items:stretch;border:1px solid var(--border);border-bottom:none;border-radius:6px 6px 0 0;background:#f7f9fb;max-width:220px;min-width:0}.sheet-tab.active{background:#fff;border-color:#c6d3e0;box-shadow:inset 0 2px 0 var(--accent)}.sheet-tab-btn{border:none;background:transparent;padding:3px 8px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;text-align:left}.sheet-tab.active .sheet-tab-btn{color:var(--ink);font-weight:600}.sheet-tab-btn:hover:not(:disabled){background:transparent;color:var(--ink)}.sheet-tab-x{border:none;background:transparent;color:var(--muted);padding:0 6px;font-size:13px;flex:none}.sheet-tab-x:hover:not(:disabled){background:transparent;color:var(--danger)}.sch-nav{list-style:none;margin:2px 0 8px;padding:0;display:flex;flex-direction:column;gap:1px}.sch-nav li{min-width:0}.sch-nav button{display:block;width:100%;text-align:left;border:none;background:transparent;padding:3px 6px;font-size:12px;color:var(--ink);border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sch-nav button:hover:not(:disabled){background:#e9eff5}.sch-nav li.cur button{background:#dbe7fb;color:var(--accent);font-weight:600}.sch-nav .cur-text{font-weight:600;font-size:12px;padding:3px 6px;display:block}.group-props{border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:8px}.landing{position:relative;min-height:100vh;flex:none;color:#dfe9f4;background:radial-gradient(1100px 700px at 50% -10%,#12294d,#0a1428 45%,#050a16);background-attachment:fixed}.landing-globe{position:fixed;inset:0;z-index:0}.landing-globe canvas{display:block;width:100%;height:100%}.landing-scroll{position:relative;z-index:1}.landing-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:linear-gradient(180deg,#050c1abf,#050c1a00)}.landing-brand{font-size:16px;font-weight:700;letter-spacing:.4px;color:#9fd4a8}button.ghost.landing-login{color:#bfd3e6}button.ghost.landing-login:hover{background:#8cb4e11f;border-color:#8cb4e14d}.landing-hero{min-height:100vh;display:flex;align-items:flex-end;padding:0 0 8.5vh 5vw;box-sizing:border-box}.landing-copy{max-width:470px;padding:22px 26px 20px;border-radius:14px;background:#0810209e;border:1px solid rgba(130,170,220,.18);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 14px 40px #00000059}.landing-title{margin:0;font-size:clamp(30px,3.4vw,46px);font-weight:800;letter-spacing:-.5px;color:#f0f6fc}.landing-tagline{margin:4px 0 12px;font-size:clamp(14px,1.6vw,18px);color:#9fd4a8}.landing-lead{margin:0 0 16px;font-size:13.5px;line-height:1.55;color:#a8bacd}.landing-feats{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:7px;font-size:13px;color:#a8bacd}.landing-feats li{padding-left:15px;position:relative}.landing-feats li:before{content:"";position:absolute;left:0;top:5px;width:6px;height:6px;border-radius:2px;background:#5cb96b}.landing-feats b{color:#cfe3d2;font-weight:600}.landing-actions{display:flex;gap:10px}.landing-cta{font-size:15px;font-weight:600;color:#06230d;background:linear-gradient(180deg,#8edb95,#5cb96b);border:1px solid #6fc47c;border-radius:8px;padding:10px 22px;box-shadow:0 6px 22px #50be6e40}.landing-cta:hover:not(:disabled){background:linear-gradient(180deg,#a2e8a8,#6bc97a)}button.ghost.landing-cta-ghost{color:#cfe3d2;border:1px solid rgba(140,180,225,.35);border-radius:8px;padding:10px 20px;font-size:15px}button.ghost.landing-cta-ghost:hover{background:#8cb4e11f;border-color:#8cb4e180}.landing-section{min-height:64vh;display:flex;align-items:center;padding:6vh 5vw;box-sizing:border-box}.landing-section.right .landing-card{margin-left:auto}.landing-section.final{justify-content:center;text-align:center}.landing-card{max-width:560px;padding:26px 30px;border-radius:14px;background:#0810208c;border:1px solid rgba(130,170,220,.18);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 14px 40px #00000059}.landing-card h2{margin:0 0 10px;font-size:24px;font-weight:700;color:#f0f6fc}.landing-card p{margin:0 0 16px;font-size:14.5px;line-height:1.6;color:#a8bacd}.landing-card .landing-actions{justify-content:center}@media(max-width:860px){.landing-hero{padding:0 14px 7vh}.landing-copy{max-width:none;text-align:center;width:100%}.landing-actions{justify-content:center}.landing-lead,.landing-feats{display:none}.landing-section{min-height:auto;padding:10vh 14px}.landing-section.right .landing-card{margin-left:0}.landing-card{max-width:none}}.sym-src-tabs{margin-bottom:6px}.symed-backdrop{position:fixed;inset:0;background:#0f172a8c;z-index:60;display:flex;align-items:center;justify-content:center}.symed{background:#fff;border-radius:8px;width:min(1200px,94vw);height:min(800px,92vh);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 12px 40px #00000040}.symed-head{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);flex-wrap:wrap}.symed-head>b{margin-right:auto}.symed-head label{display:flex;flex-direction:column;font-size:10px;color:var(--muted);gap:2px}.symed-head input{width:110px}.symed-head-btns{display:flex;gap:8px}.symed-body{flex:1;display:flex;min-height:0}.symed-tools{display:flex;flex-direction:column;gap:4px;padding:8px 6px;border-right:1px solid var(--border)}.symed-tools button{width:34px;height:34px;font-size:15px}.symed-tools button.active{background:#dbe7fb;color:var(--accent)}.symed-tools-sep{height:1px;background:var(--border);margin:4px 0}.symed-canvas{flex:1;min-width:0;position:relative}.symed-canvas canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair}.symed-props{width:240px;flex:none;border-left:1px solid var(--border);padding:10px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.symed-props h4{margin:0 0 4px}.symed-props label{display:flex;flex-direction:column;font-size:11px;color:var(--muted);gap:2px}.symed-props input,.symed-props select{width:100%}.symed-status{display:flex;justify-content:space-between;gap:10px;padding:4px 12px;border-top:1px solid var(--border);font-size:11px;color:var(--muted);min-height:22px;flex-wrap:wrap}.markup-hint{display:flex;flex-wrap:wrap;gap:3px;align-items:center;font-size:10px;color:var(--muted)}.markup-hint .mini{padding:1px 5px;font-size:10px}.markup-details summary{cursor:pointer;color:var(--muted);font-size:11px;-webkit-user-select:none;user-select:none;margin:4px 0}.markup-details ul{margin:4px 0;padding-left:16px;font-size:11px}.markup-details code{background:#eef2f6;border-radius:3px;padding:0 3px}.fp-input{position:relative;display:block}.fp-input>input{width:100%}.fp-menu{position:absolute;z-index:30;left:0;top:100%;margin-top:2px;width:480px;height:300px;min-width:300px;min-height:150px;max-width:min(94vw,760px);max-height:min(85vh,600px);display:flex;resize:both;overflow:hidden;background:var(--panel, #fff);border:1px solid var(--line, #c9d2da);border-radius:4px;box-shadow:0 4px 14px #00000038;font-size:12px}.fp-menu-list{flex:1 1 52%;min-width:150px;overflow-y:auto;margin:0;padding:2px 0;list-style:none;border-right:1px solid var(--line, #c9d2da)}.fp-menu-list button{display:flex;gap:8px;justify-content:space-between;align-items:baseline;width:100%;text-align:left;border:0;background:none;padding:4px 8px;cursor:pointer;font:inherit;color:var(--ink, #1a1a1a)}.fp-menu-list li.hi button,.fp-menu-list li button:hover{background:var(--menu-hi, #dceaf7)}.fp-menu-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fp-menu-lib{flex:none;max-width:55%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--muted, #5b6770);font-size:10px}.fp-menu-prev{flex:1 1 48%;min-width:140px;display:flex;flex-direction:column;background:var(--panel, #fff)}.fp-menu-canvas{flex:1 1 auto;min-height:0;position:relative}.fp-menu-canvas canvas{position:absolute;inset:0;width:100%;height:100%}.fp-menu-meta{flex:none;padding:4px 6px;border-top:1px solid var(--line, #c9d2da)}.fp-menu-title{font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fp-menu-sub{color:var(--muted, #5b6770);margin-top:2px}.proj-tabs{display:flex;gap:6px;margin-bottom:10px}.proj-tabs button{border:1px solid var(--line, #c9d2da);border-radius:6px 6px 0 0;background:var(--panel, #f2f5f8);padding:5px 14px;cursor:pointer;font:inherit;color:var(--muted, #5b6b7a)}.proj-tabs button.active{background:var(--accent, #1f57c8);color:#fff;font-weight:600}.pcb-page,.pcb-view{flex:1;display:flex;flex-direction:column;min-height:0}.pcb-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:7px 12px;border-bottom:1px solid var(--line, #c9d2da);background:var(--panel, #fff)}.pcb-main{flex:1;display:flex;min-height:0}.pcb-stage-wrap{flex:1;position:relative;min-width:0;background:#001023}.pcb-stage{position:absolute;inset:0;cursor:default}.pcb-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.pcb-stage.moving{cursor:move}.pcb-stage.toolmode{cursor:crosshair}.pcb-tools{display:inline-flex;gap:4px;align-items:center}.pcb-toolbar .tbtn.on{background:var(--accent, #1f57c8);color:#fff;border-color:var(--accent, #1f57c8)}.pcb-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#dfe4ea;font-size:14px;background:#1e2126b3;pointer-events:none}.pcb-hint{z-index:6}.pcb-eng-chip{position:absolute;top:8px;left:8px;z-index:7;max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:5px;padding:3px 9px;font-size:11px;line-height:1.4;font-weight:600;color:#fff;pointer-events:none;box-shadow:0 1px 4px #00000059}.pcb-eng-chip.eng-kicad{background:#15653eeb}.pcb-eng-chip.eng-legacy{background:#a8201af2}.pcb-eng-chip.eng-idle{background:#404c5cd9}.pcb-stale{background:#c62828;color:#fff;border-radius:5px;padding:6px 10px;margin:6px 0;cursor:pointer;font-weight:600;font-size:13px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pcb-stale:hover{background:#a91f1f}.pcb-side{width:300px;flex:0 0 300px;overflow-y:auto;padding:10px 12px;border-left:1px solid var(--line, #c9d2da);background:var(--panel, #fff);display:flex;flex-direction:column;gap:14px}.pcb-panel h3{margin:0 0 6px;font-size:13px}.pcb-sec-head{display:flex;align-items:center;gap:6px;width:100%;border:0;background:none;padding:0;margin:0 0 6px;cursor:pointer;font:inherit;text-align:left;-webkit-user-select:none;user-select:none}.pcb-sec-head h3{margin:0}.pcb-sec-head:hover h3{color:var(--accent, #1f57c8)}.pcb-sec-tri{flex:none;width:11px;font-size:10px;line-height:1;color:var(--accent, #1f57c8);background:none;border:0;padding:0;cursor:pointer;text-align:center}.net-inspector .pcb-panel-head{display:flex;align-items:center;gap:6px}.net-inspector .pcb-panel-head b{flex:1}.pcb-layer{display:flex;align-items:center;gap:4px;padding:1px 2px;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px}.pcb-layer:hover{background:#1f57c814}.pcb-layer label.chk{display:flex;flex-direction:row;align-items:center;gap:7px;flex:1;font-size:12px;color:var(--ink, #1a1a1a)}.pcb-layer label.chk>input[type=checkbox]{flex:0 0 auto;width:13px;height:13px}.pcb-layer.off span{opacity:.45}.pcb-layer.active span:last-of-type{font-weight:700}.pcb-act{border:0;background:none;cursor:pointer;font-size:13px;color:var(--muted, #5b6b7a);padding:0 2px}.pcb-act.on{color:var(--accent, #1f57c8)}.pcb-drc-list{margin:6px 0 0;padding:0;list-style:none;font-size:11.5px}.pcb-drc-list li{padding:3px 6px;border-radius:4px;cursor:pointer;line-height:1.35}.pcb-drc-list li:hover{background:var(--sel, #dceaf7)}.pcb-drc-list li.err b{color:#c62828}.pcb-drc-list li.warn b{color:#b26a00}.pcb-update-info{margin:6px 0 0;line-height:1.4}.pcb-auxbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel);border-bottom:1px solid var(--border);padding:3px 8px;font-size:12px;flex:none}.pcb-auxbar .aux-sel{display:flex;align-items:center;gap:5px;color:var(--muted, #5b6673)}.pcb-auxbar .aux-sel select{padding:2px 4px;font:inherit;max-width:150px}.pcb-auxbar .aux-chk{display:flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap}.pcb-auxbar .aux-zoom{font-variant-numeric:tabular-nums;min-width:42px;text-align:right}.aux-pair{position:relative}.pcb-pair-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:40;display:flex;gap:6px;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:8px;box-shadow:0 4px 14px #0000002e}.pcb-pair-pop select{padding:2px 4px;font:inherit}.pcb-obj-sep{border-top:1px solid var(--border);margin:4px 0}.pcb-obj-row.disabled{opacity:.5}.pcb-nets-opts{display:grid;gap:6px;margin:6px 0}.pcb-nets-opts label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted, #5b6673)}.pcb-nets-opts select{padding:2px 4px;font:inherit;flex:1}.pcb-net-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#7a8494;margin:6px 0 2px}.pcb-net-row.off span{opacity:.5;text-decoration:line-through}.pcb-net-row input[type=color],.pcb-net-row select{padding:0;height:20px;border:1px solid var(--border);border-radius:4px;background:transparent;font-size:11px}.bs-dialog{width:780px;padding:12px 14px;gap:10px}.bs-body{display:flex;min-height:380px;max-height:66vh;gap:10px}.bs-nav{display:flex;flex-direction:column;flex:0 0 210px;gap:2px;overflow:auto;border-right:1px solid #dde3ea;padding-right:8px}.bs-nav-item{text-align:left;justify-content:flex-start}.bs-nav-item.on{background:#e3edf9;border-color:#9fc2e8}.bs-content{flex:1;overflow:auto;min-width:0}.bs-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.bs-field{display:flex;flex-direction:column;gap:3px;font-size:12px}.bs-field>span{color:#5b6673}.bs-field input,.bs-field select,.bs-field textarea{padding:4px 6px;font:inherit}.bs-grow textarea{resize:vertical}.bs-chk{display:flex;align-items:center;gap:6px;grid-column:1 / -1}.bs-muted{color:#5b6673;font-size:12px}.bs-error{background:#fdeaea;color:#a02020;border:1px solid #e0b4b4;border-radius:6px;padding:6px 10px;font-size:12px;cursor:pointer}.bs-stack,.bs-classes{display:flex;flex-direction:column;gap:4px}.bs-stack-head,.bs-nc-head{display:grid;gap:6px;font-size:10px;color:#5b6673;text-transform:uppercase}.bs-stack-head{grid-template-columns:1fr}.bs-stack-row input{width:100%;padding:3px 6px;font:12px ui-monospace,monospace}.bs-stack-row input.cu{background:#fdf0ee}.bs-stack-row input.diel{background:#eef7ee}.bs-nc-head{grid-template-columns:1.4fr .7fr .7fr .7fr .7fr 2fr}.bs-nc-row{display:grid;grid-template-columns:1.4fr .7fr .7fr .7fr .7fr 2fr;gap:6px}.bs-nc-row input{padding:3px 5px;min-width:0}.bs-nc-add{display:flex;gap:6px;margin-top:4px}.bs-assign{display:flex;gap:6px;align-items:center;margin-top:10px;border-top:1px solid #dde3ea;padding-top:8px;font-size:12px}.bs-assign input{padding:3px 5px;flex:0 1 160px}.bs-nav-group{display:flex;flex-direction:column;gap:2px}.bs-nav-title{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#7a8494;margin:8px 0 2px}.bs-nav>.bs-nav-group:first-child .bs-nav-title{margin-top:0}.bs-dialog{width:920px}.bs-layers,.bs-stack-edit,.bs-import{display:flex;flex-direction:column;gap:4px}.bs-layers-head,.bs-textdef-head{display:grid;gap:6px;font-size:10px;color:#5b6673;text-transform:uppercase}.bs-layers-head{grid-template-columns:22px 1.2fr .9fr 1.1fr 90px}.bs-layers-row{display:grid;grid-template-columns:22px 1.2fr .9fr 1.1fr 90px;gap:6px;align-items:center;font-size:12px}.bs-layers-row input[type=text],.bs-layers-row input:not([type]),.bs-layers-row select{padding:3px 5px;min-width:0;font:inherit}.bs-stack-tools{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-end;border-bottom:1px solid #dde3ea;padding-bottom:8px;margin-bottom:6px}.bs-stack-tools .bs-field{min-width:130px}.bs-stack-tools .bs-chk{grid-column:auto}.bs-stack-head{grid-template-columns:1.25fr .72fr .62fr 1.1fr .5fr .5fr .95fr 26px 26px}.bs-stack-row{display:grid;grid-template-columns:1.25fr .72fr .62fr 1.1fr .5fr .5fr .95fr 26px 26px;gap:6px;align-items:center;font-size:12px;padding:1px 0;border-radius:4px}.bs-stack-row.cu{background:#fdf3f1}.bs-stack-row.diel{background:#eff7ef}.bs-stack-row>span:first-child{font-family:ui-monospace,monospace}.bs-stack-row input{padding:3px 5px;min-width:0;font:12px ui-monospace,monospace}.bs-stack-row input[type=checkbox]{justify-self:center}.bs-textdef-head{grid-template-columns:1.1fr repeat(6,1fr)}.bs-textdef-row{display:grid;grid-template-columns:1.1fr repeat(6,1fr);gap:6px;align-items:center;font-size:12px}.bs-textdef-row input[type=checkbox]{justify-self:center}.bs-textdef-row input:not([type=checkbox]){padding:3px 5px;min-width:0;font:12px ui-monospace,monospace}.bs-nc-head,.bs-nc-row{grid-template-columns:1.1fr 34px .62fr .62fr .62fr .62fr .62fr .62fr .62fr .62fr 84px}.bs-nc-row.removed{opacity:.45;text-decoration:line-through}.bs-nc-row.removed input{text-decoration:line-through}.bs-rules{display:flex;flex-direction:column;gap:8px}.bs-rules-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.bs-rules-tools select{padding:4px 6px;font:inherit}.bs-rules-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:180px;overflow:auto}.bs-rules-list li{display:flex;gap:10px;align-items:baseline;padding:4px 8px;border-radius:6px;cursor:pointer;font-size:12px}.bs-rules-list li:hover{background:#f0f4f9}.bs-rules-list li.on{background:#e3edf9}.bs-rule-name{font-weight:600}.bs-rule-ops{margin-left:auto;display:flex;gap:2px}.bs-rule-ops button{border:none;background:none;cursor:pointer;font-size:11px;padding:1px 4px;color:#5b6673}.bs-rule-ops button:hover:not(:disabled){color:#1a1d21}.bs-rule-ops button:disabled{opacity:.3;cursor:default}.bs-rule-badge{font-size:10px;padding:1px 6px;border-radius:8px;white-space:nowrap}.bs-rule-badge.pns{background:#e2f3e6;color:#1d7a34}.bs-rule-badge.light{background:#e7edfb;color:#2b5bb8}.bs-rule-badge.cli{background:#f7ecd9;color:#8a5a12}.bs-rules-edit{border-top:1px solid #dde3ea;padding-top:8px;display:flex;flex-direction:column;gap:8px}.bs-rules-cons{display:flex;flex-direction:column;gap:2px}.bs-rule-cons-head{margin-top:2px}.bs-rule-cons-row{align-items:center;font-size:12px}.bs-rule-cons-row select,.bs-rule-cons-row input{padding:3px 5px;min-width:0}.bs-rule-del{border:none;background:none;cursor:pointer;color:#a02020;font-size:12px;padding:2px 4px}.bs-rule-preview{margin:0;padding:6px 8px;background:#f6f8fa;border:1px solid #dde3ea;border-radius:6px;font:11px ui-monospace,monospace;white-space:pre-wrap}.bs-rules-check{display:flex;flex-direction:column;gap:2px}.bs-rule-err{color:#a02020;font-size:12px}.bs-rule-warn{color:#8a5a12;font-size:12px}.bs-nc-ops{display:flex;gap:2px}.bs-nc-ops button{padding:1px 5px;font-size:11px}.bs-td-sec{border:1px solid #dde3ea;border-radius:6px;padding:8px 10px;grid-column:1 / -1;display:flex;flex-direction:column;gap:6px}.bs-td-head{display:flex;align-items:center;gap:16px}.bs-td-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}.bs-sev-group{grid-column:1 / -1}.bs-sev-group .bs-field{display:grid;grid-template-columns:1fr 60px 130px;align-items:center}.bs-sev-def{color:#8a93a0;font-size:11px;text-align:right}.bs-import-cats{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;border:1px solid #dde3ea;border-radius:6px;padding:8px 10px}.bs-import-cats .bs-chk{grid-column:auto}.bs-patterns{margin-top:10px;font-size:12px}.bs-pattern-row{display:flex;gap:8px;padding:2px 0}.bs-notice{background:#eaf6ea;color:#1c6b2d;border:1px solid #b5dcb8;border-radius:6px;padding:6px 10px;font-size:12px;cursor:pointer}.pcb-menubar{display:flex;align-items:center;gap:2px;background:var(--panel);border-bottom:1px solid var(--border);padding:2px 6px;font-size:13px;flex:none}.pcb-menubar-right{margin-left:auto;display:flex;gap:10px;align-items:center;font-variant-numeric:tabular-nums}.pcb-menu-anchor{position:relative}.pcb-menu-title{border:1px solid transparent;background:transparent;border-radius:5px;padding:3px 9px;font-size:13px;color:var(--ink)}.pcb-menu-title:hover,.pcb-menu-title.on{background:#e2eaf3}.pcb-menu{position:absolute;top:calc(100% + 2px);left:0;z-index:30;min-width:250px;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:7px;box-shadow:0 6px 18px #00000024;padding:4px}.pcb-menu button{display:flex;align-items:center;gap:8px;text-align:left;border:0;background:transparent;padding:5px 8px;font-size:13px;border-radius:5px;color:var(--ink)}.pcb-menu button:hover:not(:disabled){background:#e9eff5}.pcb-menu button:disabled{color:var(--muted);opacity:.6}.pcb-menu-chk{width:14px;color:var(--accent, #1f57c8)}.pcb-menu-label{flex:1}.pcb-menu-hint{color:var(--muted);font-size:11px}.pcb-menu-sep{height:1px;background:var(--border);margin:4px 6px;font-size:10px;color:var(--muted)}.pcb-vtoolbar{max-height:calc(100% - 20px);overflow-y:auto}.pcb-leftbar{right:auto;left:10px}.tool-btn.tb-sep{margin-top:6px;border-top:1px solid var(--border);border-radius:0;padding-top:6px}.pcb-ask{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:6;display:flex;gap:6px;align-items:center;background:#fffffff2;border:1px solid var(--border);border-radius:7px;padding:5px 10px;font-size:12px}.pcb-ask input{width:240px}.pcb-status{flex:none;display:flex;gap:14px;align-items:center;background:var(--panel);border-top:1px solid var(--border);padding:3px 10px;font:12px ui-monospace,Consolas,monospace;color:var(--ink);font-variant-numeric:tabular-nums}.pcb-st-field{display:flex;gap:5px;align-items:center;font:inherit}.pcb-st-field select{font:inherit;padding:1px 4px}.pcb-st-xy{min-width:170px}.pcb-st-delta{min-width:220px;color:var(--muted)}.pcb-st-zoom{color:var(--muted)}.pcb-st-fill{flex:1}.pcb-app-tabs{margin-bottom:6px}.pcb-obj-row{display:flex;align-items:center;gap:8px;margin:3px 0;font-size:12px}.pcb-obj-row label.chk{flex:0 0 auto;display:flex;align-items:center;gap:7px;white-space:nowrap}.pcb-obj-row input[type=range]{flex:1 1 60px;min-width:40px}.pcb-obj-row b{min-width:34px;text-align:right;font-variant-numeric:tabular-nums}.pcb-net-list{max-height:260px;overflow-y:auto}.pcb-net-row{display:flex;gap:8px;align-items:baseline;width:100%;border:0;background:transparent;text-align:left;padding:2px 6px;border-radius:4px;font-size:12px;color:var(--ink)}.pcb-net-row:hover{background:#e9eff5}.pcb-net-row.on{background:#dbe7fb;color:var(--accent, #1f57c8)}.pcb-net-row i{font-style:normal;font-size:10px}.pp-dlg{width:min(760px,94vw);padding:0;gap:0;overflow:hidden;display:flex;flex-direction:column}.pp-dlg.wide{width:min(920px,94vw)}.pp-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 0;flex:0 0 auto}.pp-head b{font-size:14px}.pp-x{background:none;border:0;font-size:14px;cursor:pointer;color:var(--ink);padding:2px 6px}.pp-body{overflow-y:auto;overflow-x:hidden;padding:0 14px 10px;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.pp-body>*{min-width:0;max-width:100%;flex:0 0 auto}.pp-dlg .modal-actions{flex:0 0 auto;padding:0 14px 12px}.pp-body .bs-form{display:flex;flex-direction:column;gap:6px}.pp-body .bs-field{width:100%}.pp-body .bs-field input,.pp-body .bs-field select{width:100%;min-width:0;box-sizing:border-box}.pp-section{border:1px solid var(--line, #d8dee6);border-radius:6px;margin:8px 0;padding:0}.pp-section>summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:11.5px;font-weight:600;color:var(--mut, #5b6470);padding:5px 10px;list-style:none;display:flex;align-items:center;gap:6px}.pp-section>summary:before{content:"▸";color:var(--accent, #1f57c8);transition:transform .12s}.pp-section[open]>summary:before{transform:rotate(90deg)}.pp-sec-body{padding:2px 10px 8px;display:flex;flex-direction:column;gap:6px}.pp-help{border:1px dashed var(--line, #d8dee6);border-radius:6px;margin:8px 0;font-size:11.5px}.pp-help>summary{cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px 10px;color:var(--accent, #1f57c8);font-weight:600;list-style:none;display:flex;align-items:center;gap:6px}.pp-help>summary:before{content:"▸";transition:transform .12s}.pp-help[open]>summary:before{transform:rotate(90deg)}.pp-help-body{padding:2px 10px 8px;color:var(--mut, #5b6470);display:flex;flex-direction:column;gap:4px}.pp-help-row dt{font-weight:600;color:var(--ink)}.pp-help-row dd{margin:0 0 2px 12px}.pp-tabs{display:flex;gap:4px;margin:4px 0 10px;border-bottom:1px solid var(--line, #d8dee6);flex-wrap:wrap}.pp-tab{border:0;background:none;padding:6px 10px;cursor:pointer;font-size:12.5px;color:var(--mut, #5b6470);border-bottom:2px solid transparent}.pp-tab.active{color:var(--accent, #1f57c8);border-bottom-color:var(--accent, #1f57c8);font-weight:600}.pp-checks{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:6px 14px}.pp-checks .chk{flex:0 1 auto;min-width:0}.pp-checks .chk>input[type=checkbox]{flex:0 0 auto;width:13px;height:13px;margin:2px 0 0}.pp-checks .chk>span{flex:1 1 auto;min-width:0}.pp-note{font-size:11.5px;color:var(--mut, #5b6470);margin:8px 0}.pp-layers{display:flex;flex-wrap:wrap;gap:4px 12px;max-height:120px;overflow:auto}.pp-xy{display:flex;gap:4px}.pp-align{display:flex;flex-wrap:wrap;gap:3px;align-items:center;margin:6px 0}.pp-align .muted{font-size:11.5px;margin-right:4px}.pp-align button{min-width:30px}.pp-changes{border:1px solid var(--line, #d8dee6);border-radius:6px;padding:6px 10px;margin-top:8px;max-height:160px;overflow:auto;font-size:12px}.pp-changes b{display:block;margin-bottom:4px}.pp-change{color:var(--mut, #5b6470)}.pp-radio-col{display:flex;flex-direction:column;gap:4px;margin:4px 0}.pp-layer-list{display:flex;flex-direction:column;gap:3px;margin:4px 0;max-height:260px;overflow:auto}.pp-layer-row{text-align:left}.drc-opts{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:12.5px;margin-bottom:6px}.drc-opts label{display:flex;gap:4px;align-items:center}.drc-filter{display:flex;gap:6px;align-items:center;margin-left:auto}.drc-filter select{font-size:12.5px}.drc-list{list-style:none;margin:6px 0;padding:0;max-height:320px;overflow:auto;border:1px solid var(--line, #d8dee6);border-radius:6px}.drc-row{display:flex;gap:8px;align-items:baseline;padding:4px 8px;font-size:12.5px;cursor:pointer;border-bottom:1px solid color-mix(in srgb,var(--line, #d8dee6) 45%,transparent)}.drc-row:hover{background:color-mix(in srgb,var(--sel, #eef4ff) 70%,transparent)}.drc-row.err .drc-sev{color:#e53935}.drc-row.warn .drc-sev{color:#ef9f01}.drc-row.excl{opacity:.55;text-decoration:line-through}.drc-row.muted{color:var(--mut, #5b6470);cursor:default}.drc-sev{flex:0 0 18px;text-align:center}.drc-desc{flex:1}.drc-code{font-size:11px;color:var(--mut, #5b6470);font-family:var(--mono, monospace)}.drc-empty{padding:18px;text-align:center;color:var(--mut, #5b6470)}.drc-counts{margin-left:auto;font-size:12.5px;white-space:nowrap;align-self:center}.pp-float{position:fixed;z-index:60;margin:0;max-width:none;max-height:none;overflow:hidden;box-shadow:0 10px 34px #00000059}.pp-float .pp-head{cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.pp-grip{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;touch-action:none;border-right:3px solid var(--line, #d8dee6);border-bottom:3px solid var(--line, #d8dee6);border-bottom-right-radius:10px}.pp-float .drc-list{max-height:none;flex:1 1 auto;min-height:120px}.ctx-menu{position:fixed;z-index:60;display:flex;flex-direction:column;gap:2px;min-width:220px}.ctx-menu button{text-align:left}.stat-h{margin:10px 0 4px;font-size:13px}.stat-grid{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:3px 12px;font-size:12.5px;margin-bottom:8px}.stat-grid span{color:var(--mut, #5b6470)}.stat-table{width:100%}.zm-table{width:100%;border-collapse:collapse;font-size:12px}.zm-table th{text-align:left;font-weight:600;padding:3px 6px;border-bottom:1px solid var(--line, #d8dee6);position:sticky;top:0;background:var(--bg, #fff);cursor:pointer;-webkit-user-select:none;user-select:none}.zm-table td{padding:3px 6px;border-bottom:1px solid color-mix(in srgb,var(--line, #d8dee6) 45%,transparent)}.zm-table th.sorted{color:var(--acc, #2f7df6)}.net-inspector .ni-bar{display:flex;gap:4px;align-items:center;margin:4px 0}.net-inspector .ni-bar input[type=search]{flex:1;min-width:60px}.net-inspector .ni-table{display:block;max-height:240px;overflow:auto}.net-inspector .ni-foot{font-size:11px;padding:4px 0}.find-bar{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:6px 0;font-size:12.5px}.find-bar input[type=search]{min-width:200px;flex:1}.find-bar label{display:flex;gap:4px;align-items:center}.find-list{max-height:360px}.fab-pane{display:flex;flex-direction:column;gap:8px}.fab-pane .pp-sec-body{display:flex;flex-wrap:wrap;gap:6px 14px}.fab-pane .bs-chk{flex:1 1 240px;white-space:normal}.fab-dl{display:flex;gap:8px;padding:2px 0}.fab-manifest{margin-top:10px;border-top:1px solid var(--line, #d8dee6);padding-top:8px;font-size:12px}.fab-files{list-style:none;margin:6px 0 0;padding:0;max-height:200px;overflow:auto}.fab-files li{display:flex;justify-content:space-between;gap:10px;padding:2px 4px;font-family:ui-monospace,Consolas,monospace}.fab-files li:nth-child(odd){background:color-mix(in srgb,var(--line, #d8dee6) 18%,transparent)}.fab-fsize{color:var(--mut, #5b6470);white-space:nowrap}.fab-warns{margin:4px 0;padding-left:18px;color:#9a6700}.fab-actions{justify-content:flex-end}.fab-note{margin-right:auto;color:var(--mut, #5b6470);font-size:12px}.fab-note.danger{color:#b3261e}.fabdocs-wrap{flex:1 1 auto;min-height:0;display:flex;gap:10px}.fabdocs-list{flex:0 0 46%;min-width:0;overflow:auto;display:flex;flex-direction:column;gap:10px}.fabdocs-set{border:1px solid var(--line, #d8dee6);border-radius:8px;padding:6px 8px;font-size:12.5px}.fabdocs-set-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fabdocs-set-actions{margin-left:auto;display:flex;gap:6px;align-items:center}.fabdocs-files{list-style:none;margin:4px 0 0;padding:0}.fabdocs-files li{display:flex;align-items:center;gap:8px;padding:2px 4px;cursor:pointer;font-family:ui-monospace,Consolas,monospace;font-size:11.5px;border-radius:4px}.fabdocs-files li:nth-child(odd){background:color-mix(in srgb,var(--line, #d8dee6) 16%,transparent)}.fabdocs-files li.sel{background:color-mix(in srgb,var(--acc, #4a7dcc) 22%,transparent)}.fabdocs-files .fabdoc-kind{flex:0 0 auto;color:var(--mut, #5b6470);font-family:inherit}.fabdocs-files .fabdoc-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fabdocs-files .fabdoc-badge{flex:0 0 auto;color:var(--mut, #5b6470)}.fabdocs-files .fabdoc-size{flex:0 0 auto;color:var(--mut, #5b6470);white-space:nowrap}.fabdocs-preview{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;border:1px solid var(--line, #d8dee6);border-radius:8px;padding:6px 8px}.fabdocs-preview-head{font-weight:600;font-size:12.5px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fabdocs-pre{flex:1 1 auto;min-height:0;margin:0;overflow:auto;font-family:ui-monospace,Consolas,monospace;font-size:11px;line-height:1.4;white-space:pre;-webkit-user-select:text;user-select:text}.fabdocs-opts{flex:0 0 auto;margin-bottom:8px;border:1px solid var(--line, #d8dee6);border-radius:8px;padding:4px 8px;font-size:12.5px}.fabdocs-opts summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--mut, #5b6470)}.fabdocs-opts-grid{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0 2px}.fabopt-group{flex:1 1 240px;margin:0;border:1px dashed var(--line, #d8dee6);border-radius:6px;padding:4px 8px 6px;min-width:0}.fabopt-group legend{padding:0 4px;color:var(--mut, #5b6470);font-size:11.5px}.fabopt{display:inline-flex;align-items:center;gap:4px;margin:2px 8px 2px 0;white-space:nowrap}.fabopt.dis{opacity:.45}.fabopt select,.fabopt input[type=text]{font-size:12px;padding:1px 4px}.fabopt.wide{display:flex;flex:1 1 100%;gap:6px}.fabopt.wide input[type=text]{flex:1 1 auto;min-width:0}.upd-report{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto;font-size:12.5px}.upd-sec ul{margin:2px 0 0 16px;padding:0}.upd-sec li{line-height:1.45}.upd-kind{color:var(--mut, #5b6470);font-weight:600}.view3d-page{height:100%;display:flex;flex-direction:column;background:#202024}.view3d-bar{display:flex;align-items:center;gap:10px;padding:6px 10px;background:#2c2c31;color:#e8e8ec;border-bottom:1px solid #3a3a41;font-size:12.5px}.view3d-bar .muted{color:#a9a9b3}.view3d-bar button{background:#3a3a41;color:#e8e8ec;border-color:#4a4a53}.view3d-bar button:hover:not(:disabled){background:#46464f}.view3d-chip{padding:1px 7px;border-radius:9px;background:#3a3a41;color:#c9c9d2;font-size:11px}.view3d-chip.online{background:#1e4620;color:#b6e2b8}.view3d-chip.offline{background:#5a2a2a;color:#e8bcbc}.view3d-stage{position:relative;flex:1;min-height:0}.pcb3d-canvas{width:100%;height:100%;display:block;outline:none;cursor:grab}.pcb3d-canvas:active{cursor:grabbing}.view3d-hint{padding:3px 10px;background:#26262b;color:#9a9aa4;border-top:1px solid #3a3a41;font-size:11px}.view3d-status{display:flex;gap:14px;padding:2px 10px;background:#2c2c31;color:#b9b9c2;border-top:1px solid #3a3a41;font-family:ui-monospace,Consolas,monospace;font-size:11px}.view3d-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#18181cd1;color:#e8e8ec;font-size:14px;text-align:center;padding:20px}.view3d-overlay .spinner{width:22px;height:22px;margin-right:10px;border-radius:50%;border:3px solid #4a4a53;border-top-color:#d0d0d8;animation:v3dspin .9s linear infinite;display:inline-block;vertical-align:middle}@keyframes v3dspin{to{transform:rotate(360deg)}}.fp3d-layout{display:flex;gap:12px;align-items:stretch;min-height:260px}.fp3d-list{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:6px}.fp3d-list .bs-field{display:flex;flex-direction:column;gap:2px}.fp3d-item{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;cursor:pointer;white-space:nowrap;overflow:hidden}.fp3d-item:hover{background:#7f7f7f26}.fp3d-item.selected{background:#4096ee40}.fp3d-item-name{overflow:hidden;text-overflow:ellipsis}.fp3d-list-actions{display:flex;gap:6px;flex-wrap:wrap}.fp3d-picker{display:flex;flex-direction:column;gap:6px;border:1px solid rgba(127,127,127,.4);border-radius:6px;padding:6px}.fp3d-picker-list{max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:2px;font-size:12px;line-height:1.35}.fp3d-pick{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:1px;padding:4px 8px;min-width:0}.fp3d-pick .fp3d-item-name{font-weight:600}.fp3d-pick .fp3d-item-name,.fp3d-item-dir{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp3d-item-dir{font-size:11px;color:var(--muted, #6b7280)}.fp3d-picker-actions{display:flex;justify-content:flex-end;gap:8px}.fp3d-editor{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.fp3d-vec{display:inline-flex;gap:4px}.fp3d-preview{height:200px;border-radius:8px;overflow:hidden;background:#202021e6;display:flex;align-items:center;justify-content:center;flex-shrink:0}
