:root { color-scheme: dark; --bg:#0b1020; --panel:#151c2f; --panel2:#1b2540; --text:#e8edf7; --muted:#9ba8bd; --line:#2c3854; --blue:#4e8cff; --red:#e65364; --green:#35c58b; --amber:#f0b84b; }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; background:var(--bg); color:var(--text); }
a { color:#8bb3ff; text-decoration:none; } a:hover { text-decoration:underline; }
.topbar { min-height:62px; padding:12px max(20px,calc((100vw - 1240px)/2)); display:flex; align-items:center; justify-content:space-between; gap:20px; background:#10172a; border-bottom:1px solid var(--line); }
.brand { color:white; font-size:18px; font-weight:750; }.topbar nav { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }.user { color:var(--muted); }
.container { width:min(1240px,calc(100% - 32px)); margin:30px auto 60px; }.page-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:20px; }.page-heading h1,h1 { margin:0 0 6px; }.page-heading p { margin:0; color:var(--muted); }
.card { background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:22px; box-shadow:0 10px 35px #0003; margin-bottom:22px; }.card h2 { margin-top:0; }.login-card { max-width:440px; margin:10vh auto; }
.grid { display:grid; gap:22px; }.grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }.stack { display:grid; gap:16px; }.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; margin-bottom:28px; }.span-two { grid-column:1/-1; }
label { display:grid; gap:6px; color:#c8d2e5; font-weight:600; }input,select,button,.button { font:inherit; border-radius:8px; border:1px solid #3a4868; padding:10px 12px; background:#0f1628; color:var(--text); }input:focus,select:focus,button:focus { outline:2px solid #4e8cff99; outline-offset:1px; }
button,.button { cursor:pointer; display:inline-flex; justify-content:center; align-items:center; }button:hover,.button:hover { border-color:#7899d5; text-decoration:none; }button:disabled { cursor:not-allowed; opacity:.45; }.primary { background:var(--blue); border-color:var(--blue); color:white; font-weight:700; }.danger { background:#6e2632; border-color:var(--red); }.link-button { padding:0; border:0; background:none; color:#8bb3ff; }.inline { display:inline; }
.button-row { display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }.notice { padding:11px 14px; border-radius:8px; margin:0 0 18px; border:1px solid var(--line); }.notice.success { background:#153b32; border-color:#287e65; }.notice.error { background:#46212a; border-color:#9b3a4b; }.notice.warning { background:#47391d; border-color:#8c6c27; }.muted,.help,small { color:var(--muted); }.help { margin:0; }.checkbox { display:flex; grid-template-columns:auto 1fr; align-items:center; justify-content:start; }.checkbox input { width:18px; height:18px; }
.badge { display:inline-flex; border-radius:999px; padding:5px 10px; font-size:13px; border:1px solid var(--line); }.badge.success { color:#8ee6c2; border-color:#277b61; background:#12372d; }.badge.danger { color:#ffabb5; border-color:#8e3342; background:#3a1c24; }.badge.idle { color:#b6c1d4; }
.device-info { display:grid; grid-template-columns:150px 1fr; gap:10px; }.device-info dt { color:var(--muted); }.device-info dd { margin:0; font-weight:650; }.terminal-card { margin-top:22px; }.terminal-heading { display:flex; justify-content:space-between; align-items:center; }.terminal-heading h2 { margin:0; }pre { min-height:260px; max-height:440px; overflow:auto; padding:15px; border-radius:9px; background:#050811; color:#b8f3d8; white-space:pre-wrap; word-break:break-word; }progress { width:100%; height:18px; margin-top:22px; accent-color:var(--blue); }
.tabs { display:flex; gap:8px; margin-bottom:16px; }.tabs a { padding:9px 13px; border:1px solid var(--line); border-radius:8px; }.anchor-section { scroll-margin-top:15px; }.table-wrap { overflow:auto; }table { width:100%; border-collapse:collapse; min-width:760px; }th,td { padding:10px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top; }th { color:#b9c5da; background:var(--panel2); }td small { display:block; }.mono,.hash { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }.details { max-width:340px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.user-form { display:grid; grid-template-columns:120px 130px minmax(220px,1fr) auto; gap:8px; }.filter-row { display:flex; gap:9px; flex-wrap:wrap; margin-bottom:18px; }
@media (max-width:800px) { .grid.two,.form-grid { grid-template-columns:1fr; }.span-two { grid-column:auto; }.page-heading,.topbar { align-items:flex-start; flex-direction:column; }.user-form { grid-template-columns:1fr; }.container { width:min(100% - 20px,1240px); margin-top:18px; } }
