:root{--color-bg: #f3f5f8;--color-surface: #ffffff;--color-border: #d9e0ea;--color-text: #0e1a2b;--color-muted: #536179;--color-accent: #0f766e;--color-accent-hover: #0d5f59;--color-error: #b42318;--radius-sm: 8px;--radius-md: 12px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--shadow-card: 0 10px 24px rgba(16, 24, 40, .08)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:radial-gradient(circle at top right,#e6edf8,#f3f5f8 35%);color:var(--color-text)}a{color:var(--color-accent)}.page-shell{min-height:100vh;display:grid;place-items:center;padding:var(--space-6)}.page-center{min-height:100vh;display:grid;place-items:center;color:var(--color-muted)}.card{width:min(100%,520px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-6)}.auth-card{width:min(100%,420px)}.title{margin:0 0 var(--space-2)}.muted{margin:0 0 var(--space-4);color:var(--color-muted)}.label{font-size:.9rem;margin-bottom:var(--space-1)}.stack-sm{display:grid;gap:var(--space-3)}.stack-row{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.input{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 12px;font:inherit;background:#fff}.input:focus{outline:2px solid color-mix(in srgb,var(--color-accent) 30%,white);outline-offset:1px}.btn{width:100%;border:1px solid transparent;border-radius:var(--radius-sm);padding:10px 14px;font:inherit;font-weight:600;cursor:pointer}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:enabled{background:var(--color-accent-hover)}.btn-secondary{background:#fff;border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover:enabled{background:#f8fafc}.divider{margin:var(--space-4) 0;text-align:center;color:var(--color-muted);font-size:.9rem}.error-text{margin-top:var(--space-4);color:var(--color-error)}
