:root{--bg: #0d1117;--panel: #161b22;--panel2: #1c2333;--border: #2d333b;--text: #e6edf3;--muted: #8b949e;--accent: #58a6ff;--ok: #3fb950;--warn: #d29922;--err: #f85149}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,sans-serif}a{color:var(--accent);text-decoration:none}.app{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--panel);border-right:1px solid var(--border);padding:16px;position:sticky;top:0;height:100vh}.sidebar h1{font-size:18px;margin:4px 0 24px;color:var(--accent)}.nav{display:flex;flex-direction:column;gap:6px}.nav button{text-align:left;background:none;border:none;color:var(--muted);padding:10px 12px;border-radius:8px;cursor:pointer;font-size:14px}.nav button.active,.nav button:hover{background:var(--panel2);color:var(--text)}.main{flex:1;padding:24px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.device{cursor:pointer;transition:border-color .15s}.device:hover{border-color:var(--accent)}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px}.badge.ok{background:#10331a;color:var(--ok)}.badge.err{background:#3a1214;color:var(--err)}.badge.warn{background:#33290e;color:var(--warn)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600}button.primary{background:var(--accent);color:#04121f;border:none;padding:8px 16px;border-radius:8px;cursor:pointer;font-weight:600}button.danger{background:var(--err);color:#fff;border:none;padding:8px 16px;border-radius:8px;cursor:pointer}input,select{background:var(--panel2);border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:8px;outline:none}.screen{width:100%;border-radius:8px;background:#000;image-rendering:auto}.tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.tabs button{background:var(--panel2);border:1px solid var(--border);color:var(--muted);padding:8px 14px;border-radius:8px;cursor:pointer}.tabs button.active{color:var(--text);border-color:var(--accent)}pre{background:var(--panel2);padding:12px;border-radius:8px;overflow:auto;font-size:12px;max-height:400px}.muted{color:var(--muted);font-size:13px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
