/* Layout: app shell de beneficios — barra lateral (desktop) / barra inferior (móvil); carnet digital + anillo de aporte como héroe; asesor en cajón lateral */
:root{
  --navy:#242072; --navy-2:#3a36a0; --turq:#4ecbce; --turq-d:#0f6f73; --turq-soft:#e3f6f7;
  --ink:#1d1f33; --sub:#4f5266; --faint:#5f6275; --bg:#f2f2f7; --surface:#ffffff; --hair:#e2e2ec; --hair-2:#8a8ca3; --tint:#f4f3fc;
  --coral:#ce604a; --coral-d:#a8432f; --coral-soft:#fbeeea; --ok:#176b48; --ok-soft:#e5f4ec;
  --display:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --body:"Nunito Sans","Helvetica Neue",Arial,sans-serif;
  /* escala tipográfica (px); nada por debajo de 12 */
  --fs-display:46px; --fs-h1:34px; --fs-fig:36px; --fs-h2:22px; --fs-h3:18px; --fs-body:15px; --fs-sm:14px; --fs-xs:13px; --fs-cap:12px;
  --r-lg:22px; --r-md:14px; --container:1200px;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:var(--fs-body);line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select{font-family:inherit;color:inherit}
:focus-visible{outline:3px solid var(--navy-2);outline-offset:2px;border-radius:8px}
.num{font-variant-numeric:tabular-nums}
abbr[title]{text-decoration:underline dotted 1.5px;text-underline-offset:3px;cursor:help}
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100%}
.app>div{min-width:0} /* la tabla de planes hace scroll dentro de su caja, no en toda la página */

