* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: grid; place-items: center;
       font-family: system-ui, sans-serif; background: #0f1b2d; color: #1b2433; }
.caja { background: #fff; width: min(380px, 92vw); padding: 28px; border-radius: 10px; }
h1 { font-size: 1.15rem; margin: 0 0 20px; text-align: center; }
label { display: block; margin: 14px 0 4px; font-size: .85rem; font-weight: 600; }
input { width: 100%; padding: 10px; border: 1px solid #b9c2d0; border-radius: 6px; font-size: 1rem; }
button { width: 100%; margin-top: 20px; padding: 11px; border: 0; border-radius: 6px;
         background: #1f6feb; color: #fff; font-size: 1rem; cursor: pointer; }
button:disabled { opacity: .6; cursor: default; }
.error { margin-top: 14px; padding: 9px; border-radius: 6px; background: #fde8e8; color: #9b1c1c; font-size: .9rem; }
.enlace { margin: 16px 0 0; text-align: center; font-size: .9rem; }
.enlace a { color: #1f6feb; }
.ok { margin-top: 14px; padding: 9px; border-radius: 6px; background: #e6f4ea; color: #1e5b2f; font-size: .9rem; }