/* The approved September visual language. Loaded only in /beta/. */
body.lp-redesign {
  --bg:#f8f8f6;--bg2:#f0f0ed;--card:#fff;--card2:#fafaf9;
  --border:#e4e4e3;--border-s:#c8c8cf;--sep:#eeeeed;
  --text:#25252b;--text2:#50505a;--text3:#686872;--text4:var(--text3);
  --accent:#593568;--accent2:#492759;--accent-s:#e9dfef;--on-accent:#fff;
  --green:#286344;--green-s:#eaf3ed;--orange:#855612;--orange-s:#faf1df;
  --red:#a13d36;--red-s:#fbeeea;--blue:#365f83;--blue-s:#edf3f9;
  --font-display:'Archivo',system-ui,sans-serif;--font-sans:'Archivo',system-ui,sans-serif;
  --r1:7px;--r2:9px;--r3:12px;--shadow:0 2px 10px #25252b06;
  --t-display:30px;--ls-display:-.035em;--nav-h:68px;--nav-w:224px;
  background:var(--bg);font-family:var(--font-sans);color:var(--text);line-height:1.5;
}
body.lp-redesign.lp-dark {
  color-scheme:dark;--bg:#19191c;--bg2:#2b2b31;--card:#212125;--card2:#25252a;
  --border:#35353b;--border-s:#666570;--sep:#35353b;
  --text:#eeedf0;--text2:#c5c3cc;--text3:#adabb4;--text4:var(--text3);
  --accent:#c4a3da;--accent2:#dbc0ee;--accent-s:#3b2c46;--on-accent:#211628;
  --green:#a2d9b6;--green-s:#22382a;--orange:#edc578;--orange-s:#3e3320;
  --red:#edaca0;--red-s:#432b29;--blue:#a5c9ec;--blue-s:#26374a;--shadow:none;
}
body.lp-redesign ::-webkit-scrollbar{width:6px;height:6px}
body.lp-redesign ::-webkit-scrollbar-thumb{background:var(--border-s);border-radius:6px}
body.lp-redesign :is(input,select,textarea,button){font-family:var(--font-sans)}
body.lp-redesign :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
body.lp-redesign :is(h1,h2,h3){font-family:var(--font-display);text-wrap:balance}
body.lp-redesign .lp-hdr h1,body.lp-redesign .lp-hdr .lp-hdr-h{font-weight:600}
body.lp-redesign .lp-btn{min-height:40px;height:auto;padding:9px 14px;font-size:13px;border-radius:7px;white-space:normal;line-height:1.35;justify-content:center}
body.lp-redesign .lp-card{border:1px solid var(--border);border-radius:12px;box-shadow:none}
body.lp-redesign .lp-field{background:var(--card);border-radius:7px;min-height:42px}
body.lp-redesign .lp-nav{height:68px;background:var(--card);border-bottom:1px solid var(--border);padding:0 38px;display:flex;align-items:center;gap:16px;box-shadow:none}
body.lp-redesign .lp-nav-left{display:none}
.beta-context{display:flex;gap:12px;align-items:center;font-size:12px;color:var(--text3)}
.beta-context strong{font-weight:500;color:var(--text)}
.beta-context svg{width:14px;height:14px}
.beta-top-actions{margin-left:auto;display:flex;align-items:center;gap:16px}
.beta-top-actions button{border:0;background:none;color:var(--text3);min-width:40px;min-height:40px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:7px}
.beta-top-actions button:hover{background:var(--bg2);color:var(--text)}
.beta-top-actions .beta-search{font-size:12px}
.beta-top-actions kbd{display:none;font:12px var(--font-sans);border:1px solid var(--border);border-radius:4px;padding:1px 5px;margin-left:26px}
.beta-wordmark{font-weight:780;letter-spacing:-1.25px;font-size:25px;line-height:1.1;display:flex;align-items:center;gap:10px;color:var(--text)}
.beta-brand-symbol{display:grid;place-items:center;border:1px solid var(--accent);color:var(--accent);width:30px;height:30px;border-radius:8px;font-size:19px;letter-spacing:-2px;padding-right:2px;flex:none}
.beta-brand-sub{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin-top:9px;margin-left:1px}
.beta-workspace{display:flex;gap:10px;align-items:center;padding:10px 11px;border:1px solid var(--border);background:var(--card);border-radius:8px;margin:27px 0 21px;font-size:12px;flex-shrink:0}
.beta-workspace svg{flex:none}.beta-workspace strong,.beta-workspace small{display:block}.beta-workspace strong{font-size:13px}.beta-workspace small{font-size:12px;color:var(--text3)}
body.lp-redesign .lp-lat-in{padding:30px 16px 16px;background:#f0f0ed;border-right:1px solid var(--border)}
body.lp-redesign.lp-dark .lp-lat-in{background:#161619}
body.lp-redesign .lp-lat-logo{padding:0}
body.lp-redesign .lp-lat-it{font-size:13px;font-weight:500;padding:8px 12px;min-height:40px;border-radius:7px;color:var(--text3);gap:11px;margin:3px 0;flex-shrink:0;text-decoration:none}
body.lp-redesign .lp-lat-it svg{flex:none}
body.lp-redesign .lp-lat-it.act{background:var(--card);color:var(--accent2);box-shadow:0 1px 3px #00000005}
body.lp-redesign .lp-lat-rot{font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--text3);padding:0;margin:24px 12px 8px}
body.lp-redesign .lp-lat-grupo{margin:0}
body.lp-redesign .lp-lat-sep{margin:10px 0 20px;background:var(--border)}
body.lp-redesign .lp-lat-pie{padding-top:25px}
body.lp-redesign .lp-lat-ava{background:var(--accent-s);color:var(--accent);border-radius:50%;width:32px;height:32px}
body.lp-redesign .lp-lat-yo{padding:14px 8px;gap:10px}
body.lp-redesign .lp-lat-yo-n{font-size:12px}body.lp-redesign .lp-lat-yo-s{font-size:12px;overflow-wrap:anywhere}
body.lp-redesign .lp-lat-pie>.lp-lat-it{font-size:12px}
body.lp-redesign .lp-lat-pie>.lp-lat-it svg:last-child{width:14px;height:14px;margin-left:auto}
body.lp-redesign .lp-segzona{background:var(--bg);border-bottom:0;box-shadow:none}
body.lp-redesign .lp-seg{border:0;border-radius:0;background:transparent;border-bottom:1px solid var(--border);padding:0;gap:20px;overflow-x:auto}
body.lp-redesign .lp-seg>button{border-radius:0;padding:12px 0;min-height:44px;box-shadow:none;font-size:13px;background:transparent;border-bottom:2px solid transparent}
body.lp-redesign .lp-seg>button.act{color:var(--accent2);border-bottom-color:var(--accent);background:transparent;box-shadow:none}
body.lp-redesign .lp-content{max-width:1250px;padding:30px 36px 70px}
body.lp-redesign .pn-shell{max-width:1400px}
body.lp-redesign .pn-head{padding:0;margin-bottom:28px;align-items:flex-start}
body.lp-redesign .pn-greet{font:600 30px/1.2 var(--font-sans);letter-spacing:-1px;color:var(--text)}
body.lp-redesign .pn-date{font-size:13px;color:var(--text3);margin-top:8px}
body.lp-redesign .pn-dos{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:26px;align-items:start}
body.lp-redesign .pn-section{margin-bottom:24px;min-width:0}
body.lp-redesign .pn-sec-head{margin-bottom:14px}
body.lp-redesign .pn-sec-label{font:600 16px/1.4 var(--font-sans);color:var(--text);text-transform:none;letter-spacing:-.2px}
body.lp-redesign .pn-list{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}
body.lp-redesign .pn-empty{padding:28px 22px;color:var(--text3);font-size:13px}
body.lp-redesign .pn-acc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body.lp-redesign .pn-acc-b{display:flex;align-items:center;justify-content:flex-start;gap:10px;text-align:left;min-height:68px;padding:14px;border:1px solid var(--border);border-radius:9px;background:var(--card);font-size:12px;font-weight:500;min-width:0}
body.lp-redesign .pn-acc-b svg{color:var(--accent);flex-shrink:0}
body.lp-redesign .pn-acc-b:hover{background:var(--accent-s);border-color:var(--accent)}
body.lp-redesign .beta-quick-section .pn-acc{grid-template-columns:repeat(3,minmax(0,1fr))}
body.lp-redesign .beta-quick-section .pn-sec-head{display:none}
body.lp-redesign .pn-sec2 .pn-section:first-child{margin-top:0}
@media(max-width:700px){body.lp-redesign .beta-quick-section .pn-acc{grid-template-columns:repeat(2,minmax(0,1fr))}}
body.lp-redesign .pn-note{border:1px solid var(--border);border-left:3px solid var(--orange);border-radius:9px;box-shadow:none;background:var(--card)}
body.lp-redesign .pn-tile{box-shadow:none;background:var(--card);border:1px solid var(--border);border-radius:12px}
.beta-skip{position:fixed;left:20px;top:-100px;padding:12px 18px;background:var(--card);z-index:10000;border:2px solid var(--accent)}
.beta-skip:focus{top:12px}
.beta-menu{margin:auto;width:min(420px,calc(100vw - 28px));max-height:85dvh;padding:22px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--text);overscroll-behavior:contain}
.beta-menu::backdrop{background:#14121b80}.beta-menu h2{font-size:20px;margin-bottom:20px}.beta-menu nav{display:grid;gap:5px;margin-bottom:20px}
@media(min-width:901px){body.lp-redesign{padding-left:224px}body.lp-redesign .lp-lat{width:224px;display:block}body.lp-redesign .lp-nav{left:224px;right:0}body.lp-redesign .lp-abajo{display:none}}
@media(max-width:1100px){body.lp-redesign .pn-dos{grid-template-columns:1fr}.beta-top-actions kbd{display:none}}
@media(max-width:900px){body.lp-redesign{padding-left:0}body.lp-redesign .lp-lat{display:none}body.lp-redesign .lp-nav{left:0;padding:0 20px;height:60px;--nav-h:60px}body.lp-redesign{--nav-h:60px}body.lp-redesign .lp-abajo{display:flex;background:var(--card);border-top:1px solid var(--border)}body.lp-redesign .lp-ab{flex:1;min-height:58px;font-size:13px;font-weight:500}body.lp-redesign .lp-content{padding:26px 24px 96px}.beta-top-actions .beta-search{display:none}.beta-context>span:first-child,.beta-context>svg{display:none}}
@media(max-width:600px){body.lp-redesign .lp-content{padding:24px 16px 100px}body.lp-redesign .pn-dos{display:block}body.lp-redesign .pn-greet{font-size:27px}body.lp-redesign :is(input,select,textarea){font-size:16px!important;min-height:44px}body.lp-redesign :is(input[type=checkbox],input[type=radio]){min-height:24px}body.lp-redesign .lp-btn{min-height:44px}body.lp-redesign .lp-nav{padding-inline:16px}.beta-top-actions{gap:3px}body.lp-redesign .lp-seg{gap:18px}body.lp-redesign .lp-hdr{padding-top:18px}body.lp-redesign .pn-acc-b{padding:12px;min-height:68px}body.lp-redesign .pn-list{border-radius:10px}}
@media(prefers-reduced-motion:reduce){body.lp-redesign *,body.lp-redesign *::before,body.lp-redesign *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body.lp-redesign{padding:0;background:white}body.lp-redesign .lp-nav,body.lp-redesign .lp-lat,body.lp-redesign .lp-abajo,.beta-skip{display:none!important}}

/* Official logo; September accent B is the default in both themes. */
.beta-logo{display:block;width:150px;height:90px;object-fit:contain}.beta-logo-dark{display:none}body.lp-dark .beta-logo-light{display:none}body.lp-dark .beta-logo-dark{display:block}
.beta-workspace{min-height:58px;margin-top:18px}.beta-workspace strong{font-size:12px}
body.lp-redesign:not([data-user-role="admin"]) [data-owner-only]{display:none!important}

/* Crop only the SVG canvas whitespace; the official artwork stays intact. */
body.lp-redesign .lp-lat-logo a,.beta-mobile-brand{position:relative;display:block;width:190px;height:60px;overflow:hidden}
body.lp-redesign .beta-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:230px;height:230px;max-width:none;max-height:none}
.beta-mobile-brand{margin:0 auto 12px}.beta-menu h2{font-size:17px}.beta-menu{max-height:calc(100dvh - 32px);overflow-y:auto}

body.lp-redesign .lp-lat-it:hover{background:var(--card)}

/* Mi cuenta: datos de la sesión, tema, contraseña y cuentas del equipo (paquete Clientes 0929, D). */
.lp-ov-card--account{max-width:420px}
.lp-ov-account-body{overflow-y:auto}
.lp-ov-account-id{display:grid;gap:10px;margin:0 0 14px}
.lp-ov-account-id dt{font-size:12px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.lp-ov-account-id dd{margin:0;font-size:14px;color:var(--text);overflow-wrap:anywhere}
.lp-ov-account-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;margin-bottom:16px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:14px;color:var(--text)}
body.lp-redesign[data-module] .lp-ov-switch{min-height:0}
.lp-ov-switch{position:relative;flex:none;width:44px;height:26px;padding:0;border-radius:13px;border:1px solid var(--border);background:var(--bg2);cursor:pointer}
.lp-ov-switch i{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--text3);transition:transform .15s}
.lp-ov-switch[aria-checked="true"]{background:var(--accent-s);border-color:var(--accent)}
.lp-ov-switch[aria-checked="true"] i{transform:translateX(18px);background:var(--accent)}
.lp-ov-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lp-ov-account-h{font-size:13px;font-weight:700;margin:0 0 4px;color:var(--text)}
.lp-ov-account-link{display:block;margin-top:16px;padding-top:14px;border-top:1px solid var(--border);color:var(--accent);font-size:14px;font-weight:600;text-decoration:none}
.lp-ov-account-link:hover{text-decoration:underline}
/* Cerrar sesión: al final de Mi cuenta, separado de "Actualizar" y de 44 px (táctil). Sin media queries: se ve en celular, escritorio y app instalada. */
.lp-ov-account-exit{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.lp-ov-account-logout{width:100%;height:auto;min-height:44px}
@media(prefers-reduced-motion:reduce){.lp-ov-switch i{transition:none}}

/* Sesión vencida (Robustez R1, #4): el cartel global de shared/nav.js (window.lpSesionVencida). Es un popover: queda encima de los diálogos abiertos. */
.lp-sesion-venc{display:none;position:fixed;inset:12px 12px auto 12px;margin:0 auto;max-width:520px;padding:14px 16px;border:1px solid var(--red);border-radius:10px;background:var(--card);color:var(--text);box-shadow:0 10px 30px #0003}
.lp-sesion-venc:popover-open,.lp-sesion-venc.lp-sesion-venc--abierto{display:block}
.lp-sesion-venc p{margin:0 0 12px;font-size:14px;line-height:1.4}
.lp-sesion-venc-acc{display:flex;gap:8px;flex-wrap:wrap}
.lp-sesion-venc-acc .lp-btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}

/* Carga fallida y diálogo de confirmación compartidos (Robustez R1: src/shared/CargaFallida.jsx y ConfirmDialog.jsx). */
.lp-carga-fallida{max-width:440px;margin:48px auto;padding:24px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--text);text-align:center}
.lp-carga-fallida h2{font-size:18px;margin:0 0 10px}
.lp-carga-fallida p{margin:0 0 12px;color:var(--text2);font-size:14px;line-height:1.5}
.lp-carga-fallida .lp-carga-fallida-detalle{color:var(--text3);font-size:12px}
.lp-carga-fallida .lp-btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:0 20px}
dialog.lp-confirm{margin:auto;padding:22px;width:min(440px,calc(100vw - 32px));border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--text)}
dialog.lp-confirm::backdrop{background:#14121b73}
.lp-confirm h2{font-size:17px;margin:0 0 12px}
.lp-confirm-cuerpo{font-size:14px;line-height:1.5;color:var(--text2);margin-bottom:20px;overflow-wrap:anywhere}
.lp-confirm-acc{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.lp-confirm-acc .lp-btn{min-height:44px}
.lp-confirm-peligro{background:var(--red);border-color:var(--red);color:#fff}

/* Bugs 1002: contador de la campana (#19), aviso del puente del overlay (#21) y "×" tocable del buscador/alertas/Mi cuenta (#22). */
.beta-notifications{position:relative}
.lp-puente-aviso{position:fixed;left:50%;bottom:76px;transform:translateX(-50%);z-index:1100;max-width:calc(100vw - 32px);padding:10px 16px;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px rgba(0,0,0,.18);font-size:13px;font-weight:600;text-align:center}
@media(max-width:900px){body.lp-redesign .lp-ov-close{width:44px;height:44px}}

/* Pulido 1003 (REVISION-UX-1001, 9): el "Ctrl K" sólo con mouse. */
@media (hover:hover) and (pointer:fine){.beta-top-actions kbd{display:inline}}
/* Pulido 1003: con la barra fija de abajo del celular, lo que se trae a la vista (foco del teclado, scroll automático) queda por
 * encima de ella y no escondido detrás (WCAG 2.4.11). La barra mide 58 px más el margen seguro del teléfono. */
@media(max-width:900px){html{scroll-padding-bottom:calc(72px + env(safe-area-inset-bottom))}}

/* Deuda 1004 (docs/REVISION-UX-1001.md, 8). Bordes de campos con 3:1 contra el fondo que los rodea (WCAG 1.4.11): el --border (#e4e4e3, 1,3:1) y el
   --border-s (#c8c8cf, 1,7:1; en oscuro 2,8:1) no alcanzan. Un solo color para campos de texto y selects, en claro y en oscuro; medido sobre las pantallas
   reales por tools/qa-accesibilidad-1004.cjs y sobre los tokens por tools/test-deuda-1004.js. */
body.lp-redesign{--campo-borde:#85858f}
body.lp-redesign.lp-dark{--campo-borde:#7d7d88}
html body.lp-redesign :is(input,select,textarea):not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=button],[type=submit],[type=hidden]){border-color:var(--campo-borde)!important}
/* Toques de 44 px en el celular: los botones de cada módulo, la "×" de cierre y los − y + de las cantidades (antes 40 px, y 36 de ancho los − y +). */
@media(max-width:600px){
  body.lp-redesign :is(.pt-workspace,.su-workspace,.co-workspace,.of-workspace,.price-pilot) :is(.pt-button,.su-button,.co-button,.of-button,.pp-button){min-height:44px}
  body.lp-redesign :is(.pt-workspace,.su-workspace,.co-workspace,.of-workspace) :is(.pt-close,.su-close,.co-close,.of-close){min-width:44px;min-height:44px}
  body.lp-redesign .su-stepper .su-button{min-width:44px}
}
