.execution-switch{display:flex;gap:8px;margin:20px 0 12px;flex-wrap:wrap}.execution-switch button{padding:12px 20px;border:1px solid #cedacf;border-radius:9px;background:#fff;color:#315b4c;cursor:pointer;font:inherit}.execution-switch .selected{background:#265f4c;color:white;border-color:#265f4c}.firmware-panel{background:#fffef8;border:1px solid #d9dfcd;border-radius:18px;padding:26px;margin:0 0 26px}.firmware-panel[hidden]{display:none}.firmware-heading{display:flex;justify-content:space-between;gap:20px}.firmware-heading h2{margin:6px 0 12px;font-size:25px}.firmware-heading p{max-width:760px;line-height:1.8;color:#627267}.fw-led{align-self:flex-start;border-radius:30px;padding:10px 20px;background:#edf0e8;white-space:nowrap;color:#697365}.fw-led.on{background:#d8efbc;color:#345b19;box-shadow:0 0 18px #a4cf6470}.fw-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0}.fw-toolbar button,.fw-toolbar a{font:inherit;border:1px solid #c5d2c4;border-radius:7px;padding:10px 15px;background:#f5f6ec;color:#325a48;cursor:pointer;text-decoration:none}.fw-toolbar .primary{background:#285f4d;color:white}.fw-upload{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#f1f3e9;padding:14px;border-radius:10px}.fw-upload input{max-width:100%;font:inherit}.fw-upload span{font-size:12px;color:#627267}button:disabled,input:disabled{opacity:.45;cursor:not-allowed}.fw-status{padding:12px 0;min-height:48px;font-size:14px;overflow-wrap:anywhere}.fw-metrics{display:flex;gap:30px;flex-wrap:wrap;border-block:1px solid #e1e6d7;padding:16px 0}.fw-metrics span{color:#75806e;font-size:12px;display:block}.fw-metrics strong{font:19px monospace;color:#315a47}.fw-gates{font-size:13px;color:#677461;margin:14px 0}.fw-debug{display:grid;grid-template-columns:1fr 1.3fr;gap:24px}.fw-debug summary{cursor:pointer;font-size:14px;font-weight:600;padding:10px 0}.fw-registers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;max-height:280px;overflow:auto}.fw-registers div{display:flex;justify-content:space-between;gap:8px;font:11px monospace;border-bottom:1px solid #eef0e6;padding:6px 0}.fw-registers dd{margin:0}.fw-trace{font:12px/1.8 monospace;max-height:280px;overflow:auto;padding-left:20px;overflow-wrap:anywhere}.fw-footnote{font-size:12px;line-height:1.9;color:#6d7969}.fw-footnote a{color:#36684d}.firmware-mode #controls{opacity:.4;pointer-events:none}@media(max-width:700px){.firmware-panel{padding:18px}.firmware-heading{display:block}.fw-led{display:inline-block;margin-bottom:10px}.fw-debug{grid-template-columns:1fr}.fw-registers{grid-template-columns:1fr}.fw-metrics{gap:18px}}

.fw-peripherals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.fw-peripheral-card{border:1px solid #dfe5d5;border-radius:12px;padding:18px;background:#f7f8f0;min-width:0}.fw-peripheral-card h3{font-size:17px;margin:0 0 14px}.fw-peripheral-card p{font-size:12px;color:#6b7a65;line-height:1.8}.fw-peripheral-card input[type=range]{width:100%;margin:14px 0}.fw-peripheral-card pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.8 monospace}.fw-mono{font:12px/1.8 monospace;overflow-wrap:anywhere}.fw-serial-card{grid-column:1/-1}.fw-serial-card select,.fw-rx-row input,.fw-rx-row button{padding:9px 12px;border:1px solid #cdd7c5;border-radius:6px;background:#fff;color:#375b45;font:inherit}.fw-serial-card #fw-uart-tx{max-height:170px;min-height:70px;overflow:auto;background:#203e32;color:#d5edbc;border-radius:8px;padding:14px}.fw-rx-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.fw-rx-row input{flex:1;min-width:120px}.fw-rx-row button{background:#2f634d;color:#fff;cursor:pointer}@media(max-width:800px){.fw-peripherals{grid-template-columns:1fr}.firmware-mode .workspace{grid-template-columns:1fr}.fw-rx-row select{max-width:100%}}

.control-source{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;margin:0 0 12px;background:#edf3e8;border:1px solid #d6e1d0;border-radius:9px;font-size:12px;color:#375e4b}
.control-source a{margin-left:auto;color:#275e49}.control-source button{padding:6px 10px;border:1px solid #bdcfb7;border-radius:6px;background:#fff;color:#375e4b;cursor:pointer;font:inherit}
.board-pane .firmware-panel{margin:18px 0 0;padding:18px}.board-pane .firmware-heading h2{font-size:21px}.board-pane .fw-toolbar{gap:7px}.board-pane .fw-toolbar button,.board-pane .fw-toolbar a{padding:8px 10px;font-size:12px}
.board-pane .fw-peripherals{grid-template-columns:repeat(2,minmax(0,1fr))}.board-pane .fw-serial-card{grid-column:1/-1}.board-pane .fw-peripheral-card{padding:12px}.board-pane .fw-metrics{gap:14px}.board-pane .fw-metrics strong{font-size:14px}.board-pane .fw-debug{grid-template-columns:1fr}
@media(max-width:700px){.board-pane .fw-peripherals{grid-template-columns:1fr}.control-source a{margin-left:0}}
