*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body { font-family:'DM Sans',sans-serif; background:var(--s); min-height:100vh; display:grid; place-items:center; }
.login-wrap { width:100%; max-width:420px; padding:2rem 1rem; }
.login-card { background:#fff; border-radius:20px; padding:2.5rem; box-shadow:0 24px 64px rgba(0,0,0,.3); }
.login-brand { text-align:center; margin-bottom:2rem; }
.login-logo { width:56px; height:56px; background:var(--p); border-radius:14px; display:grid; place-items:center; margin:0 auto 1rem; }
.login-logo svg { width:28px; height:28px; fill:#fff; }
.login-title { font-family:'Syne',sans-serif; font-size:1.6rem; font-weight:800; color:var(--s); }
.login-sub { font-size:.875rem; color:#8a8faa; margin-top:.3rem; }
.form-group { margin-bottom:1.25rem; }
.form-label { display:block; font-size:.8rem; font-weight:600; color:#555e6a; margin-bottom:.4rem; }
.form-control { width:100%; border:1.5px solid #e0e4e8; border-radius:10px; padding:.7rem 1rem; font-family:'DM Sans',sans-serif; font-size:.9rem; color:#1F1F1F; outline:none; transition:border-color .15s; }
.form-control:focus { border-color:var(--p); }
.btn-submit { width:100%; background:var(--p); color:#fff; border:none; border-radius:10px; padding:.85rem; font-family:'DM Sans',sans-serif; font-size:1rem; font-weight:600; cursor:pointer; transition:background .15s; margin-top:.5rem; }
.btn-submit:hover { background:var(--p-dark); }
.alert-error { background:rgba(239,68,68,.1); border:1px solid rgba(239,68,68,.25); color:#dc2626; border-radius:10px; padding:.75rem 1rem; font-size:.875rem; margin-bottom:1.25rem; }
.login-footer { text-align:center; margin-top:1.5rem; font-size:.82rem; color:#8a8faa; }
.login-footer a { color:var(--p); font-weight:600; }
