.mb3d-iot-panel { border: 1px solid var(--mb-rule,#d2d7ce); margin-top: 12px; font: 11px/1.6 Consolas,monospace; }
.mb3d-iot-panel summary { cursor: pointer; padding: 12px; }
.mb3d-iot-panel summary > span:first-child { font-weight: 600; }
.mb3d-iot-panel summary [data-iot="badge"] { float: right; margin-left: 6px; color: var(--mb-muted,#57655d); font-size: 10px; }
.mb3d-iot-host[data-connection="connected"] [data-iot="badge"] { color: var(--mb-accent,#b84d2b); }
.mb3d-iot-body { padding: 0 12px 12px; }
.mb3d-iot-address { display: block; }
.mb3d-iot-address input, .mb3d-iot-address select { width: 100%; min-width: 0; color: var(--mb-ink,#22352e); background: var(--mb-paper,#f6f5ef); border: 1px solid var(--mb-line,#b3beb4); padding: 9px; font: inherit; margin-top: 5px; }
.mb3d-iot-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.mb3d-iot-state { padding: 8px 0; margin: 0 !important; color: var(--mb-muted,#57655d); overflow-wrap: anywhere; font: inherit; }
.mb3d-iot-switch { display: flex; align-items: flex-start; gap: 8px; margin-top: 10px; line-height: 1.6; cursor: pointer; }
.mb3d-iot-switch input { flex: 0 0 auto; accent-color: var(--mb-accent,#b84d2b); margin: 3px 0 0; width: 15px; height: 15px; }
.mb3d-iot-stop { margin-top: 12px; border-color: var(--mb-accent,#b84d2b); }
.mb3d-iot-readings { display: grid; gap: 9px; margin: 14px 0 0; padding: 12px 0; border-block: 1px solid var(--mb-rule,#d2d7ce); }
.mb3d-iot-readings dt { color: var(--mb-muted,#57655d); font-size: 10px; }
.mb3d-iot-readings dd { margin: 1px 0 0; overflow-wrap: anywhere; }

.mb3d-iot-protocol { margin-top: 10px; }
