/* Puerta del reporte CICLO (/ciclo/) y lector (/ciclo/reporte/).
   Hereda tokens y chrome de styles.css; aquí solo va lo propio de estas dos páginas.
   La portada usa la paleta de la pieza —negro y lima— para que quien escanea el QR
   sienta que ya está en el reporte, no en un formulario cualquiera. */

/* ---------- portada ---------- */
.cc-hero{background:var(--ink);color:#fff;padding:140px 0 72px}
.cc-hero .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--lime);margin-bottom:28px}
.cc-hero h1{font-size:clamp(64px,19vw,150px);line-height:.84;font-weight:800;letter-spacing:-.045em;margin:0 0 20px}
.cc-hero .sub{font-size:clamp(19px,4.4vw,27px);font-weight:300;line-height:1.3;max-width:22ch;color:#fff}
.cc-hero .periodo{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--lime);margin-top:36px;padding-top:22px;border-top:1px solid rgba(255,255,255,.22)}

/* ---------- cifra ancla ---------- */
.cc-cifra{background:var(--lime);color:var(--ink);padding:52px 0}
.cc-cifra .label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:16px}
.cc-cifra .big{font-size:clamp(70px,24vw,140px);line-height:.82;font-weight:800;letter-spacing:-.045em}
.cc-cifra .unit{display:block;font-size:clamp(18px,4.6vw,28px);font-weight:500;margin-top:10px;letter-spacing:-.01em}
.cc-cifra .say{font-size:clamp(16px,4vw,20px);line-height:1.45;margin-top:24px;max-width:34ch}

/* ---------- qué trae ---------- */
.cc-trae{padding:72px 0}
.cc-trae h2{font-size:clamp(26px,5.2vw,40px);letter-spacing:-1px;margin-bottom:10px}
.cc-trae .lead{margin-bottom:36px;max-width:56ch}
.cc-lista{list-style:none;display:grid;gap:0;border-top:1px solid var(--line)}
.cc-lista li{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);align-items:start}
.cc-lista .n{font-family:var(--mono);font-size:12px;color:var(--greygreen);padding-top:3px}
.cc-lista .q{font-size:17px;font-weight:600;color:var(--ink);display:block}
.cc-lista .t{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--muted);text-transform:uppercase;display:block;margin-top:3px}

/* ---------- formulario ---------- */
.cc-puerta{background:var(--sage);padding:72px 0 88px}
.cc-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px 26px;max-width:520px;margin:0 auto;box-shadow:0 18px 44px rgba(34,35,31,.08)}
@media(min-width:640px){.cc-card{padding:40px}}
.cc-card h2{font-size:clamp(24px,4.4vw,32px);letter-spacing:-.8px;margin-bottom:8px}
.cc-card .intro{color:var(--muted);font-size:15.5px;margin-bottom:26px}
.cc-field{margin-bottom:18px}
.cc-field label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.cc-field input[type=text],.cc-field input[type=email]{width:100%;font-family:var(--sans);font-size:16px;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:13px 14px;min-height:48px;transition:border-color .18s}
.cc-field input:focus{outline:none;border-color:var(--ink)}
.cc-consent{display:flex;gap:11px;align-items:flex-start;margin:22px 0 24px;font-size:13.5px;line-height:1.45;color:var(--muted)}
.cc-consent input{margin-top:3px;width:18px;height:18px;flex:none;accent-color:var(--ink)}
.cc-consent a{text-decoration:underline;color:var(--ink)}
.cc-submit{width:100%;background:var(--ink);color:var(--lime);border:none}
.cc-submit:disabled{opacity:.55;cursor:wait}
.cc-msg{margin-top:16px;font-size:14px;line-height:1.5;padding:12px 14px;border-radius:10px;display:none}
.cc-msg.show{display:block}
.cc-msg.err{background:#fdece9;color:#8a2c18;border:1px solid #f3c6bb}
.cc-msg.ok{background:var(--sage-2);color:#2c3327;border:1px solid rgba(34,35,31,.14)}
.cc-nota{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--greygreen);text-align:center;margin-top:18px;line-height:1.6}
.cc-vuelve{background:var(--ink);color:#fff;border-radius:var(--radius);padding:22px 24px;max-width:520px;margin:0 auto 22px;display:none}
.cc-vuelve.show{display:block}
.cc-vuelve p{font-size:15px;margin-bottom:14px;color:#fff}
.cc-vuelve .btn{background:var(--lime);color:var(--ink)}

/* ---------- lector ---------- */
.cr-body{margin:0;background:var(--ink);height:100dvh;overflow:hidden}
.cr-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px;padding:0 16px;background:var(--ink);border-bottom:1px solid rgba(255,255,255,.14)}
.cr-bar img{height:16px;width:auto}
.cr-bar .btn{min-height:36px;padding:8px 16px;font-size:11px;background:var(--lime);color:var(--ink);border:none}
.cr-frame{width:100%;height:calc(100dvh - 56px);border:0;background:#fff;display:block}
.cr-estado{height:calc(100dvh - 56px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;text-align:center;color:#fff;background:var(--ink)}
.cr-estado .spin{width:30px;height:30px;border:2px solid rgba(255,255,255,.25);border-top-color:var(--lime);border-radius:50%;animation:cr-gira .8s linear infinite}
@keyframes cr-gira{to{transform:rotate(360deg)}}
.cr-estado p{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#aeb6a8}
@media(prefers-reduced-motion:reduce){.cr-estado .spin{animation-duration:2.4s}}

/* ---------- página legal ---------- */
.lg-main{padding:120px 0 80px;max-width:760px;margin:0 auto}
.lg-main h1{font-size:clamp(30px,6vw,46px);letter-spacing:-1.4px;font-weight:800;line-height:1.05;margin-bottom:12px}
.lg-main .lg-fecha{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--greygreen);margin-bottom:40px}
.lg-main h2{font-size:clamp(19px,3.4vw,24px);letter-spacing:-.4px;font-weight:700;margin:38px 0 12px}
.lg-main p,.lg-main li{font-size:16px;line-height:1.65;color:var(--muted)}
.lg-main p{margin-bottom:14px}
.lg-main ul{margin:0 0 14px 20px}
.lg-main li{margin-bottom:8px}
.lg-main strong{color:var(--ink);font-weight:600}
.lg-corto{background:var(--sage);border-left:4px solid var(--ink);padding:20px 22px;margin:0 0 36px;border-radius:0 10px 10px 0}
.lg-corto p{margin:0;font-size:17px;color:var(--ink);line-height:1.55}
.lg-corto b{font-weight:700}
.lg-main a{color:var(--ink);text-decoration:underline}
