:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#dfe7e4;background:#0b100f;font-synthesis:none;--bg: #0b100f;--panel: #111816;--panel-soft: #151e1b;--line: #26332f;--line-soft: #1d2925;--muted: #7f918b;--text: #dfe7e4;--accent: #59d5b5;--accent-soft: rgba(89, 213, 181, .12);--amber: #efb85b;--danger: #ff766e}*{box-sizing:border-box}body{margin:0;min-width:1200px;min-height:100vh;background:radial-gradient(circle at 55% 15%,#14201d 0,var(--bg) 38%)}button,input{font:inherit}button{color:inherit}.boot-screen{height:100vh;display:grid;place-content:center;grid-auto-flow:column;gap:12px;align-items:center;color:var(--muted)}.boot-screen.error{color:var(--danger)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:72px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:250px minmax(420px,1fr) auto;align-items:center;padding:0 22px;background:#0b100fe0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:11px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;color:#08110e;background:var(--accent);border-radius:9px;box-shadow:0 0 24px #59d5b52e}.brand div,.project-title{display:flex;flex-direction:column}.brand strong{font-size:17px;letter-spacing:.02em}.brand span:not(.brand-mark){font-size:10px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.project-title{border-left:1px solid var(--line);padding-left:22px}.project-title strong{font-size:14px}.project-soc-row{margin-top:2px;display:flex;align-items:center;gap:7px}.project-soc-row select{height:27px;padding:0 24px 0 8px;border:1px solid rgba(89,213,181,.28);border-radius:5px;outline:0;background:#101816;color:var(--accent);cursor:pointer;font:650 11px ui-monospace,monospace}.project-soc-row select:nth-of-type(1){max-width:112px}.project-soc-row select:nth-of-type(2){max-width:225px}.project-soc-row select:nth-of-type(3){max-width:245px}.project-soc-row select:disabled{opacity:.42;cursor:not-allowed}.project-soc-row select:hover,.project-soc-row select:focus{border-color:var(--accent)}.project-soc-row strong{color:var(--muted);font-size:11px;font-weight:500}.save-status{margin-top:3px;color:var(--muted);font-size:8px}.save-status.saving{color:var(--amber)}.save-status.error{color:var(--danger)}.eyebrow{color:var(--muted);text-transform:uppercase;font-size:9px;letter-spacing:.14em;font-weight:700}.top-actions{display:flex;align-items:center;gap:10px}.validation-pill,.ghost-button{height:34px;border-radius:8px;display:flex;align-items:center;gap:7px;padding:0 12px;font-size:12px;border:1px solid var(--line);background:var(--panel)}.validation-pill.valid{color:var(--accent);border-color:#59d5b540}.validation-pill.invalid{color:var(--danger);border-color:#ff766e4d}.ghost-button{cursor:pointer;color:var(--muted)}.ghost-button:hover{color:var(--text);border-color:#3a4944}.ghost-button:disabled{opacity:.42;cursor:not-allowed}.file-input{display:none}.workspace{flex:1;display:grid;grid-template-columns:300px minmax(560px,1fr) 380px;min-height:calc(100vh - 72px)}.panel{min-height:0;background:#111816bd}.peripheral-panel,.inspector-panel{height:calc(100vh - 72px);position:sticky;top:72px;overflow:hidden;display:flex;flex-direction:column}.peripheral-panel{border-right:1px solid var(--line)}.inspector-panel{border-left:1px solid var(--line)}.panel-heading,.inspector-header{height:74px;padding:17px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line-soft)}h1,h2{margin:3px 0 0;font-size:18px}.count-badge{font-family:ui-monospace,monospace;color:var(--muted);font-size:11px;border:1px solid var(--line);border-radius:999px;padding:3px 8px}.search-box{height:36px;margin:12px 14px;padding:0 10px;border:1px solid var(--line);background:#0e1513;border-radius:7px;display:flex;gap:8px;align-items:center;color:var(--muted)}.search-box input,.mini-search input{border:0;outline:0;background:transparent;color:var(--text);min-width:0;width:100%;font-size:11px}.peripheral-list{overflow:auto;padding:0 8px 20px}.peripheral{border-bottom:1px solid var(--line-soft)}.peripheral-header-row{display:flex;align-items:center;transition:background .12s ease}.peripheral-header-row:hover{background:#ffffff09}.peripheral-row{width:100%;height:48px;display:grid;grid-template-columns:16px 27px 1fr auto auto;gap:6px;align-items:center;padding:0 7px;border:0;background:transparent;text-align:left;cursor:pointer}.peripheral-header-row .peripheral-row{width:auto;flex:1 1 auto;min-width:0}.peripheral-row:hover{background:transparent}.peripheral-row>span:nth-of-type(2){display:flex;flex-direction:column;min-width:0}.peripheral-row strong{overflow:hidden;font-family:ui-monospace,monospace;font-size:11px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.peripheral-row small{color:var(--muted);font-size:9px}.profile-launch{flex:0 0 auto;margin-right:5px;padding:5px 7px;border:1px solid rgba(239,184,91,.28);border-radius:4px;background:#efb85b0d;color:var(--amber);cursor:pointer;font-size:9px}.profile-launch.active,.profile-launch:hover{background:#efb85b21;border-color:#efb85b8c}.peripheral-icon{width:24px;height:24px;background:#19231f;border-radius:5px;display:grid;place-items:center;color:#96a7a1}.active-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}.peripheral.locked{opacity:.48}.signal-list{padding:2px 7px 9px 42px;display:flex;flex-direction:column;gap:2px}.signal-list button{min-height:34px;padding:5px 7px;border:0;border-radius:5px;background:transparent;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:10px;text-align:left}.signal-list button:hover,.signal-list button.selected{background:var(--accent-soft);color:var(--accent)}.signal-list button>span{font-weight:650}.signal-main{min-width:0;display:flex;align-items:center;gap:6px}.signal-main>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signal-pin-badge{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;padding:2px 5px;border-radius:999px;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(89,213,181,.24);font:600 7px ui-monospace,monospace}.signal-pin-badge i{width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent)}.signal-list small{color:var(--muted);margin-left:8px;font:400 7px ui-monospace,monospace;text-transform:uppercase}.signal-route-info{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.signal-list p{color:var(--muted);font-size:10px}.routing-badges{display:inline-flex;gap:3px;vertical-align:middle}.mode-tag{padding:1px 3px;border-radius:3px;font:600 6px ui-monospace,monospace;letter-spacing:0}.mode-tag.iomux{color:var(--amber);border:1px solid rgba(239,184,91,.3);background:#efb85b12}.mode-tag.matrix{color:var(--accent);border:1px solid rgba(89,213,181,.25);background:#59d5b50f}.profile-picker{margin:0 6px 8px 12px;padding:10px;border:1px solid rgba(239,184,91,.25);border-radius:6px;background:#efb85b0b;display:flex;flex-direction:column;gap:8px}.profile-picker-title{display:flex;justify-content:space-between;align-items:center;color:var(--amber);font-size:9px}.profile-picker-title button{border:0;background:transparent;color:var(--muted);cursor:pointer}.profile-tabs{display:flex;gap:4px}.profile-tabs button{flex:1;padding:5px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;font-size:8px}.profile-tabs button.active{color:var(--amber);border-color:#efb85b73;background:#efb85b1a}.assignment-mode-tabs{display:flex;gap:4px;padding:2px;border:1px solid var(--line);border-radius:5px;background:#040d0b47}.assignment-mode-tabs button{flex:1;min-height:25px;border:0;border-radius:3px;background:transparent;color:var(--muted);cursor:pointer;font-size:8px;font-weight:700}.assignment-mode-tabs button.active.iomux{color:var(--amber);background:#efb85b1f}.assignment-mode-tabs button.active.matrix{color:var(--accent);background:#59d5b51f}.signal-selector{padding:5px;display:grid;grid-template-columns:1fr;gap:2px;border:1px solid var(--line-soft);border-radius:4px}.signal-selector label{min-width:0;min-height:28px;padding:3px 5px;display:flex;align-items:center;gap:7px;color:#b9c7c2;font:500 10px ui-monospace,monospace;cursor:pointer}.signal-selector label:hover{color:var(--text);background:#ffffff09}.signal-selector label.fixed{cursor:default}.signal-selector label.fixed:hover{background:transparent}.signal-selector input{flex:0 0 auto;width:13px;height:13px;accent-color:var(--accent)}.signal-selector span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signal-preview-pin{flex:0 0 auto;padding:3px 6px;border-radius:999px;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(89,213,181,.25);font:600 8px ui-monospace,monospace}.profile-warning{display:flex;gap:5px;color:#ffaaa5;font-size:7px;line-height:1.4}.profile-apply{min-height:27px;border:0;border-radius:4px;background:var(--amber);color:#171007;cursor:pointer;font-size:8px;font-weight:700}.profile-apply.danger{background:var(--danger);color:#1c0908}.profile-apply:disabled{opacity:.4;cursor:not-allowed}.add-peripheral-button{min-height:31px;padding:0 10px;display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(89,213,181,.3);border-radius:6px;background:var(--accent-soft);color:var(--accent);cursor:pointer;font-size:9px;font-weight:700}.add-peripheral-button:hover{border-color:var(--accent);background:#59d5b52b}.project-peripheral-list{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.empty-peripherals{margin:auto 10px;padding:28px 18px;display:flex;flex-direction:column;align-items:center;text-align:center;border:1px dashed #33433e;border-radius:10px;color:var(--muted)}.empty-peripherals .empty-icon{width:44px;height:44px;margin-bottom:13px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.empty-peripherals strong{color:var(--text);font-size:12px}.empty-peripherals p{margin:8px 0 17px;font-size:10px;line-height:1.5}.empty-peripherals button{min-height:31px;padding:0 12px;border:0;border-radius:5px;background:var(--accent);color:#07100d;cursor:pointer;font-size:9px;font-weight:750}.project-peripheral-card{border:1px solid var(--line);border-radius:8px;background:#0c131199;transition:.12s ease}.project-peripheral-card:hover,.project-peripheral-card.active{border-color:#59d5b55c;background:#59d5b50b}.project-peripheral-card.recently-added{animation:peripheral-added 1.6s ease-out}@keyframes peripheral-added{0%,38%{border-color:var(--accent);background:#59d5b526;box-shadow:0 0 18px #59d5b529}to{border-color:var(--line);background:#0c131199;box-shadow:none}}.project-peripheral-main{width:100%;min-height:60px;padding:8px 10px;display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;gap:8px;align-items:center;border:0;background:transparent;text-align:left;cursor:pointer}.project-peripheral-title{min-width:0;display:flex;flex-direction:column;gap:3px}.project-peripheral-title strong{overflow:hidden;color:var(--text);font:600 10px ui-monospace,monospace;text-overflow:ellipsis;white-space:nowrap}.project-peripheral-title small{color:var(--muted);font-size:8px}.assignment-count{min-width:35px;padding:3px 5px;border:1px solid var(--line);border-radius:999px;color:var(--muted);text-align:center;font:600 8px ui-monospace,monospace}.assignment-count.configured{color:var(--accent);border-color:#59d5b54d;background:var(--accent-soft)}.project-peripheral-actions{min-height:31px;padding:0 8px 8px 46px;display:flex;gap:5px}.project-peripheral-actions button{min-height:25px;padding:0 9px;border:1px solid var(--line);border-radius:4px;background:#151e1b;color:#aebdb8;cursor:pointer;font-size:8px}.project-peripheral-actions button:first-child{flex:1}.project-peripheral-actions button:hover{border-color:var(--accent);color:var(--accent)}.project-peripheral-actions .remove-peripheral{width:29px;padding:0;display:grid;place-items:center}.project-peripheral-actions .remove-peripheral:hover{border-color:#ff766e73;color:var(--danger)}.peripheral-settings{margin:12px;padding:11px;border:1px solid var(--line);border-radius:7px;background:#ffffff05}.peripheral-settings .editor-section-title{margin-bottom:9px}.generator-level{padding:2px 5px;border:1px solid var(--line);border-radius:999px;font:600 7px ui-monospace,monospace}.generator-level.full{color:var(--accent);border-color:#59d5b547}.generator-level.partial{color:var(--amber);border-color:#efb85b4d}.peripheral-setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.peripheral-setting-grid label{min-width:0;display:flex;flex-direction:column;gap:4px;color:#b8c5c1;font-size:8px}.peripheral-setting-grid label>span{min-width:0;display:flex;justify-content:space-between;gap:4px}.peripheral-setting-grid label small{color:var(--muted);font-size:7px}.peripheral-setting-grid input[type=number],.peripheral-setting-grid select{width:100%;min-height:28px;padding:0 7px;border:1px solid var(--line);border-radius:4px;outline:0;background:#0d1513;color:var(--text);font-size:9px}.peripheral-setting-grid input:focus,.peripheral-setting-grid select:focus{border-color:var(--accent)}.peripheral-setting-grid .boolean-setting{grid-column:span 2;min-height:26px;padding:0 2px;flex-direction:row;align-items:center;justify-content:space-between}.peripheral-setting-grid input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent)}.generator-note{margin:9px 0 0;color:var(--amber);font-size:8px;line-height:1.45}.pinout-panel{padding:0 24px 28px;overflow:auto}.pinout-toolbar{height:74px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line-soft)}.pinout-toolbar h1{font-size:22px}.legend{display:flex;gap:14px;color:var(--muted);font-size:10px}.legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:7px;height:7px;border-radius:50%;background:var(--line)}.legend-dot.assigned{background:var(--accent)}.legend-dot.recommended{background:var(--amber)}.legend-dot.compatible{border:1px solid var(--accent);background:transparent}.selection-banner{margin:14px auto 0;max-width:760px;padding:9px 12px;display:flex;align-items:center;gap:9px;border:1px solid rgba(89,213,181,.25);border-radius:8px;background:var(--accent-soft);color:#bdeadd;font-size:11px}.selection-banner span{flex:1}.selection-banner button{border:0;background:transparent;color:var(--accent);cursor:pointer;font-size:10px}.route-mode-switch{flex:0 0 auto;display:flex;padding:2px;border:1px solid var(--line);border-radius:6px;background:#040d0b59}.route-mode-switch button{min-height:25px;padding:0 9px;border-radius:4px;color:var(--muted);font:600 8px ui-monospace,monospace}.route-mode-switch button.active.iomux{color:var(--amber);background:#efb85b1f}.route-mode-switch button.active.matrix{color:var(--accent);background:#59d5b51f}.chip-stage{min-height:calc(100vh - 180px);display:grid;grid-template-columns:minmax(135px,210px) minmax(230px,330px) minmax(135px,210px);justify-content:center;align-items:center;gap:10px;padding:30px 0}.chip-body{align-self:stretch;max-height:630px;min-height:510px;margin:auto 0;border:1px solid #3a4944;border-radius:8px;background:linear-gradient(145deg,#1a2321,#0d1211);box-shadow:0 24px 70px #00000059,inset 0 0 0 5px #111816;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.chip-body:before{content:"";position:absolute;top:14px;right:14px;bottom:14px;left:14px;border:1px solid #222f2b;border-radius:3px}.chip-notch{position:absolute;top:0;width:34px;height:10px;border:1px solid #3a4944;border-top:0;border-radius:0 0 14px 14px}.chip-kicker{color:var(--muted);text-transform:uppercase;font-size:8px;letter-spacing:.14em;z-index:1}.chip-body>strong{font-family:ui-monospace,monospace;font-size:clamp(24px,3vw,40px);letter-spacing:-.04em;margin-top:9px;z-index:1}.chip-body>small{color:var(--accent);font-family:ui-monospace,monospace;font-size:9px;margin-top:8px;z-index:1}.chip-stats{z-index:1;display:flex;gap:18px;margin-top:38px}.chip-stats span{display:flex;flex-direction:column;align-items:center;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.chip-stats b{color:var(--text);font:500 16px ui-monospace,monospace}.pin-column{display:flex;flex-direction:column;justify-content:center;gap:3px}.pin-slot{position:relative;height:22px}.pin-button{width:100%;height:22px;border:1px solid var(--line-soft);background:#111816;display:grid;grid-template-columns:29px 1fr auto;align-items:center;gap:6px;padding:0 7px;cursor:pointer;transition:.12s ease}.pin-column.left .pin-button{border-radius:5px 0 0 5px;text-align:right;grid-template-columns:1fr 29px auto}.pin-column.left .pin-number{grid-column:2}.pin-column.left .pin-name{grid-column:1;grid-row:1}.pin-column.right .pin-button{border-radius:0 5px 5px 0;text-align:left}.pin-button:hover{border-color:#586b64;transform:translate(2px)}.pin-column.left .pin-button:hover{transform:translate(-2px)}.pin-number{font:500 9px ui-monospace,monospace;color:#aebdb8}.pin-name{font:400 8px ui-monospace,monospace;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pin-button i{font:700 7px Inter,ui-sans-serif,sans-serif;color:var(--amber)}.pin-button.selected{border-color:#dfe7e4;box-shadow:0 0 0 1px #dfe7e4;z-index:2}.pin-button.assigned{background:var(--accent-soft);border-color:#59d5b55c}.pin-button.assigned .pin-name{color:var(--accent)}.pin-button.board-connected:not(.assigned){border-color:#efb85b52;background:#efb85b0e}.pin-button.board-connected:not(.assigned) .pin-name{color:var(--amber)}.pin-button.board-connected.assigned .pin-name{color:#a7decf}.special-pin-slot{margin-bottom:5px}.special-pin{cursor:default;border-color:#efb85b52;background:#efb85b0e}.special-pin .pin-name{color:var(--amber);font-weight:600}.special-pin:hover{transform:none!important;border-color:#efb85b52}.pin-button.compatible{border-color:var(--accent);animation:breathe 1.8s ease-in-out infinite}.pin-button.recommended{border-color:var(--amber);background:#efb85b1a}.pin-button.profile-preview{border-color:var(--amber);background:#efb85b1a;animation:breathe-amber 1.8s ease-in-out infinite}.pin-button.matrix-preview{border-color:var(--accent);background:#59d5b514;animation:breathe 1.8s ease-in-out infinite}.pin-button.conflict{border-color:var(--danger);background:#ff766e1f}.pin-button.unavailable{opacity:.2;cursor:not-allowed}.pin-clear{position:absolute;z-index:4;top:4px;width:14px;height:14px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,118,110,.28);border-radius:3px;background:#18201e;color:#d18d88;cursor:pointer;opacity:.58}.pin-column.left .pin-clear{left:4px}.pin-column.right .pin-clear{right:4px}.pin-slot:hover .pin-clear{opacity:1;color:var(--danger);background:#291817}.pin-column.left .pin-button.assigned{padding-left:22px}.pin-column.right .pin-button.assigned{padding-right:22px}@keyframes breathe{50%{box-shadow:0 0 10px #59d5b540}}@keyframes breathe-amber{50%{box-shadow:0 0 10px #efb85b3d}}.icon-button{width:32px;height:32px;border:1px solid var(--line);border-radius:7px;background:transparent;display:grid;place-items:center;cursor:pointer;color:var(--muted)}.icon-button:hover{color:var(--danger);border-color:#ff766e4d}.pin-meta{display:flex;gap:5px;padding:12px 16px;border-bottom:1px solid var(--line-soft)}.pin-meta span{font:500 8px ui-monospace,monospace;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:4px 6px}.board-connections{margin:12px 14px 0;padding:11px;border:1px solid rgba(239,184,91,.24);border-radius:7px;background:#efb85b0e;display:flex;flex-direction:column;gap:8px}.board-connections>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.board-connections strong{font-size:10px;font-weight:600}.board-connections small{color:var(--muted);font-size:8px}.current-assignment,.quick-assign{margin:12px 14px 0;padding:11px;border-radius:7px;border:1px solid rgba(89,213,181,.2);background:var(--accent-soft);display:flex;flex-direction:column;gap:6px}.current-assignment span,.quick-assign>span{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.current-assignment strong{color:var(--accent);font:500 10px ui-monospace,monospace}.assignment-detail{padding-top:2px;display:grid;grid-template-columns:1fr auto;gap:5px 7px;align-items:center}.assignment-detail>button{grid-column:1 / -1;min-height:25px;border:1px solid var(--line);border-radius:4px;background:transparent;color:#b9c5c1;cursor:pointer;font-size:8px}.assignment-detail>button:hover{border-color:var(--accent);color:var(--accent)}.route-badge{padding:3px 5px;border-radius:4px;font:600 7px ui-monospace,monospace!important;letter-spacing:0!important;white-space:nowrap}.route-badge.iomux{color:var(--amber)!important;border:1px solid rgba(239,184,91,.3)}.route-badge.matrix{color:var(--accent)!important;border:1px solid rgba(89,213,181,.25)}.route-actions{display:flex;gap:6px}.primary-button,.secondary-button{flex:1;height:30px;border-radius:5px;cursor:pointer;font-size:9px;font-weight:700}.primary-button{border:0;background:var(--accent);color:#07100d}.secondary-button{border:1px solid rgba(89,213,181,.3);color:var(--accent);background:transparent}.notice{margin:12px 14px 0;padding:10px;border:1px solid rgba(255,118,110,.25);background:#ff766e12;border-radius:7px;display:flex;gap:8px;color:#ffaaa5;font-size:10px}.notice>div{display:flex;flex-direction:column;gap:3px}.notice strong{font-size:10px}.notice span{color:#d7aaa7;line-height:1.45}.function-heading{padding:18px 14px 9px;display:flex;align-items:flex-end;justify-content:space-between}.function-heading>div{display:flex;flex-direction:column}.function-heading strong{margin-top:4px;font-size:10px;font-weight:550}.mini-search{width:115px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:5px;padding:4px 0;color:var(--muted)}.function-list{flex:1;overflow:auto;padding:0 9px 24px}.function-group{display:block;border-top:1px solid var(--line-soft)}.function-group-summary,.function-group-title{width:100%;min-height:38px;padding:0 7px;display:flex;align-items:center;justify-content:space-between;color:#bac7c3}.function-group-summary{border:0;background:transparent;cursor:pointer}.function-group-summary svg{margin-right:7px;color:var(--muted);transition:transform .12s ease}.function-group.open>.function-group-summary svg{transform:rotate(90deg)}.function-group-summary span,.function-group-title span{margin-right:auto;font:600 10px ui-monospace,monospace}.function-group-summary small,.function-group-title small{color:var(--muted);font-size:8px}.gpio-group{padding-bottom:5px}.gpio-group .function-group-title{cursor:default}.advanced-functions{border-top:1px solid var(--line-soft);margin-top:5px}.advanced-toggle{width:100%;min-height:40px;padding:0 7px;display:flex;gap:7px;align-items:center;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:9px;text-align:left}.advanced-toggle:hover{color:var(--text)}.advanced-toggle small{margin-left:auto;border:1px solid var(--line);border-radius:999px;padding:2px 6px;font:400 8px ui-monospace,monospace}.function-card{min-height:47px;border-bottom:1px solid var(--line-soft);padding:7px 6px;display:flex;align-items:center;justify-content:space-between;gap:8px}.function-card>div:first-child{min-width:0;display:flex;flex-direction:column}.function-card strong{font:500 10px ui-monospace,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.function-card small{color:var(--muted);font-size:8px;margin-top:2px;overflow:hidden;text-overflow:ellipsis}.compact-button{border:1px solid var(--line);background:#17201e;color:#b8c5c1;border-radius:4px;padding:5px 8px;font-size:8px;cursor:pointer}.route-buttons{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.route-buttons button{min-width:46px;height:25px;padding:0 6px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;font:500 7px ui-monospace,monospace}.route-buttons button:hover{border-color:var(--accent);color:var(--accent)}.route-buttons button.preferred{border-color:#efb85b66;color:var(--amber);background:#efb85b12}.conflict-drawer{position:fixed;z-index:10;left:320px;right:400px;bottom:18px;max-height:160px;overflow:auto;border:1px solid rgba(255,118,110,.3);border-radius:9px;background:#271211f5;box-shadow:0 18px 45px #0006;padding:12px 14px;display:flex;gap:10px;color:#ffaaa5;font-size:10px}.conflict-drawer strong{font-size:11px}.conflict-drawer p{margin:5px 0 0;color:#dca9a6}.conflict-drawer code{color:var(--danger);margin-right:5px}.error-toast{position:fixed;right:18px;bottom:18px;z-index:20;max-width:380px;padding:11px 14px;border:1px solid rgba(255,118,110,.35);border-radius:8px;background:#301918;color:#ffc1bd;cursor:pointer;font-size:10px}.dialog-backdrop{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#030807b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.profile-dialog{width:min(480px,calc(100vw - 40px));padding:18px;border:1px solid rgba(239,184,91,.35);border-radius:10px;background:#131a18;box-shadow:0 24px 70px #0000008c;display:grid;grid-template-columns:28px 1fr;gap:10px;color:var(--amber)}.profile-dialog h3{margin:0;color:var(--text);font-size:13px}.profile-dialog p{margin:7px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.dialog-actions{grid-column:1 / -1;display:flex;gap:7px;margin-top:7px}.dialog-actions button{flex:1;min-height:34px}.danger-button{border:1px solid rgba(255,118,110,.35);border-radius:5px;background:#ff766e17;color:var(--danger);cursor:pointer;font-size:9px;font-weight:700}.inspector-header-actions{display:flex;gap:6px}.project-summary{padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.summary-metric{min-height:82px;padding:13px;display:flex;flex-direction:column;justify-content:center;border:1px solid var(--line);border-radius:8px;background:#070e0c4d}.summary-metric strong{color:var(--accent);font:500 24px ui-monospace,monospace}.summary-metric span{margin-top:4px;color:var(--muted);font-size:9px}.project-summary p{grid-column:1 / -1;margin:8px 0 0;padding:13px;border:1px dashed var(--line);border-radius:7px;color:var(--muted);font-size:10px;line-height:1.55}.peripheral-editor{flex:1;min-height:0;overflow:auto;padding:14px}.peripheral-editor-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}.peripheral-editor-summary>div{min-height:55px;padding:10px;display:flex;flex-direction:column;gap:7px;border:1px solid var(--line);border-radius:6px}.peripheral-editor-summary span:first-child{color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.peripheral-editor-summary strong{font-size:10px}.routing-editor{margin-top:12px;padding:12px;display:flex;flex-direction:column;gap:10px;border:1px solid rgba(239,184,91,.25);border-radius:8px;background:#efb85b0a}.routing-editor-heading strong{display:block;margin-top:4px;font-size:11px}.routing-editor .signal-selector{max-height:none}.routing-editor .profile-warning{font-size:9px}.routing-editor .profile-apply{min-height:34px;font-size:9px}.secondary-editor-action{min-height:31px;border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--muted);cursor:pointer;font-size:9px}.auto-assign-button{width:100%;min-height:38px;margin-top:12px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(239,184,91,.35);border-radius:6px;background:#efb85b14;color:var(--amber);cursor:pointer;font-size:9px;font-weight:700}.auto-assign-button:hover{background:#efb85b24}.editor-signal-list{margin-top:14px}.editor-section-title{min-height:31px;display:flex;align-items:center;justify-content:space-between}.editor-section-title small{color:var(--muted);font:500 9px ui-monospace,monospace}.editor-signal-list>button{width:100%;min-height:48px;padding:7px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;border-top:1px solid var(--line-soft);background:transparent;cursor:pointer;text-align:left}.editor-signal-list>button:hover,.editor-signal-list>button.selected{background:var(--accent-soft)}.editor-signal-list>button>span:first-child{min-width:0;display:flex;flex-direction:column;gap:3px}.editor-signal-list strong{overflow:hidden;font:550 10px ui-monospace,monospace;text-overflow:ellipsis;white-space:nowrap}.editor-signal-list small{color:var(--muted);font-size:8px;text-transform:uppercase}.editor-signal-list p{color:var(--muted);font-size:10px}.editor-pin-badge{flex:0 0 auto;padding:3px 6px;border-radius:999px;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(89,213,181,.25);font:600 8px ui-monospace,monospace}.show-all-functions{width:100%;min-height:35px;margin-top:8px;border:1px dashed var(--line);border-radius:5px;background:transparent;color:var(--muted);cursor:pointer;font-size:8px}.show-all-functions:hover{color:var(--text);border-color:#43544e}.peripheral-catalog{width:min(720px,calc(100vw - 50px));max-height:min(760px,calc(100vh - 50px));display:flex;flex-direction:column;border:1px solid #35453f;border-radius:12px;background:#111816;box-shadow:0 28px 90px #0009;overflow:hidden}.catalog-header{min-height:76px;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.catalog-search{height:40px;margin:13px 16px;padding:0 12px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:7px;background:#0d1412;color:var(--muted)}.catalog-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font-size:11px}.catalog-list{min-height:0;overflow:auto;padding:0 16px 16px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.catalog-item{min-height:70px;padding:9px;display:grid;grid-template-columns:27px minmax(0,1fr) auto;grid-template-rows:1fr auto;gap:5px 8px;align-items:center;border:1px solid var(--line);border-radius:7px;background:#080f0d59}.catalog-item.disabled{opacity:.55}.catalog-item .peripheral-icon{grid-row:1 / -1}.catalog-item-title{min-width:0;display:flex;flex-direction:column;gap:3px}.catalog-item-title strong{overflow:hidden;font:550 10px ui-monospace,monospace;text-overflow:ellipsis;white-space:nowrap}.catalog-item-title small{color:var(--muted);font-size:8px}.catalog-item>.routing-badges{justify-self:end}.catalog-item>button{grid-column:2 / -1;min-height:26px;display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid rgba(89,213,181,.25);border-radius:4px;background:var(--accent-soft);color:var(--accent);cursor:pointer;font-size:8px}.catalog-item>button:disabled{border-color:var(--line);background:transparent;color:var(--muted);cursor:default}@media(max-width:1400px){.workspace{grid-template-columns:280px minmax(540px,1fr) 320px}.topbar{grid-template-columns:290px 1fr auto}.conflict-drawer{left:300px;right:340px}.pinout-panel{padding-inline:14px}}
