@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Regular.ttf)format("truetype");font-display:swap}:root{color:#d9d9d4;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#191b1e;--panel:#202225;--panel-2:#242629;--line:#303236;--muted:#82847f;--text:#dadbd5;--green:#5bc4a0;--amber:#d0a968;--mono:"DM Mono",monospace;--display:"Space Grotesk",sans-serif;background:#191b1e;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:1050px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:1px solid #6cc7a8}button:disabled{opacity:.34;cursor:default}.app{background:var(--bg);flex-direction:column;height:100vh;min-height:660px;display:flex;overflow:hidden}.topbar{background:#202225;border-bottom:1px solid #303236;justify-content:space-between;align-items:center;gap:16px;height:57px;min-height:57px;padding:0 17px;display:flex}.brand,.brand-mark,.main-nav,.main-nav button,.top-actions,.autosave{align-items:center;display:flex}.brand{gap:10px;min-width:292px}.brand-mark{color:#68c8a5;background:#24332f;border:1px solid #427767;border-radius:8px;justify-content:center;width:29px;height:29px}.brand-word{font:600 16px var(--display);letter-spacing:-.7px;color:#eeeeea}.brand-word span{color:#a7aaa4;font-weight:400}.brand-word sup{font:500 9px var(--mono);color:#d1a968;vertical-align:top;margin-left:3px}.brand-divider{background:#3a3c3f;width:1px;height:18px;margin:0 3px}.file-title{font:11px var(--mono);color:#a4a69f;align-items:center;gap:7px;display:flex}.save-dot{background:#55bd98;border-radius:50%;width:6px;height:6px}.save-dot.unsaved{background:#d1a968}.main-nav{gap:3px;height:100%}.main-nav button{color:#a9aaa4;background:0 0;border:0;border-radius:5px;gap:7px;padding:7px 9px;font-size:11px;transition:background .15s,color .15s}.main-nav button:hover,.main-nav button.active{color:#e3e4dc;background:#303236}.main-nav button.active{color:#70c9a7}.nav-divider{background:#383a3e;width:1px;height:20px;margin:0 5px}.top-actions{justify-content:flex-end;gap:15px;min-width:210px}.autosave{color:#858781;gap:6px;font-size:10px}.autosave svg{color:#629781}.avatar{color:#b4d1c3;width:26px;height:26px;font:10px var(--mono);background:#384b45;border-radius:50%;place-items:center;display:grid}.icon-button{color:#9b9d97;background:0 0;border:0;border-radius:5px;place-items:center;width:29px;height:29px;display:grid}.icon-button:hover{color:#e2e2dc;background:#303236}.icon-button.small{width:25px;height:25px}.shell{flex:1;min-height:0;display:flex}.panel{background:var(--panel);flex-direction:column;min-height:0;display:flex}.library{border-right:1px solid var(--line);width:260px;min-width:260px}.panel-head{justify-content:space-between;align-items:center;height:72px;min-height:72px;padding:13px 14px 10px 17px;display:flex}.eyebrow{font:9px var(--mono);letter-spacing:1.3px;color:#797b76}.panel-head h2{font:600 15px var(--display);letter-spacing:-.35px;color:#e3e4de;margin:4px 0 0}.searchbox{color:#7f827d;background:#292b2e;border:1px solid #37393d;border-radius:5px;align-items:center;gap:8px;height:33px;margin:0 12px 13px;padding:0 9px;display:flex}.searchbox input{color:#d9dad4;background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:11px}.searchbox input::placeholder{color:#737570}.searchbox kbd{font:9px var(--mono);color:#757771;border:1px solid #43454a;border-radius:3px;padding:2px 4px}.library-filter{justify-content:space-between;align-items:center;height:31px;margin-bottom:6px;padding:0 12px;display:flex}.filter-current{color:#a6a8a1;background:0 0;border:0;align-items:center;gap:7px;font-size:10px;display:flex}.filter-current svg:first-child{color:#9f9f91}.asset-list{flex:1;padding:0 8px 8px;overflow:auto}.asset-card{text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:11px;width:100%;min-height:76px;padding:8px;transition:background .15s,border .15s;display:flex}.asset-card:hover{background:#292b2e;border-color:#383a3d}.part-thumb{color:#a8b2a9;background:#282a2d;border:1px solid #37393d;border-radius:4px;flex:none;place-items:center;width:59px;height:56px;display:grid;position:relative;overflow:hidden}.asset-name{color:#d4d5ce;white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;font-weight:600;overflow:hidden}.asset-meta{font:8px var(--mono);letter-spacing:.45px;color:#858781;margin-top:5px}.asset-detail{font:8px var(--mono);color:#666963;margin-top:4px}.thumb-plus{color:#c9cbc4;opacity:0;background:#3a3c3e;border-radius:3px;place-items:center;width:17px;height:17px;transition:all .14s;display:grid;position:absolute;top:3px;right:3px;transform:scale(.88)}.asset-card:hover .thumb-plus{opacity:1;transform:scale(1)}.glyph-board{background:#237758;border:1px solid #4a9776;border-radius:2px;width:25px;height:41px;position:relative}.glyph-board:before,.glyph-board:after{content:"";background:repeating-linear-gradient(#bc9f5b 0 1px,#0000 1px 4px);width:3px;height:30px;position:absolute;top:5px;left:-4px}.glyph-board:after{left:auto;right:-4px}.glyph-board i{background:#aaa;border-radius:2px;width:15px;height:13px;position:absolute;top:8px;left:5px}.glyph-usb{border:4px solid #969995;border-radius:6px;width:32px;height:25px;position:relative}.glyph-usb:after{content:"";background:#35383a;position:absolute;inset:4px 5px}.glyph-bread{background:#d0cec4;border-radius:3px;width:43px;height:24px;position:relative}.glyph-bread:before{content:"";background:radial-gradient(circle,#85877f 1px,#0000 1.3px) 0 0/5px 5px;position:absolute;inset:6px 4px}.glyph-bread i{background:#bb6255;height:1px;position:absolute;top:3px;left:0;right:0}.glyph-bread i+i{background:#6483b6;top:auto;bottom:3px}.glyph-resistor{background:#c6a671;border-radius:5px;width:35px;height:9px;position:relative}.glyph-resistor:before,.glyph-resistor:after{content:"";background:#bbb;width:12px;height:1px;position:absolute;top:4px;left:-11px}.glyph-resistor:after{left:auto;right:-11px}.glyph-pcb{background:#23694f;border-radius:2px;width:37px;height:31px}.glyph-power{font:20px var(--mono);color:#d1ae62}.library-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:center;height:48px;min-height:48px;padding:0 12px;display:flex}.library-bottom>button:first-child{color:#a7aaa2;background:0 0;border:0;align-items:center;gap:7px;font-size:10px;display:flex}.library-bottom>button:first-child svg{color:#67c2a1}.center-stage{background:#191b1e;flex-direction:column;flex:1;min-width:500px;display:flex;position:relative}.workspace-top{background:#1d1f22;border-bottom:1px solid #2b2d31;justify-content:space-between;align-items:center;height:42px;min-height:42px;padding:0 15px;display:flex}.breadcrumbs,.workspace-controls,.view-switch{align-items:center;display:flex}.breadcrumbs{font:9px var(--mono);letter-spacing:.5px;color:#777a74;gap:8px}.breadcrumbs strong{color:#c4c5be;letter-spacing:0;font-weight:400}.workspace-controls{gap:9px}.view-switch{border:1px solid #37393d;border-radius:4px;gap:1px;height:25px;padding:2px}.view-switch button{color:#858781;background:0 0;border:0;border-radius:3px;height:19px;padding:0 8px;font-size:9px}.view-switch button.selected{color:#d8dad4;background:#36383b}.view-switch button svg{vertical-align:middle;margin-right:3px}.canvas-wrap{flex:1;min-height:270px;position:relative;overflow:hidden}.canvas-wrap canvas{width:100%;height:100%;display:block}.scene-badge{color:#acada6;font:8px var(--mono);letter-spacing:.45px;pointer-events:none;background:#202225d9;border:1px solid #37393c;border-radius:4px;align-items:center;gap:7px;padding:7px 9px;display:flex;position:absolute;top:15px;left:16px}.live-dot{background:#62c6a2;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #62c6a277}.scene-divider{background:#4a4c4d;width:1px;height:11px;margin:0 2px}.axis-widget{color:#898c86;width:50px;height:50px;font:8px var(--mono);pointer-events:none;background:#25272acd;border:1px solid #3b3e40;border-radius:50%;place-items:center;display:grid;position:absolute;top:18px;right:18px}.axis-widget div{border:1px solid #737671;border-radius:50%;width:17px;height:17px}.axis-y,.axis-z,.axis-x{position:absolute}.axis-y{color:#ca655e;top:5px}.axis-x{color:#66b68d;bottom:9px;right:7px}.axis-z{color:#7193ce;bottom:9px;left:7px}.canvas-tools{background:#242629df;border:1px solid #383a3d;border-radius:5px;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.canvas-tools button{color:#93958f;background:0 0;border:0;border-radius:3px;place-items:center;width:29px;height:29px;display:grid}.canvas-tools button:hover,.canvas-tools button.tool-selected{color:#70c8a7;background:#37403d}.canvas-tools span{background:#414346;height:1px;margin:2px 4px}.view-cube{font:8px var(--mono);color:#92948e;pointer-events:none;justify-items:center;gap:4px;display:grid;position:absolute;bottom:20px;right:19px}.cube-face{background:#282a2d;border:1px solid #56595a;border-radius:4px;place-items:center;width:36px;height:31px;display:grid;box-shadow:0 3px 10px #0004}.cube-axis{color:#cb675f}.cube-axis span{color:#6795cb;margin-left:5px}.zoom-controls{color:#90928c;font:9px var(--mono);background:#222427db;border:1px solid #37393c;border-radius:4px;align-items:center;gap:8px;padding:4px 5px;display:flex;position:absolute;bottom:85px;right:18px}.zoom-controls button{color:#9da099;background:0 0;border:0;place-items:center;width:21px;height:21px;display:grid}.wire-hint{color:#a9ddc6;background:#28332f;border:1px solid #457663;border-radius:5px;align-items:center;gap:8px;padding:8px 11px;font-size:10px;display:flex;position:absolute;top:15px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0004}.wire-hint button{color:#a9ddc6;background:0 0;border:0;place-items:center;display:grid}.bottom-panel{background:#202225;border-top:1px solid #333538;flex-direction:column;height:222px;min-height:222px;display:flex}.tabs{border-bottom:1px solid #333538;align-items:stretch;gap:5px;height:38px;min-height:38px;padding:0 12px;display:flex}.tabs>button{color:#898b85;background:0 0;border:0;padding:0 12px;font-size:10px;position:relative}.tabs>button.tab-active{color:#d3d5ce}.tabs>button.tab-active:after{content:"";background:#63c4a0;height:2px;position:absolute;bottom:-1px;left:11px;right:11px}.tab-count,.validation-count{font:9px var(--mono);color:#9b9d96;background:#333538;border-radius:8px;margin-left:7px;padding:2px 5px}.validation-count{color:#76c29e}.tabs .collapse-panel{place-items:center;width:26px;margin-left:auto;padding:0;display:grid}.connection-table{flex:1;overflow:auto}.table-heading,.connection-row{grid-template-columns:1.15fr 1.1fr 1.1fr .5fr 20px;align-items:center;gap:12px;padding:0 15px;display:grid}.table-heading{height:27px;font:8px var(--mono);letter-spacing:.65px;color:#747771}.connection-row{color:#afb0a9;height:32px;font:9px var(--mono);cursor:pointer;border-top:1px solid #2f3134}.connection-row:hover,.connection-row.row-selected{background:#292c2e}.connection-row>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.connection-row>span:first-child{color:#d1d2cb}.wire-swatch{border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.connection-row>button{color:#737570;opacity:0;background:0 0;border:0;place-items:center;display:grid}.connection-row:hover>button{opacity:1}.validation-body{flex:1;align-items:center;gap:11px;padding:12px 17px;display:flex}.validation-icon{color:#6dc49c;background:#293a33;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.validation-body div{flex-direction:column;flex:1;gap:4px;display:flex}.validation-body strong{color:#d4d5ce;font-size:10px}.validation-body div span{color:#898b85;font-size:9px}.validation-body button,.empty-tab button{color:#c0c2bb;background:#292b2e;border:1px solid #414346;border-radius:4px;align-items:center;gap:5px;height:27px;padding:0 9px;font-size:9px;display:flex}.empty-tab{color:#858780;flex:1;align-items:center;gap:10px;padding:14px 17px;font-size:10px;display:flex}.empty-tab>svg{color:#9eab9f}.empty-tab textarea{color:#d8d8d2;resize:none;background:#292b2e;border:1px solid #3b3d41;border-radius:4px;flex:1;height:40px;padding:7px;font-size:10px}.reopen-panel{color:#aeb0a9;background:#242629;border:1px solid #393b3f;border-radius:4px;align-items:center;gap:7px;padding:6px 10px;font-size:9px;display:flex;position:absolute;bottom:31px;left:50%;transform:translate(-50%)}.statusbar{color:#777973;height:23px;min-height:23px;font:8px var(--mono);background:#202225;border-top:1px solid #2f3134;align-items:center;gap:16px;padding:0 11px;display:flex}.statusbar>span{align-items:center;gap:5px;display:flex}.status-green{background:#62c19c;border-radius:50%;width:5px;height:5px}.status-spacer{flex:1}.inspector{border-left:1px solid var(--line);width:270px;min-width:270px}.selected-object{background:#232528;border-top:1px solid #303236;border-bottom:1px solid #303236;align-items:center;gap:10px;padding:11px 14px;display:flex}.object-icon{color:#bdc1b6;background:#292b2e;border:1px solid #393b3d;border-radius:4px;place-items:center;width:42px;height:38px;display:grid}.object-icon.thumb-esp32-s3-devkit{padding:0}.selected-object>div:last-child{flex-direction:column;gap:5px;min-width:0;display:flex}.selected-object strong{color:#d9dad3;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.selected-object>div:last-child>span{font:8px var(--mono);letter-spacing:.4px;color:#81837d}.wire-icon{color:#73caaa}.inspector-section{border-bottom:1px solid #303236;padding:13px 14px}.section-title{color:#888a84;font:8px var(--mono);letter-spacing:.75px;justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.section-title>span:not(.unverified-pill){font:8px var(--mono);letter-spacing:0;color:#666963}.field-row{color:#a6a8a1;align-items:center;gap:6px;min-height:29px;font-size:9px;display:flex}.field-row>span{flex:1}.number-input,.text-input{text-align:right;color:#d2d3cc;width:79px;min-width:0;height:23px;font:9px var(--mono);background:#292b2e;border:1px solid #3a3c40;border-radius:3px;outline:0;padding:0 6px}.number-input:focus,.text-input:focus{border-color:#538c76}.field-row small,.field-row code{color:#72746f;width:19px;font:8px var(--mono)}.color-input{background:#292b2e;border:1px solid #424448;border-radius:3px;width:22px;height:18px;padding:1px}.field-row .text-input{text-align:left;width:108px}.field-spacer{height:5px}.property-row{color:#989a94;justify-content:space-between;align-items:center;min-height:25px;font-size:9px;display:flex}.property-row strong{color:#bfc0b9;font:9px var(--mono);font-weight:400}.unverified-pill{color:#d7ad62;font:7px var(--mono);letter-spacing:.3px;background:#3b3326;border:1px solid #6a5937;border-radius:3px;padding:3px 4px}.pin-summary{flex-wrap:wrap;gap:4px;display:flex}.pin-summary span{color:#a8aaa3;font:8px var(--mono);background:#2b2d30;border:1px solid #393b3e;border-radius:3px;padding:3px 5px}.pin-summary button{color:#69bd9d;font:8px var(--mono);background:0 0;border:0}.inspector-bottom{border-top:1px solid #303236;justify-content:space-between;align-items:center;margin-top:auto;padding:10px 13px;display:flex}.inspector-bottom>button:first-child{color:#d28a7e;background:#342927;border:1px solid #513b39;border-radius:4px;align-items:center;gap:6px;height:26px;padding:0 7px;font-size:9px;display:flex}.nothing-selected{text-align:center;color:#747670;flex-direction:column;align-items:center;gap:9px;margin:auto;padding:28px;display:flex}.nothing-selected strong{color:#b4b6af;font-size:11px}.nothing-selected span{max-width:190px;font-size:9px;line-height:1.6}.edge-tab{z-index:2;color:#a2a49e;background:#242629;border:1px solid #414346;place-items:center;width:20px;height:36px;display:grid;position:absolute;top:80px}.left-edge{border-radius:0 4px 4px 0;left:0}.right-edge{border-radius:4px 0 0 4px;right:0}.pin-label{white-space:nowrap;font:7px var(--mono);color:#e2dfd2;background:#151719c9;border-radius:2px;padding:2px 3px}.part-caption{white-space:nowrap;font:8px var(--mono);color:#c1c4b9;background:#202225ce;border-radius:3px;padding:3px 5px}.toast{z-index:10;color:#c0dfcb;background:#283630;border:1px solid #47745f;border-radius:5px;align-items:center;gap:8px;padding:9px 13px;font-size:10px;display:flex;position:fixed;bottom:35px;left:50%;transform:translate(-50%);box-shadow:0 8px 25px #0005}.presentation .center-stage{width:100%}.presentation .workspace-top{color:#555;background:#f5f4ef}.presentation .breadcrumbs strong{color:#333}.presentation .breadcrumbs{color:#777}.presentation .canvas-wrap{background:#f5f4ef}.flipped{transform:rotate(180deg)}@media (width<=1250px){.library{width:225px;min-width:225px}.inspector{width:240px;min-width:240px}.main-nav button{padding:7px 6px}.brand{min-width:240px}.top-actions{min-width:150px}.autosave{font-size:0}.autosave svg{width:17px;height:17px}}.builder-overlay{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#101214e8;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.builder-window{background:#202225;border:1px solid #414347;border-radius:9px;flex-direction:column;width:min(1320px,96vw);height:min(850px,94vh);min-height:600px;display:flex;overflow:hidden;box-shadow:0 22px 90px #0009}.builder-head{border-bottom:1px solid #36383b;justify-content:space-between;align-items:center;height:62px;min-height:62px;padding:0 16px;display:flex}.builder-title,.builder-actions{align-items:center;gap:12px;display:flex}.builder-title h2{font:600 15px var(--display);margin:4px 0 0}.builder-actions{gap:7px}.primary-action,.secondary-action{border-radius:4px;align-items:center;gap:6px;height:30px;padding:0 10px;font-size:10px;display:flex}.secondary-action{color:#c2c4bc;background:#292b2e;border:1px solid #414347}.secondary-action:hover{background:#333639}.primary-action{color:#d5f0df;background:#315342;border:1px solid #549477}.primary-action:disabled{opacity:.6}.builder-body{flex:1;grid-template-columns:390px 1fr;min-height:0;display:grid}.builder-settings{border-right:1px solid #35373a;overflow:auto}.builder-section{border-bottom:1px solid #35373a;padding:13px 15px}.builder-section>.section-title{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.builder-section>.section-title small{color:#777a74;font:8px var(--mono)}.source-options{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.source-options button{color:#a5a7a0;min-height:31px;font:9px var(--mono);background:#292b2e;border:1px solid #393b3f;border-radius:4px;justify-content:center;align-items:center;gap:5px;display:flex}.source-options button.source-active{color:#80c9a7;background:#2b3a33;border-color:#52745f}.help-copy{color:#7e807a;margin:8px 1px 0;font-size:9px;line-height:1.5}.builder-field{color:#a6a8a1;flex-direction:column;gap:5px;margin:9px 0;font-size:9px;display:flex}.builder-field input,.builder-field select{color:#d2d3cc;height:27px;font:10px var(--mono);background:#292b2e;border:1px solid #3c3e42;border-radius:3px;padding:0 7px}.builder-field.inline{flex-direction:row;justify-content:space-between;align-items:center;min-height:27px}.builder-field.inline input:not(.color-input),.builder-field.inline select{text-align:right;width:105px}.builder-field.inline .color-input{width:45px;height:23px;padding:2px}.scale-row{color:#888a84;grid-template-columns:60px 1fr 90px;align-items:center;gap:8px;margin-top:8px;font-size:8px;display:grid}.scale-row input{accent-color:#66bf9c;width:100%}.scale-row small{font:8px var(--mono);text-align:right;color:#8d8f88}.secondary-action.wide{justify-content:center;width:100%;margin-top:8px}.pin-editor{padding-bottom:8px}.pin-editor>.section-title button{color:#8dc5a7;font:8px var(--mono);background:#293b32;border:1px solid #47745d;border-radius:3px;align-items:center;gap:3px;padding:4px 7px;display:flex}.pin-table{max-height:235px;overflow:auto}.pin-head,.pin-edit-row{grid-template-columns:1fr 52px 52px 52px 20px;align-items:center;gap:4px;display:grid}.pin-head{color:#747771;height:22px;font:7px var(--mono)}.pin-edit-row{border-top:1px solid #303236;min-height:32px}.pin-edit-row>div{flex-direction:column;gap:2px;display:flex}.pin-edit-row input{color:#c8cac2;width:100%;height:22px;font:8px var(--mono);background:#292b2e;border:1px solid #3a3c40;border-radius:2px;padding:0 4px}.pin-edit-row>div input{height:18px}.pin-edit-row>button{color:#88716e;background:0 0;border:0;place-items:center;display:grid}.builder-preview{flex-direction:column;min-width:0;display:flex}.preview-head{color:#999b94;height:37px;min-height:37px;font:8px var(--mono);letter-spacing:.55px;border-bottom:1px solid #343639;justify-content:space-between;align-items:center;padding:0 12px;display:flex}.preview-head>span{align-items:center;gap:7px;display:flex}.preview-head button,.preview-footer button{color:#9ea099;background:0 0;border:0;align-items:center;gap:5px;font-size:9px;display:flex}.preview-canvas{flex:1;min-height:300px;position:relative}.preview-canvas canvas{width:100%;height:100%;display:block}.preview-hint,.bounds-label{color:#a5a79f;font:8px var(--mono);pointer-events:none;background:#202225d9;border:1px solid #3a3c3e;border-radius:3px;padding:6px 8px;position:absolute}.preview-hint{bottom:12px;left:12px}.bounds-label{color:#7fc5a5;top:12px;right:12px}.preview-footer{color:#878982;height:36px;min-height:36px;font:8px var(--mono);border-top:1px solid #35373a;align-items:center;gap:17px;padding:0 12px;display:flex}.preview-footer button{font:8px var(--mono);color:#80c5a2;margin-left:auto}.builder-error{color:#e3a08c;background:#402c27;padding:8px 12px;font-size:9px;line-height:1.5}.presentation~.builder-overlay{display:grid}@media (width<=950px){.builder-body{grid-template-columns:330px 1fr}.builder-window{width:98vw}.builder-actions .secondary-action{padding:0 8px;font-size:0}.builder-actions .secondary-action svg{width:15px}}.pin-extra{grid-column:1/-1;grid-template-columns:1fr 1fr auto 34px 34px 34px auto 34px 34px 34px;align-items:center;gap:3px;padding:0 0 5px;display:grid}.pin-extra select,.pin-extra input{width:100%;min-width:0;height:19px;font:7px var(--mono);color:#bfc1b9;background:#292b2e;border:1px solid #3a3c40;border-radius:2px;padding:0 3px}.pin-extra span{font:7px var(--mono);color:#737670}.pin-hit{opacity:.015;pointer-events:auto;pointer-events:auto;background:#f0be65;border:0;border-radius:50%;width:7px;height:7px;padding:0;position:relative;box-shadow:0 0 0 3px #f0be6520}.pin-hit:hover,.pin-hit:focus-visible{opacity:.92;background:#f0be65}.pin-hit .pin-tooltip{color:#f5e7c3;font:10px var(--mono);white-space:nowrap;z-index:20;background:#171a1b;border:1px solid #767050;border-radius:4px;padding:5px 7px;display:none;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0008}.pin-hit:hover .pin-tooltip,.pin-hit:focus-visible .pin-tooltip{flex-direction:column;gap:3px;display:flex}.pin-hit .pin-tooltip small{font:8px var(--mono);color:#c4c7bf}.export-overlay{z-index:20}.export-dialog{background:#232629;border:1px solid #44484a;border-radius:8px;width:min(430px,95vw);box-shadow:0 24px 90px #0009}.export-dialog>header,.export-dialog>footer{border-bottom:1px solid #383b3e;justify-content:space-between;align-items:center;padding:14px 17px;display:flex}.export-dialog>header h2{font:600 16px var(--display);margin:4px 0 0}.export-dialog>footer{border-top:1px solid #383b3e;border-bottom:0;justify-content:flex-end;gap:9px}.export-body{padding:12px 18px}.export-body .builder-field{font-size:11px}.export-body select,.export-body input[type=number]{color:#e1e2da;width:100%;height:32px;font:11px var(--mono);background:#292c2f;border:1px solid #45484b;border-radius:4px;padding:0 8px}.export-dimensions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.export-check{color:#c5c7c0;align-items:center;gap:8px;margin:14px 0;font-size:11px;display:flex}.export-check input{accent-color:#64bd98}.export-body p{color:#8f938c;font-size:10px}.export-dialog>footer .primary-action{cursor:pointer}.theme-select{color:#c4c6c0;background:#25282b;border:1px solid #393c3f;border-radius:4px;max-width:126px;height:27px;padding:0 5px;font-size:8px}.pin-hit{cursor:crosshair}.bend-editor{grid-template-columns:1fr 1fr 1fr 24px;gap:4px;padding:3px 0;display:grid}.bend-editor input{text-align:right;color:#d2d3cc;width:100%;min-width:0;height:22px;font:8px var(--mono);background:#292b2e;border:1px solid #3a3c40;border-radius:3px;padding:0 3px}.bend-editor button,.route-add{color:#92c4a4;background:#282f2b;border:1px solid #3b4440;border-radius:3px}.route-add{margin:4px 0;padding:5px 8px;font-size:8px}:root{--mono:"IBM Plex Mono",monospace;--display:Segoe UI,Arial,sans-serif;font-family:Segoe UI,Arial,sans-serif}.library,.inspector,.bottom-panel{font-size:calc(12px * var(--ui-scale,1))}.asset-name{font-size:calc(12px * var(--ui-scale,1));line-height:1.35}.asset-meta,.asset-detail{font-size:calc(10px * var(--ui-scale,1));line-height:1.5}.asset-card{min-height:80px}.asset-info{min-width:0}.panel-head h2{font-size:16px}.eyebrow,.section-title{font-size:10px}.field-row,.property-row{font-size:calc(11px * var(--ui-scale,1));min-height:32px}.property-row{align-items:flex-start;gap:9px;padding:5px 0}.property-row strong{font:calc(10px * var(--ui-scale,1)) var(--mono);text-align:right;overflow-wrap:anywhere;max-width:65%}.field-row small,.field-row code{font-size:10px}.number-input,.text-input{height:27px;font-size:11px}.selected-object strong{white-space:normal;font-size:12px;line-height:1.4}.selected-object>div:last-child>span{overflow-wrap:anywhere;font-size:9px}.pin-summary span,.pin-summary button{font-size:10px}.inspector{overflow:auto}.inspector-section,.inspector-bottom{flex-shrink:0}.connection-row{font-size:calc(11px * var(--ui-scale,1));height:36px;min-height:36px}.table-heading{font-size:10px}.connections-table{overflow:auto}.workspace-controls button,.theme-select,.view-switch button{font-size:10px}.workspace-controls{flex-wrap:wrap;justify-content:flex-end}.workspace-top{height:auto;min-height:45px;padding-top:6px;padding-bottom:6px}.main-nav button{padding:7px;font-size:11px}.topbar{gap:7px}.file-title{white-space:nowrap;max-width:185px;overflow:hidden}.brand{min-width:250px}.top-actions{min-width:150px}.pin-hit{opacity:.65;background:#f0be65;width:11px;height:11px}.pin-hit .pin-tooltip,.part-caption{font-size:11px}.pin-hit .pin-tooltip small{font-size:10px}.pin-summary .bend-editor{grid-template-columns:42px 44px 1fr 1fr 1fr;width:100%}.pin-summary .bend-editor input{font-size:10px}.pin-summary .bend-editor small{font-size:9px}.model-status{color:#c7ddd0;background:#202626e8;border:1px solid #527564;border-radius:5px;width:180px;padding:9px;font-size:11px;display:block}.viewport-loading{color:#b4c8bb;place-items:center;height:100%;font-size:14px;display:grid}.performance-monitor{z-index:5;pointer-events:none;color:#bfd4c7;font:10px var(--mono);background:#121a18e8;border:1px solid #4a7561;border-radius:5px;flex-direction:column;gap:5px;padding:11px 13px;display:flex;position:absolute;top:48px;left:12px}.performance-monitor strong{color:#86d8ae;font-size:11px}.processing-status{z-index:70;color:#e0f2e4;background:#294034;border:1px solid #638c70;border-radius:6px;padding:13px 20px;font-size:13px;position:fixed;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0008}.settings-dialog,.replacement-dialog{color:#d6ded8;background:#232729;border:1px solid #4b5351;border-radius:8px;width:min(640px,95vw);max-height:90vh;padding:20px;font-size:12px;overflow:auto;box-shadow:0 20px 80px #0008}.settings-dialog{width:min(440px,95vw)}.settings-dialog header,.replacement-dialog header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.settings-dialog h2,.replacement-dialog h2{margin:0;font-size:18px}.settings-dialog header button,.replacement-dialog header button{background:0 0;border:0;font-size:24px}.settings-dialog label,.replacement-dialog label{justify-content:space-between;align-items:center;gap:12px;min-height:26px;margin:12px 0;display:flex}.settings-dialog select,.settings-dialog input[type=number],.replacement-dialog select{color:#dbe7df;background:#1c2220;border:1px solid #4a5750;border-radius:4px;max-width:220px;height:30px;padding:0 7px;font-size:12px}.settings-dialog input[type=number]{width:80px}.settings-dialog input,.replacement-dialog input{accent-color:#75c7a2}.settings-dialog p,.replacement-dialog p{color:#a8b8ae;font-size:12px;line-height:1.6}.quality-presets{grid-template-columns:repeat(4,1fr);gap:5px;margin:18px 0;display:grid}.quality-presets button{background:#29332e;border:1px solid #45554a;border-radius:4px;padding:9px 4px;font-size:12px}.quality-presets .chosen{color:#b1e7c7;background:#35513e;border-color:#8bcdab}.settings-dialog footer,.replacement-dialog footer{border-top:1px solid #3e4842;justify-content:flex-end;gap:9px;margin-top:16px;padding-top:16px;display:flex}.replacement-dialog table{border-collapse:collapse;width:100%;font-size:12px}.replacement-dialog td,.replacement-dialog th{text-align:left;border-bottom:1px solid #3d4841;padding:9px 7px}.replacement-dialog td small{color:#aabdb0;margin-top:4px;font-size:10px;display:block}.replacement-dialog th{color:#b7cabb;font-size:11px}.replacement-dialog td:last-child{color:#d6bf87;font-size:10px}.replacement-dialog select{max-width:250px}.presentation .performance-monitor{display:none}.wroom-pinout .help-copy{font-size:11px;line-height:1.5}.pinout-actions{gap:6px;margin:9px 0;display:flex}.pinout-actions .secondary-action{flex:1;justify-content:center;padding:0 7px;font-size:11px}.verified-pin-badge{color:#a9dfba;background:#284735;border:1px solid #527e5e;border-radius:3px;padding:3px 5px;font-size:9px}.pinout-search{color:#dae8de;background:#1d2421;border:1px solid #4a5950;border-radius:4px;width:100%;height:30px;margin:4px 0 9px;padding:0 8px;font-size:11px}.wroom-pin-table{border-top:1px solid #3e4a42;max-height:380px;overflow:auto}.wroom-pin-row{border-bottom:1px solid #354139;grid-template-columns:35px 1fr;gap:7px;padding:9px 0;display:grid}.pinout-connect{color:#b5e5c5;font:10px var(--mono);background:#2c3c33;border:1px solid #53765e;border-radius:4px;align-self:start;padding:5px 2px}.pinout-description{flex-direction:column;gap:3px;min-width:0;display:flex}.pinout-description strong{font:11px var(--mono);color:#dcebe0}.pinout-description small{color:#a6b9ac;overflow-wrap:anywhere;font-size:10px}.pinout-note{color:#bcbfa6;font-size:10px;line-height:1.45}.reserved-pin{color:#efc284}.pinout-calibration{grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.pinout-calibration label{color:#a8bbaa;align-items:center;gap:3px;font-size:10px;display:flex}.pinout-calibration input{color:#dce9df;width:100%;min-width:0;height:25px;font:10px var(--mono);background:#202923;border:1px solid #495e4e;border-radius:3px;padding:0 3px}.pinout-calibration small{color:#b5cdbd;grid-column:1/-1;font-size:10px}.pinout-reference{color:#91c9a5;margin-top:8px;font-size:11px;line-height:1.5;display:block}.pin-hit .pin-note{white-space:normal;color:#e6cfa6;max-width:225px;font-size:10px;line-height:1.45;display:block}.resistor-note{color:#a5aaa3;font-size:10px;line-height:1.6}.resistor-actions{gap:6px;margin-top:8px;display:flex}.verified-pill{font:7px var(--mono);color:#83d0aa;background:#293a32;border:1px solid #43765f;border-radius:3px;padding:3px 4px}.rotation-field>label{white-space:nowrap;flex:1}.rotation-actions{gap:3px;display:flex}.rotation-actions button{color:#aebbb1;background:#292b2e;border:1px solid #3a3c40;border-radius:3px;place-items:center;width:22px;height:23px;padding:0;display:grid}.rotation-actions button:hover{color:#85d4b0;background:#303e37;border-color:#538c76}.rotation-actions button:active{background:#3b5146}.rotation-field .number-input{width:63px}.wroom-pin-row[data-esp30-pin]{grid-template-columns:46px 1fr}.wroom-pin-row[data-esp30-pin] .pinout-connect{white-space:nowrap;font-size:9px}.connection-row>button.net-visibility{opacity:1;color:#91a89a;border-radius:4px;width:26px;height:26px}.connection-row>button.net-visibility:hover{color:#b8e4cc;background:#39443e}.connection-row.wire-hidden>span{opacity:.45}.connection-row.wire-hidden>button.net-visibility{color:#777e79}.wire-animation-controls{border-bottom:1px solid #333538;align-items:center;gap:6px;min-height:35px;padding:5px 13px;display:flex}.wire-animation-controls button{color:#c4cdc5;background:#292e2c;border:1px solid #414a45;border-radius:4px;flex-shrink:0;align-items:center;gap:5px;padding:5px 8px;font-size:10px;display:flex}.wire-animation-controls button:hover:not(:disabled),.wire-animation-controls button.playing{color:#a8dfbf;background:#30473b;border-color:#5e9277}.wire-animation-controls>span{white-space:nowrap;text-overflow:ellipsis;color:#8e9b90;min-width:0;margin-left:auto;font-size:9px;overflow:hidden}.net-select{accent-color:#67c39b;cursor:pointer;width:13px;height:13px;margin:0}.net-select:disabled{cursor:default;opacity:.35}.connection-row>span:nth-child(2){color:#d1d2cb}.wire-animation-controls{flex-wrap:wrap}.wire-animation-controls>span[role=status]{text-align:right;flex:1}.canvas-wrap.move-mode canvas{cursor:grab}.move-hint{flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100% - 110px)}.move-hint .move-top-view{white-space:nowrap;border:1px solid #5d8e75;border-radius:3px;padding:3px 7px;display:block}.move-hint>span{color:#8fb49f;font-size:9px}.net-reorder{color:#70736f;cursor:grab;touch-action:none;background:0 0;border:0;place-items:center;width:18px;height:25px;padding:0;display:grid}.net-reorder:hover{color:#a9d4bd;background:#303a34}.net-reorder:active{cursor:grabbing}.net-dragging{opacity:.42}.net-drop-target{border-top:1px solid #73c9a2}.table-heading,.connection-row{grid-template-columns:18px 18px 1.15fr 1.1fr 1.1fr .8fr .5fr 26px 20px}.direction-select{color:#d8e3da;background:#202722;border:1px solid #414b44;border-radius:4px;width:100%;min-width:86px;height:27px;padding:0 5px;font-size:10px}.video-dialog{color:#e7ecf2;background:#20252c;border:1px solid #48515c;border-radius:12px;width:820px;max-width:94vw;max-height:90vh;padding:22px;overflow:auto;box-shadow:0 24px 100px #0008}.video-fields{grid-template-columns:1fr 1fr;gap:14px;margin:16px 0;display:grid}.video-fields label{flex-direction:column;gap:6px;font-size:13px;display:flex}.video-fields select,.video-fields input[type=number],.video-dialog>select{color:#edf3f9;background:#14191f;border:1px solid #47515d;border-radius:5px;padding:8px}.video-fields .video-check{flex-direction:row;align-items:center}.video-actions{gap:10px;margin:15px 0;display:flex}.video-dialog button,.video-status button{color:#eaf5ed;cursor:pointer;background:#354439;border:1px solid #586c5e;border-radius:5px;padding:8px 12px}.video-dialog button:disabled{opacity:.4;cursor:default}.video-preview canvas{width:100%;height:auto}.video-dialog input[type=range]{width:100%;display:block}.video-status{z-index:1000;color:#f0f4fa;background:#17212cf5;border:1px solid #587364;border-radius:10px;width:600px;max-width:90vw;padding:18px 24px;font-size:14px;position:fixed;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 10px 50px #0009}.video-status progress{width:70%;margin-right:20px}.video-status p{max-height:120px;overflow:auto}.video-dialog .panel-head{padding:0}.video-dialog .panel-head h2{margin:0}.video-dialog{z-index:2501;position:relative}.topbar:has(.video-dialog){z-index:2500}.topbar:has(.video-dialog) .modal-backdrop{z-index:2500;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.main-nav button[title="Generate a finished wiring video"]{color:#a9e8c9;background:#2b473b;font-weight:600}.wire-tooltip{border:1px solid #56616a;border-top:2px solid var(--wire-accent);color:#edf2f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:304px;max-width:min(304px,70vw);font-family:var(--display);text-align:left;white-space:normal;overflow-wrap:anywhere;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:8;background:#192128f2;border-radius:10px;padding:13px 14px 14px;position:relative;top:-92px;box-shadow:0 14px 38px #000a,0 2px 8px #0007}.wire-tooltip:after{content:"";background:#192128;border-bottom:1px solid #56616a;border-right:1px solid #56616a;width:9px;height:9px;position:absolute;bottom:-6px;left:calc(50% - 5px);transform:rotate(45deg)}.wire-tooltip-heading{color:#aebbb8;font:600 9px var(--mono);letter-spacing:1.3px;align-items:center;gap:7px;display:flex}.wire-tooltip-swatch{background:var(--wire-accent);width:9px;height:9px;box-shadow:0 0 0 3px color-mix(in srgb,var(--wire-accent) 22%,transparent);border-radius:50%;flex:none}.wire-tooltip-title{font:600 13px/1.25 var(--display);color:#f5f7f5;max-height:34px;margin:8px 0 11px;overflow:hidden}.wire-tooltip-route{border-top:1px solid #414d52;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:8px;padding-top:10px;display:grid}.wire-tooltip-endpoint{flex-direction:column;gap:3px;min-width:0;line-height:1.25;display:flex}.wire-tooltip-endpoint small{color:#88a49a;font:600 9px var(--mono);letter-spacing:.7px}.wire-tooltip-endpoint strong{color:#dce9e3;font-size:11px;font-weight:600;line-height:1.25}.wire-tooltip-endpoint>span{color:#b5c3c0;font:10px/1.25 var(--mono)}.wire-tooltip-arrow{width:20px;height:20px;color:var(--wire-accent);white-space:nowrap;justify-content:center;align-items:center;line-height:1;display:flex;overflow:hidden}.video-background-panel{background:linear-gradient(145deg,#202a34,#18212a);border:1px solid #3d4b57;border-radius:8px;grid-column:1/-1;gap:10px;min-width:0;padding:13px;display:grid}.background-preview{background-position:50%;background-size:cover;border:1px solid #71808a;border-radius:6px;height:138px;position:relative;overflow:hidden}.background-preview svg{fill:none;stroke:#e0a66d;stroke-width:3px;filter:drop-shadow(0 1px 3px #0009);width:100%;height:100%;position:absolute;inset:0}.preview-board,.preview-breakout,.preview-supply,.preview-chip{z-index:1;position:absolute;box-shadow:0 4px 14px #0007}.preview-board{background:linear-gradient(140deg,#17241e,#304d3a);border:2px solid #6ca68c;border-radius:4px;width:31%;height:27%;top:39%;left:10%}.preview-board:after{content:"";border:1px solid #d9c994;border-radius:2px;position:absolute;inset:20% 13%}.preview-breakout{background:linear-gradient(145deg,#555f67 0 30%,#1c6f54 31%);border:2px solid #d44b42;border-radius:4px;width:15%;height:39%;top:35%;right:18%}.preview-supply{background:#313a42;border:1px solid #8e9aa0;border-radius:5px;width:17%;height:19%;bottom:11%;right:4%}.preview-chip{color:#f1f4f2;font:600 9px var(--mono);letter-spacing:.04em;background:#192128f5;border:1px solid #9aaaae;border-radius:5px;padding:6px 8px;top:10%;left:4%}.background-summary{justify-content:space-between;align-items:center;gap:10px;display:flex}.background-summary>div{gap:3px;display:grid}.background-summary span{color:#94a8b5;font:600 9px var(--mono);letter-spacing:.12em}.background-summary strong{color:#edf4f6;font-size:12px}.background-summary i{background-size:cover;border:1px solid #7e8c95;border-radius:5px;flex:none;width:50px;height:28px}.background-subcontrols{border-top:1px solid #374652;grid-template-columns:1fr 1fr;gap:8px 10px;padding-top:9px;display:grid}.background-subcontrols label{color:#c6d1d7;justify-content:space-between;align-items:center;gap:8px;min-width:0;margin:0;font-size:11px;display:flex}.background-subcontrols input[type=color]{background:#141b21;border:1px solid #52616c;border-radius:4px;width:44px;height:28px;padding:2px}.background-subcontrols input:not([type=color]):not([type=range]),.background-subcontrols select{color:#edf3f6;width:106px;max-width:55%;height:29px;font:11px var(--mono);background:#141b21;border:1px solid #475662;border-radius:4px;padding:0 7px}.background-subcontrols input.invalid-color{box-shadow:0 0 0 1px #df716866;border-color:#df7168!important}.background-subcontrols input[type=range]{accent-color:#91c6b5;width:100%}.background-subcontrols output{color:#e5cf9a;font:11px var(--mono)}.background-subcontrols>button,.reset-background{color:#d7e2e7;background:#25323c;border:1px solid #52616c;border-radius:4px;justify-self:start;padding:6px 9px;font-size:10px}.background-subcontrols>small,.background-note{color:#edc98e;grid-column:1/-1;margin:0;font-size:10px;line-height:1.5}.background-toggles{align-items:center}.background-toggles label.video-check{justify-content:flex-start}.reset-background{justify-self:end}.video-fields .background-subcontrols .video-check input{accent-color:#7bd0aa}@media (width<=650px){.video-fields{grid-template-columns:1fr}.background-subcontrols{grid-template-columns:1fr 1fr}.video-background-panel{grid-column:1}}.background-subcontrols small.color-rgb{color:#a9c8bb;font:10px var(--mono);grid-column:auto;align-self:center}.video-lighting-panel{background:#1a242d;border:1px solid #3d4b57;border-radius:8px;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:10px 16px;padding:13px;display:grid}.video-lighting-panel h3{color:#e2ebef;grid-column:1/-1;margin:0;font-size:13px}.video-lighting-panel p{color:#aebdc5;grid-column:1/-1;margin:0;font-size:11px}.video-lighting-panel label{color:#c6d1d7;grid-template-columns:1fr auto;align-items:center;gap:4px 10px;font-size:11px;display:grid}.video-lighting-panel label input{accent-color:#91c6b5;grid-column:1/-1;width:100%}.video-lighting-panel output{color:#e5cf9a;font:11px var(--mono)}.video-lighting-panel button{grid-column:1/-1;justify-self:end}.background-summary small{color:#9eafb8;font:9px var(--mono);overflow-wrap:anywhere}.ic-pin-list{max-height:320px;padding-right:4px;overflow-y:auto}.ic-pin-list .field-row{margin-bottom:5px}.bulk-route-control{color:#aab8ae;font:9px var(--mono);white-space:nowrap;align-items:center;gap:6px;margin-left:auto;display:flex}.bulk-route-control select{color:#d4e4d7;min-width:125px;height:24px;font:9px var(--mono);background:#28362e;border:1px solid #4a5a50;border-radius:4px;outline:0;padding:0 5px}.bulk-route-control select:focus-visible{border-color:#7fc8a0}.bulk-route-control select:disabled{opacity:.45}.wire-animation-controls>span[role=status]{margin-left:0}
