:root{--color-bg: #f7f9fc;--color-surface: #ffffff;--color-text: #1f2933;--color-muted: #52606d;--color-border: #e4e7eb;--color-primary: #003da5;--color-primary-hover: #0050d4;--color-error: #c8102e;--color-success: #2e7d32;--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--radius: 8px;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .05)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.5}a{color:var(--color-primary)}button,.button{background:var(--color-primary);color:#fff;border:0;border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-weight:600;cursor:pointer}button:hover:not(:disabled){background:var(--color-primary-hover)}button:disabled{opacity:.6;cursor:not-allowed}button.button-danger{background:var(--color-error)}button.button-link,.auth-link-button{background:transparent;color:var(--color-primary);padding:0;font-weight:500}input,select{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem;background:#fff}label{display:flex;flex-direction:column;gap:var(--space-1);font-weight:500;color:var(--color-muted);font-size:.875rem}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#0000000a;padding:0 .25rem;border-radius:4px;font-size:.875em}.auth-card{max-width:420px;margin:5rem auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-5)}.auth-card h1{margin:0 0 var(--space-4);font-size:1.5rem;color:var(--color-primary)}.auth-form{display:flex;flex-direction:column;gap:var(--space-3)}.auth-error{background:#fff1f1;border:1px solid #f7c7c7;color:var(--color-error);padding:var(--space-2) var(--space-3);border-radius:var(--radius);margin:0}.auth-hint{color:var(--color-muted);margin:0}.auth-links{display:flex;justify-content:flex-end;gap:var(--space-3);font-size:.875rem}.auth-loading{padding:4rem;text-align:center;color:var(--color-muted)}.dash{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.dash__sidebar{background:#0b1f3a;color:#e6ecf5;display:flex;flex-direction:column;padding:var(--space-4) var(--space-3)}.dash__brand{display:flex;align-items:center;gap:var(--space-2);font-weight:700;font-size:1.05rem;margin-bottom:var(--space-5)}.dash__brand img{width:32px;height:32px;background:#fff;border-radius:6px;padding:4px}.dash__nav{display:flex;flex-direction:column;gap:var(--space-1)}.dash__nav a{color:#cdd6e4;text-decoration:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius);font-size:.95rem}.dash__nav a.active,.dash__nav a:hover{background:#ffffff14;color:#fff}.dash__user{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:var(--space-3);font-size:.875rem}.dash__user-name{font-weight:600}.dash__user-role{color:#9aa7be;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.dash__logout{margin-top:var(--space-2);background:transparent;border:1px solid rgba(255,255,255,.25);color:#fff;padding:var(--space-1) var(--space-3);width:100%}.dash__logout:hover{background:#ffffff14}.dash__main{padding:var(--space-5);overflow-x:auto}.page__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.page__header h1{margin:0;font-size:1.5rem;color:var(--color-primary)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-4);margin-bottom:var(--space-4)}.panel h2{margin-top:0;margin-bottom:var(--space-3);font-size:1.125rem}.error{color:var(--color-error);background:#fff1f1;border:1px solid #f7c7c7;padding:var(--space-2) var(--space-3);border-radius:var(--radius)}.env-pill{padding:var(--space-1) var(--space-3);border-radius:999px;color:#fff;font-weight:600;font-size:.875rem;letter-spacing:.04em;text-transform:uppercase}.status-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3);align-items:end}.form-grid button{height:max-content}.form-inline{display:flex;gap:var(--space-3);align-items:end;flex-wrap:wrap;margin-top:var(--space-3)}.form-inline label{flex:1 1 220px}.callout{margin-top:var(--space-3);background:#eef5ff;border:1px solid #b6d3ff;padding:var(--space-3);border-radius:var(--radius);word-break:break-all}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}.table th{background:#f0f4fa;font-weight:600;color:var(--color-muted);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.table td.empty{text-align:center;color:var(--color-muted);padding:var(--space-4)}.audit-detail{white-space:pre-wrap;word-break:break-all;font-size:.75rem}.select{width:auto;min-width:200px}.totp-setup{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.totp-qr{width:200px;height:200px;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;padding:var(--space-2)}.totp-backup{margin-top:var(--space-4);padding:var(--space-3);background:#fff8e1;border:1px solid #f1d680;border-radius:var(--radius)}.totp-backup ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-1);list-style:none;margin:var(--space-2) 0 0;padding:0}@media (max-width: 720px){.dash{grid-template-columns:1fr}.dash__sidebar{flex-direction:row;align-items:center;flex-wrap:wrap;padding:var(--space-3)}.dash__nav{flex-direction:row;flex-wrap:wrap}.dash__user{width:100%;border-top:0}}
