:root{color-scheme:dark;font-family:Inter,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#0b0b0b;color:#eee}header{display:flex;gap:16px;align-items:center;padding:14px 18px;background:#191919;position:sticky;top:0;z-index:3}header #who{margin-left:auto}nav{display:flex;gap:7px;flex-wrap:wrap;padding:10px;background:#111}button,input,select{background:#252525;color:#eee;border:1px solid #444;border-radius:7px;padding:10px}button{cursor:pointer}button:hover{border-color:#58a6ff}.secondary{background:#181818}main{padding:18px}.center{max-width:420px;margin:10vh auto}.card{background:#1d1d1d;border:1px solid #353535;border-radius:12px;padding:16px}.center input,.center button{display:block;width:100%;margin:9px 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.ok{color:#48d17a}.fault,.error{color:#ff5d5d}.warn{color:#ffd65a}.info{color:#63a9ff}.ioValue{font-size:2rem;margin:14px 0}table{width:100%;border-collapse:collapse;background:#181818}th,td{border:1px solid #333;padding:9px;text-align:left}th{background:#242424}pre{overflow:auto}@media(max-width:700px){header{flex-wrap:wrap}header #who{margin-left:0}table{display:block;overflow:auto}}
.assignmentRow{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px;border-bottom:1px solid #333}.assignmentRow span{margin-left:auto}

.ioCard h3{margin:0 0 8px;font-size:1.05rem}.ioMeta{display:flex;flex-wrap:wrap;gap:6px}.ioMeta span{font-size:.78rem;color:#bbb;background:#292929;border:1px solid #3b3b3b;border-radius:999px;padding:4px 8px}.ioCard input[type=range]{width:100%}
.channelKind{display:inline-block;font-size:.78rem;font-weight:700;color:#9ecbff;background:#14263a;border:1px solid #28517a;border-radius:999px;padding:4px 9px;margin-bottom:10px}.registerTitle{font-size:.92rem;color:#ffd65a;font-weight:700;margin-top:4px}.channelPreview{display:flex;min-width:230px;flex-direction:column;gap:5px}.channelPreview b{font-size:1rem}.channelPreview span{color:#ffd65a;font-size:.85rem}
