:root{--clr-accent:#5a8c28;--clr-accent-dark:#3f6218;--clr-accent-light:#6aa030;--clr-accent-muted:rgba(90,140,40,0.15);--clr-bg:#f0f2f5;--clr-surface:#ffffff;--clr-surface-2:#f5f7fa;--clr-surface-3:#e4e8ed;--clr-text:#111827;--clr-text-muted:#4b5563;--clr-text-faint:#9ca3af;--clr-border:rgba(0,0,0,0.09);--clr-border-accent:rgba(90,140,40,0.4);--clr-danger:#dc2626;--clr-danger-bg:rgba(220,38,38,0.07);--clr-danger-border:rgba(220,38,38,0.22);--clr-success:#16a34a;--clr-success-bg:rgba(22,163,74,0.07);--clr-success-border:rgba(22,163,74,0.22);--clr-input-bg:#f8f9fb;--clr-input-focus-bg:#ffffff;--clr-divider:rgba(0,0,0,0.09);--clr-shadow:rgba(0,0,0,0.09);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--ease-out:cubic-bezier(0.16,1,0.3,1);--dur:200ms;--font-sans:"Segoe UI",system-ui,-apple-system,sans-serif;--text-sm:13px;--text-base:15px}[data-theme=dark]{--clr-bg:#f0f2f5;--clr-surface:#ffffff;--clr-surface-2:#f5f7fa;--clr-surface-3:#e4e8ed;--clr-text:#111827;--clr-text-muted:#4b5563;--clr-text-faint:#9ca3af;--clr-border:rgba(0,0,0,0.09);--clr-border-accent:rgba(90,140,40,0.4);--clr-input-bg:#f8f9fb;--clr-input-focus-bg:#ffffff;--clr-divider:rgba(0,0,0,0.09);--clr-shadow:rgba(0,0,0,0.09)}@media (prefers-color-scheme:dark){:root{--clr-bg:#f0f2f5;--clr-surface:#ffffff;--clr-surface-2:#f5f7fa;--clr-surface-3:#e4e8ed;--clr-text:#111827;--clr-text-muted:#4b5563;--clr-text-faint:#9ca3af;--clr-border:rgba(0,0,0,0.09);--clr-border-accent:rgba(90,140,40,0.4);--clr-input-bg:#f8f9fb;--clr-input-focus-bg:#ffffff;--clr-divider:rgba(0,0,0,0.09);--clr-shadow:rgba(0,0,0,0.09)}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;color-scheme:light}:focus-visible{outline:2px solid var(--clr-accent-light);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;font-family:var(--font-sans);font-size:var(--text-base);background:var(--clr-bg);color:var(--clr-text);-webkit-font-smoothing:antialiased}.card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);padding:48px 40px;width:100%;max-width:420px;box-shadow:0 8px 32px var(--clr-shadow)}.logo{text-align:center;margin-bottom:32px}.logo-img{width:min(100%,200px);height:auto;max-height:68px;object-fit:contain;display:block;margin:0 auto 20px}h1{color:var(--clr-text);font-size:24px;font-weight:700;margin-bottom:6px}.subtitle,h1{text-align:center}.subtitle{color:var(--clr-text-muted);font-size:14px}.alert{font-size:13px;padding:11px 14px;border-radius:var(--radius-md);margin-bottom:20px;line-height:1.45}.alert-error{color:var(--clr-danger);background:var(--clr-danger-bg);border:1px solid var(--clr-danger-border)}.alert-success{color:var(--clr-success);background:var(--clr-success-bg);border:1px solid var(--clr-success-border)}.form-group{margin-bottom:18px}label{display:block;color:var(--clr-text-muted);font-size:var(--text-sm);font-weight:500;margin-bottom:7px;letter-spacing:.01em}input[type=email],input[type=password],input[type=text]{width:100%;padding:13px 16px;background:var(--clr-input-bg);border:1.5px solid var(--clr-border);border-radius:var(--radius-md);color:var(--clr-text);font-size:var(--text-base);font-family:inherit;outline:none;transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}input::placeholder{color:var(--clr-text-faint)}input:focus{border-color:var(--clr-border-accent);background:var(--clr-input-focus-bg)}.password-wrapper{position:relative}.password-wrapper input{padding-right:48px}.toggle-password{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--clr-text-faint);padding:0;display:flex;align-items:center;transition:color var(--dur)}.toggle-password:hover{color:var(--clr-text-muted)}.row{display:flex;align-items:center;justify-content:flex-end;margin-bottom:24px}.forgot{color:var(--clr-accent-light);font-size:var(--text-sm);font-weight:500;background:none;border:none;padding:0;cursor:pointer;text-decoration:none;transition:opacity var(--dur)}.forgot:hover{opacity:.75}.btn-login{width:100%;padding:14px;background:linear-gradient(135deg,var(--clr-accent) 0,var(--clr-accent-dark) 100%);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;font-family:inherit;cursor:pointer;letter-spacing:.02em;transition:opacity var(--dur),transform .12s}.btn-login:hover:not(:disabled){opacity:.91}.btn-login:active:not(:disabled){transform:scale(.99)}.btn-login:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{width:100%;padding:13px;background:var(--clr-surface-2);color:var(--clr-text-muted);border:1.5px solid var(--clr-border);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:500;font-family:inherit;cursor:pointer;margin-top:10px;transition:background var(--dur),color var(--dur),border-color var(--dur)}.btn-secondary:hover{background:var(--clr-surface-3);color:var(--clr-text)}.fp-header{margin-bottom:20px}.fp-header h2{font-size:20px;font-weight:700;color:var(--clr-text);margin-bottom:6px}.fp-header p{font-size:13px;color:var(--clr-text-muted);line-height:1.5}.signup{text-align:center;margin-top:24px;color:var(--clr-text-faint);font-size:var(--text-sm)}.signup a{color:var(--clr-accent-light);text-decoration:none;font-weight:600}.signup a:hover{opacity:.8}@media (max-width:480px){.card{padding:36px 24px}}