@font-face{font-family:Geist;src:url('/assets/geist.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root,:root[data-theme="light"]{--fondo:#f4f7fb;--tarjeta:#fff;--tarjeta2:#f5f8fc;--tinta:#102842;--tenue:#50647b;--sutil:#5e7187;--linea:#dce5ee;--acento:#0062c4;--acento-tinta:#fff;--acento-suave:#eaf3ff;--radio:16px;--fs-item:16px;--fs-label:12px;--fs-secundario:14px}
body{font-family:Geist,system-ui,sans-serif;padding:0;background:var(--fondo)}
header{padding:20px 20px 14px;gap:14px;background:var(--tarjeta);border-bottom:1px solid var(--linea)}
.marca{font-size:27px;padding:0;background:none;color:var(--acento);letter-spacing:-.06em;border-radius:0}.marca::after{content:'.';color:#b77d00}
header h1{font-size:15px;font-weight:550;color:var(--tenue)}
.pantalla{padding:20px}.workspace-intro{padding:8px 0 18px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:.1em;color:var(--acento)}
.workspace-intro h2,.settings-intro h2{font-size:25px;letter-spacing:-.04em;font-weight:620;line-height:1.15;margin:10px 0}
.workspace-intro p,.settings-intro p{font-size:14px;line-height:1.65;color:var(--tenue);max-width:42ch}
.total-caja{text-align:left;background:#102f50;color:#fff;border-radius:16px;padding:24px;margin:3px 0 20px;position:relative}
.total-caja .k{color:#c2d6ec;font-size:11px;letter-spacing:.08em}.total-caja .v{font-size:48px;font-weight:560;letter-spacing:-.055em;margin:6px 0}.total-caja .s{color:#c2d6ec;font-size:13px}
.fila{border:1px solid var(--linea);padding:18px;box-shadow:none;gap:15px;border-radius:14px}.fila .num{background:var(--acento-suave);color:var(--acento);border:0;font-weight:600;width:34px;height:34px}.fila .cuerpo{display:grid;gap:4px}.fila .k{font-size:11px;letter-spacing:.02em;font-weight:500;text-transform:none;color:var(--tenue)}.fila .v{font-size:16px;font-weight:600}.fila .v.vacia{color:var(--tinta)}
.btn{border-radius:10px;min-height:50px;font-size:15px;font-weight:600}.btn.principal{box-shadow:none}.btn:disabled{opacity:.5}.acciones{padding:15px 20px;background:var(--tarjeta);border-top:1px solid var(--linea)}
nav{background:var(--tarjeta);padding-top:8px}nav button{font-size:11px;min-height:54px;transition:background .16s ease,color .16s ease}nav button[aria-current=page]{color:var(--acento)}
.sheet{border:1px solid var(--linea);box-shadow:0 20px 60px #10284220}.sheet-cab{padding:22px 24px 16px}.sheet-cab h2{font-size:23px;font-weight:600;letter-spacing:-.025em}.sheet-cuerpo{padding:4px 24px 24px}.sheet-cuerpo label{font-size:13px;gap:9px}.sheet-cerrar{min-width:44px;min-height:44px;border-radius:50%;background:var(--tarjeta2)}
input,select,textarea{border-radius:9px;border-width:1px;min-height:50px}input:focus,textarea:focus{border-color:var(--acento)}
.settings-intro{padding:8px 0 24px}.settings-intro h2{font-size:28px}.settings-groups{display:grid;gap:20px}.settings-group .menu{border:1px solid var(--linea);border-radius:14px;overflow:hidden;background:var(--tarjeta);gap:0}.settings-group .menu-item{border:0;border-radius:0;background:transparent;border-bottom:1px solid var(--linea);padding:18px;min-height:76px}.settings-group .menu-item:last-child{border-bottom:0}.settings-group .menu-item .ico{color:var(--acento)}.menu-tit{font-size:13px;letter-spacing:0;text-transform:none;margin:22px 0 12px;color:var(--tinta);font-weight:650}.menu-item .s{font-size:13px;color:var(--tenue);line-height:1.5}
#tarjetaPlan{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--linea);border-radius:14px;padding:18px 8px;background:var(--tarjeta)}#tarjetaPlan .dato{border:0;background:transparent;padding:0 10px;border-radius:0}#tarjetaPlan .dato+.dato{border-left:1px solid var(--linea)}#tarjetaPlan .k{font-size:10px;font-weight:500}#tarjetaPlan .v{font-size:14px;font-weight:600;margin-top:6px}
.acceso-publico{display:flex;min-height:100dvh;align-items:center;justify-content:center;padding:68px 20px 20px;background:#f4f7fb}
.acceso-publico #raiz,.acceso-publico #velo{display:none!important}.acceso-publico .sheet.abierto{position:relative;left:auto;top:auto;bottom:auto;transform:none;opacity:1;width:100%;max-width:420px;max-height:calc(100dvh - 88px);border-radius:18px;overflow:auto;background:#fff;color:#102842;z-index:2;margin:0}.acceso-publico .sheet-cab{padding:25px 26px 6px}.acceso-publico .sheet-cab h2{font-size:27px}.acceso-publico .sheet-cuerpo{padding:0 26px 26px;gap:20px}.access-intro{font-size:14px;color:#50647b;margin-bottom:3px;line-height:1.6}.acceso-publico #bCrearCuenta{border-top:1px solid #dce5ee;padding-top:18px;border-radius:0}.acceso-publico #bPerdiAcceso{font-size:13px;min-height:44px}.acceso-publico #pieVersionEntrar{font-size:11px}.acceso-publico .err:empty{display:none}
.access-story{position:absolute;top:20px;left:0;right:0;text-align:center}.brand-logo{font-size:30px;letter-spacing:-.05em;font-weight:700;color:var(--acento);text-decoration:none}.brand-logo span{font-size:14px;font-weight:500}.access-message,.access-story img,.story-footer{display:none}
@media(min-width:900px){
 body{padding:0}#raiz{width:min(100%,1240px);grid-template-columns:214px minmax(0,1fr);border-radius:0}header{padding:20px 30px}.pantalla{padding:22px 30px 30px}nav{padding:26px 16px;gap:8px;background:#fff}nav::before{content:'TU ESPACIO';font-size:10px;letter-spacing:.14em;color:#5e7187;padding:0 14px 22px}nav button{font-size:14px;padding:14px;min-height:52px}nav button[aria-current=page]{background:#eaf3ff;color:#0062c4}
 #pFactura{display:grid;grid-template-columns:1.15fr 1fr;gap:0 32px;align-content:start}#pFactura .workspace-intro{grid-column:1/-1;padding:10px 0 28px}.workspace-intro h2{font-size:36px}.workspace-intro h2 br{display:none}#pFactura .total-caja{grid-column:2;grid-row:2;align-self:start;min-height:222px;margin:0}#pFactura>.filas{grid-column:1;grid-row:2}#pFactura>.aviso-cola{grid-column:1/-1}#pFactura>.pista{grid-column:1/-1}.total-caja .v{font-size:58px}#accFactura{justify-content:flex-end}.acciones .btn{min-width:210px}
 .settings-groups{grid-template-columns:1fr 1fr;align-items:start;gap:24px}.settings-intro h2{font-size:34px}#tarjetaPlan .v{font-size:19px}#tarjetaPlan{padding:22px 12px}#tarjetaPlan .dato{padding:0 18px}
 .acceso-publico{flex-direction:row;padding:90px 6vw 40px;gap:8vw;background:#fff;justify-content:flex-end}.access-story{position:fixed;top:24px;left:24px;bottom:24px;right:auto;width:46%;border-radius:20px;background:#102f50;text-align:left;padding:40px;overflow:hidden;display:flex;flex-direction:column}.brand-logo{color:#fff;position:relative;z-index:2}.access-message{display:block;position:relative;z-index:2;margin-top:44px}.access-message .eyebrow{color:#ffda45}.access-message h2{font-size:clamp(35px,3.6vw,56px);letter-spacing:-.045em;line-height:1.06;font-weight:570;color:#fff;margin:18px 0}.access-message>p:last-child{font-size:16px;color:#c2d6ec;line-height:1.6}.access-story img{display:block;width:65%;height:37%;object-fit:cover;object-position:50% 35%;align-self:flex-end;border-radius:12px;margin-top:25px}.story-footer{display:block;color:#c2d6ec;font-size:11px;margin-top:auto;padding-top:15px}.acceso-publico .sheet.abierto{border:none;box-shadow:none;max-width:430px;max-height:calc(100dvh - 48px)}.acceso-publico .sheet-cab h2{font-size:32px}.acceso-publico .sheet-cab,.acceso-publico .sheet-cuerpo{padding-left:0;padding-right:0}
}
@media(max-width:370px){.workspace-intro h2{font-size:25px}.pantalla{padding:16px}#tarjetaPlan .v{font-size:12px}}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--fondo:#0d1828;--tarjeta:#142339;--tarjeta2:#192b43;--tinta:#ecf3fc;--tenue:#b2c2d5;--sutil:#a1b3ca;--linea:#304159;--acento:#8cc4ff;--acento-tinta:#102842;--acento-suave:#203c60}body:not(.acceso-publico) nav{background:var(--tarjeta)}}
:root[data-theme="dark"]{--fondo:#0d1828;--tarjeta:#142339;--tarjeta2:#192b43;--tinta:#ecf3fc;--tenue:#b2c2d5;--sutil:#a1b3ca;--linea:#304159;--acento:#8cc4ff;--acento-tinta:#102842;--acento-suave:#203c60}:root[data-theme="dark"] nav{background:var(--tarjeta)}
@media(prefers-reduced-motion:no-preference){.workspace-intro,.settings-intro{animation:ui-enter .3s ease-out}.menu-item:active,.btn:active{transform:translateY(1px)}@keyframes ui-enter{from{opacity:.5;transform:translateY(6px)}to{opacity:1;transform:none}}}
/* Prioridad de Alfonso: mínimo scroll móvil sin reducir las áreas táctiles. */
@media(max-width:899px){
 header{padding:10px 16px;gap:12px}
 .pantalla{padding:12px 16px}
 .workspace-intro,.settings-intro{display:none}
 .total-caja{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;align-items:center;padding:14px 16px;margin:0 0 12px;border-radius:12px}
 .total-caja .k{grid-column:1;grid-row:1;font-size:10px}
 .total-caja .v{grid-column:2;grid-row:1/3;font-size:36px;margin:0;line-height:1.15}
 .total-caja .s{grid-column:1;grid-row:2;font-size:12px;line-height:1.4}
 #pFactura>.filas{gap:8px}
 #pFactura .fila{padding:10px 12px;min-height:64px;gap:12px}
 #pFactura .fila .num{width:30px;height:30px;flex:none}
 #pFactura .fila .cuerpo{gap:2px}
 #pFactura .fila .k{font-size:12px}
 #pFactura .fila .v{font-size:16px}
 #lineasMini:empty{display:none}
 .acciones{padding:8px 16px;gap:2px}
 .acciones .btn{min-height:48px;padding:10px 14px;font-size:15px}
 .acciones .btn.fantasma{min-height:44px;padding:8px 12px;font-size:13px}
 nav{padding-top:3px}
 nav button{min-height:48px;padding-top:6px;padding-bottom:6px}
 #avisoEmisor{margin-top:10px;padding:10px 12px;min-height:44px}
 .settings-groups{gap:8px}
 .settings-group .menu-item{padding:12px 14px;min-height:64px}
 .menu-tit{margin:16px 0 8px}
 #tarjetaPlan{padding:12px 4px}
 .acceso-publico{padding-top:68px;padding-bottom:16px}
 .acceso-publico .sheet.abierto{max-height:calc(100dvh - 84px)}
 .acceso-publico .sheet-cab{padding:18px 22px 6px}
 .acceso-publico .sheet-cuerpo{padding:0 22px 18px;gap:12px}
 .acceso-publico .access-intro{margin-bottom:0}
 .acceso-publico #bCrearCuenta{padding-top:10px}
}
@media(max-width:899px) and (max-height:650px){
 .total-caja{padding:10px 12px;margin-bottom:8px}
 .total-caja .v{font-size:32px}
 header{padding-top:7px;padding-bottom:7px}
 .pantalla{padding-top:8px;padding-bottom:8px}
}

.access-story{display:none}.acceso-publico .access-story{display:block}.acceso-publico .sheet.abierto{background:var(--tarjeta);color:var(--tinta)}.acceso-publico{background:var(--fondo)}.acceso-publico .access-intro{color:var(--tenue)}
@media(min-width:900px){.acceso-publico .access-story{display:flex}}

/* La guía y el área segura conservan su espacio al compactar los formularios. */
.sheet-cuerpo{padding-bottom:calc(24px + env(safe-area-inset-bottom) + var(--hueco-guia,0px))}
.acceso-publico .sheet-cuerpo{padding-bottom:calc(26px + env(safe-area-inset-bottom) + var(--hueco-guia,0px))}
#avisoGuia,#avisoEmisor{min-height:44px}
body.asistido .acciones .btn{min-height:60px;font-size:19px}
body.asistido .fila .v{font-size:var(--fs-item)}
@media(max-width:899px){
 nav button{padding-bottom:calc(6px + env(safe-area-inset-bottom))}
 .acceso-publico .sheet-cab h2{font-size:clamp(20px,6vw,27px);white-space:normal;text-overflow:clip}
 .acceso-publico .sheet-cuerpo{padding-bottom:calc(18px + env(safe-area-inset-bottom) + var(--hueco-guia,0px))}
}
/* Registro: el progreso se lee completo y los campos conservan margen en PC. */
#shCrear .sheet-cab{padding:18px 22px 8px;align-items:flex-start}
#shCrear .sheet-cab h2{min-width:0;font-size:24px;line-height:1.25;white-space:normal;overflow:visible;text-overflow:clip}
#shCrear #crPasoRotulo{display:block;font-size:13px;line-height:1.5;font-weight:500;letter-spacing:0;color:var(--tenue);margin-top:4px}
#shCrear #crPasoRotulo.oculto{display:none}
#shCrear .sheet-cuerpo{padding:4px 22px calc(20px + env(safe-area-inset-bottom) + var(--hueco-guia,0px));gap:12px}
#shCrear .sheet-cerrar{flex-shrink:0}
#shCrear input{min-width:0;width:100%}
/* Posicionador original; conserva contraste del sello sobre papel blanco. */
#firmarSello{color:#152c43;background:#fffffff2}
#firmarSelloFecha,#firmarSelloRazon{color:#40536a}#firmarSelloQr{background-color:#152c43}
#firmarCargaEstado:empty{display:none}
/* Bienvenida: texto compacto, alineación común y acciones fuera del scroll. */
#shAlta:has(#altaBienvenida:not(.oculto)){max-height:calc(var(--alto-visible,100dvh) - 12px)}
#shAlta:has(#altaBienvenida:not(.oculto)) .sheet-cab{padding:12px 18px 6px}
#shAlta:has(#altaBienvenida:not(.oculto)) .sheet-cab h2{font-size:20px}
#shAlta:has(#altaBienvenida:not(.oculto)) .sheet-cuerpo{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0 18px calc(12px + env(safe-area-inset-bottom) + var(--hueco-guia,0px));gap:10px}
#shAlta:has(#altaBienvenida:not(.oculto)) #altaProgreso{flex:none;margin:0!important;height:4px!important;accent-color:var(--acento)}
#altaBienvenida{display:flex;flex-direction:column;min-height:0;gap:10px}
#bvContenido{min-height:0;overflow:auto;overscroll-behavior:contain;display:grid;gap:12px}
#bvNuevo .alta-tit{font-size:18px;line-height:1.25;margin:0}
#bvNuevo .filas{margin:6px 0 0!important;gap:0}
#bvNuevo .dato{border:0;border-radius:0;padding:7px 0;background:transparent}
#bvNuevo .dato+.dato{border-top:1px solid var(--linea)}
#bvNuevo .dato .k{font-size:13px;line-height:1.4;letter-spacing:0;text-transform:none;color:var(--tinta);font-weight:650}
#bvNuevo .dato .v{font-size:13px;line-height:1.45;color:var(--tenue);margin-top:3px}
.bvOferta{border-top:1px solid var(--linea);padding-top:10px}
#bvPrecio,#bvLanzamiento{font-size:13px;line-height:1.45}
#bvCondicion{font-size:12px;line-height:1.4}
#bvAcciones{flex:none;display:grid;gap:2px;padding-top:8px;border-top:1px solid var(--linea);background:var(--tarjeta)}
#bvAcciones .btn{width:100%;margin:0!important;min-height:44px;text-align:center;justify-content:center;padding:10px 12px;font-size:14px}
@media(min-width:900px){
 #shAlta:has(#altaBienvenida:not(.oculto)){width:680px;max-width:calc(100vw - 48px)}
 #shAlta:has(#altaBienvenida:not(.oculto)) .sheet-cab{padding:18px 24px 8px}
 #shAlta:has(#altaBienvenida:not(.oculto)) .sheet-cuerpo{padding:0 24px 20px;gap:16px}
 #bvContenido{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px}
 .bvOferta{border-top:0;border-left:1px solid var(--linea);padding:0 0 0 24px}
 #bvAcciones{grid-template-columns:1fr 1fr;gap:12px;padding-top:12px}
 #bvNuevo .dato .v{font-size:14px}
}

/* La ficha añade una línea completa sin abrir un segundo formulario. */
#shItemNuevo{max-width:640px}
#shItemNuevo .item-identidad{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end}
#shItemNuevo .item-identidad .chips{flex-wrap:nowrap;padding-bottom:2px}
/* E5: `.item-importes` ya solo enseña precio + total -el resto vive en
   «Más detalles»-, así que son 2 columnas, no 4. */
#shItemNuevo .item-importes{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px;align-items:end}
#shItemNuevo .item-precio-bloque{min-width:0}
#shItemNuevo .item-precio-cab,#shCantidad .item-precio-cab{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
#shItemNuevo .enlace-precio,#shCantidad .enlace-precio{border:0;background:none;padding:0;min-height:0;color:var(--acento);
  font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
/* En la hoja de cantidad el enlace es un objetivo táctil de 44px: es un teléfono. */
#shCantidad .enlace-precio{min-height:44px;padding:0 4px}
/* Cantidad + IVA, ambos detrás de «Más detalles»: misma proporción de columnas
   que tenían dentro de `.item-importes` antes de E5. */
#shItemNuevo .item-mas-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:12px;align-items:end}
#shItemNuevo .item-cantidad{display:grid;grid-template-columns:44px minmax(32px,1fr) 44px;align-items:center;margin-top:9px}
#shItemNuevo .item-cantidad input{text-align:center;padding-inline:2px;min-width:0;font-weight:700}
#shItemNuevo .item-cantidad button{min-width:44px;min-height:44px;padding:0;font-size:22px}
#shItemNuevo .item-total output{display:flex;align-items:center;min-height:48px;font-weight:700;font-size:18px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#shItemNuevo .det-nombres{display:grid;gap:10px}
#shItemNuevo .item-detalle{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}
#shItemNuevo .item-solo-catalogo .item-det-valor{display:none}
#shItemNuevo .item-solo-catalogo .item-detalle{grid-template-columns:1fr}
#shItemNuevo .err:empty{display:none}
#shItemNuevo .item-importes label{font-size:12px;line-height:1.4}
#shItemNuevo .item-mas-grid label{font-size:12px;line-height:1.4}
#shItemNuevo button[type=submit]{position:sticky;bottom:calc(env(safe-area-inset-bottom) + var(--hueco-guia,0px));z-index:1;box-shadow:0 -8px 0 8px var(--tarjeta)}
#shItemNuevo .sheet-cuerpo{scroll-padding-bottom:calc(90px + env(safe-area-inset-bottom) + var(--hueco-guia,0px))}
#shItemNuevo input,#shItemNuevo select,#shItemNuevo textarea{scroll-margin-bottom:90px}
@media(max-width:520px){
 #shItemNuevo .sheet-cab{padding:16px 18px 10px}
 #shItemNuevo .sheet-cab h2{font-size:21px}
 #shItemNuevo .sheet-cuerpo{padding-inline:18px;gap:10px}
 #shItemNuevo .item-importes{grid-template-columns:1fr 1fr;gap:10px 16px}
 #shItemNuevo .item-mas-grid{grid-template-columns:1fr 1fr;gap:10px 16px}
 #shItemNuevo .item-identidad{gap:10px}
 #shItemNuevo .item-identidad .chip{padding-inline:12px}
 #shItemNuevo .item-total output{min-height:44px}
 #shItemNuevo .item-detalle{gap:10px}
}
