.dash{max-width:960px;margin:0 auto;padding:1.75rem 1.25rem 3rem}.dash-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.dash-brand{margin:0;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600}.dash-header h1{margin:.15rem 0 0;font-size:1.65rem;font-weight:600}.dash-actions{display:flex;flex-wrap:wrap;gap:.5rem}.dash-summary{margin:0 0 1.25rem;color:var(--muted);font-size:.95rem}.dash-error{margin:0 0 1rem;padding:.75rem 1rem;background:color-mix(in srgb,var(--danger) 18%,transparent);border:1px solid color-mix(in srgb,var(--danger) 40%,transparent);border-radius:8px;color:#f0c4c4}.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.service-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.1rem;display:flex;flex-direction:column;gap:.75rem}.service-card.status-up{border-color:color-mix(in srgb,var(--up) 45%,var(--border))}.service-card.status-down{border-color:color-mix(in srgb,var(--down) 45%,var(--border))}.service-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.service-top h2{margin:0;font-size:1.05rem;font-weight:600}.badge{font-size:.7rem;font-weight:700;letter-spacing:.06em;padding:.25rem .45rem;border-radius:999px;font-family:var(--mono)}.badge-up{background:color-mix(in srgb,var(--up) 25%,transparent);color:#9ee0c4}.badge-down{background:color-mix(in srgb,var(--down) 25%,transparent);color:#f0b0b0}.badge-unknown{background:color-mix(in srgb,var(--unknown) 25%,transparent);color:#e8d48a}.badge-pending{background:color-mix(in srgb,var(--muted) 25%,transparent);color:#b8c4d0}.badge-timeout{background:color-mix(in srgb,var(--warn) 30%,transparent);color:#e8d48a}.service-card.status-pending{border-color:var(--border);opacity:.9}.service-card.status-timeout{border-color:color-mix(in srgb,var(--warn) 45%,var(--border))}.dash-updated{color:var(--muted);font-size:.85em}.service-meta{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.service-meta dt{margin:0;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.service-meta dd{margin:.15rem 0 0;font-family:var(--mono);font-size:.85rem}.service-url{margin:0;font-size:.72rem;color:var(--muted);font-family:var(--mono);word-break:break-all}.service-detail{margin:0;font-size:.8rem;color:#f0b0b0}.service-wake{align-self:flex-start;margin-top:auto}.btn{border:1px solid var(--border);border-radius:8px;padding:.55rem .9rem;background:var(--surface-2);color:var(--text)}.boot{display:grid;place-items:center;min-height:100vh;color:var(--muted)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(100%,380px);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.75rem 1.5rem;display:flex;flex-direction:column;gap:.85rem}.login-brand{margin:0;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600}.login-card h1{margin:0;font-size:1.5rem;font-weight:600}.login-hint{margin:0 0 .5rem;color:var(--muted);font-size:.9rem}.field{display:flex;flex-direction:column;gap:.35rem}.field span{font-size:.8rem;color:var(--muted)}.field input{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:.65rem .75rem;outline:none}.field input:focus{border-color:var(--accent)}.login-error{margin:0;color:var(--danger);font-size:.875rem}.btn{border:1px solid var(--border);border-radius:8px;padding:.65rem 1rem;background:var(--surface-2);color:var(--text)}.btn.primary{background:var(--accent);border-color:transparent;color:#06150f;font-weight:600}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.ghost:hover:not(:disabled){border-color:var(--muted)}:root{color-scheme:dark;--bg: #0c0f12;--surface: #141a1f;--surface-2: #1a2229;--border: #2a343d;--text: #e8eef2;--muted: #8b9aab;--accent: #3d9a78;--accent-hover: #4cb08a;--danger: #c45c5c;--warn: #c9a227;--up: #3d9a78;--down: #c45c5c;--unknown: #c9a227;--font: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--mono: "IBM Plex Mono", "SF Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);background:radial-gradient(ellipse 80% 50% at 50% -20%,#1a2a24 0%,transparent 55%),var(--bg);color:var(--text);line-height:1.45}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--accent)}
