*,*::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;}
.wrap{width:100%;max-width:420px;padding:2rem 1rem;}
.card{background:#fff;border-radius:20px;padding:2.5rem;box-shadow:0 24px 64px rgba(0,0,0,.3);}
.logo{text-align:center;margin-bottom:2rem;}
.logo-mark{width:56px;height:56px;background:var(--p);border-radius:14px;display:grid;place-items:center;margin:0 auto 1rem;}
.logo-mark svg{width:28px;height:28px;fill:#fff;}
.title{font-family:'Syne',sans-serif;font-size:1.4rem;font-weight:800;color:var(--s);}
.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;}
.btn-submit:hover{background:var(--p-dark);}
.alert-success{background:rgba(61,184,114,.1);border:1px solid rgba(61,184,114,.25);color:#2a9558;border-radius:10px;padding:.75rem 1rem;font-size:.875rem;margin-bottom:1.25rem;}
.alert-danger{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;}
.footer{text-align:center;margin-top:1.5rem;font-size:.82rem;color:#8a8faa;}
.footer a{color:var(--p);font-weight:600;}
