:root{--bg:#f6f7f9;--surface:#ffffff;--border:#e2e5ea;--border-strong:#cbd0d9;--text:#1a1d23;--text-muted:#5c6470;--text-faint:#8a92a0;--accent:#2f6fed;--accent-hover:#235cd1;--accent-soft:#e8f0fe;--danger:#d63b3b;--danger-hover:#bd2f2f;--danger-soft:#fdecec;--ok:#1f9d55;--ok-soft:#e6f6ec;--warn:#b6791f;--warn-soft:#fbf1dd;--neutral:#6b7280;--neutral-soft:#eef0f3;--radius:8px;--radius-sm:6px;--shadow:0 1px 2px rgba(16,24,40,0.06),0 1px 3px rgba(16,24,40,0.08);--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji",sans-serif;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace}*{box-sizing:border-box}body,html{padding:0;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.25;margin:0 0 .5em;font-weight:600}h1{font-size:1.5rem}h2{font-size:1.2rem}code{font-family:var(--mono);font-size:.85em;background:var(--neutral-soft);padding:.1em .35em;border-radius:4px}.nav{background:var(--surface);border-bottom:1px solid var(--border)}.nav-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:20px;padding:0 24px;height:56px}.brand{font-weight:700;font-size:1.15rem;letter-spacing:-.01em;color:var(--text)}.brand:hover{text-decoration:none}.nav-links{display:flex;gap:16px}.nav-links a{color:var(--text-muted);font-weight:500}.nav-links a:hover{color:var(--text);text-decoration:none}.nav-spacer{flex:1 1}.nav-user{display:flex;align-items:center;gap:12px}.nav-email{color:var(--text-muted);font-size:.9rem}.main{max-width:1100px;margin:0 auto;padding:28px 24px 64px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-weight:500;line-height:1;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;transition:background .12s ease,border-color .12s ease,opacity .12s ease}.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover);border-color:var(--danger-hover)}.btn.btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn.btn-ghost:hover{background:var(--neutral-soft);border-color:var(--border-strong)}.card{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card,.input{background:var(--surface)}.input{display:block;width:100%;font:inherit;color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 10px;transition:border-color .12s ease,box-shadow .12s ease}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input::placeholder{color:var(--text-faint)}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table td,.table th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.table th{color:var(--text-muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.table tbody tr:hover{background:var(--neutral-soft)}.table tbody tr:last-child td{border-bottom:none}.chip{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:600;line-height:1;padding:4px 9px;border-radius:999px;background:var(--neutral-soft);color:var(--neutral);text-transform:capitalize;white-space:nowrap}.chip-active{background:var(--ok-soft);color:var(--ok)}.chip-expired{background:var(--neutral-soft);color:var(--neutral)}.chip-retired{background:var(--danger-soft);color:var(--danger)}.chip-completed{background:var(--accent-soft);color:var(--accent-hover)}.chip-warn{background:var(--warn-soft);color:var(--warn)}.login-wrap{display:flex;justify-content:center;padding-top:48px}.login-card{width:100%;max-width:400px}.login-title{margin-bottom:18px}.login-form{gap:14px}.login-form,.login-label{display:flex;flex-direction:column}.login-label{gap:6px;font-size:.85rem;font-weight:500;color:var(--text-muted)}.login-optional{color:var(--text-faint);font-weight:400}.login-error{margin:0;color:var(--danger);font-size:.88rem}.login-note{margin:4px 0 0;color:var(--text-faint);font-size:.82rem}