*{box-sizing:border-box}body{margin:0;background:#F6F8FB;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#0F172A}
.wrap{max-width:28rem;margin:0 auto;padding:2rem 1.25rem}.brand{font-weight:700;font-size:1.125rem;margin-bottom:1.25rem}
.card{background:#fff;border:1px solid #F1F5F9;border-radius:1.5rem;padding:1.75rem;display:grid;gap:1.1rem}
.err{background:#FEF2F2;border:1px solid #FECACA;color:#B91C1C;border-radius:1rem;padding:1rem 1.25rem;font-size:.9rem;margin-bottom:1rem}
.danger{background:#FEF2F2;border:1px solid #FECACA;border-radius:1rem;padding:1rem 1.25rem;color:#B91C1C}
.ok{background:#ECFDF5;border:1px solid #A7F3D0;border-radius:1rem;padding:1rem 1.25rem;color:#047857}
.muted{color:#64748B}.small{font-size:.8rem;color:#64748B;margin:0}.strong{font-weight:600;margin:0}p{margin:0;line-height:1.5}
.row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
button,a.btn{min-height:48px;border-radius:999px;font-weight:600;font-size:.95rem;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:0 1rem}
.primary{background:#2563EB;color:#fff}.dark{background:#0F172A;color:#fff}.ghost{background:#fff;color:#334155;border:1px solid #E2E8F0}
.link{background:none;color:#94A3B8;text-decoration:underline;font-size:.8rem;min-height:44px;padding:0;justify-content:flex-start}
button:disabled{opacity:.6;cursor:default}input{width:100%;height:48px;border-radius:.75rem;border:1px solid #E2E8F0;padding:0 1rem;font-size:1rem}
label{font-size:.9rem;font-weight:500;color:#334155}.sep{border-top:1px solid #F1F5F9;padding-top:1rem}.foot{font-size:.75rem;color:#94A3B8;text-align:center;margin-top:1.25rem}
