:root{--color-bg: #ffffff;--color-surface: #ffffff;--color-surface-subtle: #f8fafc;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text: #0f172a;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-soft-bg: #eff6ff;--color-success: #059669;--color-error: #dc2626;--radius-sm: 8px;--radius-md: 12px;--radius-pill: 999px;--shadow-card: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 3px rgba(15, 23, 42, .06);--shadow-card-lg: 0 4px 6px -1px rgba(15, 23, 42, .05), 0 2px 4px -2px rgba(15, 23, 42, .05);--font-stack: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--color-bg)}body{font-family:var(--font-stack);background:var(--color-bg);color:var(--color-text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}.page{padding:56px 24px 96px}.container{max-width:720px;margin:0 auto}.centered-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center}.centered-card{max-width:420px;width:100%}.heading-xl{font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.heading-lg{font-size:22px;font-weight:600;letter-spacing:-.015em;line-height:1.3}.heading-section{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);margin:32px 0 12px}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-body{font-size:15px;line-height:1.55;color:var(--color-text-secondary)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px 22px;box-shadow:var(--shadow-card)}.card-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-size:14px;font-weight:600;letter-spacing:-.005em;padding:10px 18px;border-radius:var(--radius-pill);border:1px solid transparent;cursor:pointer;white-space:nowrap;text-decoration:none;line-height:1;transition:background .12s ease,border-color .12s ease,color .12s ease,opacity .12s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-secondary{background:transparent;color:var(--color-text);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-subtle);border-color:var(--color-text-muted)}.btn-ghost{background:transparent;color:var(--color-text-secondary);padding:6px 10px;font-size:13px}.btn-ghost:hover:not(:disabled){color:var(--color-text)}.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:4px 10px;border-radius:var(--radius-pill)}.badge-current{background:var(--color-accent-soft-bg);color:var(--color-accent)}.icon-circle{width:56px;height:56px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-bottom:20px}.icon-circle-success{background:#d1fae5;color:var(--color-success)}.icon-circle-accent{background:var(--color-accent-soft-bg);color:var(--color-accent)}.icon-circle-error{background:#fee2e2;color:var(--color-error)}.spinner{width:18px;height:18px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.footer-note{margin-top:48px;text-align:center;font-size:13px;color:var(--color-text-muted)}.footer-note a{color:var(--color-text-secondary);text-decoration:underline}.footer-note a:hover{color:var(--color-text)}@media(max-width:540px){.page{padding:32px 16px 64px}.heading-xl{font-size:24px}.card{padding:16px 18px}.card-row{flex-direction:column;align-items:stretch}.card-row>.btn{width:100%}}
