:root{color-scheme:dark;--bg: #0f1013;--panel: #16181d;--panel-2: #1b1e24;--border: #24272e;--fg: #e8eaed;--muted: #8a8f98;--accent: #2ecc9a;--accent-dim: rgba(46, 204, 154, .12);--red: #e5534b;--red-dim: rgba(229, 83, 75, .12);--error: #e5534b}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}.app{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:40px}.logo{font-size:26px;font-weight:600;letter-spacing:-.02em;margin:0}.login{display:flex;flex-direction:column;gap:12px;width:100%;max-width:300px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px}.login input{background:var(--bg);border:1px solid var(--border);color:var(--fg);padding:10px 12px;font-size:14px;border-radius:8px;outline:none;transition:border-color .15s ease}.login input:focus{border-color:var(--accent)}.login button{background:var(--accent);color:#08110d;border:0;padding:10px 12px;font-size:14px;border-radius:8px;cursor:pointer;font-weight:600}.login button:disabled{opacity:.5;cursor:default}.error{color:var(--error);font-size:13px;margin:0;text-align:center}.shell{display:flex;min-height:100%}.sidebar{width:208px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 12px;gap:24px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:600;letter-spacing:-.01em;padding:0 10px}.brand-mark{width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,var(--accent),#1f8f6d);display:inline-block}.nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav-item{background:none;border:0;color:var(--muted);font-size:14px;font-weight:500;text-align:left;padding:9px 10px;border-radius:8px;cursor:pointer;transition:background .12s ease,color .12s ease}.nav-item:hover{color:var(--fg);background:var(--panel-2)}.nav-item.active{color:var(--fg);background:var(--panel-2);box-shadow:inset 2px 0 0 var(--accent)}.sidebar-foot{display:flex;flex-direction:column;gap:4px;padding:0 10px;font-size:13px}.content{flex:1;padding:28px 32px;min-width:0}.section-head{display:flex;align-items:center;gap:16px;margin-bottom:20px}.section-head h2{margin:0;font-size:18px;font-weight:600;letter-spacing:-.01em}.error-inline{color:var(--error);font-size:13px}.fleet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:14px}.card-head{display:flex;justify-content:space-between;align-items:center}.card-title{font-size:15px;font-weight:600}.state{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:3px 10px;border-radius:999px}.state .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.state-running{color:var(--accent);background:var(--accent-dim)}.state-stopped{color:var(--muted);background:#8a8f981f}.state-unreachable{color:var(--red);background:var(--red-dim)}.kv{margin:0;display:flex;flex-direction:column;gap:8px}.kv>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.kv dt{color:var(--muted);font-size:13px}.kv dd{margin:0;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}.kv .sub{color:var(--muted);font-weight:400}.card-actions{display:flex;gap:8px;align-items:center;border-top:1px solid var(--border);padding-top:14px}.busy{font-size:12px;color:var(--muted)}.btn{background:var(--panel-2);border:1px solid var(--border);color:var(--fg);font-size:13px;font-weight:500;padding:7px 14px;border-radius:8px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:transparent;color:#08110d;font-weight:600}.btn-primary:hover:not(:disabled){filter:brightness(1.08);border-color:transparent}.btn-danger{background:var(--red-dim);border-color:transparent;color:var(--red);font-weight:600}.filters{display:flex;align-items:center;gap:14px}.filters select{background:var(--panel);border:1px solid var(--border);color:var(--fg);font-size:13px;padding:6px 10px;border-radius:8px;outline:none}.table-wrap{background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--panel-2)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .empty{text-align:center;padding:28px}.dim{color:var(--muted)}.pos{color:var(--accent)}.neg{color:var(--red)}.tag{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}.pill{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 9px;border-radius:999px}.pill-win{color:var(--accent);background:var(--accent-dim)}.pill-loss{color:var(--muted);background:#8a8f981f}.tx-link{color:var(--fg);text-decoration:none;border-bottom:1px dotted var(--muted)}.tx-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.pager{display:flex;align-items:center;gap:16px;margin-top:16px}.link{background:none;border:0;color:var(--muted);font-size:13px;cursor:pointer;padding:0;text-decoration:underline;text-align:left}.muted{color:var(--muted);margin:0;font-size:13px}.users,.analytics{display:flex;flex-direction:column;gap:12px;max-width:480px}.users h2,.analytics h2{margin:0;font-size:18px;font-weight:600}.user-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.user-list li{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);font-size:14px}.user-list li:last-child{border-bottom:0}.add-user{display:flex;flex-direction:column;gap:8px;margin-top:8px}.add-user input{background:var(--panel);border:1px solid var(--border);color:var(--fg);padding:8px 10px;font-size:13px;border-radius:8px;outline:none}.add-user input:focus{border-color:var(--accent)}.add-user button{background:var(--accent);color:#08110d;border:0;padding:8px 10px;font-size:13px;border-radius:8px;cursor:pointer;font-weight:600}.add-user button:disabled{opacity:.5;cursor:default}.badge{display:inline-block;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:600;color:var(--bg);background:var(--accent);border-radius:4px;text-transform:uppercase;letter-spacing:.05em;vertical-align:middle}.checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox input{margin:0;cursor:pointer}.dash-link{margin-left:10px;font-size:11px;font-weight:500;color:var(--muted);text-decoration:none;border-bottom:1px dotted var(--muted);vertical-align:middle}.dash-link:hover{color:var(--accent);border-bottom-color:var(--accent)}
