:root{--color-white:#ffffff;--color-black:#0b0d10;--color-gray-50:#f7f8fa;--color-gray-100:#eceef1;--color-gray-200:#dfe3e8;--color-gray-300:#c6ccd4;--color-gray-400:#9aa4b1;--color-gray-500:#6b7684;--color-gray-600:#4a5460;--color-gray-700:#333b45;--color-gray-800:#1f242b;--color-brand-500:#1f6feb;--color-brand-600:#1a5fce;--color-brand-700:#164ba3;--color-success-500:#1a7f4b;--color-success-50:#e7f4ec;--color-warning-500:#b26a00;--color-warning-50:#fbf0dd;--color-danger-500:#c23934;--color-danger-50:#fbeae9;--bg:var(--color-gray-50);--bg-surface:var(--color-white);--bg-muted:var(--color-gray-100);--border:var(--color-gray-200);--border-strong:var(--color-gray-300);--text:var(--color-gray-800);--text-muted:var(--color-gray-500);--text-inverse:var(--color-white);--link:var(--color-brand-600);--primary:var(--color-brand-500);--primary-hover:var(--color-brand-600);--primary-active:var(--color-brand-700);--on-primary:var(--color-white);--status-active-fg:var(--color-success-500);--status-active-bg:var(--color-success-50);--status-expired-fg:var(--color-warning-500);--status-expired-bg:var(--color-warning-50);--status-revoked-fg:var(--color-danger-500);--status-revoked-bg:var(--color-danger-50);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--font-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--leading-tight:1.25;--leading-normal:1.5;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:999px;--shadow-sm:0 1px 2px rgba(11,13,16,0.06);--shadow-md:0 2px 8px rgba(11,13,16,0.08);--container-max:1080px;--header-height:56px}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--space-4)}.stack{gap:var(--space-4)}.stack,.stack-sm{display:flex;flex-direction:column}.stack-sm{gap:var(--space-2)}.row,.row-between{display:flex;align-items:center;gap:var(--space-3)}.row-between{justify-content:space-between}.page{padding:var(--space-6) 0 var(--space-8)}.site-header{height:var(--header-height);background:var(--bg-surface);border-bottom:1px solid var(--border)}.site-header .container{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:var(--weight-bold);font-size:var(--text-lg);color:var(--text)}.nav{display:flex;align-items:center;gap:var(--space-4)}.nav a{color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium)}.nav a:hover{color:var(--text);text-decoration:none}.title{font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight)}.subtitle{font-size:var(--text-lg);font-weight:var(--weight-semibold)}.muted{color:var(--text-muted)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:var(--space-4);gap:var(--space-4)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;line-height:1;min-height:38px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);text-decoration:none}.btn-secondary{background:var(--bg-surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg-muted);text-decoration:none}.btn-danger{background:var(--bg-surface);color:var(--status-revoked-fg);border-color:var(--status-revoked-fg)}.btn-danger:hover:not(:disabled){background:var(--status-revoked-bg);text-decoration:none}.field{display:flex;flex-direction:column;gap:var(--space-1)}.label{font-weight:var(--weight-medium)}.input,.label,.select{font-size:var(--text-sm);color:var(--text)}.input,.select{font-family:inherit;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);min-height:38px;width:100%}.input:focus,.select:focus{outline:2px solid var(--primary);outline-offset:1px}.form-narrow{max-width:440px}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table td,.table th{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--border)}.table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.badge,.table th{font-weight:var(--weight-semibold);font-size:var(--text-xs)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);text-transform:capitalize}.badge-active{color:var(--status-active-fg);background:var(--status-active-bg)}.badge-expired{color:var(--status-expired-fg);background:var(--status-expired-bg)}.badge-revoked{color:var(--status-revoked-fg);background:var(--status-revoked-bg)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{font-size:var(--text-xs);color:var(--text-muted);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3)}.chip,.notice{background:var(--bg-muted)}.notice{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);border:1px solid var(--border)}.notice-error{color:var(--status-revoked-fg);background:var(--status-revoked-bg);border-color:var(--status-revoked-fg)}.notice-success{color:var(--status-active-fg);background:var(--status-active-bg);border-color:var(--status-active-fg)}.centered-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.auth-card{width:100%;max-width:380px}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.grow{flex:1 1}.divider{height:1px;background:var(--border);border:0;margin:var(--space-4) 0}