/* botones base */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1.5px solid transparent;border-radius:999px;padding:10px 18px;font-weight:800;font-size:var(--fs-sm);line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.btn.pri{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.pri:hover{background:var(--navy-2);border-color:var(--navy-2)}
.btn.sec{background:var(--tint);color:var(--navy)}
.btn.line{background:var(--surface);border-color:var(--navy);color:var(--navy)}
.btn.line:hover{background:var(--tint)}
.btn.ghost{background:transparent;color:var(--navy);text-decoration:underline;text-underline-offset:3px;padding-inline:8px}
.btn.wide{width:100%}

/* sidebar */
.side{background:var(--surface);border-right:1px solid var(--hair);padding:24px 18px;display:flex;flex-direction:column;gap:26px;position:sticky;top:0;height:100vh}
.nav{display:grid;gap:4px}
.nav a{display:flex;gap:12px;align-items:center;padding:11px 12px;border-radius:12px;color:var(--sub);text-decoration:none;font-weight:700;font-size:var(--fs-sm)}
.nav a svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.nav a:hover{background:var(--tint);color:var(--navy)}
.nav a[aria-current=page]{background:var(--navy);color:#fff}
.side-foot{margin-top:auto;padding:14px 8px 0;border-top:1px solid var(--hair);font-size:var(--fs-cap);color:var(--faint)}
.side-foot img{height:26px;display:block;margin-top:6px}
.co-logo{display:flex;align-items:center;min-height:44px;padding:0 6px}
.co-logo img{max-width:100%;max-height:44px;object-fit:contain;display:block}
.co-tag{font-size:var(--fs-cap);color:var(--sub);padding:6px 6px 0;font-weight:700}
.out{border:1.5px solid var(--hair);background:var(--surface);color:var(--sub);border-radius:999px;padding:7px 14px;font-weight:800;font-size:var(--fs-xs);cursor:pointer}
.out:hover{border-color:var(--navy-2);color:var(--navy)}
.side .out{align-self:flex-start;margin-top:12px}

.mtop{display:none}
.bnav{display:none}

/* contenedor: 1200 px útiles, centrado en el área de contenido */
main{padding:28px 44px 110px;padding-left:max(44px,env(safe-area-inset-left,0px));padding-right:max(44px,env(safe-area-inset-right,0px));max-width:calc(var(--container) + 88px);margin-inline:auto;width:100%;position:relative}
.greet{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.greet .hello{font-size:var(--fs-sm);color:var(--sub);font-weight:700}
.greet h1{font-family:var(--display);font-weight:800;font-size:var(--fs-h1);line-height:1.12;margin:4px 0 0;letter-spacing:-.015em;text-wrap:balance}
.greet h1:focus{outline:none}
.greet-r{display:grid;justify-items:end;gap:6px}
.greet .who{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--hair);border-radius:999px;padding:6px 14px 6px 6px;font-weight:700;font-size:var(--fs-sm)}
.av{width:30px;height:30px;border-radius:50%;background:var(--turq);color:var(--navy);display:grid;place-items:center;font-weight:800;font-size:var(--fs-cap)}
.simtag{font-size:var(--fs-cap);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.simtag.on{color:var(--coral-d)}

/* banner de simulación */
/* barra fija abajo, centrada en el área de contenido: no empuja la página al aparecer; entra con opacity/transform */
.simbar{position:fixed;z-index:24;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:calc(248px + (100vw - 248px) / 2);width:min(var(--container),calc(100vw - 248px - 88px));display:flex;align-items:center;gap:14px;background:var(--surface);border:1.5px solid var(--turq);box-shadow:0 0 0 4px var(--turq-soft),0 18px 40px rgba(29,31,51,.2);border-radius:var(--r-md);padding:12px 14px 12px 16px;opacity:0;visibility:hidden;transform:translate(-50%,16px);transition:opacity .2s ease,transform .2s ease,visibility .2s}
.simbar.on{opacity:1;visibility:visible;transform:translate(-50%,0)}
.simbar .short{display:none}
/* --sbh = alto real de la barra (lo mide app.js): el final de cada vista queda visible por encima de la barra */
#portal.simming main{padding-bottom:calc(var(--sbh,80px) + 44px + env(safe-area-inset-bottom,0px))}
#portal.simming ~ .fab{bottom:calc(var(--sbh,80px) + 32px + env(safe-area-inset-bottom,0px))}
.simbar .ic{width:38px;height:38px;border-radius:11px;background:var(--turq-soft);color:var(--turq-d);display:grid;place-items:center;flex:none}
.simbar .ic svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.simbar .tx{flex:1;min-width:0;font-size:var(--fs-sm);color:var(--sub);line-height:1.45}
.simbar .tx>b:first-child{color:var(--ink);font-size:var(--fs-body)}
.simbar .tx b{color:var(--ink)}
.simbar .acts{display:flex;gap:8px;align-items:center;flex:none}

/* hero row */
.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;margin-bottom:18px}
.carnet{--card-bg:#242072;--card-ring:78,203,206;--card-accent:#4ecbce;--card-label:#d4d6f5;--card-text:#fff;position:relative;overflow:hidden;border-radius:var(--r-lg);padding:22px 24px;color:var(--card-text);min-height:220px;display:flex;flex-direction:column;justify-content:space-between;
  background:radial-gradient(520px 260px at 110% -10%,rgba(78,203,206,.45),transparent 60%),linear-gradient(140deg,#1b1760 0%,#242072 50%,#3a36a0 100%)}
.carnet::after{content:"";position:absolute;right:-60px;bottom:-120px;width:300px;height:300px;border-radius:50% 50% 46% 46%;border:28px solid rgba(var(--card-ring),.18)}
.carnet.sim{background:repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 14px,transparent 14px 28px),radial-gradient(520px 260px at 110% -10%,rgba(78,203,206,.45),transparent 60%),linear-gradient(140deg,#1b1760 0%,#242072 50%,#3a36a0 100%);outline:2px dashed var(--card-accent);outline-offset:-8px}
.carnet .top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;position:relative;z-index:1}
.carnet .plan{position:relative;z-index:1}
.carnet .aseg{font-size:var(--fs-cap);letter-spacing:.14em;text-transform:uppercase;color:var(--card-accent);font-weight:800}
.carnet .pname{font-family:var(--display);font-weight:800;font-size:clamp(22px,2.6vw,28px);line-height:1.1;margin-top:2px}
.carnet .meta{display:flex;gap:24px;flex-wrap:wrap;position:relative;z-index:1}
.carnet .meta span{display:block;color:var(--card-label);font-size:var(--fs-cap);letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.carnet .meta b{font-size:var(--fs-sm);font-weight:700}
.simchip{display:inline-flex;align-items:center;gap:6px;background:var(--turq);color:var(--navy);border-radius:999px;padding:3px 10px;font-size:var(--fs-cap);font-weight:800;letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}
.simchip svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.co-pill{background:#fff;border-radius:10px;padding:6px 10px;display:grid;place-items:center;height:38px;max-width:46%}
.co-pill img{max-height:24px;max-width:100%;object-fit:contain;display:block}
.carnet .simchip{background:var(--card-accent);color:var(--card-bg)}
/* tarjeta clicable: cada toque muestra el siguiente plan; gira sobre su eje y cambia de marca cuando queda de canto */
.cardcol{display:flex;flex-direction:column;gap:8px;min-width:0}
.cardcol .carnet,.cardcol .aporte{flex:1}
.flippable{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}
.flippable:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(29,31,51,.22)}
.flip{animation:cardflip .36s ease-in-out}
@keyframes cardflip{0%{transform:perspective(1000px) rotateY(0)}50%{transform:perspective(1000px) rotateY(90deg)}100%{transform:perspective(1000px) rotateY(0)}}
.cardhint{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-xs);font-weight:700;color:var(--sub)}
.cardhint svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.cardhint .dots{display:flex;gap:5px;margin-left:auto}
.cardhint .dots i{width:7px;height:7px;border-radius:99px;background:var(--hair-2);transition:width .2s ease}
.cardhint .dots i.on{width:18px;background:var(--navy)}

/* carnet con los colores de la prepagada: fondo plano por marca; sin tema (data-provider="asg") queda el degradado navy */
.carnet[data-provider]:not([data-provider="asg"]){background:var(--card-bg)}
.carnet.sim[data-provider]:not([data-provider="asg"]){background:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 14px,transparent 14px 28px),var(--card-bg)}
/* co-branding (manual ASG p. 24): ASG | línea gris del alto del símbolo | logo de la prepagada */
.cobrand{display:flex;align-items:center;gap:12px;min-width:0}
.carnet .cobrand img.asg{height:28px;width:auto;display:block;flex:none}
.cobrand .sep{flex:none;width:1px;height:28px;background:rgba(255,255,255,.45)}
.cobrand .prov{height:22px;width:auto;display:block;min-width:0;max-width:100%;object-fit:contain;object-position:left center}
/* si no cabe todo en la fila de arriba, el logo de la prepagada y la pastilla de la empresa se encogen en proporción en vez de montarse */
.carnet .top>.cobrand{flex:0 1 auto}
.carnet .top>.co-pill{flex:0 1 auto;min-width:72px}
.cobrand .prov.mono{filter:brightness(0) invert(1)}
/* el logo de Colmédica tiene figuras sobre el texto: más alto para igualar el tamaño visual del de Colsanitas */
.carnet[data-provider="colmedica"] .cobrand .prov{height:28px}
.carnet[data-provider="colsanitas"]{--card-bg:#002f87;--card-ring:0,180,227;--card-accent:#6dd5f2;--card-label:#c9e6f7}
.carnet[data-provider="colmedica"]{--card-bg:#005cac;--card-ring:0,147,214;--card-accent:#c4ecfb;--card-label:#e0eefa}
.carnet[data-provider="sura"]{--card-bg:#0033a0;--card-ring:0,163,224;--card-accent:#7fd3f2;--card-label:#cfdcf8}
.carnet[data-provider="coomeva"]{--card-bg:#002671;--card-ring:38,247,157;--card-accent:#26f79d;--card-label:#cfe0ef}
.carnet[data-provider="allianz"]{--card-bg:#003781;--card-ring:95,168,232;--card-accent:#a9cff5;--card-label:#d2e2f5}
/* SURA en amarillo (variante por defecto): textos en azul SURA y logos a color en píldora blanca */
.carnet[data-provider="sura"][data-variant="amarillo"]{--card-bg:#e3e829;--card-text:#0033a0;--card-accent:#0033a0;--card-label:#34406e;--card-ring:236,240,161;background:var(--card-bg)}
.carnet[data-provider="sura"][data-variant="amarillo"]::after{border-color:rgba(var(--card-ring),.9)}
.carnet[data-provider="sura"][data-variant="amarillo"] .cobrand{background:#fff;border-radius:10px;height:38px;padding:0 12px;gap:12px;box-shadow:0 0 0 1px rgba(0,51,160,.12)}
.carnet[data-provider="sura"][data-variant="amarillo"] .cobrand img.asg{height:24px}
.carnet[data-provider="sura"][data-variant="amarillo"] .cobrand .sep{height:24px;background:#888b8d}
.carnet[data-provider="sura"][data-variant="amarillo"] .cobrand .prov{height:20px}
.carnet[data-provider="sura"][data-variant="amarillo"] .co-pill{box-shadow:0 0 0 1px rgba(0,51,160,.12)}
.carnet.sim[data-provider="sura"][data-variant="amarillo"]{background:repeating-linear-gradient(135deg,rgba(0,51,160,.06) 0 14px,transparent 14px 28px),var(--card-bg)}
.carnet[data-provider="sura"][data-variant="amarillo"] .simchip{background:#0033a0;color:#e3e829}

.aporte{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);padding:22px 24px;display:grid;grid-template-columns:auto minmax(0,auto);gap:28px;align-items:center;justify-content:center} /* anillo + frase como un bloque centrado en el cuadro; la columna del texto mide lo que mide la frase */
.ring{width:148px;height:148px;position:relative}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring .lbl{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.ring .lbl b{font-family:var(--display);font-size:32px;font-weight:800;color:var(--navy);display:block;line-height:1}
.ring .lbl small{font-size:var(--fs-cap);color:var(--sub);font-weight:700;line-height:1.3;display:block;margin-top:2px}
.aporte .k{font-size:var(--fs-xs);color:var(--sub);font-weight:700}
/* sin valores en pesos: solo el porcentaje que aporta la empresa, en el anillo y en la frase */
.aporte .aptx{margin:6px 0 0;max-width:15em;font-family:var(--display);font-size:var(--fs-h3);font-weight:700;line-height:1.35;color:var(--ink)}
.aporte .aptx b{color:var(--navy);font-weight:800}
.tax{display:inline-flex;align-items:center;gap:6px;margin-top:8px;border-radius:999px;padding:3px 10px;font-size:var(--fs-cap);font-weight:800;background:var(--turq-soft);color:var(--turq-d)}
.tax.inc{background:var(--tint);color:var(--sub)}

.sh{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:28px 0 14px;flex-wrap:wrap}
.sh h2{font-family:var(--display);font-size:var(--fs-h2);font-weight:800;margin:0;color:var(--ink)}
.sh p{margin:0;color:var(--sub);font-size:var(--fs-sm)}

/* coverage mosaic: 4 columnas, 3 bajo 1060 px, 2 bajo 560 px */
.mosaic{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tile{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);padding:16px;display:flex;flex-direction:column;gap:10px;min-height:136px}
.tile .ic{width:38px;height:38px;border-radius:11px;background:var(--turq-soft);display:grid;place-items:center}
.tile .ic svg{width:20px;height:20px;stroke:var(--turq-d);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.tile .t{font-size:var(--fs-cap);color:var(--sub);font-weight:800;letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;gap:8px}
.tile .v{font-weight:700;font-size:var(--fs-body);line-height:1.35}
.tile.uso{background:var(--navy);border-color:var(--navy);color:#fff}
.tile.uso .ic{background:rgba(255,255,255,.12)}
.tile.uso .ic svg{stroke:var(--turq)}
.tile.uso .t{color:#d4d6f5}
.tile.uso .v{font-family:var(--display);font-size:var(--fs-h2);font-weight:800}
.tile.uso .v small{display:block;font-family:var(--body);font-size:var(--fs-xs);font-weight:600;color:#d4d6f5;margin-top:4px;line-height:1.4}
.gloss{font-size:var(--fs-xs);line-height:1.4;color:var(--sub);background:var(--tint);border-radius:10px;padding:8px 10px;margin:auto 0 0}
.gloss b{color:var(--navy)}
.details{margin-top:12px;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md)}
.details summary{list-style:none;cursor:pointer;padding:14px 18px;font-weight:800;color:var(--navy);display:flex;justify-content:space-between}
.details summary::-webkit-details-marker{display:none}
.details summary::after{content:"+";font-size:20px;line-height:1}
.details[open] summary::after{content:"–"}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px 28px;padding:0 18px 18px}
.dgrid h4{margin:6px 0 6px;font-size:var(--fs-cap);letter-spacing:.1em;text-transform:uppercase;color:var(--sub)}
.dgrid ul{margin:0;padding-left:18px;color:#3b3e52;display:grid;gap:5px}
.note{font-size:var(--fs-xs);color:var(--faint);margin-top:12px}

/* "i" de glosario: 20 px visibles, 44 px de área táctil */
.info{position:relative;display:inline-grid;place-items:center;width:20px;height:20px;padding:0;border-radius:50%;border:1.5px solid currentColor;background:transparent;color:inherit;font:800 12px/1 var(--body);text-transform:none;letter-spacing:0;cursor:help;flex:none}
.info::after{content:"";position:absolute;inset:-12px}
.info[aria-expanded=true]{background:var(--turq);border-color:var(--turq);color:var(--navy)}
.tile.uso .info{color:var(--turq)}
.tip{position:absolute;z-index:70;width:300px;max-width:calc(100vw - 24px);background:var(--ink);color:#fff;border-radius:12px;padding:12px 14px;font-size:var(--fs-sm);line-height:1.45;box-shadow:0 16px 36px rgba(29,31,51,.28);font-weight:600}
.tip b{display:block;font-family:var(--display);font-size:var(--fs-sm);margin-bottom:2px;color:var(--turq)}
.tip .ex{display:block;margin-top:6px;color:#c9cbe0;font-size:var(--fs-xs)}
.tip::before{content:"";position:absolute;top:-6px;left:var(--ax,24px);width:12px;height:12px;background:var(--ink);transform:rotate(45deg);border-radius:2px}
.tip.up::before{top:auto;bottom:-6px}

/* plans compare */
.consent{display:grid;grid-template-columns:22px minmax(0,1fr);column-gap:12px;row-gap:8px;align-items:start;background:var(--surface);border:1.5px solid var(--hair);border-radius:var(--r-md);padding:14px 16px;margin-bottom:14px;font-size:var(--fs-sm);color:var(--sub);scroll-margin-top:24px;transition:border-color .2s,box-shadow .2s}
.consent input{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:0;border:2px solid var(--hair-2);border-radius:6px;background:#fff;display:grid;place-items:center;cursor:pointer}
.consent input:checked{background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/16px no-repeat;border-color:var(--navy)}
.consent label{cursor:pointer}
.consent label button{border:0;background:none;padding:0;color:var(--navy);font-weight:800;text-decoration:underline;cursor:pointer;font-size:inherit}
.consent.err{border-color:var(--coral);box-shadow:0 0 0 4px var(--coral-soft)}
.consent.err input{border-color:var(--coral-d)}
.consent .fielderr{grid-column:2}
.pc-wrap{overflow-x:auto;padding-bottom:6px}
.pgrid{display:grid;gap:0;min-width:min-content;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);overflow:hidden}
.pgrid .cell{padding:13px 16px;border-top:1px solid var(--hair);font-size:var(--fs-sm);display:flex;align-items:center}
.pgrid .rl{color:var(--sub);font-weight:700;font-size:var(--fs-sm);gap:10px}
.pgrid .rl svg{width:18px;height:18px;stroke:var(--turq-d);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pgrid .cur{background:var(--tint)}
.pgrid .simc{background:#effafa}
.pgrid .ask{color:var(--navy);font-weight:700;font-size:13px;gap:6px}
.pgrid .ask svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pgrid .uso-row{font-weight:800;color:var(--navy)}
.pgrid .rl.uso-row{color:var(--navy)}
/* cabecera de plan con filas fijas: etiqueta, estado, aseguradora, nombre, precio, pago por uso, botón → nada salta al simular */
.phead{display:grid;grid-template-rows:24px 20px 18px 22px 34px 30px 44px;row-gap:6px;align-content:start;padding:18px 16px 16px;border-top:5px solid var(--hair);min-width:0}
.phead.mint{border-top-color:var(--turq)} .phead.lav{border-top-color:var(--navy)} .phead.peach{border-top-color:var(--coral)} .phead.sky{border-top-color:var(--navy-2)}
.phead .a{font-size:var(--fs-cap);letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--sub);align-self:end}
.phead .n{font-family:var(--display);font-weight:800;font-size:var(--fs-h3);line-height:1.2}
.phead .you{font-family:var(--display);font-weight:800;font-size:26px;color:var(--navy);line-height:1.2;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:6px}
/* la cifra y "/mes tú" nunca se parten; si no caben juntos, el sufijo baja completo */
.phead .you .amt{white-space:nowrap}
.phead .you .per{font-family:var(--body);font-size:var(--fs-xs);color:var(--sub);font-weight:700;white-space:nowrap}
.phead .uso{justify-self:start;align-self:center;font-size:var(--fs-xs);font-weight:700;color:var(--ink);background:var(--tint);border-radius:8px;padding:4px 9px;display:flex;gap:8px;align-items:center}
.phead .uso .info{width:18px;height:18px;font-size:11px;color:var(--sub)}
.badge{justify-self:start;align-self:center;border-radius:999px;padding:3px 10px;font-size:var(--fs-cap);font-weight:800;background:var(--turq-soft);color:var(--turq-d);white-space:nowrap}
.badge.none{background:var(--tint);color:var(--sub)}
/* con 4 planes las columnas bajan a ~190 px: el nombre y el pago por uso pueden ocupar 2 líneas y el precio baja a 24 px */
.pgrid[data-n="4"] .phead{grid-template-rows:24px 20px 18px 44px 56px 44px 44px}
.pgrid[data-n="4"] .phead .you{font-size:24px}
/* con 4 planes "/mes tú" va siempre en su propia línea: el ancho de columna cambia con la ventana y en su propia fila nunca choca */
.pgrid[data-n="4"] .phead .you .per{display:block;flex-basis:100%;line-height:1.3}
.status{font-size:var(--fs-cap);font-weight:800;color:var(--sub);display:flex;align-items:center;gap:6px;letter-spacing:.02em}
.status.now::before,.status.simu::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--navy)}
.status.simu{color:var(--turq-d)}
.status.simu::before{background:var(--turq)}
.pick{justify-self:start;align-self:end;min-width:150px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1.5px solid var(--navy);background:var(--surface);color:var(--navy);border-radius:999px;padding:9px 16px;font-weight:800;font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.pick svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pick:hover{background:var(--navy);color:#fff;box-shadow:0 6px 16px rgba(36,32,114,.25)}
.pick.is{border-color:var(--turq);background:var(--turq-soft);color:var(--turq-d)}
.pick.is:hover{background:#d3f0f1;color:var(--turq-d);box-shadow:none}
.pick[disabled]{border-color:var(--hair);background:var(--tint);color:var(--sub);cursor:default;box-shadow:none}

/* cuota */
.cgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
.panel-c{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);padding:22px 24px}
.panel-c h3{margin:0 0 4px;font-family:var(--display);font-size:var(--fs-h3);font-weight:800}
.panel-c .s{margin:0 0 14px;color:var(--sub);font-size:var(--fs-sm)}
.planpick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.planpick button{border:1.5px solid var(--hair);background:var(--surface);border-radius:12px;padding:8px 12px;font-weight:700;font-size:var(--fs-xs);cursor:pointer;text-align:left;min-height:44px}
.planpick button:hover{border-color:var(--navy-2)}
.planpick button[aria-pressed=true]{border-color:var(--navy);background:var(--tint);color:var(--navy)}
.planpick button small{display:block;font-size:var(--fs-cap);font-weight:700;color:var(--turq-d)}
.planpick button[aria-pressed=true] small{color:var(--navy-2)}
.planpick button small.none,.planpick button[aria-pressed=true] small.none{color:var(--sub)}
.fam{display:grid;gap:8px}
.mem{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;background:var(--tint);border:1px solid var(--hair);border-radius:14px;padding:8px 10px 8px 8px;font-size:var(--fs-sm)}
.mem .av{width:30px;height:30px}
.mem.you .av{background:var(--navy);color:#fff}
.mem.sim{background:var(--surface);border-style:dashed}
.mem .nm{font-weight:700;min-width:0}
.mem .nm small{display:block;font-size:var(--fs-cap);color:var(--sub);font-weight:600}
.mem .nm select{margin-left:6px;border:1px solid var(--hair-2);border-radius:8px;padding:2px 6px;font-size:var(--fs-xs);font-weight:700;background:#fff}
.mem .nm .psel{display:block;margin:6px 0 0;max-width:100%}
.mem .pr{font-weight:700;color:var(--ink)}
.mem .x{border:0;background:transparent;color:var(--faint);font-size:17px;cursor:pointer;width:32px;height:32px;border-radius:50%;line-height:1}
.mem .x:hover{background:#fff;color:var(--coral-d)}
.mem .flag{grid-column:2 / -1;display:flex;gap:6px;align-items:flex-start;font-size:var(--fs-cap);font-weight:700;color:var(--sub)}
.mem .flag svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;margin-top:2px}
.mem.block{background:var(--coral-soft);border-color:#f0c8bd}
.mem.block .flag{color:var(--coral-d)}
.mem.block .pr{color:var(--faint);text-decoration:line-through}
.add{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.add button{border:1.5px dashed var(--navy-2);background:transparent;color:var(--navy);border-radius:999px;padding:7px 14px;min-height:40px;font-weight:800;font-size:var(--fs-xs);cursor:pointer}
.add button:hover{background:var(--tint)}
.add button[disabled]{opacity:.35;cursor:default}
.add .reset{border:0;color:var(--sub);text-decoration:underline}
.famnote{margin:14px 0 0;font-size:var(--fs-xs);color:var(--faint)}
.split{height:22px;border-radius:999px;overflow:hidden;display:flex;background:var(--hair);margin:6px 0 10px}
.split .e{background:var(--turq)} .split .y{background:var(--navy)}
.leg{display:flex;gap:16px;flex-wrap:wrap;font-size:var(--fs-xs);color:var(--sub);font-weight:700}
.leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.leg .sw-e{background:var(--turq)} .leg .sw-y{background:var(--navy)}
/* sin aporte: muestra vacía, para que no parezca que la empresa tiene un segmento en la barra */
.leg .none .sw-e{background:transparent;border:1.5px dashed var(--hair-2)}
.receipt{margin-top:16px;border-top:1px dashed var(--hair)}
.receipt .r{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed var(--hair);font-size:var(--fs-sm)}
.receipt .r span:first-child{color:var(--sub)}
.receipt .r.e span:last-child{color:var(--turq-d);font-weight:700}
.total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:14px;flex-wrap:wrap}
.total .k{font-weight:800}
.total .v{font-family:var(--display);font-size:var(--fs-fig);font-weight:800;color:var(--navy);text-align:right}
.total .yr{font-size:var(--fs-xs);color:var(--sub);text-align:right}

/* ayuda */
.help{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.hcard{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);padding:18px}
.hcard .ic{width:38px;height:38px;border-radius:11px;background:var(--tint);display:grid;place-items:center;margin-bottom:12px}
.hcard .ic svg{width:20px;height:20px;stroke:var(--navy);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.hcard h4{margin:0 0 4px;font-size:var(--fs-body)}
.hcard p{margin:0;color:var(--sub);font-size:var(--fs-sm)}
.asesor{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:linear-gradient(140deg,#1b1760,#242072 60%,#3a36a0);color:#fff;border-radius:var(--r-lg);padding:20px 22px;margin-top:16px}
.asesor .av{width:52px;height:52px;font-size:17px}
.asesor .w{flex:1;min-width:180px}
.asesor .w b{display:block;font-size:16px}.asesor .w span{color:#d0d2f2;font-size:13px}
.asesor .c{background:rgba(255,255,255,.12);border-radius:12px;padding:8px 14px;font-size:13.5px;font-weight:700;user-select:all}
.faq details{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);padding:14px 18px;margin-bottom:8px}
.faq summary{cursor:pointer;font-weight:800}
.faq p{margin:8px 0 0;color:var(--sub)}

/* diálogos: base */
dialog{border:0;border-radius:var(--r-lg);padding:0;max-width:min(560px,calc(100% - 32px));width:100%;box-shadow:0 30px 70px rgba(29,31,51,.35);color:var(--ink)}
dialog::backdrop{background:rgba(22,18,79,.45)}
.dlg{padding:24px}
.dlg h3{margin:0 0 6px;font-family:var(--display);font-size:var(--fs-h2);font-weight:800}
.dlg .sub{margin:0 0 14px;color:var(--sub);font-size:var(--fs-xs)}
.dlg .legal{background:var(--tint);border-radius:12px;padding:14px 16px;font-size:var(--fs-sm);color:#3b3e52;max-height:42vh;overflow:auto}
.dlg .legal p{margin:0 0 10px}
.dlg .row{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.grab{display:none;width:44px;height:5px;border-radius:9px;background:var(--hair-2);margin:10px auto 4px}

/* resumen de simulación */
dialog.sum{max-width:min(540px,calc(100% - 32px));overflow:visible}
.sum .mh{position:relative;padding:24px 70px 16px 26px;border-top:6px solid var(--turq);border-radius:var(--r-lg) var(--r-lg) 0 0}
.tagsim{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:var(--fs-cap);font-weight:800;background:var(--turq-soft);color:var(--turq-d);letter-spacing:.02em}
.tagsim svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sum h2{font-family:var(--display);font-size:var(--fs-h2);font-weight:800;margin:8px 0 2px;line-height:1.2}
.sum .msub{margin:0;font-size:var(--fs-sm);color:var(--sub);font-weight:600}
.sum .x{position:absolute;right:14px;top:14px;width:44px;height:44px;border:0;border-radius:50%;background:var(--tint);color:var(--sub);font-size:22px;font-weight:700;cursor:pointer}
.sum .mb{padding:0 26px}
.sumrow{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-top:1px solid var(--hair);font-size:var(--fs-sm)}
.sumrow .l{color:var(--sub);font-weight:700;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sumrow .l small{flex-basis:100%;font-weight:600;font-size:var(--fs-xs);color:var(--faint)}
.sumrow .l .info{color:var(--sub)}
.sumrow .r{font-weight:800;text-align:right;white-space:nowrap}
.sumrow.hl{border-top:0;background:var(--tint);border-radius:14px;padding:16px;margin-bottom:8px;align-items:center}
.sumrow.hl .l{display:block;color:var(--ink)}
.sumrow.hl .l small{display:block;margin-top:2px}
.sumrow.hl .r{font-family:var(--display);font-size:34px;color:var(--navy);line-height:1}
.sumrow.hl .r small{display:block;font-family:var(--body);font-size:var(--fs-xs);color:var(--sub);font-weight:700;margin-top:6px}
.delta{display:flex;gap:10px;align-items:center;border-radius:12px;padding:10px 12px;font-weight:800;font-size:var(--fs-sm);margin:0 0 4px;background:var(--tint);color:var(--navy)}
.delta.down{background:var(--ok-soft);color:var(--ok)}
.delta svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.disc{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-xs);color:var(--sub);padding:12px 0 4px;line-height:1.45;margin:0}
.disc svg{width:18px;height:18px;stroke:var(--navy-2);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;margin-top:1px}
.sum .mf{display:flex;gap:10px;justify-content:flex-end;align-items:center;padding:16px 26px 22px}

/* glosario como hoja inferior (pantallas táctiles) */
dialog.gsheet{padding:0 20px 24px;max-width:min(480px,calc(100% - 32px))}
.gsheet .gtag{display:inline-flex;align-items:center;gap:6px;margin-top:20px;border-radius:999px;padding:4px 12px;font-size:var(--fs-xs);font-weight:800;background:var(--turq-soft);color:var(--turq-d)}
.gsheet .gtag svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.gsheet h2{font-family:var(--display);font-size:var(--fs-h2);font-weight:800;margin:10px 0 6px}
.gsheet p{margin:0 0 12px;color:var(--sub);font-size:var(--fs-body)}
.gsheet .gex{background:var(--tint);border-radius:12px;padding:10px 14px;color:var(--ink)}
.gsheet .gex b{color:var(--navy)}
.gsheet .grel{border-top:1px solid var(--hair);padding-top:12px;margin-bottom:16px;display:grid;gap:8px;font-size:var(--fs-sm);color:var(--sub)}
.gsheet .grel b{color:var(--ink)}
.gsheet .btn.wide{min-height:48px}
.gsheet .x{position:absolute;right:12px;top:12px;width:44px;height:44px;border:0;border-radius:50%;background:var(--tint);color:var(--sub);font-size:22px;font-weight:700;cursor:pointer}

/* advisor drawer */
.fab{position:fixed;right:max(20px,env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:30;display:flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border:0;border-radius:999px;padding:12px 18px;font-weight:800;font-size:var(--fs-sm);cursor:pointer;box-shadow:0 10px 30px rgba(29,31,51,.28)}
.fab:hover{background:var(--navy)}
.fab .dot{width:8px;height:8px;border-radius:50%;background:var(--turq)}
.scrim{position:fixed;inset:0;background:rgba(29,31,51,.35);z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(400px,100%);background:var(--surface);z-index:50;padding:22px 22px calc(22px + env(safe-area-inset-bottom,0px));padding-top:calc(22px + env(safe-area-inset-top,0px));overflow-y:auto;box-shadow:-20px 0 50px rgba(29,31,51,.18);display:flex;flex-direction:column;gap:22px}
.drawer .hd{display:flex;justify-content:space-between;align-items:center}
.drawer .hd b{font-family:var(--display);font-size:var(--fs-h3)}
.drawer .hd span{font-size:var(--fs-cap);letter-spacing:.14em;color:var(--turq-d);font-weight:800;display:block}
.drawer .x{border:0;background:var(--tint);width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer}
.drawer h5{margin:0 0 8px;font-size:var(--fs-cap);letter-spacing:.12em;text-transform:uppercase;color:var(--sub)}
.sl{display:grid;gap:12px}
.slr{display:grid;gap:4px}
.slr .t{display:flex;justify-content:space-between;font-size:var(--fs-xs);font-weight:700}
.slr input{width:100%;accent-color:var(--navy)}
.sw{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1.5px solid var(--hair);border-radius:14px;padding:12px 14px;cursor:pointer}
.sw b{display:block;font-size:var(--fs-sm)}.sw span{font-size:var(--fs-xs);color:var(--sub)}
.sw input{width:20px;height:20px;accent-color:var(--navy);flex:none}
.drawer .fine{font-size:var(--fs-cap);color:var(--faint)}

/* ---------- login ---------- */
.boot{min-height:100vh;display:grid;place-items:center;color:var(--sub);font-weight:700}
.login{position:relative;overflow:hidden;min-height:100vh;display:grid;grid-template-columns:minmax(0,580px) minmax(0,440px);gap:clamp(32px,6vw,110px);align-items:center;justify-content:center;padding:40px clamp(16px,6vw,96px);
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' fill='none' stroke='white' stroke-opacity='.08' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M30 22v16M22 30h16'/%3E%3Cpath d='M90 98s-10-6.2-10-14a5.6 5.6 0 0 1 10-3.6A5.6 5.6 0 0 1 100 84c0 7.8-10 14-10 14z'/%3E%3Ccircle cx='92' cy='28' r='2'/%3E%3Ccircle cx='26' cy='92' r='2'/%3E%3C/svg%3E"),
    radial-gradient(520px 420px at 12% 18%,rgba(78,203,206,.30),transparent 65%),
    radial-gradient(640px 480px at 92% 96%,rgba(206,96,74,.22),transparent 65%),
    linear-gradient(150deg,#16124f 0%,#242072 50%,#3a36a0 100%)}
.lhero{position:relative;z-index:1;color:#fff}
/* el bloque del título mide lo que su línea más larga, para centrar la etiqueta sobre el título */
.lhead{font-size:var(--fs-display);max-width:10.6em}
.leyebrow{display:table;margin:0 auto;font-size:var(--fs-cap);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--turq);background:rgba(78,203,206,.12);border:1px solid rgba(78,203,206,.35);border-radius:999px;padding:6px 12px}
.lhero h1{font-family:var(--display);font-weight:800;font-size:1em;line-height:1.08;letter-spacing:-.015em;margin:18px 0 14px;text-wrap:balance}
.lhero p{color:#d0d2f2;font-size:17px;max-width:470px;margin:0 0 26px}
.lfeats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.lfeats li{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:12px 14px;font-weight:700;font-size:var(--fs-sm)}
.lfeats span{width:36px;height:36px;border-radius:10px;background:rgba(78,203,206,.18);display:grid;place-items:center;flex:none}
.lfeats svg{width:20px;height:20px;stroke:var(--turq);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.pulse{position:absolute;left:0;right:0;bottom:6%;width:100%;height:120px;z-index:0;pointer-events:none}
.pulse path{fill:none;stroke:var(--turq);stroke-opacity:.35;stroke-width:2.5;stroke-linejoin:round;stroke-dasharray:1600;stroke-dashoffset:0}

.lcard{position:relative;z-index:1;background:var(--surface);border-radius:var(--r-lg);padding:30px 30px 26px;width:100%;box-shadow:0 30px 70px rgba(10,8,50,.35)}
.lbrand{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;min-height:36px}
.lbrand img{max-height:34px;max-width:46%;object-fit:contain}
.lbrand .sep{width:1px;align-self:stretch;background:var(--hair)}
.lcard h2{font-family:var(--display);font-weight:800;font-size:24px;line-height:1.15;margin:0 0 6px}
.lcard p.s{margin:0 0 20px;color:var(--sub);font-size:var(--fs-sm)}
.fld{display:grid;gap:6px;margin-bottom:16px}
.fld label{font-size:var(--fs-sm);font-weight:800;color:var(--ink)}
.inp{display:flex;align-items:center;gap:4px;height:48px;border:1.5px solid var(--hair-2);border-radius:12px;background:#fff;padding:0 4px 0 14px}
.inp input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;font-size:var(--fs-body);padding:0}
.inp input::placeholder{color:#6f7183;opacity:1}
.inp:focus-within{border-color:var(--navy-2);box-shadow:0 0 0 3px #dcdaf5}
.inp.err{border-color:var(--coral-d);box-shadow:0 0 0 3px var(--coral-soft)}
.inp.dis{background:var(--tint);border-color:var(--hair);color:var(--sub)}
.eye{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;height:44px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--navy);font-weight:800;font-size:var(--fs-xs);cursor:pointer;flex:none}
.eye svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.eye .off{display:none}
.eye[aria-pressed=true] .off{display:inline}
.eye[disabled]{color:var(--faint);cursor:default}
.fielderr{display:flex;align-items:flex-start;gap:6px;margin:0;color:var(--coral-d);font-size:var(--fs-sm);font-weight:800;line-height:1.35}
.fielderr svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;flex:none;margin-top:0}
.hint{margin:0;font-size:var(--fs-xs);color:var(--faint)}
.lerr{display:flex;gap:10px;align-items:flex-start;border-radius:12px;padding:11px 12px;font-size:var(--fs-sm);font-weight:700;margin-bottom:16px;line-height:1.4}
.lerr{background:var(--coral-soft);color:var(--coral-d);border:1px solid #f1cfc6}
.lerr svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;margin-top:0}
.lbtn{width:100%;height:50px;display:flex;align-items:center;justify-content:center;gap:10px;margin-top:4px;border:0;border-radius:999px;background:var(--navy);color:#fff;font-weight:800;font-size:var(--fs-body);cursor:pointer}
.lbtn:hover{background:var(--navy-2)}
.lbtn[disabled]{cursor:default}
.lbtn.busy{background:var(--navy-2)}
.spin{width:20px;height:20px;border-radius:50%;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
.prog{margin-top:16px;background:var(--tint);border-radius:14px;padding:14px 14px 12px}
.bar{height:6px;border-radius:99px;background:#e2e1f3;overflow:hidden}
.bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--turq),var(--navy-2));transition:width .4s ease}
.steps{list-style:none;margin:12px 0 8px;padding:0;display:grid;gap:8px;font-size:var(--fs-sm)}
.steps li{display:flex;align-items:center;gap:10px;color:var(--faint);font-weight:700}
.steps .dot{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;flex:none;border:2px solid var(--hair-2);font-size:var(--fs-cap);font-weight:900}
.steps .done{color:var(--ok)}
.steps .done .dot{background:var(--ok);border-color:var(--ok);color:#fff}
.steps .done .dot::before{content:"✓"}
.steps .now{color:var(--ink)}
.steps .now .dot{border-color:var(--navy-2);border-top-color:transparent;animation:spin .8s linear infinite}
.lfoot{margin-top:18px;font-size:var(--fs-cap);color:var(--faint);text-align:center}

/* escritorio angosto: el cuadro de aporte queda estrecho, así que el anillo va encima de la frase, ambos centrados */
@media (min-width:900.02px) and (max-width:1250px){
  .aporte{grid-template-columns:minmax(0,1fr);justify-items:center;gap:12px;text-align:center}
  .ring{width:112px;height:112px}
  .ring .lbl b{font-size:26px}
  .aporte .aptx{font-size:var(--fs-body)}
  /* la tarjeta también queda angosta: logos con los tamaños de celular */
  .cobrand{gap:10px}
  .carnet .cobrand img.asg,.cobrand .sep{height:20px}
  .cobrand .prov{height:16px}
  .carnet[data-provider="colmedica"] .cobrand .prov{height:22px}
  .carnet .co-pill{height:32px;padding:5px 8px}
  .carnet .co-pill img{max-height:18px}
}
@media (min-width:901px) and (max-width:1366px){
  .pgrid{--lbl:170px}
}
@media (max-width:1060px){
  .mosaic{grid-template-columns:repeat(3,minmax(0,1fr))}
  .help{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .side{display:none}
  .mtop{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface);border-bottom:1px solid var(--hair);padding:12px max(16px,env(safe-area-inset-right,0px)) 12px max(16px,env(safe-area-inset-left,0px));position:sticky;top:env(safe-area-inset-top,0px);z-index:20}
  body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:21;background:var(--surface)}
  .mtop img{height:22px}
  .mtop .co-logo{min-height:0;padding:0}
  .mtop .co-logo img{max-height:28px;max-width:46vw}
  .mtop .mr{display:flex;align-items:center;gap:12px}
  .bnav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--surface);border-top:1px solid var(--hair);padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}
  .bnav a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;color:var(--faint);text-decoration:none;font-size:var(--fs-cap);font-weight:800}
  .bnav a svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .bnav a[aria-current=page]{color:var(--navy)}
  .fab{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  main{padding:18px 16px 100px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
  .greet{display:block;margin-bottom:16px}
  .greet h1{font-size:24px}
  .greet-r{justify-items:start;margin-top:6px}
  .greet .who{display:none}
  .hero,.cgrid{grid-template-columns:1fr}
  .simbar{left:12px;right:12px;width:auto;bottom:calc(68px + env(safe-area-inset-bottom,0px));flex-wrap:wrap;gap:8px 12px;padding:10px 12px;transform:translateY(16px)}
  .simbar.on{transform:translateY(0)}
  .simbar .ic,.simbar .long{display:none}
  .simbar .short{display:inline}
  .simbar .acts{width:100%}
  .simbar .acts .btn{flex:1;min-height:40px;padding:8px 12px}
  #portal.simming main{padding-bottom:calc(var(--sbh,120px) + 68px + 20px + env(safe-area-inset-bottom,0px))}
  #portal.simming ~ .fab{bottom:calc(var(--sbh,120px) + 80px + env(safe-area-inset-bottom,0px))}
  .sh{display:block;margin:22px 0 12px}
  .sh h2{font-size:20px}
  .sh p{margin-top:4px}
  .phead,.pgrid[data-n="4"] .phead{grid-template-rows:24px 20px 18px 44px 34px 44px 44px}
  .cobrand{gap:10px}
  .carnet .cobrand img.asg,.cobrand .sep{height:20px}
  .cobrand .prov{height:16px}
  .carnet[data-provider="colmedica"] .cobrand .prov{height:22px}
  .carnet .co-pill{height:32px;padding:5px 8px}
  .carnet .co-pill img{max-height:18px}
  .carnet[data-provider="sura"][data-variant="amarillo"] .cobrand{height:32px;padding:0 10px;gap:10px}
  .carnet[data-provider="sura"][data-variant="amarillo"] .cobrand img.asg,.carnet[data-provider="sura"][data-variant="amarillo"] .cobrand .sep{height:20px}
  .carnet[data-provider="sura"][data-variant="amarillo"] .cobrand .prov{height:16px}
  /* login */
  .login{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:18px;padding:28px 16px}
  .lhero p,.lfeats{display:none}
  .lhead{font-size:26px;max-width:none}
  .leyebrow{margin:0}
  .lhero h1{margin:12px 0 0}
  .lcard{padding:24px 20px 20px}
  .lcard h2{font-size:21px}
  .pulse{bottom:2%}
}
/* hojas inferiores en móvil */
@media (max-width:640px){
  dialog.sum,dialog.gsheet{position:fixed;inset:auto 0 0 0;margin:0;max-width:100%;width:100%;max-height:85vh;overflow-y:auto;border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
  dialog.sum[open],dialog.gsheet[open]{animation:sheet-in .25s ease-out}
  .grab{display:block}
  .sum .mh{border-top:0;padding:10px 64px 14px 20px}
  .sum .x{top:4px;right:10px}
  .sum .mb{padding:0 20px}
  .sum .mf{display:grid;justify-content:stretch;gap:8px;padding:14px 20px 22px}
  .sum .mf .btn{width:100%;min-height:48px}
  .sum .mf #sumCuota{order:1}.sum .mf #sumCob{order:2}.sum .mf #sumKeep{order:3}
  .sumrow.hl .r{font-size:30px}
  .gsheet .gtag{margin-top:10px}
}
@media (max-width:900px){ /* columnas de 190 px: "/mes tú" en su propia línea, con alto reservado */
  .phead .you .per{display:block;flex-basis:100%;line-height:1.3}
  .phead,.pgrid[data-n="4"] .phead{grid-template-rows:24px 20px 18px 44px 56px 44px 44px}
}
@media (max-width:560px){
  .mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}
  .help{grid-template-columns:1fr}
  .aporte{gap:16px;padding:18px}
  .ring{width:104px;height:104px}
  .ring .lbl b{font-size:22px}
  .dgrid{grid-template-columns:1fr}
  .carnet .meta{gap:12px}
}
@media (prefers-reduced-motion:no-preference){
  .ring circle.v{transition:stroke-dashoffset .6s ease}
  .split div{transition:width .4s ease}
  .pulse path{animation:pulse 4.5s linear infinite}
}
@keyframes sheet-in{from{transform:translateY(100%)}to{transform:none}}
@keyframes pulse{from{stroke-dashoffset:1600}to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){
  .flippable,.cardhint .dots i{transition:none}
  .flippable:hover{transform:none}
  dialog.sum[open],dialog.gsheet[open]{animation:none}
  .simbar{transition:none}
  .spin,.steps .now .dot{animation-duration:2.4s}
}
