:root{color-scheme:dark;--font-sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"SFMono-Regular",Consolas,monospace;--bg:#070d18;--surface:#0d1627;--surface-raised:#121d31;--surface-hover:#18253b;--border:#24334d;--border-strong:#384b6b;--text:#f1f5f9;--text-muted:#94a3b8;--text-subtle:#64748b;--primary:#22c55e;--primary-hover:#16a34a;--primary-soft:#052e16;--info:#3b82f6;--info-soft:#172554;--warning:#f59e0b;--warning-soft:#451a03;--danger:#ef4444;--danger-hover:#dc2626;--danger-soft:#450a0a;--success:#22c55e;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--shadow-lg:0 24px 64px rgba(0,0,0,.45);--focus:0 0 0 3px rgba(96,165,250,.42);font-family:var(--font-sans);background:var(--bg);color:var(--text)}*{box-sizing:border-box;scrollbar-color:var(--border-strong) var(--surface)}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 75% -20%,#123522 0,transparent 28%),var(--bg)}button,input,select,textarea{font:inherit}button,input,select{transition:border-color .15s,background-color .15s,opacity .15s,transform .15s}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:0;box-shadow:var(--focus)}button{min-height:44px}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ui-card{background:linear-gradient(145deg,var(--surface-raised),var(--surface));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 10px 28px #00000029}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;padding:.65rem .9rem;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--primary);color:#04150a;font-weight:750;cursor:pointer;text-decoration:none}.ui-button:hover:not(:disabled){background:var(--primary-hover);color:#fff}.ui-button.secondary{background:var(--surface-hover);border-color:var(--border);color:var(--text)}.ui-button.secondary:hover:not(:disabled){border-color:var(--border-strong)}.ui-button.danger{background:var(--danger);color:#fff}.ui-button.danger:hover:not(:disabled){background:var(--danger-hover)}.ui-button.ghost{background:transparent;border-color:var(--border);color:var(--text-muted)}.ui-button:disabled{opacity:.45;cursor:not-allowed}.ui-badge{display:inline-flex;align-items:center;gap:.4rem;min-height:28px;padding:.25rem .6rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-muted);font-size:.75rem;font-weight:700}.ui-badge.success{border-color:#166534;background:var(--primary-soft);color:#86efac}.ui-badge.warning{border-color:#92400e;background:var(--warning-soft);color:#fcd34d}.ui-badge.danger{border-color:#991b1b;background:var(--danger-soft);color:#fecaca}.status-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--text-subtle);flex:none}.status-dot.online{background:var(--success);box-shadow:0 0 0 4px #22c55e1f}.status-dot.warning{background:var(--warning)}.status-dot.offline{background:var(--danger)}.ui-state{display:grid;place-items:center;align-content:center;gap:.45rem;min-height:160px;padding:2rem;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;color:var(--text-muted)}.ui-state strong{color:var(--text)}.ui-state.error{border-style:solid;border-color:#7f1d1d;background:var(--danger-soft);color:#fecaca}.ui-skeleton{overflow:hidden;position:relative;background:var(--surface-hover);border-radius:var(--radius-sm)}.ui-skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);animation:skeleton 1.5s infinite}@keyframes skeleton{to{transform:translate(100%)}}.header-actions{display:flex;align-items:center;gap:.6rem}.header-actions>button{border:0;border-radius:var(--radius-sm);padding:.55rem .75rem;background:var(--surface-hover);color:var(--text);cursor:pointer}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
