:root {
  --fondo: #faf7f4; --tarjeta: #ffffff; --texto: #2b2523; --suave: #7a6f6a; --borde: #e7dfd9;
  --acento: #b0577a; --acento-texto: #ffffff; --ok: #2f7d4f; --error: #b3261e;
}
@media (prefers-color-scheme: dark) {
  :root { --fondo: #1c1918; --tarjeta: #272321; --texto: #f2ece8; --suave: #b4a8a2; --borde: #3a3431;
          --acento: #d77fa1; --acento-texto: #1c1918; --ok: #7bc99a; --error: #f2948d; }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--fondo); color: var(--texto);
       font: 17px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
main { max-width: 520px; margin: 0 auto; padding: 24px 16px 48px; }
h1 { font-size: 1.5rem; margin: 0 0 16px; }
h2 { font-size: 1.2rem; margin: 0 0 4px; }
[hidden] { display: none !important; }
.suave { color: var(--suave); margin: 0 0 12px; }
.tarjeta { background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 16px; padding: 18px 16px; margin: 16px 0; }
.estado { display: flex; gap: 18px; flex-wrap: wrap; background: var(--tarjeta); border: 1px solid var(--borde);
          border-radius: 12px; padding: 12px 16px; }
label { display: block; margin: 0 0 12px; font-weight: 600; }
input { display: block; width: 100%; margin-top: 6px; padding: 14px; font-size: 17px; border-radius: 12px;
        border: 1px solid var(--borde); background: var(--fondo); color: var(--texto); }
.grande, .boton { display: block; width: 100%; padding: 16px; margin: 10px 0; border: 0; border-radius: 14px;
                  background: var(--acento); color: var(--acento-texto); font-size: 18px; font-weight: 700;
                  text-align: center; text-decoration: none; cursor: pointer; }
.pasos p { margin: 14px 0 6px; }
.pasos code { word-break: break-all; }
.mensaje { margin: 12px 0 0; font-weight: 600; }
.mensaje.error, .error { color: var(--error); }
.mensaje.listo { color: var(--ok); }
.link { background: none; border: 0; color: var(--suave); text-decoration: underline; font-size: 15px; padding: 8px 0; cursor: pointer; }
.pie { margin-top: 28px; text-align: center; }
