:root{--color-bg: #0f1115;--color-surface: #171a21;--color-surface-2: #1d212b;--color-border: #2a2f3a;--color-text: #e6e8ee;--color-text-muted: #8a93a3;--color-accent: #4f8cff;--color-accent-hover: #3a76e6;--color-success: #3fb950;--color-warning: #d29922;--color-danger: #f85149;--font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-md: 14px;--font-size-lg: 18px;--font-size-xl: 22px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 22px;--space-6: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-full: 20px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .4)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-family);font-size:var(--font-size-md);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}.app{min-height:100vh}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.page-title{margin:0;font-size:var(--font-size-lg);font-weight:600}.page-subtitle{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.page-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.content{max-width:1200px;margin:0 auto;padding:var(--space-5);display:grid;gap:var(--space-5)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.card-title{margin:0;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.card-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.btn{font-family:inherit;font-size:var(--font-size-sm);border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background .15s ease,opacity .15s ease}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-ghost{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-2)}.field{display:block;margin-bottom:var(--space-4)}.field-label{display:block;font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-2)}.input{width:100%;padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:inherit;font-size:var(--font-size-md)}.input:focus{outline:none;border-color:var(--color-accent)}.form-error{color:var(--color-danger);font-size:var(--font-size-sm);margin-bottom:var(--space-3)}.login-screen{max-width:380px;margin:12vh auto;padding:var(--space-4)}.login-brand{font-size:var(--font-size-xl);font-weight:700}.login-hint{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:var(--space-2) 0 var(--space-5)}.login-submit{width:100%}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:var(--font-size-sm)}.table th,.table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:top}.table th{color:var(--color-text-muted);font-weight:500;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em}.table .empty{text-align:center;color:var(--color-text-muted);padding:var(--space-6)}.badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-family:var(--font-family)}.badge-ok{background:#3fb95026;color:var(--color-success)}.badge-warn{background:#d2992226;color:var(--color-warning)}.badge-err{background:#f8514926;color:var(--color-danger)}.badge-muted{background:#8a93a326;color:var(--color-text-muted)}.muted{color:var(--color-text-muted)}.message{font-size:var(--font-size-sm);color:var(--color-text-muted)}
