:root{--bg: #161b21;--chrome: #12171c;--panel: #1c232b;--raised: #2c3541;--line: #2c3540;--viewport: #12171d;--text: #e9edf1;--muted: #a7b3bf;--dim: #7d8997;--ai: #c9beff;--ai-bg: #231f38;--ai-line: #3b3463;--ok: #5ccb8f;--warn: #f2a93b;--err: #ff5d52;--pcb: #1f3a5f;--shield: #c9ced4;--gold: #d9b45a;--pin-power: #ff6b5e;--pin-ground: #8a96a3;--pin-sda: #3fb6e8;--pin-scl: #9adcf7;--pin-spi: #e07bd4;--pin-uart: #f2a93b;--pin-gpio: #5ccb8f;--pin-adc: #e8d24a;--font-ui: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--topbar-h: 56px;--rail-w: 208px;--right-w: 400px;--log-h: 250px;--radius: 8px;--radius-sm: 5px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow:hidden;user-select:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.45}input,textarea,select{font:inherit;color:var(--text)}textarea,input.text-in,select.select{background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 9px;outline:none;user-select:text}textarea:focus,input.text-in:focus{border-color:var(--ai-line)}textarea{resize:none;width:100%}.mono{font-family:var(--font-mono)}.dim{color:var(--dim)}.muted{color:var(--muted)}.small{font-size:11.5px}.big{font-size:16px;font-weight:600}.row{display:flex;align-items:center}.row.between{justify-content:space-between}.gap{gap:8px}.wrap{flex-wrap:wrap}.pre{white-space:pre-wrap}.err-text{color:var(--err)}.clickable{cursor:pointer}.label{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin:12px 0 6px}.empty{color:var(--dim);padding:12px 4px}.fatal{padding:40px}.shell{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr) var(--right-w);grid-template-rows:var(--topbar-h) minmax(0,1fr) var(--log-h);height:100vh}.topbar{grid-column:1 / -1;grid-row:1}.rail{grid-column:1;grid-row:2 / 4}.center{grid-column:2;grid-row:2;min-height:0;position:relative;overflow:hidden}.right{grid-column:3;grid-row:2 / 4;min-height:0;border-left:1px solid var(--line);background:var(--panel);position:relative}.bottom{grid-column:2;grid-row:3;min-height:0;border-top:1px solid var(--line);position:relative}.topbar{display:flex;align-items:center;gap:18px;padding:0 14px 0 18px;background:var(--chrome);border-bottom:1px solid var(--line);-webkit-app-region:drag}.topbar button,.topbar .chip{-webkit-app-region:no-drag}.brand{display:flex;align-items:center;gap:9px;font-weight:600;font-size:14.5px;width:124px}.logo{width:22px;height:22px;border-radius:6px;background:var(--pcb);display:grid;place-items:center;border:1px solid #36557c}.logo span{width:10px;height:10px;border-radius:2px;background:var(--shield);box-shadow:0 0 0 2px var(--gold)}.conn{display:flex;align-items:center;gap:10px;flex:1;min-width:0;white-space:nowrap;overflow:hidden}.dot{width:8px;height:8px;border-radius:50%;background:var(--dim)}.dot.ok{background:var(--ok);box-shadow:0 0 8px var(--ok)}.progress{display:flex;align-items:center;gap:8px;min-width:260px}.progress .bar{flex:1;height:6px;background:var(--raised);border-radius:3px;overflow:hidden;min-width:90px}.progress .bar i{display:block;height:100%;background:var(--ai);transition:width .2s}.top-actions{display:flex;align-items:center;gap:8px}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;background:var(--raised);color:var(--muted);font-size:11px;border:1px solid transparent;white-space:nowrap}.chip.link{cursor:pointer}.chip.link:hover{border-color:var(--ai-line);color:var(--text)}.ok-chip{color:var(--ok);border-color:#2c5a43;background:#1b2d25}.sim-chip{color:var(--warn);border-color:#5a4323;background:#2d2518}.ai-chip{color:var(--ai);border-color:var(--ai-line);background:var(--ai-bg)}.chips{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block;flex-shrink:0}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--radius-sm);background:var(--raised);border:1px solid #38434f;font-weight:500;white-space:nowrap}.btn:hover:not(:disabled){background:#36414f}.btn.small{padding:4px 9px;font-size:12px}.btn.primary{background:#2f6f53;border-color:#3c8a67;color:#eafff4}.btn.primary:hover:not(:disabled){background:#378060}.btn.ghost{background:transparent;border-color:var(--line)}.btn.danger{color:var(--err);border-color:#5a2a28;background:transparent}.btn.ai{background:var(--ai-bg);border-color:var(--ai-line);color:var(--ai)}.btn.icon{padding:6px;background:transparent;border-color:transparent}.btn.icon.ai{background:var(--ai-bg);border-color:var(--ai-line)}.btn.on{border-color:var(--ai-line);color:var(--ai)}.btn.rec{color:var(--err);border-color:#5a2a28}.link{background:none;border:none;padding:0;color:var(--ai);display:inline-flex;align-items:center;gap:6px}.link:hover{text-decoration:underline}.close{background:none;border:none;color:var(--dim);font-size:18px;line-height:1;padding:0 4px}.seg{display:inline-flex;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.seg button{background:none;border:none;padding:4px 10px;font-size:12px;color:var(--muted)}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--raised);color:var(--text)}.rail{background:var(--chrome);border-right:1px solid var(--line);padding:12px 10px;display:flex;flex-direction:column;gap:2px}.rail-sep{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin:14px 8px 6px}.rail-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);background:none;border:none;color:var(--muted);text-align:left;position:relative}.rail-item:hover{background:var(--panel);color:var(--text)}.rail-item.on{background:var(--raised);color:var(--text)}.rail-item.on:before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--ok)}.rail-num{position:absolute;right:10px;font-size:10px;color:var(--dim)}.viewport{position:absolute;inset:0;background:var(--viewport)}.viewport canvas{outline:none}.vp-toolbar{position:absolute;top:12px;left:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.vp-toolbar .tb{background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px 10px;font-size:12px;color:var(--muted)}.vp-toolbar .tb.on{color:var(--text);background:var(--raised)}.vp-toolbar .tb.on.ai{color:var(--ai);border-color:var(--ai-line);background:var(--ai-bg)}.badges{position:absolute;top:12px;right:12px;display:flex;gap:6px}.badge{padding:3px 9px;border-radius:20px;font-size:11.5px;background:var(--chrome);border:1px solid var(--line)}.badge.sim{color:var(--warn)}.badge.live{color:var(--ok)}.badge.err{color:var(--err);border-color:#5a2a28}.badge.warn{color:var(--warn);border-color:#5a4323}.wire-hint{position:absolute;top:52px;left:12px;background:var(--ai-bg);border:1px solid var(--ai-line);color:var(--ai);padding:5px 10px;border-radius:var(--radius-sm)}.legend{position:absolute;bottom:10px;left:12px;display:flex;gap:12px;font-size:11px;color:var(--muted);background:#12171dcc;padding:5px 10px;border-radius:var(--radius-sm)}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.pin-label{font-family:var(--font-mono);font-size:9.5px;color:var(--text);background:#12171dd9;border:1px solid;border-radius:3px;padding:0 3px;white-space:nowrap;transform:scale(.95)}.pin-label.small{font-size:8.5px}.pin-label.hot{background:var(--ai-bg);color:#fff}.part-label{font-size:11px;color:var(--muted);white-space:nowrap;background:#12171dbf;padding:1px 6px;border-radius:4px}.part-label.sev-error{color:var(--err)}.part-label.sev-warning{color:var(--warn)}.tag-suggestion{margin-left:6px;color:var(--ai);font-size:10px}.pinout-wrap{position:absolute;inset:44px 12px 40px;display:grid;place-items:center}.pinout2d{width:100%;height:100%}.svg-pin{cursor:pointer}.svg-pin-label{font-family:var(--font-mono);font-size:13px;fill:var(--text)}.svg-pin-fn{font-family:var(--font-mono);font-size:11px;fill:var(--dim)}.svg-pin-mv{font-family:var(--font-mono);font-size:9px;fill:#111;font-weight:600}.svg-comp-label{font-size:12px;fill:#d5dbe2;font-family:var(--font-ui)}.info-card{position:absolute;right:12px;top:48px;width:300px;max-height:calc(100% - 100px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;box-shadow:0 10px 30px #0006;user-select:text}.info-card .close{position:absolute;right:8px;top:6px}.card-head{display:flex;align-items:center;gap:8px}.card-note{color:var(--muted);margin:6px 0}.card-flag{margin:6px 0;padding:6px 8px;border-radius:var(--radius-sm);font-size:12px;background:var(--chrome);border-left:3px solid var(--dim)}.card-flag.warn{border-left-color:var(--warn)}.card-flag.err{border-left-color:var(--err)}.card-flag.info{border-left-color:var(--pin-sda)}.card-section{margin:10px 0}.card-section .label{margin-top:0}.src{color:var(--ok);font-size:10.5px;margin-left:6px;font-family:var(--font-mono)}.log-panel{display:flex;flex-direction:column;height:100%;background:var(--panel)}.log-panel header{display:flex;align-items:center;gap:14px;padding:8px 12px;border-bottom:1px solid var(--line)}.panel-title{font-weight:600;font-size:13px}.filters{display:flex;gap:2px;flex:1}.filters button{background:none;border:none;color:var(--dim);font-size:11.5px;padding:2px 8px;border-radius:12px}.filters button.on{background:var(--raised);color:var(--text)}.log-list{flex:1;overflow:auto;padding:4px 0;font-size:12px;user-select:text}.log-row{display:flex;align-items:baseline;gap:10px;padding:3px 12px}.log-row.clickable:hover{background:var(--raised)}.log-time{color:var(--dim);font-size:11px;flex-shrink:0}.log-type{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;width:58px;flex-shrink:0}.t-info{color:var(--dim)}.t-check{color:var(--pin-sda)}.t-found{color:var(--ok)}.t-warning{color:var(--warn)}.t-failed{color:var(--err)}.t-action{color:var(--ai)}.log-text{flex:1;min-width:0}.log-target{color:var(--ai);font-size:11px;white-space:nowrap}.log-src{color:var(--dim);font-size:10.5px;font-family:var(--font-mono);white-space:nowrap;margin-left:6px}.log-src.measured{color:var(--ok)}.right-split{display:flex;flex-direction:column;height:100%}.right-top{flex:1 1 60%;min-height:0;overflow:auto;border-bottom:1px solid var(--line)}.right-bottom{flex:0 0 var(--assistant-h, 40%);min-height:0;position:relative}.right-bottom.small-assistant{flex-basis:var(--assistant-h, 30%)}.wizard{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.wiz-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.wiz-progress{height:4px;background:var(--raised);border-radius:2px;overflow:hidden}.wiz-progress i{display:block;height:100%;background:var(--ok);transition:width .3s}.wiz-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.ws{display:grid;grid-template-columns:18px 1fr;column-gap:6px;padding:3px 4px;border-radius:4px;color:var(--dim);font-size:12px}.ws.cur{background:var(--chrome);color:var(--text)}.ws-icon{display:grid;place-items:center}.ws-ok .ws-icon{color:var(--ok)}.ws-warning .ws-icon{color:var(--warn)}.ws-failed .ws-icon{color:var(--err)}.ws-ok,.ws-warning,.ws-failed{color:var(--muted)}.ws-sum{grid-column:2;font-size:11.5px;color:var(--dim)}.step-card{background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.step-card h3{margin:4px 0 6px;font-size:15px}.step-card p{margin:6px 0;color:var(--muted)}.step-card.s-failed{border-color:#5a2a28}.step-kicker{display:flex;align-items:center;gap:8px}.options{display:flex;flex-direction:column;gap:6px;margin-top:8px}.option{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:2px}.option:hover{border-color:#4a5868;background:var(--raised)}.option span{color:var(--dim);font-size:12px}.free-text{margin-top:6px}.confirm-details{color:var(--muted);padding-left:18px;margin:8px 0 12px}.failed-box{margin-top:8px}.result-card{background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:6px;user-select:text}.result-card h3{margin:2px 0;font-size:16px}.result-card p{margin:0;color:var(--muted)}.evidence{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.evidence li{background:var(--panel);border-radius:var(--radius-sm);padding:5px 8px;font-size:12px}.evidence li.clickable:hover{background:var(--raised)}.next-steps{margin:0;padding-left:18px;color:var(--text)}.conf{font-size:10.5px;font-family:var(--font-mono);padding:1px 7px;border-radius:10px;text-transform:uppercase;letter-spacing:.03em}.conf-measured{color:var(--ok);background:#1b2d25;border:1px solid #2c5a43}.conf-documented{color:var(--pin-sda);background:#172a36;border:1px solid #25506a}.conf-suggestion{color:var(--ai);background:var(--ai-bg);border:1px solid var(--ai-line)}.input-picker{display:flex;flex-direction:column;gap:4px}.picker-block .label{margin-top:8px}.lib-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.lib-item{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 9px;display:flex;flex-direction:column;gap:1px}.lib-item:hover{border-color:#4a5868}.lib-item b{font-size:12px;font-weight:500}.lib-item span{font-size:11px;color:var(--dim)}.findings{display:flex;flex-direction:column;gap:5px}.finding{text-align:left;background:var(--chrome);border:1px solid var(--line);border-left-width:3px;border-radius:var(--radius-sm);padding:6px 9px;display:flex;flex-direction:column;gap:2px;font-size:12px}.finding span{color:var(--dim)}.finding.sev-error{border-left-color:var(--err)}.finding.sev-warning{border-left-color:var(--warn)}.finding.sev-info{border-left-color:var(--pin-sda)}pre.code,pre.md{background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px;font-family:var(--font-mono);font-size:11px;overflow:auto;max-height:340px;user-select:text;white-space:pre}pre.md{white-space:pre-wrap;max-height:none}.assistant{display:flex;flex-direction:column;height:100%;background:var(--panel)}.assistant header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line)}.ai-title{color:var(--ai);display:flex;align-items:center;gap:6px}.ai-list{flex:1;overflow:auto;padding:10px 14px;display:flex;flex-direction:column;gap:10px;user-select:text}.ai-empty{color:var(--dim);background:var(--ai-bg);border:1px solid var(--ai-line);border-radius:var(--radius);padding:10px 12px}.ai-user{align-self:flex-end;background:var(--raised);border-radius:10px 10px 2px;padding:7px 10px;max-width:85%}.ai-reply{background:var(--ai-bg);border:1px solid var(--ai-line);border-radius:10px 10px 10px 2px;padding:9px 11px;display:flex;flex-direction:column;gap:6px}.ai-text{white-space:pre-wrap}.ai-sources{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--ai-line);padding-top:6px}.src-line{font-size:11px;color:var(--muted)}.src-line span{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;margin-right:6px}.src-measurement span{color:var(--ok)}.src-datasheet span,.src-library span{color:var(--pin-sda)}.src-user span{color:var(--ai)}.ai-tools summary{font-size:11px;color:var(--dim);cursor:pointer}.next-options{display:flex;flex-wrap:wrap;gap:5px}.ai-error{color:var(--err);font-size:12px}.ai-thinking{color:var(--ai);font-size:12px}.ask-box{display:flex;gap:6px;align-items:flex-end;padding:10px 14px;border-top:1px solid var(--line)}.wizard .ask-box,.free-text .ask-box,.describe .ask-box{padding:0;border-top:none}.ask-box.big textarea{font-size:14px}.photo-input{margin-top:6px}.photo-card{display:flex;gap:10px;background:var(--ai-bg);border:1px solid var(--ai-line);border-radius:var(--radius);padding:8px}.photo-card img{width:84px;height:84px;object-fit:cover;border-radius:var(--radius-sm)}.photo-body{flex:1;display:flex;flex-direction:column;gap:4px}.photo-body p{margin:0}.spinner{width:12px;height:12px;border-radius:50%;border:2px solid var(--raised);border-top-color:var(--ai);animation:spin .8s linear infinite;display:inline-block}.spinner.sm{width:10px;height:10px}@keyframes spin{to{transform:rotate(360deg)}}.modal-back{position:fixed;inset:0;background:#080a0d99;display:grid;place-items:center;z-index:100}.modal{width:460px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px 24px;box-shadow:0 24px 60px #00000080}.modal-icon{color:var(--warn)}.modal h2{margin:6px 0 8px;font-size:18px}.modal p{color:var(--muted);margin:0 0 8px}.modal ul{color:var(--text);padding-left:18px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.modal-foot{font-size:11.5px;margin-top:12px!important;color:var(--dim)!important}.devmenu{position:fixed;top:60px;right:12px;width:360px;max-height:calc(100vh - 80px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;z-index:50;box-shadow:0 16px 40px #00000073}.dev-head{display:flex;justify-content:space-between;align-items:center}.scenarios{display:flex;flex-direction:column;gap:4px}.scenario{text-align:left;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 9px;display:flex;flex-direction:column}.scenario span{font-size:11px;color:var(--dim)}.scenario.on{border-color:var(--ai-line);background:var(--ai-bg)}.home{position:absolute;inset:0;overflow:auto}.home-inner{max-width:980px;margin:0 auto;padding:36px 32px}.home h1{font-size:26px;margin:0 0 4px;font-weight:600}.lead{color:var(--muted);margin:0 0 22px}.task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.task-card{position:relative;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:4px;min-height:118px}.task-card:hover{border-color:#4a5868;background:#202831}.task-card b{font-size:14px;font-weight:600;margin-top:6px}.task-card span{color:var(--dim);font-size:12px}.task-icon{width:38px;height:38px;border-radius:9px;background:var(--raised);display:grid;place-items:center;color:var(--ok)}.task-num{position:absolute;top:12px;right:14px;color:var(--dim)!important}.describe{margin:22px 0;background:var(--ai-bg);border:1px solid var(--ai-line);border-radius:10px;padding:12px 14px 14px}.describe .label{margin-top:0;color:var(--ai)}.home-status{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.status-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:3px;min-width:0}.status-card .label{margin:0 0 2px}.status-card .mono.small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen-scroll{position:absolute;inset:0;overflow:auto;padding:18px 20px 30px}.screen-head h2{margin:0;font-size:20px}.screen-head p{margin:2px 0 14px}.gate{background:var(--panel);border:1px dashed #4a5868;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin-bottom:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;min-width:0}.card.wide{grid-column:1 / -1}.card-title{font-weight:600;display:flex;align-items:center;gap:10px}.card-title .check{margin-left:auto;display:flex;gap:4px;align-items:center;font-weight:400}.test-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.addr-grid{display:grid;grid-template-columns:repeat(16,1fr);gap:3px}.addr{font-family:var(--font-mono);font-size:10px;text-align:center;padding:3px 0;border-radius:3px;background:var(--chrome);color:var(--dim);border:1px solid transparent}.addr.res{opacity:.35}.addr.exp{border-color:#3d4f63;color:var(--muted)}.addr.hit{background:var(--ok);color:#0c1a12;font-weight:600}.addr.swap{background:var(--warn);color:#1d1405;font-weight:600}.grid-legend{display:flex;gap:14px;color:var(--dim)}.grid-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.grid-legend i.hit{background:var(--ok)}.grid-legend i.swap{background:var(--warn)}.grid-legend i.exp{border:1px solid #3d4f63}.bus-svg{width:100%;height:auto}.svg-small{font-size:11px;fill:var(--muted);font-family:var(--font-ui)}.svg-label{font-size:12px;fill:var(--text);font-family:var(--font-ui)}.svg-mono{font-size:11px;fill:var(--text);font-family:var(--font-mono)}.svg-mono.dim{fill:var(--dim)}.svg-tiny{font-size:9px;font-family:var(--font-mono);font-weight:600}.decode-scroll{overflow-x:auto}.pin-table{width:100%;border-collapse:collapse;font-size:12px}.pin-table td{padding:4px 6px;border-bottom:1px solid var(--line)}.pin-table tr:hover td{background:var(--raised)}.test-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.ask-user{background:var(--ai-bg);border:1px solid var(--ai-line);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:8px}.sweep-bar{height:10px;background:var(--chrome);border-radius:5px;position:relative;overflow:hidden}.sweep-bar i{position:absolute;top:0;bottom:0;background:var(--pin-adc);border-radius:5px}.monitor-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px}.seg-group{display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:4px 8px}.seg-group .label{margin:0 4px 0 0}.select{padding:3px 6px;font-size:12px}.monitor-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px}.plots{display:flex;flex-direction:column;gap:10px;min-width:0}.side{display:flex;flex-direction:column;gap:12px}.plot-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px 4px}.plot-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.plot-val{margin-left:auto;font-size:14px}.console-card{min-height:320px}.console{height:260px;overflow:auto;background:var(--chrome);border-radius:var(--radius-sm);padding:8px;font-family:var(--font-mono);font-size:11.5px;user-select:text;white-space:pre-wrap;word-break:break-all}.mem-row{display:flex;gap:18px}.mem-row .label{margin:0}.heap-bar{height:8px;background:var(--chrome);border-radius:4px;overflow:hidden}.heap-bar i{display:block;height:100%;background:var(--pin-gpio)}.spark{width:100%;height:42px}.report-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.report-3d{position:relative;height:420px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}.report-3d .legend,.report-3d .badges{display:none}.report-preview{max-height:calc(100vh - 420px);overflow:auto}.snap{width:100%;border-radius:var(--radius-sm)}.uplot{font-family:var(--font-mono)}.lib-overlay{position:absolute;top:52px;left:12px;bottom:44px;width:330px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 16px 40px #00000073;padding:12px;overflow:hidden;display:flex;z-index:5}.parts-lib{display:flex;flex-direction:column;gap:8px;min-height:0;flex:1}.parts-lib .filters{flex:none;flex-wrap:wrap}.lib-list{flex:1;min-height:120px;overflow:auto;display:flex;flex-direction:column;gap:5px}.wizard .lib-list{max-height:330px}.lib-row{display:flex;gap:9px;align-items:flex-start;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 8px}.lib-row:hover{border-color:#4a5868}.lib-swatch{width:26px;height:26px;border-radius:5px;flex-shrink:0;border:1px solid rgba(255,255,255,.12)}.lib-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lib-main b{font-size:12.5px;font-weight:500}.lib-pins{display:flex;flex-wrap:wrap;gap:6px;font-family:var(--font-mono);font-size:10px}.lib-actions{display:flex;gap:2px}.lib-actions .btn.icon{padding:4px;border:1px solid transparent}.lib-actions .btn.icon:hover{border-color:var(--line);background:var(--raised)}.import-link{border-top:1px solid var(--line);padding-top:6px}.import-link .label{margin-top:2px}.import-link .text-in{flex:1;min-width:0}.import-link p{margin:4px 0 0}.text-in{min-width:0}.kbd-hint{position:absolute;bottom:10px;right:12px;font-size:11px;color:var(--dim);background:#12171dcc;padding:4px 9px;border-radius:var(--radius-sm)}.part-tools{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.pin-line{display:flex;align-items:center;gap:6px;padding:1px 0}.text-in.rename{font-size:15px;font-weight:600;width:100%;background:transparent;border-color:transparent;padding:3px 4px;margin-left:-4px}.text-in.rename:hover,.text-in.rename:focus{border-color:var(--line);background:var(--chrome)}.modal.part-editor{width:min(1060px,94vw);max-height:92vh;overflow:auto}.import-notes{background:var(--ai-bg);border:1px solid var(--ai-line);border-radius:var(--radius);padding:8px 12px;color:var(--muted);font-size:12.5px;margin-bottom:10px}.import-notes ul{margin:6px 0 0;padding-left:18px;color:var(--text)}.pe-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px}.pe-form{display:flex;flex-direction:column;gap:8px}.pe-form label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--dim);flex:1}.pe-form label.narrow{flex:0 0 74px}.pe-form .label{margin:8px 0 0}.pe-row{display:flex;gap:8px;align-items:flex-end}.pe-pins{display:flex;flex-direction:column;gap:4px}.pe-pin{display:grid;grid-template-columns:12px 90px 1fr auto auto auto;gap:5px;align-items:center}.pe-pin .btn.icon{padding:3px 6px;border:1px solid var(--line)}.pe-preview{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);min-height:360px;position:relative}.pe-preview canvas{position:absolute;inset:0}input[type=color]{width:100%;height:30px;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:2px}label.check{display:flex;flex-direction:row;gap:6px;align-items:center;margin-top:10px;color:var(--muted)}.lic-chip{cursor:pointer}.lic-trial{color:var(--pin-sda);border-color:#25506a;background:#172a36}.lic-licensed{color:var(--ok);border-color:#2c5a43;background:#1b2d25}.lic-expired{color:var(--err);border-color:#5a2a28;background:#2d1a19}.lang-select{padding:2px 4px;font-size:11px;-webkit-app-region:no-drag}.key-form{display:flex;flex-direction:column;gap:8px;margin-top:8px}.key-form textarea{font-size:11px}.lock-screen{position:fixed;inset:0;z-index:200;background:radial-gradient(1200px 600px at 50% 20%,#1f2a38,var(--bg));display:grid;place-items:center}.lock-card{width:520px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px 30px;box-shadow:0 30px 80px #00000080}.lock-card h1{font-size:22px;margin:14px 0 8px}.lock-card p{color:var(--muted)}.logo.big-logo{width:44px;height:44px;border-radius:11px}.logo.big-logo span{width:18px;height:18px}.btn.icon:disabled{opacity:.35}.seg button:disabled{opacity:.35}.seg button{display:inline-flex;align-items:center;gap:4px}.vp-toolbar .tb{display:inline-flex;align-items:center;gap:5px}.lib-overlay,.info-card,.vp-toolbar,.badges,.wire-hint{z-index:20}.pe-row{flex-wrap:wrap}.pe-form label.narrow{flex:0 0 64px}.badges{top:auto;bottom:40px}.vp-toolbar{right:12px}.os-mac .topbar{padding-left:84px}.ai-set-chip{cursor:pointer;display:inline-flex;align-items:center;gap:5px}.ai-set-chip:hover{border-color:var(--ai-line);color:var(--text)}.modal.ai-settings{width:min(620px,94vw);max-height:92vh;overflow:auto;display:flex;flex-direction:column;gap:12px}.modal.ai-settings h2,.modal.ai-settings p{margin:0}.ai-prov-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ai-prov{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:10px 12px;border-radius:10px;background:var(--chrome);border:1px solid var(--line);min-width:0}.ai-prov:hover{border-color:#3a4552}.ai-prov.on{border-color:var(--ai-line);background:var(--ai-bg)}.ai-prov-name{font-weight:600;display:flex;align-items:center;gap:6px}.ai-prov-name .chip{font-weight:400}.ai-prov-desc{color:var(--muted);font-size:12px;line-height:1.4}.ai-prov-key{color:var(--dim);font-family:var(--font-mono)}.ai-prov-key.ok{color:var(--ok)}.ai-field{display:flex;flex-direction:column;gap:6px}.ai-field .label{margin:0}.ai-field input.text-in{width:100%}.ai-field .row input.text-in{flex:1;min-width:0}.ai-privacy{display:flex;align-items:center;gap:6px;color:var(--dim)!important}.modal.ai-settings .modal-actions{margin-top:4px;align-items:center}.modal.ai-settings .grow{flex:1}.ok-text{color:var(--ok)}.ai-demo-info{display:flex;flex-direction:column;gap:6px;background:var(--ai-bg);border:1px solid var(--ai-line);border-radius:var(--radius);padding:10px 12px}.ai-demo-info p:first-child{color:var(--text)!important}.ai-demo-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:7px 14px;font-size:12px;line-height:1.4;color:var(--text);background:#f2a93b1f;border-bottom:1px solid rgba(242,169,59,.35)}.ai-demo-banner b{color:var(--warn);font-weight:600}.ai-demo-banner .link{font-size:12px}.lib-thumb{width:26px;height:26px;border-radius:5px;object-fit:cover;flex-shrink:0;background:#fff}.pe-photo{position:absolute;right:10px;bottom:10px;width:96px;height:96px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#fff}.board-chip{display:inline-flex;align-items:center;gap:6px;cursor:pointer;margin-left:4px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-chip:hover{border-color:var(--muted);color:var(--text)}.modal.board-picker{width:min(980px,95vw);max-height:90vh;overflow:auto;display:flex;flex-direction:column;gap:10px}.modal.board-picker .row.gap .text-in{flex:1}.board-groups{display:flex;flex-direction:column;gap:14px}.board-card-main .label{font-size:10px;margin:0}.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.board-card{display:flex;gap:12px;align-items:flex-start;text-align:left;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;color:var(--text);cursor:pointer;font:inherit}.board-card:hover{border-color:var(--muted)}.board-card.on{border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}.board-card.detected{border-color:var(--ai)}.board-card .board-thumb{flex:none;width:110px;height:auto;margin-top:2px}.board-card-main{display:flex;flex-direction:column;gap:3px;min-width:0}.board-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.board-chips .chip{font-size:10.5px;padding:1px 6px}.snapshot-clean .vp-toolbar,.snapshot-clean .legend,.snapshot-clean .badges,.snapshot-clean .kbd-hint,.snapshot-clean .wire-hint,.snapshot-clean .info-card{display:none!important}.code-check{display:flex;flex-direction:column;gap:8px}.code-input{width:100%;min-height:160px;resize:vertical;background:var(--chrome);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px;font-size:12px;line-height:1.45}.code-line{display:block;margin-top:3px;font-family:var(--font-mono);font-size:11px;color:var(--muted);background:var(--bg);border-radius:3px;padding:2px 6px;white-space:pre;overflow:hidden;text-overflow:ellipsis}.card-note.gotcha{border-left:2px solid var(--warn);padding-left:8px}.tpl-list{display:flex;flex-direction:column;gap:6px}.tpl-card{text-align:left;display:flex;flex-direction:column;gap:3px;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;color:var(--text);cursor:pointer}.tpl-card:hover:not(:disabled){border-color:var(--pin-gpio)}.tpl-card:disabled{opacity:.55;cursor:default}.tpl-meta{color:var(--muted)}.warn-text{color:var(--warn)}.tpl-view{display:flex;flex-direction:column;gap:8px}.tpl-learn{margin:0;padding-left:18px;color:var(--muted)}.tpl-now{display:flex;gap:8px;align-items:center}.tpl-story{max-height:210px;overflow:auto;display:flex;flex-direction:column;gap:2px;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px}.story-line{display:grid;grid-template-columns:44px 1fr;gap:8px;text-align:left;background:none;border:0;color:var(--text);font-size:12px;padding:2px 4px;border-radius:3px;cursor:pointer}.story-line:hover{background:var(--raised)}.story-line.k-step span:last-child{font-weight:600}.story-line.k-state span:last-child{color:var(--ai);font-family:var(--font-mono)}.story-line.k-event span:last-child{color:var(--warn)}.story-line.k-value span:last-child,.story-line.k-show span:last-child{color:var(--muted)}.story-line.k-pin span:last-child{color:var(--pin-gpio);font-family:var(--font-mono)}.tpl-code{max-height:280px;overflow:auto}.tpl-code .run-line{background:#5ccb8f2e;box-shadow:inset 3px 0 0 var(--ok)}.part-live{display:block;color:var(--pin-sda);font-size:11px}.learn{position:absolute;inset:0;display:grid;grid-template-columns:250px minmax(0,1fr)}.learn-list{border-right:1px solid var(--line);background:var(--chrome);overflow:auto;padding:12px 10px 20px}.learn-progress{padding:2px 8px 4px;display:flex;flex-direction:column;gap:6px}.learn-progress .bar{height:4px;background:var(--raised);border-radius:2px;overflow:hidden}.learn-progress .bar i{display:block;height:100%;background:var(--ok);transition:width .3s}.learn-item{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;background:none;border:none;border-radius:var(--radius-sm);padding:7px 8px;color:var(--muted)}.learn-item:hover{background:var(--panel);color:var(--text)}.learn-item.on{background:var(--raised);color:var(--text)}.learn-num{flex:none;width:20px;height:20px;border-radius:50%;border:1px solid #3d4a58;display:grid;place-items:center;font-size:10.5px;margin-top:1px}.learn-num.done{background:var(--ok);border-color:var(--ok);color:#0c1a12}.learn-item-text{display:flex;flex-direction:column;gap:1px;min-width:0}.learn-item-text b{font-size:12.5px;font-weight:500}.learn-item-text span{font-size:11.5px;color:var(--dim)}.learn-scroll{overflow:auto;min-height:0}.learn-article{max-width:760px;margin:0 auto;padding:28px 32px 48px;line-height:1.6}.learn-article h1{font-size:24px;font-weight:600;margin:4px 0 2px;line-height:1.25}.learn-article>.lead{margin-bottom:18px}.learn-article h3{font-size:15px;font-weight:600;margin:28px 0 6px}.learn-article p{margin:8px 0;max-width:68ch}.learn-article ol,.learn-article ul{padding-left:22px;margin:8px 0;max-width:68ch}.learn-article li{margin:5px 0}.learn-article li::marker{color:var(--dim)}.learn-fig{margin:16px 0;background:var(--viewport);border:1px solid var(--line);border-radius:10px;padding:12px}.learn-fig svg{width:100%;height:auto;display:block}.lf-t{fill:var(--text);font-size:13px;font-weight:600;font-family:var(--font-ui)}.lf-t.mono{font-family:var(--font-mono)}.lf-s,.lf-l{fill:var(--muted);font-size:11.5px;font-family:var(--font-ui)}.lf-l.mono{font-family:var(--font-mono);fill:var(--dim)}.learn-widget{margin:16px 0;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.learn-widget .learn-fig{margin:0}.reg-grid{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:4px}.reg-cell{position:relative;height:42px;padding:12px 0 0;border:1px solid var(--line);background:var(--chrome);border-radius:var(--radius-sm);font-size:14px;color:var(--dim)}.reg-cell.on{background:color-mix(in srgb,var(--pin-gpio) 28%,var(--panel));border-color:var(--pin-gpio);color:var(--text)}.reg-cell.sel{outline:2px solid var(--ai);outline-offset:1px}.reg-idx{position:absolute;top:3px;left:0;right:0;font-size:9.5px;color:var(--dim)}.learn-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.learn-controls label{display:flex;gap:6px;align-items:center;color:var(--muted)}.learn-controls select,.learn-controls input.num{background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px 8px}.learn-controls input.num{width:84px;font-family:var(--font-mono)}.learn-out{background:var(--chrome);border-radius:var(--radius-sm);padding:8px 10px;display:flex;flex-direction:column;gap:3px;font-size:12.5px}.learn-two .learn-out{margin-top:8px}.muted-text{color:var(--muted)}.learn-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.learn-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.learn-stats>div{background:var(--chrome);border-radius:var(--radius-sm);padding:8px 10px;display:flex;flex-direction:column;gap:2px}.learn-stats .label{margin:0}.learn-stats .led-stat{flex-direction:row;align-items:center;gap:10px}.led-stat>span{display:flex;flex-direction:column;gap:2px}.led{flex:none;display:block;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--dim)}.led.on{background:var(--warn);border-color:var(--warn);box-shadow:0 0 12px color-mix(in srgb,var(--warn) 55%,transparent)}.led.blur{background:color-mix(in srgb,var(--warn) 50%,transparent);border-color:var(--warn)}.learn-slider{display:grid;grid-template-columns:130px minmax(0,1fr) 130px;gap:12px;align-items:center}.learn-slider input{width:100%;accent-color:var(--ai)}.learn-slider b{font-weight:500}.learn-legend{display:flex;gap:16px;color:var(--muted)}.learn-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}.learn-code{position:relative;margin:12px 0}.learn-code pre{margin:0;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius);padding:12px 40px 12px 14px;overflow:auto;font-size:12.5px;line-height:1.55}.learn-code .btn.icon{position:absolute;top:6px;right:6px;color:var(--dim)}.learn-code .btn.icon:hover{color:var(--text);background:var(--raised)}.learn-table-wrap{overflow-x:auto;margin:12px 0}.learn-table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.45}.learn-table th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;padding:6px 10px;border-bottom:1px solid #3d4a58}.learn-table td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}.learn-table td:first-child{color:var(--muted)}.learn-table td.mono{color:var(--pin-gpio);white-space:nowrap;font-size:12.5px}.learn-tip{margin:18px 0;border-left:3px solid var(--warn);background:var(--panel);border-radius:0 var(--radius) var(--radius) 0;padding:10px 14px}.learn-tip b{color:var(--warn);font-size:12.5px;font-weight:600}.learn-tip p{margin:3px 0 0}.learn-interview{margin-top:30px;border-top:1px solid var(--line)}.learn-ai{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:22px 0 8px}.learn-ai .btn{display:inline-flex;align-items:center;gap:6px}.learn-nav{display:flex;justify-content:space-between;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.learn-banner{width:100%;margin:0 0 22px;display:flex;gap:14px;align-items:center;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.learn-banner:hover{border-color:#4a5868;background:#202831}.learn-banner>span:last-child{display:flex;flex-direction:column;gap:2px}.learn-banner b{font-size:14px;font-weight:600}.learn-banner span span{color:var(--dim);font-size:12px}.learn-item:focus-visible,.reg-cell:focus-visible,.learn-banner:focus-visible{outline:2px solid var(--ai);outline-offset:2px}@media(max-width:1180px){.learn{grid-template-columns:206px minmax(0,1fr)}.learn-article{padding:22px 20px 40px}.learn-slider{grid-template-columns:1fr;gap:4px}.learn-two{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.learn-progress .bar i{transition:none}}.pinout-wrap.dg-host{place-items:stretch}.dg-wrap{position:relative;width:100%;height:100%;overflow:auto;display:grid;place-items:center}.diagram{max-width:100%;height:auto}.dg-block{fill:var(--panel);stroke:var(--line);cursor:pointer}.dg-block.hot{stroke:var(--ai);stroke-width:2}.dg-title{fill:var(--text);font:600 13px var(--font-ui);pointer-events:none}.dg-sub,.dg-gap{fill:var(--dim);font:11px var(--font-ui);pointer-events:none}.dg-pin{cursor:pointer}.dg-pin circle.hot{stroke:#fff;stroke-width:2}.dg-pin-label{fill:var(--muted);font:11px var(--font-mono)}.dg-wire,.dg-mark{cursor:pointer}.dg-mark-text{fill:#12171d;font:700 11px var(--font-ui);pointer-events:none}.dg-empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px}.bom{display:flex;flex-direction:column;gap:8px}.bom-table{width:100%;border-collapse:collapse;font-size:12px}.bom-table th{text-align:left;color:var(--dim);font-weight:500;border-bottom:1px solid var(--line);padding:4px 6px}.bom-table td{border-bottom:1px solid var(--line);padding:5px 6px;vertical-align:top}.bom-table tr.bom-extra td:first-child{box-shadow:inset 2px 0 0 var(--warn)}.bom-details summary{cursor:pointer}.report-bom{grid-column:1 / -1}.planner{display:flex;flex-direction:column;gap:8px}.planner-needs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px}.planner-need{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted)}.planner-need input[type=number]{width:56px}.planner-row{cursor:pointer}.planner-row:hover td{background:var(--raised)}.learn-seg{align-self:flex-start;flex-wrap:wrap}.mcp-settings{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:12px;margin-top:4px}.mcp-cmd{flex:1;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 8px;overflow-x:auto;white-space:nowrap}.learn.with-preview{grid-template-columns:250px minmax(0,1fr) minmax(0,1.1fr)}.learn-board{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;padding:8px 10px;border:1px dashed var(--line);border-radius:var(--radius-sm)}.learn-preview{border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;padding:10px;gap:6px;background:var(--bg)}.learn-preview-head{display:flex;align-items:center;gap:8px}.learn-preview-head .btn{margin-left:auto}.learn-preview-3d{position:relative;flex:1;min-height:0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.learn-preview-3d .viewport{position:absolute;inset:0}.power{display:flex;flex-direction:column;gap:8px}.power-inputs{display:flex;gap:10px;flex-wrap:wrap}.power-inputs label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);flex:1 1 120px}.power-inputs input{width:100%;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px 6px}.power-result{display:flex;gap:16px;flex-wrap:wrap}.power-result>div{display:flex;flex-direction:column;gap:2px}.power-result b{font-size:16px}.power .src{font-size:11px}.calc{display:flex;flex-direction:column;gap:8px}.calc-inputs{display:flex;gap:10px;flex-wrap:wrap}.calc-inputs label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);flex:1 1 120px}.calc-inputs input,.calc-inputs select{width:100%;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px 6px}.calc-result{display:flex;flex-direction:column;gap:8px;border-left:2px solid var(--ok);padding-left:10px}.calc-result.v-ok{border-left-color:var(--warn)}.calc-result.v-risky{border-left-color:var(--err)}.calc-result p{margin:0}.calc-values{display:flex;gap:16px;flex-wrap:wrap}.calc-values>div{display:flex;flex-direction:column;gap:2px}.calc-code pre{margin:4px 0 0;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px;font-size:11.5px;overflow-x:auto;white-space:pre}.learn-lab{margin:18px 0;display:flex;gap:14px;align-items:center;justify-content:space-between;border-left:3px solid var(--ok);background:var(--panel);border-radius:0 var(--radius) var(--radius) 0;padding:10px 14px}.learn-lab p{margin:4px 0}.portfolio{display:flex;flex-direction:column;gap:8px}.portfolio select{background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px 6px}.portfolio-stages{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.portfolio-stages>li{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}.portfolio-stages>li.done{border-left:3px solid var(--ok)}.portfolio-stage-head{width:100%;text-align:left;background:none;border:none;color:var(--text);padding:6px 8px;cursor:pointer}.portfolio-stage{padding:0 10px 10px;display:flex;flex-direction:column;gap:6px;font-size:13px}.portfolio-stage p,.portfolio-stage ul{margin:0}.portfolio-code{background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px;font-size:11.5px;overflow-x:auto;max-height:320px}.splitter{position:absolute;z-index:20;background:transparent;transition:background .15s}.splitter:hover,.splitter:focus-visible{background:var(--ok);outline:none}.splitter-right{left:-3px;top:0;bottom:0;width:6px;cursor:col-resize}.splitter-log,.splitter-assistant{left:0;right:0;top:-3px;height:6px;cursor:row-resize}body.resizing-x,body.resizing-x *{cursor:col-resize!important;user-select:none}body.resizing-y,body.resizing-y *{cursor:row-resize!important;user-select:none}.web-chip{cursor:pointer;color:var(--ok);border-color:#2c5a43;background:#1b2d25}.web-chip:hover{border-color:var(--ok);color:var(--text)}.web-modal{width:min(480px,calc(100vw - 32px))}.web-modal .web-reason{color:var(--text);background:var(--raised);border-radius:var(--radius-sm);padding:8px 10px}.web-modal ul{margin:4px 0 0;color:var(--muted);font-size:13px}.web-modal li{margin:3px 0}.web-modal a.btn{text-decoration:none}.os-web .topbar{-webkit-app-region:no-drag}.dg-bar{position:absolute;top:0;left:0;z-index:1;display:flex;gap:8px;align-items:center}.dg-wrap{padding-top:36px;box-sizing:border-box}.sch-host{line-height:0}.sch-host svg{display:block;max-width:none}.sch-host [data-target],.sch-host [data-mark]{cursor:pointer}.sch-host g.hot polyline,.sch-host g.hot polygon,.sch-host g.hot rect{stroke:var(--ai)}.sch-host g.hot rect{stroke-width:2}.sch-host g.hot text{fill:var(--ai)}.sch-host g.hot circle{fill:var(--ai)}.sch-host .sch-wire g.hot polyline{stroke-width:3}.regmap{display:flex;flex-direction:column;gap:8px;min-width:0}.regmap-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.regmap-where{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted)}.regmap-where .chip{margin:0}.regmap-addr{background:var(--chrome);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);padding:2px 6px;font-size:12px}.regmap-ro{margin:0;color:var(--ok)}.regmap .card-note,.regmap .card-flag{margin:0}.regmap-table{width:100%;border-collapse:collapse;font-size:12px;table-layout:auto}.regmap-table th{text-align:left;font-weight:500;color:var(--dim);font-size:11px;padding:4px 6px;border-bottom:1px solid var(--line)}.regmap-table td{padding:5px 6px;border-bottom:1px solid var(--line);vertical-align:top}.regmap-row{cursor:pointer}.regmap-row:hover td{background:var(--raised)}.regmap-row.open td{background:var(--chrome)}.regmap-row.read td:nth-child(4){color:var(--ok)}.regmap-meaning{color:var(--muted)}.regmap-acc{display:inline-block;font-family:var(--font-mono);font-size:10px;padding:1px 5px;border-radius:3px;border:1px solid var(--line);color:var(--muted)}.regmap-acc.acc-r{color:var(--pin-sda);border-color:var(--pin-sda)}.regmap-acc.acc-rw{color:var(--pin-gpio);border-color:var(--pin-gpio)}.regmap-acc.acc-w{color:var(--warn);border-color:var(--warn)}.regmap-detail td{background:var(--chrome);padding:8px 10px 10px}.regmap-strip{display:flex;gap:3px;margin:6px 0 8px}.regmap-seg{flex-basis:0;min-width:0;border:1px solid var(--pin-sda);border-radius:var(--radius-sm);padding:3px 4px;background:var(--panel)}.regmap-seg.undescribed{border-color:var(--line);border-style:dashed}.regmap-seg-name{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.regmap-seg-bits{display:flex;justify-content:space-around}.regmap-seg-bits span{font-size:13px;color:var(--dim)}.regmap-seg-bits span.one{color:var(--text);font-weight:600}.regmap-fields{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:4px}.regmap-fields li{display:grid;grid-template-columns:64px minmax(80px,max-content) 40px 1fr;gap:8px;align-items:baseline}.regmap-fields li.undescribed{color:var(--dim)}.regmap-bits{color:var(--dim);font-size:11px}.regmap-fname{color:var(--text)}.regmap-fval{color:var(--ok)}.regmap-foot{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:4px}.regmap-foot .btn{margin-left:auto}.regmap-src{color:var(--dim);font-size:10.5px;margin-top:2px}.regmap-cmds summary{cursor:pointer;color:var(--muted);font-size:12px;padding:4px 0}.regmap-cmds p{margin:4px 0 6px}.regmap-modal{width:min(820px,calc(100vw - 48px));max-height:calc(100vh - 80px);overflow:auto}.regmap-modal h2{font-size:16px}.regmap-tabs{display:flex;gap:4px;flex-wrap:wrap}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}.timing-card{gap:8px;margin-bottom:12px}.timing-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timing-badge{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--warn);border:1px solid var(--warn);border-radius:4px;padding:0 5px;line-height:16px}.timing-rate{font-weight:400}.timing-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timing-bar .seg button:disabled{opacity:1;color:var(--muted);cursor:default}.timing-spacer{flex:1}.timing-wrap{position:relative;min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--panel)}.timing-canvas{display:block;width:100%;cursor:crosshair;touch-action:none}.timing-foot{display:flex;flex-direction:column;gap:6px;font-size:12px}.timing-cursors .mono{display:inline-flex;gap:14px;flex-wrap:wrap;font-size:11.5px}.timing-cursors .cur-a{color:var(--ai)}.timing-cursors .cur-b,.timing-measure{color:var(--text)}.timing-values{display:inline-flex;gap:14px;flex-wrap:wrap;align-items:baseline}.timing-values i{font-style:normal;color:var(--ok)}.timing-refuse{color:var(--warn)}.timing-notes{line-height:1.45}.sm{display:flex;flex-direction:column;gap:10px}.sm-examples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.sm-examples .lib-item b{font-size:12.5px}.sm-head{display:flex;align-items:flex-end;gap:6px;flex-wrap:wrap}.sm-field{display:flex;flex-direction:column;gap:3px;flex:1;min-width:150px}.sm-head .select{padding:6px 8px;font-size:12px;max-width:150px}.sm-diagram{background:var(--viewport);border:1px solid var(--line);border-radius:10px;padding:6px;overflow:auto;max-height:460px}.sm-diagram svg{display:block;margin:0 auto}.sm-diagram.fit svg{width:100%;height:auto}.sm-box{cursor:pointer;--tone: var(--pin-sda)}.sm-box rect{fill:color-mix(in srgb,var(--tone) 13%,var(--panel));stroke:var(--tone);stroke-opacity:.75}.sm-box.tone-start{--tone: var(--ok)}.sm-box.tone-dead{--tone: var(--warn)}.sm-box.tone-unreachable{--tone: var(--err)}.sm-box.tone-unreachable rect{stroke-dasharray:5 4}.sm-box.hot rect{stroke:var(--ai);stroke-opacity:1;stroke-width:2}.sm-title{fill:var(--text);font:600 12px var(--font-mono)}.sm-sub{fill:var(--muted);font:11px var(--font-ui)}.sm-edge{fill:none;stroke:var(--dim);stroke-width:1.4;cursor:pointer}.sm-edge.hot{stroke:var(--ai);stroke-width:2}.sm-start circle{fill:var(--ok)}.sm-start path{fill:none;stroke:var(--ok);stroke-width:1.4}.sm-label{cursor:pointer}.sm-label rect{fill:var(--viewport);fill-opacity:.92;stroke:none}.sm-label.hot rect{stroke:var(--ai-line)}.sm-label text{fill:var(--muted);font:11px var(--font-ui)}.sm-label.hot text{fill:var(--ai)}.sm-legend{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}.sm-legend [class^=tone-]:before{content:"";display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid var(--tone);background:color-mix(in srgb,var(--tone) 20%,var(--panel))}.sm-legend .sm-spacer{flex:1}.sm-ignored summary{cursor:pointer}.sm-ignored .findings{margin-top:6px}.sm-legend .tone-start{--tone: var(--ok)}.sm-legend .tone-dead{--tone: var(--warn)}.sm-legend .tone-unreachable{--tone: var(--err)}.sm-section{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:10px}.sm-section>.btn{align-self:flex-start}.sm-section .text-in,.sm-section .select{padding:5px 7px;font-size:12px;min-width:0}.sm-row{display:grid;align-items:center;gap:6px;border-radius:var(--radius-sm)}.sm-state{grid-template-columns:auto minmax(0,1fr) minmax(0,1.3fr) auto}.sm-event{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto}.sm-tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:5px;padding:6px;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm)}.sm-tr .sm-guard{grid-column:1 / 3}.sm-tr .sm-action{grid-column:3 / 6}.sm-row.hot,.sm-tr.hot{outline:1px solid var(--ai-line);outline-offset:2px;background:var(--ai-bg)}.sm-row input[type=radio]{accent-color:var(--ok);margin:0 2px}.sm-cmd{display:block;background:var(--chrome);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 8px;overflow-x:auto;white-space:nowrap;user-select:text}.starter-files{display:flex;flex-wrap:wrap;max-width:100%}.starter-files button{font-size:11px;padding:4px 8px;border-bottom:1px solid var(--line)}.starter-files button+button{border-left:1px solid var(--line)}.coach-open{display:inline-flex;align-items:center;gap:5px;margin-left:8px;vertical-align:middle}.coach{margin:10px 0 16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:8px}.coach p{margin:0}.coach .label{margin:4px 0 0}.coach textarea{resize:vertical;min-height:96px;line-height:1.5}.coach h4{margin:6px 0 2px;font-size:13px;font-weight:600}.coach ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px}.coach-hint{display:flex;justify-content:space-between;gap:12px}.coach-actions{display:flex;flex-wrap:wrap;gap:8px}.coach-actions .btn{display:inline-flex;align-items:center;gap:6px}.coach-error{display:flex;flex-direction:column;gap:3px;border-left:3px solid var(--err);background:var(--chrome);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:8px 10px}.coach-feedback{background:var(--chrome);border:1px solid var(--ai-line);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:4px;user-select:text}.coach-feedback-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.coach-followup{color:var(--ai)}.coach-sources{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}.coach-sources .label{margin:0}.coach-sources .chip{white-space:normal;max-width:100%;border-radius:10px}.coach-keys{border-left:3px solid var(--pin-sda);background:var(--chrome);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:8px 12px;display:flex;flex-direction:column;gap:6px}.coach-key b{font-size:12.5px;font-weight:600}.coach-key ul{margin-top:3px;color:var(--muted)}.coach-history{border-top:1px solid var(--line);margin-top:6px;padding-top:6px;display:flex;flex-direction:column;gap:6px}.coach-history-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.coach-history-head .btn{display:inline-flex;align-items:center;gap:5px}.learn-article .coach-attempts{list-style:none;margin:0;padding:0;max-width:none;display:flex;flex-direction:column;gap:4px}.learn-article .coach li{margin:2px 0}.coach-attempts details{background:var(--chrome);border-radius:var(--radius-sm);padding:6px 10px}.coach-attempts summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12.5px}.coach-attempts details[open]{display:flex;flex-direction:column;gap:6px}.coach-score{font-size:11.5px}.coach-score.ok{color:var(--ok)}.coach-score.warn{color:var(--warn)}.coach-answer{color:var(--muted);font-size:12.5px;margin-top:6px;user-select:text}.coach-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px}.coach-delete-all{align-self:flex-start}
