:root{--bg: #0f1115;--panel: #1a1d24;--panel-2: #232733;--text: #e6e8ec;--muted: #9aa0ac;--accent: #4c8bf5;--border: #2c3140;--error: #ff6b6b}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column}.nav{display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--border)}.nav .brand{font-weight:700;font-size:18px;color:var(--accent)}.nav a{color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:6px}.nav a:hover,.nav a.active{color:var(--text);background:var(--panel-2)}.nav .spacer{flex:1}.nav .who{color:var(--muted);font-size:14px}.content{padding:24px;max-width:1000px;width:100%;margin:0 auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:20px}.card h2{margin-top:0}button{background:var(--accent);color:#fff;border:none;padding:8px 14px;border-radius:6px;cursor:pointer;font-size:14px}button:hover{filter:brightness(1.1)}button:disabled{opacity:.6;cursor:default}button.danger{background:#c0392b;padding:5px 10px;font-size:13px}.link-btn{background:transparent;color:var(--muted)}.link-btn:hover{color:var(--text);filter:none}input,select,textarea{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:6px;font-size:14px;font-family:inherit}textarea{width:100%;resize:vertical;font-family:ui-monospace,monospace}.form-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.form-col{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.form-col label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}.form-col label input,.form-col label select{width:100%}.grid{width:100%;border-collapse:collapse}.grid th,.grid td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);font-size:14px}.grid th{color:var(--muted);font-weight:600}.muted{color:var(--muted);font-size:13px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tab{background:transparent;color:var(--muted);border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;padding:8px 16px;font-size:14px}.tab.active{color:var(--text);background:var(--panel, #fff);border-color:var(--border);font-weight:600}.tab-panel{padding-top:4px}.btn-link{display:inline-block;background:var(--accent, #2563eb);color:#fff;padding:5px 12px;border-radius:6px;font-size:13px;text-decoration:none}.btn-link:hover{filter:brightness(1.08)}.login-download{margin:14px 0 0;text-align:center;font-size:14px}.login-download a,.login-download a:link,.login-download a:visited,.login-download a:hover,.login-download a:active{color:#f4c20d}.error{color:var(--error);background:#ff6b6b1a;padding:8px 12px;border-radius:6px;margin-bottom:12px;font-size:14px}.indicator{display:inline-block;width:12px;height:12px;border-radius:50%}.login-wrap{display:flex;justify-content:center;padding-top:8vh}.login{width:320px;display:flex;flex-direction:column;gap:14px}.login h1{margin:0 0 8px;color:var(--accent);text-align:center}.login label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}.apikey-box{background:var(--panel-2);border:1px solid var(--accent);border-radius:8px;padding:14px;margin-bottom:16px}.apikey-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.apikey-row code{background:var(--bg);padding:8px 10px;border-radius:6px;font-family:ui-monospace,monospace;word-break:break-all;flex:1;min-width:240px}.uc{display:flex;flex-direction:column;gap:20px}.uc h3{margin:0;font-size:15px}.uc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px}.uc-head h2{margin-bottom:4px}.uc-head p{margin:0}.uc-limits{display:flex;gap:8px;flex-wrap:wrap}.uc-limit{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);font-variant-numeric:tabular-nums}.uc-limit.full{border-color:#f4c20d;color:#f4c20d}.uc-positions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.uc-pos{text-align:left;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);display:flex;flex-direction:column;gap:4px;min-height:92px}.uc-pos:hover{filter:none;border-color:var(--muted)}.uc-pos.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.uc-pos.fixed{opacity:.7}.uc-pos:disabled{opacity:.7}.uc-pos-lbl{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;gap:6px}.uc-pos-val{font-size:13px;line-height:1.3}.uc-pos-val.empty{color:var(--muted)}.uc-in-lbl{font-family:ui-monospace,monospace;color:#3ecf8e}.uc-opts-title{margin-bottom:8px}.uc-opts{display:flex;flex-direction:column;gap:6px}.uc-opt{display:flex;align-items:center;gap:12px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 14px;text-align:left;width:100%}.uc-opt:hover{filter:none;border-color:var(--muted)}.uc-opt.sel{border-color:var(--accent)}.uc-opt:disabled{opacity:.45}.uc-opt:disabled:hover{border-color:var(--border)}.uc-radio{width:16px;height:16px;border-radius:50%;border:2px solid var(--muted);flex:none}.uc-opt.sel .uc-radio{border-color:var(--accent);background:radial-gradient(var(--accent) 45%,transparent 50%)}.uc-opt-name{flex:1}.uc-sw{font-family:ui-monospace,monospace;font-size:12px;color:var(--muted)}.uc-why{font-size:12px;color:#f4c20d}.uc-error{margin:12px 0 0}.uc-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin-top:16px}button.uc-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}button.uc-ghost:hover{color:var(--text);filter:none}.uc-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.uc-split>.card{min-width:0}.uc-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.uc-tag{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.uc-empty{color:var(--muted);padding:20px 0;text-align:center}.uc-wire{display:flex;flex-direction:column;gap:10px}.uc-wrow{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--panel-2);display:flex;flex-direction:column;gap:8px}.uc-wrow-top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.uc-chips{display:flex;flex-wrap:wrap;gap:6px}.uc-chip{font-family:ui-monospace,monospace;font-size:12px;padding:3px 8px;border-radius:5px;border:1px solid}.uc-chip.uc-in{color:#3ecf8e;border-color:#3ecf8e}.uc-chip.uc-valve{color:#4c8bf5;border-color:#4c8bf5}.uc-chip.uc-micro{color:#b07cf5;border-color:#b07cf5}.uc-chip.uc-led{color:#f4c20d;border-color:#f4c20d}.uc-chip.uc-scaler{color:#ff8a5c;border-color:#ff8a5c}.uc-board-title{margin:18px 0 8px!important}.uc-ports{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.uc-port{font-family:ui-monospace,monospace;font-size:12px;border:1px solid var(--border);border-radius:6px;padding:6px 8px;display:flex;justify-content:space-between;gap:6px;color:var(--muted)}.uc-port.used{color:var(--text);border-color:#3ecf8e;background:#3ecf8e1a}.uc-port b{color:#3ecf8e;font-weight:600}.uc-cfg{margin:0;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:14px;font-family:ui-monospace,monospace;font-size:13px;line-height:1.6;overflow-x:auto}.uc-sec{color:var(--accent)}.uc-cm{color:#5c6475}.uc-k{color:var(--muted)}@media (max-width: 860px){.uc-split{grid-template-columns:1fr}.uc-positions{grid-template-columns:repeat(2,minmax(0,1fr))}}
