/* Portal Clientes: la capa visual se sirve estática; los datos llegan solo tras sesión. */
body[data-page="portal"] .whatsapp{display:none}
.portal-page{background:radial-gradient(circle at 88% 6%,#5523138c 0,transparent 25%),radial-gradient(circle at 12% 80%,#13345469 0,transparent 35%),linear-gradient(140deg,#07090f 0%,#0b111d 44%,#140d12 100%);min-height:calc(100vh - 117px);padding:clamp(22px,4vw,64px)}
.portal-page.hidden{display:none}
.portal-login-view{align-items:stretch;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(390px,.8fr);margin:auto;max-width:1320px;min-height:650px;overflow:hidden;border:1px solid #ffffff1f;border-radius:31px;box-shadow:0 30px 80px #000a,0 0 0 1px #ff8a3d18}
.portal-login-art{background-image:linear-gradient(90deg,#080b12c9 0%,#080b124d 54%,#080b12b8 100%),linear-gradient(0deg,#0a0c13c7,#0a0c1313),url('_assets/fondos/PortadaLogin.webp');background-position:center;background-size:cover;min-height:100%;position:relative}
.portal-login-art:after{border:1px solid #ffbf7a35;border-radius:50%;box-shadow:0 0 90px #ff743d52;content:"";height:43%;left:16%;position:absolute;top:28%;width:43%}
.portal-login-card{align-self:center;background:linear-gradient(150deg,#131a2df2,#0d1322fa);border-left:1px solid #ffffff17;box-sizing:border-box;display:flex;flex-direction:column;min-height:650px;padding:clamp(40px,5vw,74px);position:relative;z-index:1}
.portal-login-card:before{background:radial-gradient(circle at 90% 12%,#ff7a4433 0,transparent 28%);content:"";inset:0;pointer-events:none;position:absolute}
.portal-login-card>*{position:relative}
.portal-login-logo{align-self:flex-start;filter:drop-shadow(0 0 12px #ff8a598c);height:58px;object-fit:contain;object-position:left center;width:120px}
.portal-eyebrow{color:#ffad6b;display:block;font-size:11px;font-weight:900;letter-spacing:.18em;margin-top:55px;text-transform:uppercase}
.portal-login-card h1,.portal-dashboard h1{color:#fff;font-size:clamp(29px,3.2vw,46px);letter-spacing:-.045em;line-height:1.05;margin:11px 0 16px}
.portal-login-card>p{color:#bec8d8;font-size:15px;line-height:1.6;margin:0 0 32px;max-width:410px}
.portal-login-card form{display:grid;gap:9px;margin:0 0 16px}
.portal-login-card label{color:#dbe4f4;font-size:12px;font-weight:800;margin-top:5px}
.portal-login-card input{background:#090e1b;border:1px solid #4b5b7666;border-radius:13px;box-sizing:border-box;color:#fff;font:600 15px Inter,system-ui,sans-serif;outline:none;padding:14px 15px;transition:border-color .2s,box-shadow .2s;width:100%}
.portal-login-card input:focus{border-color:#ff9b5b;box-shadow:0 0 0 3px #ff74321f,0 0 23px #ff763233}
.portal-login-card input::placeholder{color:#71809b}
.portal-form-error{color:#ff9eaa;display:none;font-size:12px;line-height:1.4;margin:4px 0 0;min-height:0}.portal-form-error.visible{display:block}
.portal-main-action{align-items:center;background:linear-gradient(105deg,#ff9a23,#ff5638);border:1px solid #ffbc6b;border-radius:13px;box-shadow:0 10px 25px #ff5b2f4d;color:#fff;cursor:pointer;display:inline-flex;font:900 14px Inter,system-ui,sans-serif;gap:12px;justify-content:center;margin-top:12px;min-height:49px;padding:12px 18px;text-decoration:none;transition:box-shadow .2s,transform .2s}.portal-main-action:hover:not(:disabled){box-shadow:0 0 25px #ff783c8c,0 15px 34px #0008;transform:translateY(-2px)}.portal-main-action:disabled{cursor:wait;opacity:.72}.portal-main-action span{font-size:20px;line-height:0}
.portal-login-card>small{color:#7f8da4;font-size:11px;line-height:1.5;margin-top:auto;padding-top:19px}
.portal-dashboard{margin:auto;max-width:1530px}.portal-dashboard-header{align-items:flex-start;border-bottom:1px solid #ffffff14;display:flex;gap:25px;justify-content:space-between;margin:0 0 28px;padding:0 0 25px}.portal-dashboard-header .portal-eyebrow{margin:0}.portal-dashboard-header h1{font-size:clamp(29px,3vw,42px);margin:8px 0}.portal-dashboard-header p{color:#acb7c7;font-size:14px;margin:0}.portal-dashboard-actions{display:flex;gap:10px;justify-content:flex-end;min-width:max-content}.portal-quiet-action{background:#111a2c;border:1px solid #ffffff1d;border-radius:11px;color:#d7dfeb;cursor:pointer;font:800 12px Inter,system-ui,sans-serif;padding:11px 13px;transition:border-color .2s,background .2s,transform .2s}.portal-quiet-action:hover:not(:disabled){background:#202d45;border-color:#ff9f626b;transform:translateY(-1px)}.portal-quiet-action:disabled{opacity:.6}.portal-logout{color:#ffb1b8}
.portal-session-message{background:#14203a;border:1px solid #65a9ff4d;border-radius:12px;color:#b9d9ff;font-size:13px;font-weight:700;margin:-10px 0 20px;padding:11px 14px}.portal-session-message.hidden{display:none}.portal-session-message.success{background:#113622;border-color:#46d77e62;color:#9df6bf}.portal-session-message.error{background:#3a1720;border-color:#ef6b7a61;color:#ffabb4}
.portal-accounts{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(min(100%,470px),1fr))}.portal-account-card{background:linear-gradient(145deg,#111a2d 0%,#0a101d 100%);border:1px solid color-mix(in srgb,var(--portal-plan-color) 44%,#334155);border-radius:24px;box-shadow:0 16px 38px #0007,inset 0 1px #ffffff0b;display:flex;flex-direction:column;min-width:0;overflow:hidden;padding:18px;position:relative;transition:border-color .2s,box-shadow .2s,transform .2s}.portal-account-card:before{background:radial-gradient(circle at 98% 0,color-mix(in srgb,var(--portal-plan-color) 26%,transparent),transparent 32%);content:"";inset:0;pointer-events:none;position:absolute}.portal-account-card:hover{border-color:var(--portal-plan-color);box-shadow:0 22px 46px #000a,0 0 25px color-mix(in srgb,var(--portal-plan-color) 15%,transparent);transform:translateY(-2px)}.portal-account-card>*{position:relative}.portal-account-card.mantenimiento{border-color:#f6b94d80}.portal-account-card.vencida,.portal-account-card.en-revisión{border-color:#ed687a80}
.portal-account-heading{align-items:center;display:grid;gap:12px;grid-template-columns:54px minmax(0,1fr) auto;margin-bottom:16px}.portal-account-icon{align-items:center;background:color-mix(in srgb,var(--portal-plan-color) 19%,#111827);border:1px solid color-mix(in srgb,var(--portal-plan-color) 65%,transparent);border-radius:16px;display:grid;height:52px;overflow:hidden;place-items:center;width:52px}.portal-account-icon img{height:100%;object-fit:contain;width:100%}.portal-account-icon:not(:has(img)){color:#fff;font-size:20px}.portal-account-title{min-width:0}.portal-account-title h2{color:#fff;font-size:18px;margin:0 0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-account-title p{color:#9db0c9;font-size:11px;font-weight:700;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-status{border:1px solid;border-radius:99px;font-size:10px;font-weight:900;padding:8px 10px;white-space:nowrap}.portal-status.activa{background:#123925;color:#85f7b0;border-color:#33d87873}.portal-status.por-vencer{background:#40320d;color:#ffe28e;border-color:#ffc94d73}.portal-status.mantenimiento{background:#3f3012;color:#ffd889;border-color:#ffbd357a}.portal-status.vencida,.portal-status.en-revisión{background:#431a24;color:#ffadb8;border-color:#f05c7180}
.portal-renewal{align-items:center;background:linear-gradient(115deg,#17233a,#11192a);border:1px solid #ffffff16;border-radius:17px;display:flex;justify-content:space-between;margin-bottom:13px;min-height:94px;padding:14px}.portal-renewal-copy>span,.portal-renewal-meta span{color:#a8b8d0;display:block;font-size:9px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.portal-renewal-copy strong{color:#8cf4be;display:block;font-size:20px;line-height:1.12;margin-top:6px}.mantenimiento .portal-renewal-copy strong{color:#ffe184}.vencida .portal-renewal-copy strong{color:#ff9fac}.portal-renewal-meta{text-align:right}.portal-renewal-meta b{color:#77ddff;display:block;font-size:15px;margin:3px 0 7px}.portal-renewal-meta em{color:#ffc64f;display:block;font-size:16px;font-style:normal;font-weight:900;margin-top:3px}
.portal-access{border:1px solid #ffffff14;border-radius:17px;flex:1;overflow:hidden}.portal-access-head{align-items:center;border-bottom:1px solid #ffffff14;display:flex;justify-content:space-between;padding:12px 14px}.portal-access-head h3{color:#fff;font-size:14px;margin:0}.portal-access-head span{color:#92a5bf;font-size:10px;font-weight:700}.portal-access-row{align-items:center;border-bottom:1px solid #ffffff11;display:grid;gap:11px;grid-template-columns:91px minmax(0,1fr) auto;min-height:48px;padding:8px 14px}.portal-access-row:last-child{border-bottom:0}.portal-access-label{color:#93a9c7;font-size:10px;font-weight:900;text-transform:uppercase}.portal-access-value{color:#f7faff;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-copy{background:#152e3d;border:1px solid #2ea8c66b;border-radius:9px;color:#8deaff;cursor:pointer;font:800 10px Inter,system-ui,sans-serif;padding:7px 8px;white-space:nowrap}.portal-copy:hover{background:#1a4357}.portal-access-empty{color:#91a1b9;font-size:12px;line-height:1.45;margin:0;padding:17px}
.portal-card-actions{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));margin-top:14px}.portal-card-actions:has(.warning){grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}.portal-card-action{align-items:center;background:#162238;border:1px solid #3b4c6b;border-radius:11px;color:#e6edf7;cursor:pointer;display:flex;font:800 12px Inter,system-ui,sans-serif;justify-content:center;min-height:43px;padding:9px;text-align:center;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}.portal-card-action:hover{background:#243755;border-color:#6a8bc0;box-shadow:0 7px 15px #0005;transform:translateY(-1px)}.portal-card-action.primary{background:linear-gradient(110deg,#16ba72,#22b8e7);border-color:#6ae7d0;color:#fff;box-shadow:0 8px 19px #14c47d2b}.portal-card-action.primary:hover{background:linear-gradient(110deg,#16c97b,#2b9df5)}.portal-card-action.warning{border-color:#edbc5e9e;color:#ffdb8b}
.portal-empty{background:#111a2b;border:1px solid #ffffff1c;border-radius:24px;grid-column:1/-1;margin:auto;max-width:570px;padding:42px;text-align:center}.portal-empty h2{color:#fff;margin:0 0 10px}.portal-empty p{color:#aab7c9;line-height:1.55;margin:0 0 20px}
.portal-support-launcher{align-items:center;background:linear-gradient(135deg,#1fc77c,#18a7df);border:1px solid #91f5d1;border-radius:18px;bottom:25px;box-shadow:0 14px 34px #0009,0 0 22px #1bd79b5a;color:#071a19;cursor:pointer;display:flex;gap:9px;padding:7px 13px 7px 7px;position:fixed;right:23px;text-align:left;z-index:20}.portal-support-launcher.hidden{display:none}.portal-support-launcher:hover{filter:brightness(1.06);transform:translateY(-2px)}.portal-support-launcher img{background:#0a5343;border-radius:13px;height:43px;object-fit:contain;object-position:center top;width:43px}.portal-support-copy{display:grid;gap:1px}.portal-support-copy b{font-size:11px}.portal-support-copy small{font-size:9px;font-weight:700}.portal-support-pulse{background:#fff;border-radius:50%;box-shadow:0 0 0 4px #23e5964d;height:7px;position:absolute;right:10px;top:8px;width:7px}
#portal-support-dialog{background:#0e1626;border:1px solid #ffffff24;border-radius:24px;box-shadow:0 25px 70px #000d;color:#fff;max-height:min(780px,91vh);max-width:min(900px,94vw);padding:0;width:min(900px,94vw)}#portal-support-dialog::backdrop{background:#02050ccc;backdrop-filter:blur(6px)}.portal-dialog-close{background:#263148;border:0;border-radius:50%;color:#fff;cursor:pointer;font-size:27px;height:39px;line-height:1;position:absolute;right:17px;top:17px;width:39px;z-index:2}.portal-dialog-close:hover{background:#394766}.portal-help-panel{padding:clamp(28px,5vw,52px)}.portal-help-panel h2{color:#fff;font-size:clamp(25px,3vw,36px);letter-spacing:-.04em;margin:9px 0 12px}.portal-help-panel p{color:#bdcadb;line-height:1.6;margin:0 0 22px;max-width:600px}.portal-help-panel .portal-eyebrow{margin:0}.portal-help-hero{align-items:center;display:grid;gap:20px;grid-template-columns:130px minmax(0,1fr);margin-bottom:26px}.portal-help-avatar{align-self:end;height:175px;max-width:130px;object-fit:contain;object-position:bottom}.portal-help-accounts{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(205px,1fr))}.portal-help-account{background:#142038;border:1px solid #ffffff1d;border-radius:15px;color:#fff;cursor:pointer;display:grid;gap:5px;padding:15px;text-align:left}.portal-help-account:hover{border-color:#38d8a3;box-shadow:0 0 19px #1bc7852e}.portal-help-account strong{font-size:14px}.portal-help-account span{color:#a7b7ce;font-size:11px}.portal-back{background:transparent;border:0;color:#9cdcff;cursor:pointer;font:800 12px Inter,system-ui,sans-serif;margin:0 0 20px;padding:0}.portal-back:hover{color:#fff}.portal-guide-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin:22px 0}.portal-guide-option{background:#152239;border:1px solid #ffffff1d;border-radius:14px;color:#fff;cursor:pointer;display:grid;gap:8px;padding:15px;text-align:left}.portal-guide-option:hover{border-color:#ff9b60;box-shadow:0 0 18px #ff79302c}.portal-guide-option strong{font-size:13px}.portal-guide-option span{color:#ffbd83;font-size:11px;font-weight:800}.portal-guide-image{background:#070b13;border:1px solid #ffffff1c;border-radius:16px;display:block;margin:20px 0;max-height:380px;max-width:100%;object-fit:contain;width:auto}.portal-unavailable{max-width:610px}
@media(max-width:900px){.portal-login-view{grid-template-columns:1fr;max-width:640px;min-height:0}.portal-login-art{display:none}.portal-login-card{border-left:0;min-height:610px}.portal-dashboard-header{flex-direction:column}.portal-dashboard-actions{justify-content:flex-start}.portal-account-card{padding:15px}.portal-account-heading{grid-template-columns:48px minmax(0,1fr) auto}.portal-account-icon{height:46px;width:46px}}
@media(max-width:700px){.portal-page{min-height:calc(100vh - 43px);padding:12px 10px 91px}.portal-login-view{border-radius:21px}.portal-login-card{min-height:calc(100vh - 146px);padding:30px 23px}.portal-login-logo{height:42px;width:88px}.portal-eyebrow{font-size:9px;margin-top:32px}.portal-login-card h1,.portal-dashboard h1{font-size:31px}.portal-login-card>p{font-size:13px;margin-bottom:24px}.portal-login-card input{font-size:14px;padding:13px}.portal-main-action{font-size:13px;min-height:47px}.portal-dashboard-header{gap:15px;margin-bottom:20px;padding:10px 4px 20px}.portal-dashboard-header .portal-eyebrow{font-size:9px}.portal-dashboard-header p{font-size:12px}.portal-dashboard-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.portal-quiet-action{font-size:11px;padding:10px}.portal-accounts{gap:13px;grid-template-columns:1fr}.portal-account-card{border-radius:19px;padding:12px}.portal-account-heading{gap:9px;grid-template-columns:43px minmax(0,1fr) auto;margin-bottom:11px}.portal-account-icon{border-radius:13px;height:42px;width:42px}.portal-account-title h2{font-size:15px}.portal-account-title p{font-size:9px}.portal-status{font-size:8px;padding:6px 7px}.portal-renewal{border-radius:14px;margin-bottom:9px;min-height:76px;padding:10px}.portal-renewal-copy strong{font-size:16px}.portal-renewal-meta b{font-size:12px}.portal-renewal-meta em{font-size:13px}.portal-renewal-copy>span,.portal-renewal-meta span{font-size:8px}.portal-access{border-radius:14px}.portal-access-head{padding:10px 11px}.portal-access-head h3{font-size:12px}.portal-access-head span{font-size:8px}.portal-access-row{gap:7px;grid-template-columns:63px minmax(0,1fr) auto;min-height:42px;padding:7px 10px}.portal-access-label{font-size:8px}.portal-access-value{font-size:11px}.portal-copy{font-size:8px;padding:5px}.portal-card-actions{gap:6px;margin-top:10px}.portal-card-actions:has(.warning){grid-template-columns:repeat(2,minmax(0,1fr))}.portal-card-action{border-radius:9px;font-size:10px;min-height:39px;padding:6px}.portal-card-actions .warning{grid-column:1/-1}.portal-support-launcher{border-radius:50%;bottom:86px;height:55px;padding:5px;right:14px;width:55px}.portal-support-launcher img{border-radius:50%;height:45px;width:45px}.portal-support-copy{display:none}.portal-support-pulse{right:4px;top:4px}.portal-help-panel{padding:28px 20px}.portal-help-hero{align-items:start;grid-template-columns:70px minmax(0,1fr);gap:12px}.portal-help-avatar{height:98px;max-width:70px}.portal-help-panel h2{font-size:25px}.portal-help-panel p{font-size:13px}.portal-help-accounts{grid-template-columns:1fr}.portal-guide-grid{grid-template-columns:1fr 1fr}.portal-guide-option{padding:12px}.portal-guide-option strong{font-size:12px}.portal-guide-image{max-height:310px;width:100%}#portal-support-dialog{max-width:96vw;width:96vw}}

/* Refinamiento de acceso completo, navegación móvil y asistente visual. */
.portal-login-view.hidden,.portal-dashboard.hidden{display:none!important}
.mobile-hero-brand,.portal-mobile-logo{display:none}
.portal-page{min-height:calc(100svh - 117px);padding:0}
.portal-login-view{display:block;isolation:isolate;margin:0;max-width:none;min-height:calc(100svh - 117px);overflow:hidden;padding:clamp(44px,7vw,105px);position:relative;border:0;border-radius:0;box-shadow:none}
.portal-login-art{display:block;inset:0;min-height:0;position:absolute;z-index:-1;background-image:linear-gradient(90deg,#070a12f2 0%,#09101ccc 38%,#0a10156b 70%,#070a12d9 100%),linear-gradient(0deg,#05070fcf 0%,transparent 58%),url('_assets/fondos/PortadaLogin.webp');background-position:center;background-size:cover}
.portal-login-art:after{height:min(50vw,680px);left:-8vw;top:10%;width:min(50vw,680px);border-color:#ffbd7a27;box-shadow:0 0 115px #ff743d42}
.portal-login-card{align-items:flex-start;background:transparent;border:0;box-sizing:border-box;display:flex;flex-direction:column;max-width:480px;min-height:0;padding:0;position:relative;text-shadow:0 2px 16px #000c;z-index:1}
.portal-login-card:before{background:radial-gradient(ellipse at 26% 38%,#0b1019d9 0%,#0a0e16a8 36%,transparent 75%);content:"";filter:blur(18px);inset:-60px -80px -90px -62px;opacity:.9;pointer-events:none;position:absolute}
.portal-login-card>*{position:relative}
.portal-login-logo{height:54px;width:112px}
.portal-eyebrow{margin-top:44px}
.portal-login-card h1{max-width:470px}
.portal-login-card>p{color:#e4eaf4;max-width:435px;text-shadow:0 2px 14px #000}
.portal-login-card .portal-login-note{color:#b8c5d8;font-size:12px;line-height:1.45;margin:-19px 0 23px;max-width:410px}
.portal-login-card input{background:#070c16d9;backdrop-filter:blur(9px);border-color:#a7b3c64f}
.portal-login-card input.is-phone-valid{border-color:#39d879;color:#a6f7bf;box-shadow:0 0 0 3px #23cf7721,0 0 24px #19c96935}
.portal-login-card>small{color:#b1c0d3;text-shadow:0 2px 14px #000}
.portal-dashboard{max-width:1530px;min-height:calc(100svh - 117px);padding:clamp(25px,4vw,64px);width:100%}
.portal-support-launcher{align-items:flex-end;background:transparent;border:0;border-radius:0;bottom:18px;box-shadow:none;display:block;height:178px;padding:0;position:fixed;right:18px;width:222px;z-index:25}
.portal-support-launcher:hover{filter:none;transform:translateY(-3px)}
.portal-support-thought{background:#f8fbff;border:1px solid #dfe9f3;border-radius:16px;box-shadow:0 12px 31px #0008;color:#19243a;display:block;font:800 12px Inter,system-ui,sans-serif;left:0;line-height:1.32;padding:12px 14px;position:absolute;right:20px;text-align:left;top:0}
.portal-support-thought:after{border-left:11px solid transparent;border-right:4px solid transparent;border-top:12px solid #f8fbff;bottom:-11px;content:"";position:absolute;right:40px}
.portal-support-thought small{color:#4f6881;display:block;font-size:9px;font-weight:800;margin-top:4px}
.portal-support-figure{bottom:0;display:block;height:132px;position:absolute;right:0;width:118px}
.portal-support-launcher img{background:transparent;border-radius:0;filter:drop-shadow(0 11px 11px #0009);height:132px;object-fit:contain;object-position:center bottom;width:118px}
.portal-support-pulse{background:#1edb79;border:2px solid #f3fff8;border-radius:50%;box-shadow:0 0 0 4px #23e5964d;height:11px;right:12px;top:17px;width:11px;z-index:1}
.portal-help-panel{padding:clamp(28px,5vw,48px)}
.portal-help-hero{background:linear-gradient(125deg,#17263e,#10182a);border:1px solid #ffffff16;border-radius:20px;padding:17px}
.portal-chat-line{align-items:flex-start;display:grid;gap:9px;grid-template-columns:38px minmax(0,1fr);margin:18px 0}
.portal-chat-avatar{background:#10233a;border:1px solid #38d8a36e;border-radius:50%;height:38px;object-fit:contain;object-position:bottom;width:38px}
.portal-chat-bubble{background:#1c2b42;border:1px solid #ffffff18;border-radius:4px 16px 16px 16px;color:#d9e7f5!important;font-size:13px!important;line-height:1.5;margin:0!important;max-width:530px;padding:12px 14px}
.portal-guide-grid{margin-top:14px}
@media(max-width:700px){
  .mobile-brand{display:none!important}
  .mobile-hero-brand{align-items:center;display:flex;height:42px;left:13px;position:absolute;top:10px;width:78px;z-index:4}
  .mobile-hero-brand img{filter:drop-shadow(0 2px 8px #000) drop-shadow(0 0 7px #ff855c9c);height:38px;object-fit:contain;width:78px}
  .portal-page{min-height:calc(100svh - 70px);padding:0 0 70px}
  .portal-login-view{min-height:calc(100svh - 70px);padding:92px 20px 28px}
  .portal-login-art{background-image:linear-gradient(180deg,#05070f4d 0%,#070a12c7 46%,#070b13f4 100%),linear-gradient(90deg,#080c14aa,#080d1652),url('_assets/fondos/PortadaLogin.webp');background-position:center}
  .portal-login-art:after{height:56vw;left:-12vw;top:10%;width:56vw}
  .portal-mobile-logo{align-items:center;display:flex;height:40px;left:13px;position:absolute;top:10px;width:78px;z-index:3}
  .portal-mobile-logo img{filter:drop-shadow(0 2px 8px #000) drop-shadow(0 0 7px #ff855c9c);height:38px;object-fit:contain;width:78px}
  .portal-login-card{max-width:none;padding:0;width:100%}
  .portal-login-logo{display:none}
  .portal-eyebrow{margin-top:0}
  .portal-login-card h1{font-size:clamp(29px,9vw,37px);margin-top:9px}
  .portal-login-card>p{font-size:13px;margin-bottom:18px}
  .portal-login-card .portal-login-note{font-size:11px;margin:-11px 0 17px}
  .portal-login-card form{gap:7px}
  .portal-login-card>small{margin-top:8px;padding-top:12px}
  .portal-dashboard{min-height:calc(100svh - 70px);padding:18px 11px 27px}
  .portal-support-launcher{bottom:76px;height:139px;right:4px;width:179px}
  .portal-support-thought{border-radius:13px;font-size:10px;left:0;padding:9px 10px;right:17px;top:0}
  .portal-support-thought:after{border-left-width:8px;border-right-width:3px;border-top-width:9px;bottom:-8px;right:29px}
  .portal-support-thought small{font-size:8px;margin-top:2px}
  .portal-support-figure{height:99px;width:91px}
  .portal-support-launcher img{height:99px;width:91px}
  .portal-support-pulse{height:9px;right:8px;top:10px;width:9px}
  .portal-help-hero{grid-template-columns:63px minmax(0,1fr);padding:13px}
  .portal-help-avatar{height:86px;max-width:63px}
  .portal-chat-line{grid-template-columns:31px minmax(0,1fr);margin:14px 0}
  .portal-chat-avatar{height:31px;width:31px}
  .portal-chat-bubble{font-size:12px!important;padding:10px 11px}
}


/* Ajuste centrado del acceso y tarjetas de cuenta v3. */
body[data-page="portal"] .platform-ticker,body[data-page="vivo"] .platform-ticker{display:none}
body[data-page="portal"] .portal-page,body[data-page="portal"] .portal-login-view,body[data-page="portal"] .portal-dashboard{min-height:calc(100svh - 74px)}
body[data-page="portal"] .portal-login-view{align-items:center;display:grid;grid-template-columns:1fr;justify-items:center;padding:clamp(36px,5vw,72px)}
body[data-page="portal"] .portal-login-art{background-image:linear-gradient(135deg,#050812d9 0%,#0913239c 43%,#070a12ca 100%),linear-gradient(0deg,#060913b8,transparent 62%),url('_assets/fondos/PortadaLogin.webp')}
body[data-page="portal"] .portal-login-card{align-items:stretch;background:linear-gradient(150deg,#10192ae8,#0b111ee8);border:1px solid #ffffff24;border-radius:25px;box-shadow:0 26px 68px #000b,0 0 0 1px #ff8e4520;max-width:420px;padding:clamp(27px,4vw,39px);text-align:left;width:100%}
body[data-page="portal"] .portal-login-card:before{background:radial-gradient(circle at 76% 4%,#ff78402e 0%,transparent 35%);filter:none;inset:0;opacity:1}
body[data-page="portal"] .portal-login-logo{display:none}
body[data-page="portal"] .portal-login-card .portal-eyebrow{margin:0}
body[data-page="portal"] .portal-login-card h1{font-size:clamp(30px,3.4vw,39px);margin:9px 0 10px}
body[data-page="portal"] .portal-login-card>p{font-size:13px;line-height:1.55;margin:0 0 20px;max-width:none}
body[data-page="portal"] .portal-login-card .portal-login-note{border-top:1px solid #ffffff14;color:#9fadc2;font-size:11px;margin:-6px 0 18px;padding-top:12px}
body[data-page="portal"] .portal-login-card>small{margin-top:0;padding-top:16px}
.portal-dashboard-header{margin-bottom:31px}
.portal-dashboard-header h1{font-size:clamp(28px,3vw,40px)}
.portal-accounts{gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,470px),1fr))}
.portal-account-card{background:radial-gradient(460px 190px at 0% 0%,color-mix(in srgb,var(--portal-plan-color) 21%,transparent),transparent 62%),linear-gradient(180deg,#10192bf5,#070c16f2);border:1px solid #ffffff1c;border-radius:26px;box-shadow:0 22px 58px #0008;overflow:hidden;padding:0}
.portal-account-card:before{background:linear-gradient(90deg,var(--portal-plan-color),#ffffff35);height:4px;inset:0 0 auto;opacity:1}
.portal-account-card:hover{border-color:color-mix(in srgb,var(--portal-plan-color) 68%,#ffffff);box-shadow:0 25px 61px #000a,0 0 25px color-mix(in srgb,var(--portal-plan-color) 17%,transparent);transform:translateY(-2px)}
.portal-account-heading{gap:13px;grid-template-columns:54px minmax(0,1fr) auto;margin:0;padding:19px 19px 16px}
.portal-account-icon{border-radius:18px;height:54px;width:54px}
.portal-account-title h2{font-size:19px}
.portal-account-title p{font-size:12px}
.portal-status{font-size:11px;padding:8px 10px}
.portal-status.renueva-hoy,.portal-status.por-vencer{background:#40320d;border-color:#ffc94d73;color:#ffe48f}
.portal-maintenance-strip{background:#473815;border-bottom:1px solid #ffc35a5c;border-top:1px solid #ffc35a5c;color:#ffe090;font-size:10px;font-weight:900;letter-spacing:.1em;margin:-2px 19px 13px;padding:8px 10px;text-align:center}
.portal-renewal{background:linear-gradient(115deg,#17233a,#101827);border-radius:18px;margin:0 19px 13px;min-height:95px;padding:14px}
.portal-renewal-copy strong{font-size:21px}
.portal-renewal-meta b{font-size:15px}
.portal-renewal-meta em{font-size:17px}
.portal-access{border-radius:18px;margin:0 19px}
.portal-access-head{padding:13px 14px}
.portal-access-row{grid-template-columns:91px minmax(0,1fr) auto;min-height:49px;padding:8px 14px}
.portal-card-actions{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:15px 19px 19px}
.portal-card-action{font-size:12px;min-height:45px}
.portal-card-action.warning{grid-column:auto}
@media(max-width:700px){
  body[data-page="portal"] .portal-page,body[data-page="portal"] .portal-login-view,body[data-page="portal"] .portal-dashboard{min-height:calc(100svh - 70px)}
  body[data-page="portal"] .portal-login-view{padding:92px 18px 87px}
  body[data-page="portal"] .portal-mobile-logo{height:43px;left:50%;top:22px;transform:translateX(-50%);width:88px}
  body[data-page="portal"] .portal-mobile-logo img{height:43px;width:88px}
  body[data-page="portal"] .portal-login-card{border-radius:21px;max-width:365px;padding:27px 23px}
  body[data-page="portal"] .portal-login-card h1{font-size:31px}
  body[data-page="portal"] .portal-login-card>p{font-size:12px}
  .mobile-hero-brand{height:24px;width:44px}
  .mobile-hero-brand img{height:22px;width:44px}
  .portal-dashboard{padding:18px 11px 27px}
  .portal-dashboard-header{margin-bottom:20px}
  .portal-accounts{gap:14px}
  .portal-account-card{border-radius:20px}
  .portal-account-heading{gap:9px;grid-template-columns:43px minmax(0,1fr) auto;margin:0;padding:14px 13px 11px}
  .portal-account-icon{border-radius:13px;height:43px;width:43px}
  .portal-account-title h2{font-size:15px}
  .portal-account-title p{font-size:9px}
  .portal-status{font-size:8px;padding:6px 7px}
  .portal-maintenance-strip{font-size:8px;margin:0 13px 9px;padding:7px}
  .portal-renewal{border-radius:14px;margin:0 13px 9px;min-height:76px;padding:10px}
  .portal-renewal-copy strong{font-size:16px}
  .portal-renewal-meta b{font-size:12px}
  .portal-renewal-meta em{font-size:13px}
  .portal-access{border-radius:14px;margin:0 13px}
  .portal-access-head{padding:10px 11px}
  .portal-access-row{grid-template-columns:63px minmax(0,1fr) auto;min-height:42px;padding:7px 10px}
  .portal-card-actions{gap:7px;margin:10px 13px 13px}
  .portal-card-action{font-size:10px;min-height:40px}
}


/* EN VIVO: acceso visual local; la validación real se conectará desde el panel. */
body[data-page="vivo"] .whatsapp{display:none}
.vivo-page{background:radial-gradient(circle at 84% 8%,#ff5d3540 0,transparent 27%),radial-gradient(circle at 11% 85%,#106d9252 0,transparent 36%),linear-gradient(145deg,#06070c 0%,#0b1220 48%,#160d12 100%);box-sizing:border-box;min-height:calc(100svh - 74px);padding:clamp(26px,5vw,72px)}
.vivo-page.hidden,.vivo-dashboard.hidden,.vivo-login-view.hidden{display:none}
.vivo-login-view{align-items:center;display:grid;isolation:isolate;justify-items:center;margin:auto;min-height:calc(100svh - 74px);overflow:hidden;position:relative}
.vivo-login-art{background-image:linear-gradient(135deg,#04070edc 0%,#09152686 45%,#070a12d6 100%),linear-gradient(0deg,#05070eab,transparent 62%),url('_assets/fondos/PortadaLoginTransmision.webp');background-position:center;background-size:cover;inset:0;position:absolute;z-index:-2}
.vivo-login-art:after{border:1px solid #ff9b6f3d;border-radius:50%;box-shadow:0 0 110px #ff643e45;content:"";height:46%;left:10%;position:absolute;top:21%;width:46%}
.vivo-login-card{background:linear-gradient(150deg,#10192af0,#0a101cec);border:1px solid #ffffff27;border-radius:25px;box-shadow:0 26px 68px #000b,0 0 0 1px #ff8e4526;box-sizing:border-box;display:flex;flex-direction:column;max-width:430px;padding:clamp(27px,4vw,41px);position:relative;width:100%}
.vivo-login-card:before{background:radial-gradient(circle at 78% 3%,#ff784030 0%,transparent 36%);content:"";inset:0;pointer-events:none;position:absolute}
.vivo-login-card>*{position:relative}.vivo-login-card .portal-eyebrow{margin:0}.vivo-login-card h1{color:#fff;font-size:clamp(30px,3.4vw,40px);letter-spacing:-.045em;line-height:1.05;margin:9px 0 10px}.vivo-login-card>p{color:#bec8d8;font-size:13px;line-height:1.58;margin:0 0 22px}.vivo-login-card label{color:#dbe4f4;font-size:12px;font-weight:800;margin:0 0 8px}.vivo-code-input{background:#080d19;border:1px solid #4b5b766c;border-radius:14px;box-sizing:border-box;color:#fff;font:900 clamp(23px,4vw,31px) Inter,system-ui,sans-serif;letter-spacing:.44em;outline:none;padding:15px 12px 15px calc(12px + .44em);text-align:center;transition:border-color .2s,box-shadow .2s;width:100%}.vivo-code-input:focus{border-color:#ff9b5b;box-shadow:0 0 0 3px #ff74321f,0 0 23px #ff763233}.vivo-code-input::placeholder{color:#647188;letter-spacing:.33em}.vivo-main-action{margin-top:18px}.vivo-demo-note{color:#91a1b8;font-size:11px;line-height:1.5;margin-top:16px;text-align:center}.vivo-demo-note b{color:#ffd2aa;letter-spacing:.08em}.vivo-mobile-logo{display:none}
.vivo-dashboard{margin:auto;max-width:1260px}.vivo-dashboard-header{align-items:flex-start;border-bottom:1px solid #ffffff14;display:flex;gap:25px;justify-content:space-between;margin:0 0 28px;padding:0 0 25px}.vivo-dashboard-header .portal-eyebrow{margin:0}.vivo-dashboard-header h1{color:#fff;font-size:clamp(30px,3.3vw,44px);letter-spacing:-.045em;line-height:1.05;margin:8px 0}.vivo-dashboard-header p{color:#acb7c7;font-size:14px;margin:0}.vivo-logout{color:#ffb1b8}.vivo-player-shell{align-items:center;background:radial-gradient(circle at 50% 34%,#ff764229,transparent 28%),linear-gradient(145deg,#101b2e,#060a13);border:1px solid #ffffff1c;border-radius:28px;box-shadow:0 28px 64px #0009;display:flex;justify-content:center;min-height:min(61vw,660px);overflow:hidden;position:relative}.vivo-player-shell:before{background:linear-gradient(110deg,transparent 0%,#ff783508 42%,#5ab5ff14 60%,transparent 100%);content:"";inset:0;position:absolute}.vivo-player-glow{border:1px solid #ff92543b;border-radius:50%;box-shadow:0 0 130px #ff7a423d;height:48%;position:absolute;width:48%}.vivo-player-content{position:relative;text-align:center}.vivo-live-dot{color:#ff9d8e;font-size:12px;font-weight:900;letter-spacing:.16em}.vivo-player-content h2{color:#fff;font-size:clamp(25px,4vw,45px);letter-spacing:-.04em;margin:16px 0 9px}.vivo-player-content p{color:#b4c0d1;font-size:14px;margin:0}.vivo-session-card{background:#10192bee;border:1px solid #ffffff18;border-radius:19px;margin-top:20px;padding:18px 20px}.vivo-session-card span{color:#ffad6b;display:block;font-size:10px;font-weight:900;letter-spacing:.15em}.vivo-session-card strong{color:#fff;display:block;font-size:26px;letter-spacing:.18em;margin:7px 0}.vivo-session-card p{color:#aebbd0;font-size:12px;line-height:1.5;margin:0;max-width:730px}
@media(max-width:700px){body[data-page="vivo"] .vivo-page{min-height:calc(100svh - 70px);padding:0 18px 86px}.vivo-login-view{min-height:calc(100svh - 70px);padding:93px 0 30px}.vivo-login-art{background-image:linear-gradient(180deg,#05070f4d 0%,#070a12c7 46%,#070b13f4 100%),linear-gradient(90deg,#080c14aa,#080d1652),url('_assets/fondos/PortadaLoginTransmision.webp')}.vivo-login-art:after{height:57vw;left:-12vw;top:9%;width:57vw}.vivo-mobile-logo{align-items:center;display:flex;height:43px;left:50%;position:absolute;top:22px;transform:translateX(-50%);width:88px;z-index:2}.vivo-mobile-logo img{filter:drop-shadow(0 2px 8px #000) drop-shadow(0 0 7px #ff855c9c);height:43px;object-fit:contain;width:88px}.vivo-login-card{border-radius:21px;max-width:365px;padding:27px 23px}.vivo-login-card h1{font-size:30px}.vivo-code-input{font-size:25px;letter-spacing:.35em;padding-left:calc(11px + .35em)}.vivo-dashboard{min-height:calc(100svh - 70px);padding:18px 0 26px}.vivo-dashboard-header{align-items:stretch;flex-direction:column;gap:15px;margin-bottom:20px;padding-bottom:19px}.vivo-dashboard-header h1{font-size:31px}.vivo-dashboard-header p{font-size:12px}.vivo-logout{align-self:flex-start}.vivo-player-shell{border-radius:20px;min-height:58vw;padding:24px}.vivo-player-content h2{font-size:24px}.vivo-player-content p{font-size:12px}.vivo-session-card{border-radius:15px;margin-top:13px;padding:14px}.vivo-session-card strong{font-size:21px}}

/* Menús guiados de Fidodido/Fidodida. */
.portal-guide-steps{background:#0d1627;border:1px solid #ffffff14;border-radius:16px;color:#d6e2ef;font-size:13px;line-height:1.58;margin:14px 0;padding:16px 18px 16px 38px}.portal-guide-steps li+li{margin-top:8px}.portal-guide-images{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));margin:14px 0}.portal-guide-image{background:#0d1524;border:1px solid #ffffff19;border-radius:15px;box-sizing:border-box;max-height:350px;object-fit:contain;width:100%}.portal-support-textarea{background:#0b1220;border:1px solid #ffffff20;border-radius:14px;box-sizing:border-box;color:#e6eff9;font:600 13px Inter,system-ui,sans-serif;line-height:1.5;min-height:120px;outline:none;padding:12px;width:100%}.portal-support-textarea:focus{border-color:#ff9b5b;box-shadow:0 0 0 3px #ff74321f}.portal-device-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:700px){.portal-guide-steps{font-size:12px;margin:12px 0;padding:13px 14px 13px 31px}.portal-guide-images{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.portal-guide-image{border-radius:11px}.portal-device-grid{grid-template-columns:1fr}.portal-support-textarea{font-size:12px;min-height:105px}}

/* EN VIVO: fondo de transmisión a pantalla completa, bajo el encabezado. */
body[data-page="vivo"] .vivo-page{
  background:#070a12;
  min-height:calc(100svh - 78px);
  padding:0;
  position:relative;
}
body[data-page="vivo"] .vivo-login-view{
  background-image:linear-gradient(90deg,#04070e9c 0%,#07111a4f 43%,#05070ea1 100%),linear-gradient(0deg,#05070eb8 0%,transparent 66%),url('_assets/fondos/PortadaLoginTransmision.webp');
  background-position:center;
  background-size:cover;
  min-height:calc(100svh - 78px);
  padding:clamp(38px,6vw,88px);
  width:100%;
}
body[data-page="vivo"] .vivo-login-view::before{
  border:1px solid #ff9b6f30;
  border-radius:50%;
  box-shadow:0 0 120px #ff643e3d;
  content:"";
  height:min(48vw,650px);
  left:-9vw;
  position:absolute;
  top:12%;
  width:min(48vw,650px);
  z-index:-1;
}
body[data-page="vivo"] .vivo-login-art{display:none}
body[data-page="vivo"] .vivo-login-card{
  background:linear-gradient(150deg,#10192ac4,#0a101cba);
  backdrop-filter:blur(12px) saturate(114%);
  -webkit-backdrop-filter:blur(12px) saturate(114%);
  box-shadow:0 26px 68px #000a,0 0 0 1px #ff8e4530;
}
@media(max-width:700px){
  body[data-page="vivo"] .vivo-page{
    min-height:calc(100svh - 70px);
    padding:0 0 70px;
  }
  body[data-page="vivo"] .vivo-login-view{
    background-image:linear-gradient(180deg,#05070f42 0%,#070a1291 50%,#070b13dc 100%),linear-gradient(90deg,#080c147d,#080d1633),url('_assets/fondos/PortadaLoginTransmision.webp');
    min-height:calc(100svh - 70px);
    padding:93px 18px 30px;
  }
  body[data-page="vivo"] .vivo-login-view::before{
    height:58vw;
    left:-13vw;
    top:8%;
    width:58vw;
  }
  body[data-page="vivo"] .vivo-login-card{
    background:linear-gradient(150deg,#10192abc,#0a101cb2);
  }
}

/* EN VIVO — login de seis dígitos. */
body[data-page="vivo"] .vivo-page{background:#050811;box-sizing:border-box;height:calc(100svh - 74px);min-height:0;overflow:hidden;padding:0}
body[data-page="vivo"] .vivo-login-view{align-items:center;background-image:linear-gradient(90deg,#04070eb8 0%,#06111a78 45%,#04070eae 100%),linear-gradient(0deg,#04070e9e 0%,transparent 65%),url('_assets/fondos/TransmisionPC.webp');background-position:center;background-size:cover;box-sizing:border-box;display:grid;height:100%;justify-items:center;min-height:0;overflow:hidden;padding:clamp(20px,4vh,50px) 24px;width:100%}
body[data-page="vivo"] .vivo-login-view::before{background:radial-gradient(ellipse at center,rgba(2,8,16,.15) 0%,rgba(2,8,16,.4) 54%,rgba(2,8,16,.08) 100%);border:0;border-radius:0;box-shadow:none;content:"";height:auto;inset:0;left:auto;position:absolute;top:auto;width:auto;z-index:-1}
body[data-page="vivo"] .vivo-login-art{display:none}
body[data-page="vivo"] .vivo-mobile-logo{display:none}
body[data-page="vivo"] .vivo-login-card{align-items:center;background:linear-gradient(145deg,rgba(7,17,28,.95),rgba(9,19,30,.92));border:1px solid rgba(130,150,170,.45);border-radius:22px;box-shadow:0 18px 55px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,118,63,.13),inset 0 -1px 0 rgba(255,108,47,.08);box-sizing:border-box;display:flex;height:clamp(470px,54vh,510px);justify-content:flex-start;max-height:calc(100% - 16px);max-width:700px;padding:clamp(28px,4vh,42px) clamp(28px,4vw,54px);text-align:center;width:clamp(540px,42vw,700px)}
body[data-page="vivo"] .vivo-login-card::before{background:radial-gradient(ellipse at 50% 0%,rgba(255,93,31,.25),transparent 24%),radial-gradient(ellipse at 92% 84%,rgba(255,93,31,.1),transparent 16%),radial-gradient(ellipse at 8% 90%,rgba(255,93,31,.07),transparent 14%);border-radius:inherit;content:"";inset:0;opacity:1;pointer-events:none;position:absolute}
body[data-page="vivo"] .vivo-login-card>*{position:relative}
.vivo-lock{align-items:center;background:linear-gradient(145deg,#101b29,#0a111c);border:1px solid #ff671c;border-radius:16px;box-shadow:0 0 14px rgba(255,95,15,.22),inset 0 0 13px rgba(255,95,15,.09);display:grid;flex:0 0 auto;height:76px;justify-content:center;width:76px}
.vivo-lock svg{fill:none;height:42px;stroke:#ff721f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75;width:42px}
body[data-page="vivo"] .vivo-login-card h1{color:#f7f8fa;font-size:clamp(34px,2.45vw,42px);font-weight:750;letter-spacing:-.045em;line-height:1.05;margin:22px 0 10px}
body[data-page="vivo"] .vivo-login-copy{color:#b7c0cc;font-size:clamp(17px,1.3vw,22px);font-weight:500;line-height:1.4;margin:0;max-width:540px}
.vivo-otp-group{display:grid;gap:clamp(9px,.8vw,14px);grid-template-columns:repeat(6,minmax(0,1fr));margin-top:clamp(25px,3.2vh,34px);width:min(100%,530px)}
.vivo-otp-digit{appearance:none;background:#09131e;border:1.5px solid #314052;border-radius:13px;box-sizing:border-box;caret-color:#ff5a0a;color:#f7f8fa;font:700 clamp(28px,2vw,34px)/1 Inter,system-ui,sans-serif;height:clamp(64px,5vw,82px);outline:0;padding:0;text-align:center;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;width:100%}
.vivo-otp-digit:focus{background:#0a1420;border:2px solid #ff4b0a;box-shadow:0 0 8px rgba(255,70,5,.7),0 0 18px rgba(255,70,5,.25),inset 0 0 11px rgba(255,77,10,.08)}
.vivo-otp-digit.is-filled:not(:focus){border-color:rgba(210,82,32,.65);box-shadow:0 0 7px rgba(255,90,10,.15)}
.vivo-otp-group.is-invalid{animation:vivo-code-shake .4s ease both}
.vivo-otp-group.is-invalid .vivo-otp-digit{border-color:#ff4659;box-shadow:0 0 11px rgba(255,70,89,.28)}
@keyframes vivo-code-shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}
body[data-page="vivo"] .vivo-login-card .portal-form-error{color:#ff9da7;font-size:12px;line-height:1.35;margin:10px 0 0;min-height:16px;text-align:center}
body[data-page="vivo"] .vivo-main-action{align-items:center;background:linear-gradient(100deg,#bc3a00 0%,#ff5500 52%,#c73800 100%);border:1.5px solid #ff772e;border-radius:15px;box-shadow:0 5px 14px rgba(255,76,0,.3),0 0 11px rgba(255,78,0,.14);color:#fff;display:flex;font-size:clamp(22px,1.65vw,28px);font-weight:800;height:clamp(62px,4.5vw,74px);justify-content:center;margin-top:clamp(13px,2.2vh,24px);max-width:560px;padding:0;width:100%}
body[data-page="vivo"] .vivo-main-action span{font-size:1.28em;line-height:1;margin-left:12px}
body[data-page="vivo"] .vivo-main-action:active:not(:disabled){transform:scale(.98)}
body[data-page="vivo"] .vivo-main-action:disabled{box-shadow:none;cursor:not-allowed;filter:saturate(.55);opacity:.68}
body[data-page="vivo"] .vivo-demo-note{color:#9ba9bb;font-size:11px;line-height:1.35;margin-top:12px;text-align:center}
body[data-page="vivo"] .vivo-demo-note b{color:#ffcaab;letter-spacing:.09em}

@media(min-width:701px){
  html:has(body[data-page="vivo"]),body[data-page="vivo"]{height:100%;overflow:hidden}
  body[data-page="vivo"] main{height:calc(100svh - 74px);overflow:hidden}
  body[data-page="vivo"] .vivo-dashboard{box-sizing:border-box;height:100%;max-width:none;overflow:hidden;padding:clamp(24px,4vw,58px)}
}
@media(min-width:701px) and (max-height:740px){
  body[data-page="vivo"] .vivo-login-card{height:min(470px,calc(100% - 4px));padding:24px 34px}
  body[data-page="vivo"] .vivo-login-card h1{margin:15px 0 7px}
  .vivo-otp-group{margin-top:18px}
  body[data-page="vivo"] .vivo-demo-note{display:none}
}

@media(max-width:700px){
  body[data-page="vivo"] .vivo-page{height:auto;min-height:calc(100svh - 73px);overflow:hidden;padding:0 0 73px}
  body[data-page="vivo"] .vivo-login-view{align-content:start;background-image:linear-gradient(180deg,rgba(4,7,14,.42) 0%,rgba(4,9,16,.55) 49%,rgba(4,7,14,.83) 100%),linear-gradient(90deg,rgba(4,8,15,.34),rgba(4,8,15,.08)),url('_assets/fondos/TransmisionCEL.webp');background-position:center;background-size:cover;display:flex;flex-direction:column;height:auto;justify-content:flex-start;min-height:calc(100svh - 73px);padding:clamp(72px,11svh,128px) 0 28px}
  body[data-page="vivo"] .vivo-login-view::before{background:radial-gradient(ellipse at center,rgba(3,8,15,.08),rgba(3,8,15,.27) 62%,rgba(3,8,15,.06));inset:0}
  body[data-page="vivo"] .vivo-mobile-logo{align-items:center;display:flex;height:auto;left:auto;margin:0 auto clamp(42px,7.5svh,90px);position:static;transform:none;width:clamp(94px,25vw,150px);z-index:2}
  body[data-page="vivo"] .vivo-mobile-logo img{filter:drop-shadow(0 2px 7px rgba(0,0,0,.7));height:auto;width:100%}
  body[data-page="vivo"] .vivo-login-card{background:linear-gradient(145deg,rgba(7,17,28,.96),rgba(9,19,30,.94));border-radius:26px;height:auto;max-height:none;min-height:0;padding:clamp(26px,5vw,52px) clamp(14px,3.5vw,34px) clamp(21px,4.5vw,45px);width:84vw}
  .vivo-lock{border-radius:18px;height:clamp(62px,10.5vw,104px);width:clamp(62px,10.5vw,104px)}
  .vivo-lock svg{height:55%;width:55%}
  body[data-page="vivo"] .vivo-login-card h1{font-size:clamp(26px,5.3vw,52px);margin:clamp(19px,3.4vh,35px) 0 10px}
  body[data-page="vivo"] .vivo-login-copy{font-size:clamp(14px,3vw,30px);line-height:1.38;max-width:92%}
  .vivo-otp-group{gap:clamp(4px,1.1vw,12px);margin-top:clamp(22px,4vh,43px);width:100%}
  .vivo-otp-digit{border-radius:14px;font-size:clamp(22px,4.3vw,42px);height:clamp(44px,10.5vw,105px)}
  body[data-page="vivo"] .vivo-login-card .portal-form-error{font-size:11px;margin-top:9px;min-height:15px}
  body[data-page="vivo"] .vivo-main-action{border-radius:18px;font-size:clamp(19px,4vw,38px);height:clamp(54px,11vw,105px);margin-top:clamp(11px,2.7vh,28px)}
  body[data-page="vivo"] .vivo-demo-note{font-size:10px;margin-top:10px}
}
/* vivo-mobile-card-glow-patch: reflejos puntuales y proporción móvil. */
body[data-page="vivo"] .vivo-login-card{
  isolation:isolate;
  overflow:hidden;
}
body[data-page="vivo"] .vivo-login-card::before{z-index:0}
body[data-page="vivo"] .vivo-login-card>*{z-index:1}
body[data-page="vivo"] .vivo-login-card::after{
  background:
    linear-gradient(90deg,transparent 0%,rgba(255,119,57,.05) 15%,rgba(255,150,91,.94) 50%,rgba(255,111,47,.09) 85%,transparent 100%) 51% 0/43% 2px no-repeat,
    linear-gradient(180deg,transparent 0%,rgba(255,116,47,.06) 22%,rgba(255,141,75,.92) 53%,rgba(255,107,40,.08) 82%,transparent 100%) 100% 48%/2px 37% no-repeat,
    linear-gradient(90deg,transparent 0%,rgba(255,114,48,.06) 20%,rgba(255,142,77,.72) 53%,rgba(255,110,42,.06) 82%,transparent 100%) 24% 100%/36% 2px no-repeat,
    linear-gradient(180deg,transparent 0%,rgba(255,114,48,.05) 20%,rgba(255,142,77,.76) 55%,rgba(255,110,42,.05) 86%,transparent 100%) 0 61%/2px 28% no-repeat;
  border-radius:inherit;
  content:"";
  filter:drop-shadow(0 0 5px rgba(255,102,36,.72));
  inset:0;
  pointer-events:none;
  position:absolute;
  z-index:2;
}
@media(max-width:700px){
  body[data-page="vivo"] .vivo-login-view{
    background-image:linear-gradient(180deg,rgba(4,7,14,.30) 0%,rgba(4,9,16,.43) 50%,rgba(4,7,14,.64) 100%),linear-gradient(90deg,rgba(4,8,15,.22),rgba(4,8,15,.04)),url('_assets/fondos/TransmisionCEL.webp');
    padding:clamp(72px,10svh,104px) 0 22px;
  }
  body[data-page="vivo"] .vivo-login-view::before{
    background:radial-gradient(ellipse at center,rgba(3,8,15,.04),rgba(3,8,15,.14) 62%,rgba(3,8,15,.03));
  }
  body[data-page="vivo"] .vivo-mobile-logo{
    margin-bottom:clamp(34px,5.4svh,58px);
  }
  body[data-page="vivo"] .vivo-login-card{
    background:linear-gradient(145deg,rgba(7,17,28,.93),rgba(9,19,30,.90));
    padding:22px clamp(14px,3.5vw,34px) 19px;
  }
  .vivo-lock{
    height:clamp(56px,10vw,76px);
    width:clamp(56px,10vw,76px);
  }
  body[data-page="vivo"] .vivo-login-card h1{
    margin:15px 0 8px;
  }
  body[data-page="vivo"] .vivo-login-copy{
    line-height:1.34;
  }
  .vivo-otp-group{
    margin-top:18px;
  }
  body[data-page="vivo"] .vivo-main-action{
    height:52px;
    margin-top:13px;
  }
  body[data-page="vivo"] .vivo-demo-note{
    display:none;
  }
}
/* mobile-fixed-viewport-patch: elimina el desplazamiento exterior bajo la barra fija. */
@media(max-width:700px){
  html:has(body[data-page="vivo"]),
  html:has(body[data-page="portal"]),
  body[data-page="vivo"],
  body[data-page="portal"]{
    height:100%;
    max-height:100%;
    overflow:hidden;
    overscroll-behavior:none;
  }
  body[data-page="vivo"],
  body[data-page="portal"]{
    padding-bottom:0;
  }
  body[data-page="vivo"] main,
  body[data-page="portal"] main{
    height:100svh;
    min-height:0;
    overflow:hidden;
  }
  body[data-page="vivo"] .vivo-page,
  body[data-page="portal"] .portal-page{
    height:100%;
    min-height:0;
    overflow:hidden;
  }
  body[data-page="vivo"] .vivo-login-view{
    height:100%;
    min-height:0;
  }
  body[data-page="portal"] .portal-login-view{
    height:100%;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior-y:contain;
  }
  body[data-page="portal"] .portal-dashboard{
    box-sizing:border-box;
    height:100%;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior-y:contain;
  }
}


/* portal-mobile-login-flow */
@media(min-width:701px){
  .portal-identifier-label-row{display:block}
  .portal-identifier-mode,
  .portal-country-prefix,
  .portal-identifier-next,
  .portal-identifier-help{display:none!important}
  .portal-identifier-input-row{display:block}
}

@media(max-width:700px){
  body[data-page="portal"] .portal-login-view{
    overflow:hidden;
    overscroll-behavior:none;
  }
  body[data-page="portal"] .portal-login-view.is-keyboard-active{
    align-items:start;
    padding:12px 18px 0;
  }
  body[data-page="portal"] .portal-login-view.is-keyboard-active .portal-mobile-logo{
    opacity:0;
    pointer-events:none;
  }
  body[data-page="portal"] .portal-login-card{
    max-height:calc(var(--portal-visual-height, 100svh) - 96px);
    overflow-y:auto;
    overscroll-behavior-y:contain;
    scroll-padding:22px 0 42px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  body[data-page="portal"] .portal-login-card::-webkit-scrollbar{display:none}
  body[data-page="portal"] .portal-login-card.is-keyboard-active{
    max-height:calc(var(--portal-visual-height, 100svh) - 28px);
  }
  .portal-identifier-control{display:grid;gap:7px}
  .portal-identifier-label-row{align-items:center;display:flex;gap:8px;justify-content:space-between}
  .portal-identifier-label-row label{margin:0!important}
  .portal-identifier-mode{background:transparent;border:0;color:#ffbf85;cursor:pointer;font:800 10px Inter,system-ui,sans-serif;padding:3px 0;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
  .portal-identifier-input-row{align-items:stretch;display:grid;gap:7px;grid-template-columns:auto minmax(0,1fr) 42px}
  .portal-country-prefix{appearance:auto;background:#101b2d;border:1px solid #5d71904d;border-radius:12px;color:#e9f2ff;font:800 11px Inter,system-ui,sans-serif;max-width:91px;min-width:78px;outline:none;padding:0 5px}
  .portal-country-prefix:focus{border-color:#ff9b5b;box-shadow:0 0 0 3px #ff74321f}
  .portal-identifier-input-row input{margin:0;min-width:0}
  .portal-identifier-next{align-items:center;background:linear-gradient(145deg,#119960,#21d77f);border:1px solid #8df0ba;border-radius:12px;box-shadow:0 0 0 2px #23cf7720,0 6px 18px #14c47d3d;color:#fff;cursor:pointer;display:flex;font:900 21px/1 Inter,system-ui,sans-serif;justify-content:center;opacity:0;pointer-events:none;transform:scale(.88);transition:opacity .18s,transform .18s,box-shadow .18s;visibility:hidden}
  .portal-identifier-next.is-ready{opacity:1;pointer-events:auto;transform:scale(1);visibility:visible}
  .portal-identifier-next.is-ready:active{transform:scale(.94)}
  .portal-identifier-help{color:#aebcd0;font-size:10px;line-height:1.38;margin:0!important}
  .portal-identifier-control[data-mode="user"] .portal-country-prefix{display:none}
  .portal-identifier-control[data-mode="user"] .portal-identifier-input-row{grid-template-columns:minmax(0,1fr) 42px}
}

/* El asistente flotante nunca debe cubrir acciones de las cuentas. */
body[data-page="portal"]{--portal-support-clearance:calc(240px + env(safe-area-inset-bottom, 0px))}
body[data-page="portal"] .portal-accounts{padding-bottom:var(--portal-support-clearance)}
body[data-page="portal"] .portal-dashboard{scroll-padding-bottom:var(--portal-support-clearance)}
@media(max-width:700px){
  body[data-page="portal"]{--portal-support-clearance:calc(258px + env(safe-area-inset-bottom, 0px))}
}

/* Resultado seguro de Solicitar código en Portal Clientes. */
.portal-code-panel{max-width:610px}
.portal-code-wait{align-items:center;background:#111d32;border:1px solid #5b8cc455;border-radius:16px;display:flex;gap:12px;margin:18px 0;padding:15px}.portal-code-wait strong{color:#cce4ff;font-size:13px}.portal-code-spinner{animation:portal-code-spin .85s linear infinite;border:3px solid #3c5c82;border-radius:50%;border-top-color:#8deaff;display:inline-block;height:21px;width:21px}@keyframes portal-code-spin{to{transform:rotate(360deg)}}.portal-code-result{align-items:center;background:linear-gradient(145deg,#12263b,#0d1829);border:1px solid #4d9ed16b;border-radius:18px;display:flex;flex-direction:column;gap:12px;margin:19px 0;padding:22px;text-align:center}.portal-code-value{color:#f6fbff;font:900 clamp(28px,6vw,42px)/1.1 Inter,system-ui,sans-serif;letter-spacing:.19em;padding-left:.19em}.portal-code-result .portal-main-action{margin:0;min-width:205px}.portal-code-separator,.portal-code-link-label{color:#aebfd7;font-size:12px;font-weight:700}.portal-code-link-label{line-height:1.45}.portal-code-message{background:#0a1422a8;border:1px solid #526f914d;border-radius:12px;display:grid;gap:7px;margin:0;max-width:100%;padding:11px 13px;text-align:left;width:100%}.portal-code-message-row{align-items:baseline;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr)}.portal-code-message dt{color:#9dafc7;font-size:10px;font-weight:800;margin:0;text-transform:uppercase}.portal-code-message dd{color:#e5eef9;font-size:12px;font-weight:700;margin:0;overflow-wrap:anywhere}@media(max-width:700px){.portal-code-value{font-size:31px}.portal-code-result{padding:18px}.portal-code-result .portal-main-action{min-width:100%}.portal-code-message-row{grid-template-columns:1fr}.portal-code-message{gap:9px}}
