:root{--bg: #0d1117;--card: #161b22;--fg: #e6edf3;--mut: #8b949e;--accent: #3fb950;--warn: #d29922;--bad: #f0883e;--bd: #30363d}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:system-ui,sans-serif;margin:0}h1{font-size:1.3rem}h2{font-size:1rem;color:var(--mut);border-bottom:1px solid var(--bd);padding-bottom:4px;margin-top:28px}h3{font-size:.95rem;color:var(--mut);margin-top:1.5rem}a{color:var(--accent);text-decoration:none}.card{background:var(--card);border:1px solid var(--bd);border-radius:8px;padding:14px;margin-bottom:12px;overflow-x:auto}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:8px}.row label{min-width:150px;color:var(--mut);font-size:.85rem}input,select,textarea{background:var(--bg);color:var(--fg);border:1px solid var(--bd);border-radius:4px;padding:6px 8px;font-family:inherit}input[type=checkbox]{width:18px;height:18px}button{background:var(--accent);color:#04140a;border:none;border-radius:6px;padding:8px 14px;font-weight:600;cursor:pointer}button.secondary{background:transparent;color:var(--fg);border:1px solid var(--bd)}button.danger{background:var(--bad);color:#fff}button:disabled{opacity:.5;cursor:not-allowed}button+button{margin-left:.5rem}.search-bar{margin-bottom:.75rem;max-width:320px}.search-bar input{width:100%}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--fg)}th.sortable .arrow{color:var(--accent);margin-left:3px}table{border-collapse:collapse;width:100%}td,th{border:1px solid var(--bd);padding:.5rem .7rem;text-align:left;vertical-align:middle}td.actions-cell{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}td.actions-cell button{margin-left:0}th{color:var(--mut);font-weight:600;font-size:.85rem}tr{background:var(--card)}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.75rem}.badge.on{background:#3fb95033;color:var(--accent)}.badge.off{background:#8b949e33;color:var(--mut)}.badge.invalid{background:#f8514933;color:var(--bad)}fieldset{border:1px solid var(--bd);border-radius:6px;margin-top:8px}legend{color:var(--mut);font-size:.85rem;padding:0 6px}.topbar{display:flex;gap:1.25rem;align-items:center;padding:.75rem 1.25rem;background:var(--card);border-bottom:1px solid var(--bd)}.topbar .brand{color:var(--fg)}.topbar nav{display:flex;gap:1rem;flex:1}.topbar nav a{color:var(--mut);font-size:.9rem}.topbar nav a:hover,.topbar nav a.router-link-active{color:var(--accent)}.topbar .who{color:var(--mut);font-size:.85rem}main{padding:1.25rem;max-width:1000px;margin-inline:auto}@media (max-width: 640px){main{padding:.75rem}.topbar{flex-wrap:wrap;gap:.5rem;padding:.6rem .85rem}.topbar nav{order:3;flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;gap:.9rem;padding-bottom:2px;-webkit-overflow-scrolling:touch}.topbar nav a{white-space:nowrap}.topbar .who{display:none}table{min-width:480px}.row label{min-width:0;width:100%}}.login[data-v-95431d6a]{max-width:320px;margin:4rem auto;display:flex;flex-direction:column;gap:.75rem}.error[data-v-95431d6a]{color:var(--bad);margin:0}.devices[data-v-c9f721ef]{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.devices li[data-v-c9f721ef]{margin-bottom:0}.devices a[data-v-c9f721ef]{color:var(--fg)}.devices small[data-v-c9f721ef]{color:var(--mut)}.online[data-v-c9f721ef]{color:var(--accent)}.offline[data-v-c9f721ef]{color:var(--bad)}.muted[data-v-c9f721ef]{color:var(--mut)}button.active[data-v-c9f721ef]{border-color:var(--accent);color:var(--accent)}.meta[data-v-dff0079d]{color:var(--mut)}table[data-v-dff0079d]{margin-top:.5rem}.muted[data-v-dff0079d]{color:var(--mut)}.command-block[data-v-dff0079d]{border-top:1px solid var(--bd);padding-top:.75rem;margin-top:.75rem}.command-block[data-v-dff0079d]:first-of-type{border-top:none;padding-top:0;margin-top:0}.muted[data-v-5b3c62eb],.muted[data-v-4840a75a]{color:var(--mut)}.draft-banner[data-v-4840a75a]{background:#d2992226;border:1px solid var(--warn);color:var(--warn);border-radius:8px;padding:10px 14px;margin-bottom:1rem;font-size:.9rem}.type-form fieldset[data-v-4840a75a]{margin-bottom:1rem;padding:.75rem}.type-form label[data-v-4840a75a]{display:block;margin-bottom:.4rem;color:var(--mut);font-size:.85rem}.extractor[data-v-4840a75a]{border-top:1px dashed var(--bd);padding-top:.5rem;margin-top:.5rem}textarea[data-v-4840a75a]{width:100%;min-height:3rem;font-family:monospace}.actions[data-v-4840a75a]{display:flex;gap:.5rem;margin:1rem 0}.export-box[data-v-4840a75a]{background:var(--card);border:1px solid var(--bd);border-radius:8px;padding:.75rem;margin-bottom:1rem}.export-actions[data-v-4840a75a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.export-box pre[data-v-4840a75a]{overflow-x:auto;font-size:.85rem;color:var(--fg)}.new-user[data-v-8a42b25a],.add-membership[data-v-8a42b25a]{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0 1rem}.memberships[data-v-8a42b25a]{list-style:none;padding:0}.memberships li[data-v-8a42b25a]{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:.3rem}.muted[data-v-8a42b25a],.muted[data-v-2fbe7e62]{color:var(--mut)}.warn-banner[data-v-2fbe7e62]{background:#d2992226;border:1px solid var(--warn);color:var(--warn);border-radius:8px;padding:10px 14px;margin-bottom:1rem;font-size:.9rem}.warn-banner code[data-v-2fbe7e62]{background:#00000040;padding:2px 6px;border-radius:4px;color:var(--fg);margin:0 .5rem}.new-device[data-v-2fbe7e62],.device-form[data-v-2fbe7e62]{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0 1.5rem}.new-request[data-v-2bd1b273]{display:flex;flex-direction:column;gap:.5rem;max-width:640px}.payload[data-v-2bd1b273]{background:var(--bg);border:1px solid var(--bd);border-radius:6px;padding:8px;font-size:.85rem;overflow-x:auto}.current-config[data-v-2bd1b273]{background:var(--bg);border:1px solid var(--bd);border-radius:6px;padding:8px;font-size:.85rem}.current-config summary[data-v-2bd1b273]{cursor:pointer;color:var(--mut);display:flex;align-items:center;gap:.6rem}.current-config .payload[data-v-2bd1b273]{margin-top:.5rem;border:none;padding:0}.muted[data-v-2bd1b273]{color:var(--mut)}button.active[data-v-2bd1b273]{border-color:var(--accent);color:var(--accent)}
