:root{--bg: #0d1017;--panel: #151a23;--border: #262d3a;--text: #e8eaf0;--muted: #8b93a4;--accent: #2d7fd4;--accent-deep: #1c5a97;--accent2: #f08022;--ok: #3fb950;--bad: #f85149;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent)}.app{display:flex;min-height:100vh}.sidebar{width:300px;border-right:1px solid var(--border);padding:16px;background:var(--panel)}.main{flex:1;padding:24px}.brand{font-weight:700;font-size:18px;margin-bottom:20px}.brandlogo{display:block;width:100%;max-width:190px;height:auto;margin:4px 0 18px}.brandlogo.login{max-width:230px;margin:0 auto 8px}.device{padding:12px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px;cursor:pointer;background:var(--bg)}.device.active{border-color:var(--accent)}.device .host{font-weight:600}.device .meta{color:var(--muted);font-size:12px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.dot.on{background:var(--ok)}.dot.off{background:var(--muted)}.cards{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:24px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px;min-width:150px}.card .label{color:var(--muted);font-size:12px;text-transform:uppercase}.card .value{font-size:28px;font-weight:700;margin-top:4px}.terminal{background:#0a0c10;border:1px solid var(--border);border-radius:8px;padding:12px;font-family:Consolas,monospace;font-size:13px;white-space:pre-wrap;max-height:320px;overflow:auto;min-height:120px}input,textarea,button,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px 10px}button{background:var(--accent);border:none;cursor:pointer;color:#fff}button.secondary{background:var(--bg);border:1px solid var(--border)}button:disabled{opacity:.5;cursor:default}.row{display:flex;gap:8px;align-items:center}.filelist{border:1px solid var(--border);border-radius:8px;overflow:hidden}.filerow{display:flex;align-items:center;gap:12px;padding:7px 12px;border-bottom:1px solid var(--border);font-size:13px}.filerow:last-child{border-bottom:none}.filerow .fname{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filerow .fsize{color:var(--muted);font-size:12px;min-width:70px;text-align:right}.filerow button{padding:4px 10px;font-size:12px}.alertsbtn{width:100%;text-align:left;background:var(--bg);color:var(--text);border:1px solid var(--border);margin-bottom:14px;display:flex;align-items:center;gap:8px}.alertsbtn.active{border-color:var(--accent)}.badge{background:var(--bad);color:#fff;border-radius:10px;padding:1px 8px;font-size:12px;font-weight:700;margin-left:auto}.sidelabel{color:var(--muted);font-size:11px;text-transform:uppercase;margin-bottom:8px}.grouphdr{color:var(--text);font-size:12px;font-weight:700;margin:10px 0 6px;opacity:.85}.badge.gray{background:var(--border);color:var(--text)}.sev{font-size:11px;text-transform:uppercase;font-weight:700;padding:2px 7px;border-radius:4px;min-width:60px;text-align:center}.sev.warning{background:#f0883e2e;color:#f0883e}.sev.critical{background:#f851492e;color:#f85149}.screenwrap{position:relative;border:1px solid var(--border);border-radius:8px;background:#000;overflow:hidden}.screen{display:block;width:100%;height:auto;outline:none;cursor:crosshair}.screenstatus{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;pointer-events:none}.screenpage{display:flex;flex-direction:column;height:100vh;background:#000}.screenbar{display:flex;align-items:center;gap:14px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--border);flex:0 0 auto}.screenbar .barlogo{height:26px;width:auto}.screenbar .screentitle{font-weight:600;flex:1}.screenwrap.fill{flex:1 1 auto;border:none;border-radius:0;display:flex;align-items:center;justify-content:center}.screen.fill{width:100%;height:100%;object-fit:contain;cursor:none}.login{max-width:340px;margin:10vh auto;display:flex;flex-direction:column;gap:12px}h2{margin-top:0}.main h2,.main h3{border-left:3px solid var(--accent2);padding-left:10px}label{font-size:13px;color:var(--muted)}.field{display:flex;flex-direction:column;gap:4px}
