:root{--bg:#0f1219;--surface:#171b26;--border:#2a3142;--text:#e8ecf4;--muted:#8b95a8;--accent:#5b8def;--accent-hover:#7aa3f5;--success:#3ecf8e;--warn:#f0b429;--danger:#f07178;--info:#56b6f7}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}.app-shell{min-height:100vh;display:flex;flex-direction:column}.header{border-bottom:1px solid var(--border);background:var(--surface)}.header-top{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem}.brand{font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.brand-mark{color:var(--accent)}.header-actions{display:flex;align-items:center;gap:1rem}.user-email{color:var(--muted);font-size:.85rem}.tabs{display:flex;gap:.25rem;padding:0 1.5rem}.tab{padding:.65rem 1rem;color:var(--muted);border-bottom:2px solid transparent;font-weight:500}.tab,.tab:hover{text-decoration:none}.tab.active,.tab:hover{color:var(--text)}.tab.active{border-bottom-color:var(--accent)}.main{flex:1 1;padding:1.5rem;max-width:1400px;width:100%;margin:0 auto}.page-header{margin-bottom:1.25rem}.page-header h1{margin:0 0 .25rem;font-size:1.5rem;font-weight:600}.subtitle{margin:0;color:var(--muted)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface)}table{width:100%;border-collapse:collapse}td,th{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border)}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:rgba(255,255,255,.02)}.muted{color:var(--muted)}.small{font-size:.85rem}.empty{padding:2rem;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:8px}.badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:lowercase}.badge-success{background:rgba(62,207,142,.15);color:var(--success)}.badge-warn{background:rgba(240,180,41,.15);color:var(--warn)}.badge-danger{background:rgba(240,113,120,.15);color:var(--danger)}.badge-info{background:rgba(86,182,247,.15);color:var(--info)}.badge-neutral{background:rgba(139,149,168,.15);color:var(--muted)}.audit-chips{display:flex;flex-wrap:wrap;gap:.35rem}.audit-chip{font-size:.75rem;padding:.15rem .4rem;background:rgba(255,255,255,.05);border-radius:4px;white-space:nowrap}.alert{padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.alert-error{background:rgba(240,113,120,.12);border:1px solid rgba(240,113,120,.35);color:var(--danger)}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:100%;max-width:380px;padding:2rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-align:center}.login-card h1{margin:0 0 .5rem}.login-card p{color:var(--muted);margin:0 0 1.5rem}.login-error{color:#f87171!important;font-size:.9rem}.btn-primary{display:inline-block;padding:.65rem 1.25rem;background:var(--accent);color:#fff;border-radius:6px;font-weight:600;text-decoration:none}.btn-primary:hover{background:var(--accent-hover);color:#fff;text-decoration:none}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--muted);padding:.4rem .75rem;border-radius:6px;cursor:pointer;font-size:.85rem}.login-card .brand-mark{color:var(--accent)}