/* Portal de clientes · Tendencias Ecológicas
   Pensado para el teléfono y para leerse sin esfuerzo: letra Atkinson Hyperlegible (diseñada para baja visión),
   tamaños generosos, un solo color de marca y el rojo reservado para la emergencia. */
@font-face{font-family:"Atkinson";src:url("/portal/fuentes/atkinson-hyperlegible-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Atkinson";src:url("/portal/fuentes/atkinson-hyperlegible-latin-700-normal.woff2") format("woff2");font-weight:700;font-display:swap}

:root{
  --bosque:#1f5f46; --bosque-hondo:#143c2d; --hoja:#dcebe2; --papel:#f3f5f1; --blanco:#fff;
  --tinta:#17211c; --tinta-suave:#55615a; --raya:#d5dbd4;
  --ambar:#8f5608; --ambar-fondo:#fbefd6; --rojo:#b3261e; --rojo-hondo:#8c1b15; --rojo-fondo:#fbe9e7;
  --radio:14px; --ancho:540px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--tinta);font-family:"Atkinson",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:17px;line-height:1.5;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--bosque)}
h1,h2,h3,p{margin:0}
h1{font-size:1.65rem;line-height:1.2;font-weight:700;letter-spacing:-.01em}
h2{font-size:1.2rem;line-height:1.25;font-weight:700}
h3{font-size:1rem;font-weight:700}
[hidden]{display:none!important}
:focus-visible{outline:3px solid #f0b429;outline-offset:2px;border-radius:6px}
svg.ic{width:1.35em;height:1.35em;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.suave{color:var(--tinta-suave)}
.pequeno{font-size:.9rem}

/* ── Botones ── */
.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:54px;padding:12px 18px;border-radius:var(--radio);border:2px solid var(--bosque);background:var(--blanco);color:var(--bosque);font-weight:700;font-size:1.05rem;text-decoration:none;text-align:center}
.btn.lleno{background:var(--bosque);color:#fff}
.btn.lleno:active{background:var(--bosque-hondo)}
.btn.rojo{background:var(--rojo);border-color:var(--rojo);color:#fff}
.btn.rojo:active{background:var(--rojo-hondo)}
.btn.liso{border-color:transparent;background:none;min-height:46px;font-weight:400;text-decoration:underline}
.btn:disabled{opacity:.55;cursor:default}
.btn + .btn{margin-top:10px}

/* ── Entrada ── */
.entrada{min-height:100dvh;display:flex;flex-direction:column;background:var(--bosque-hondo);color:#fff}
.entrada-cab{padding:max(36px,env(safe-area-inset-top)) 24px 28px;max-width:var(--ancho);width:100%;margin:0 auto}
.entrada-cab img{width:54px;height:auto;display:block;margin-bottom:22px}
.entrada-cab h1{font-size:1.9rem}
.entrada-cab p{margin-top:10px;color:#cfe3d8;font-size:1.05rem}
.entrada-caja{flex:1;background:var(--papel);color:var(--tinta);border-radius:26px 26px 0 0;padding:28px 24px calc(28px + env(safe-area-inset-bottom))}
.entrada-caja > div{max-width:calc(var(--ancho) - 48px);margin:0 auto}
.entrada-caja form{display:grid;gap:14px}
.entrada-pie{margin-top:30px;padding-top:22px;border-top:1px solid var(--raya)}
.entrada-pie p{margin-bottom:12px}

label.campo{display:grid;gap:6px;font-weight:700}
label.campo small{font-weight:400;color:var(--tinta-suave);font-size:.9rem}
.inp{width:100%;min-height:54px;padding:12px 14px;border:2px solid #9aa69e;border-radius:var(--radio);background:var(--blanco);font-size:1.1rem}
textarea.inp{min-height:120px;resize:vertical;line-height:1.4}
.inp:focus{outline:none;border-color:var(--bosque);box-shadow:0 0 0 4px var(--hoja)}
.inp.codigo{font-size:1.9rem;letter-spacing:.35em;text-align:center;font-weight:700;padding-left:.35em}
.error{background:var(--rojo-fondo);color:var(--rojo-hondo);padding:12px 14px;border-radius:10px;font-weight:700}

/* ── Estructura con sesión ── */
.barra{position:sticky;top:0;z-index:5;background:var(--bosque-hondo);color:#fff;padding-top:env(safe-area-inset-top)}
.barra > div{max-width:var(--ancho);margin:0 auto;display:flex;align-items:center;gap:10px;padding:10px 16px}
.barra img{width:30px;height:auto}
.barra b{flex:1;font-size:1.02rem;line-height:1.15}
.barra .sos{display:flex;align-items:center;gap:7px;min-height:42px;padding:6px 14px;border:0;border-radius:999px;background:var(--rojo);color:#fff;font-weight:700;font-size:.98rem}
main{max-width:var(--ancho);margin:0 auto;padding:22px 16px calc(104px + env(safe-area-inset-bottom))}
main > * + section{margin-top:30px}
main > h1 + section{margin-top:18px}
section > h2{margin-bottom:12px}

.pestanas{position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--blanco);border-top:1px solid var(--raya);padding-bottom:env(safe-area-inset-bottom)}
.pestanas > div{max-width:var(--ancho);margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr)}
.pestanas a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px 8px;text-decoration:none;color:var(--tinta-suave);font-size:.78rem;line-height:1.1;border-top:3px solid transparent;margin-top:-1px}
.pestanas a svg{width:25px;height:25px}
.pestanas a[aria-current]{color:var(--bosque);font-weight:700;border-top-color:var(--bosque)}

/* ── El carnet: la pieza central del inicio ── */
.carnet{position:relative;overflow:hidden;border-radius:20px;background:var(--bosque);color:#fff;padding:20px 20px 18px;margin-top:16px}
.carnet::after{content:"";position:absolute;right:-70px;top:-90px;width:250px;height:250px;border-radius:50%;border:34px solid rgba(255,255,255,.07);pointer-events:none}
.carnet .marca{display:flex;align-items:center;gap:8px;font-size:.88rem;color:#cfe3d8}
.carnet .marca img{width:22px;height:auto}
.carnet .plan{font-size:1.55rem;font-weight:700;line-height:1.15;margin-top:22px}
.carnet .titular{margin-top:4px;color:#e4f0ea}
.carnet dl{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin:20px 0 0}
.carnet dt{font-size:.82rem;color:#bcd6c8}
.carnet dd{margin:0;font-weight:700}
.carnet.cancelada{background:#5d6661}

.estado{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radio);margin-top:10px;font-weight:700}
.estado small{display:block;font-weight:400;font-size:.92rem;margin-top:2px}
.estado.bien{background:var(--hoja);color:var(--bosque-hondo)}
.estado.ojo{background:var(--ambar-fondo);color:#5c3703}
.estado.gris{background:#e6e9e5;color:#3c4640}

.cobro{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--raya)}
.cobro b{font-size:1.25rem}
.acciones{display:grid;gap:10px;margin-top:18px}

.sos-grande{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:16px 18px;border:0;border-radius:var(--radio);background:var(--rojo);color:#fff}
.sos-grande svg{width:34px;height:34px}
.sos-grande b{display:block;font-size:1.15rem;line-height:1.2}
.sos-grande span span{font-size:.93rem;color:#fbdcd9}

/* ── Listas ── */
.lista{list-style:none;margin:0;padding:0;border-top:1px solid var(--raya)}
.lista > li{padding:14px 0;border-bottom:1px solid var(--raya)}
.fila{display:flex;align-items:center;gap:12px}
.fila .txt{flex:1;min-width:0}
.fila .txt b{display:block;overflow-wrap:anywhere}
.fila .txt small{color:var(--tinta-suave);font-size:.9rem;display:block}
.fila .cifra{font-weight:700;white-space:nowrap;text-align:right}
a.fila{text-decoration:none;color:inherit}
.fila > svg{color:var(--bosque)}
.chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.84rem;font-weight:700;white-space:nowrap}
.chip.bien{background:var(--hoja);color:var(--bosque-hondo)}
.chip.ojo{background:var(--ambar-fondo);color:#5c3703}
.chip.mal{background:var(--rojo-fondo);color:var(--rojo-hondo)}
.incluye{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.incluye li{display:flex;gap:10px;align-items:flex-start}
.incluye svg{color:var(--bosque);margin-top:.12em}
.nota{background:var(--blanco);border:1px solid var(--raya);border-radius:var(--radio);padding:14px 16px;white-space:pre-line;overflow-wrap:anywhere}
.datos{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;margin:0}
.datos dt{color:var(--tinta-suave)}
.datos dd{margin:0;font-weight:700;text-align:right}
.vacio{color:var(--tinta-suave);padding:14px 0}
.cargando{padding:70px 0;text-align:center;color:var(--tinta-suave)}

/* ── Hojas (formularios que suben desde abajo) ── */
#hoja{position:fixed;inset:0;z-index:20;background:rgba(15,28,22,.55);display:flex;align-items:flex-end;justify-content:center}
.hoja{width:100%;max-width:var(--ancho);max-height:94dvh;overflow:auto;background:var(--papel);border-radius:24px 24px 0 0;padding:20px 20px calc(24px + env(safe-area-inset-bottom));animation:sube .22s ease-out}
.hoja-cab{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.hoja-cab h2{flex:1;font-size:1.35rem}
.hoja-cab button{border:0;background:#e2e6e1;border-radius:50%;width:44px;height:44px;display:grid;place-items:center;flex:none}
.hoja form{display:grid;gap:14px}
.hoja p + .btn, .hoja p + p{margin-top:14px}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.opciones{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.opciones label{display:flex;align-items:center;justify-content:center;min-height:50px;padding:8px;border:2px solid #9aa69e;border-radius:12px;background:var(--blanco);text-align:center;font-weight:700;line-height:1.2}
.opciones input{position:absolute;opacity:0}
.opciones input:checked + span{color:var(--bosque-hondo)}
.opciones label:has(input:checked){border-color:var(--bosque);background:var(--hoja)}
.opciones label:has(input:focus-visible){outline:3px solid #f0b429;outline-offset:2px}
.archivo{display:flex;align-items:center;gap:12px;min-height:60px;padding:12px 14px;border:2px dashed #7d8a82;border-radius:var(--radio);background:var(--blanco);font-weight:700}
.archivo input{position:absolute;width:1px;height:1px;opacity:0}
.archivo:has(input:focus-visible){outline:3px solid #f0b429}
.hecho{text-align:center;padding:10px 0 4px}
.hecho svg{width:56px;height:56px;color:var(--bosque);margin-bottom:6px}
.hecho p{margin-top:8px}

#aviso{position:fixed;left:16px;right:16px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:30;max-width:calc(var(--ancho) - 32px);margin:0 auto;background:var(--tinta);color:#fff;padding:14px 16px;border-radius:12px;text-align:center}

@keyframes sube{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.hoja{animation:none}}
@media (min-width:700px){
  body{font-size:18px}
  #hoja{align-items:center}
  .hoja{border-radius:24px}
}
