/* Fuentes propias (licencia OFL, ver assets/fonts): no dependen de lo instalado en cada computadora */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/Inter-Regular.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/Inter-Medium.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/Inter-SemiBold.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/Inter-Bold.woff2") format("woff2")}
@font-face{font-family:"Outfit";font-style:normal;font-weight:300 500;font-display:swap;src:url("fonts/Outfit-Regular.woff") format("woff")}
/* Polartik CONNECT 1.1 — Colores oficiales: Azul #32CAFE · Oxford #606060 · Gris claro #E6E6E6
   Tipografía: Outfit (títulos) + Inter (textos). */
:root{
  --azul:#32CAFE; --azul-osc:#0B8FC4; --azul-claro:#E6F7FE; --oxford:#606060; --oxford-2:#4d4d4d; --gris:#E6E6E6;
  --fondo:#E6E6E6; --papel:#ffffff; --tinta:#2b2b2b; --tenue:#6f6f6f; --linea:#dcdcdc; --borde:#cfcfcf;
  --ok:#17804a; --ok-bg:#e3f5ea; --warn:#9a6200; --warn-bg:#fff2d6; --bad:#c0392b; --bad-bg:#fde7e5; --info-bg:#E6F7FE;
  --radio:8px; --sombra:0 1px 2px rgba(0,0,0,.06),0 2px 10px rgba(0,0,0,.05);
  --lateral:250px; --barra:62px; --pie:30px;
  --f-texto:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-titulo:"Outfit","Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--tinta);font:15px/1.55 var(--f-texto);font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
a{color:var(--azul-osc)}
h1,h2,h3{font-family:var(--f-titulo);font-weight:400;line-height:1.25;margin:0 0 .6em;letter-spacing:.005em}
h1{font-size:1.4rem;color:var(--azul-osc)} h2{font-size:1.12rem} h3{font-size:1rem}
small,.tenue{color:var(--tenue)}
code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}
svg.ic{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;overflow:visible}
svg.ic *{vector-effect:non-scaling-stroke}

/* ---------------- Barra superior */
.barra{position:fixed;top:0;left:0;right:0;height:var(--barra);z-index:40;display:flex;align-items:center;background:var(--azul);color:#fff}
.barra .marca{width:var(--lateral);display:flex;align-items:center;gap:10px;padding:0 18px;color:#fff;text-decoration:none;height:100%}
.barra .marca img.logo{height:22px;width:auto;display:block}
.barra .marca img.iso{height:30px;width:30px;display:none}
.barra .marca .sep{width:1px;height:26px;background:rgba(255,255,255,.85)}
.barra .marca .connect{font-size:1.25rem;letter-spacing:.5px;font-weight:300}
.barra .hamb{background:none;border:0;color:#fff;cursor:pointer;padding:8px;margin-left:6px;display:flex}
.barra .hamb svg{width:26px;height:26px}
.barra .der{margin-left:auto;display:flex;align-items:center;gap:10px;height:100%}
.barra .icono{width:40px;height:40px;border-radius:7px;background:#fff;color:var(--oxford);display:flex;align-items:center;justify-content:center;border:0;cursor:pointer;position:relative;text-decoration:none}
.barra .icono svg{width:20px;height:20px}
.barra .icono .cuenta{position:absolute;top:-5px;right:-5px;background:var(--bad);color:#fff;font-size:.7rem;border-radius:999px;min-width:18px;height:18px;padding:0 5px;display:flex;align-items:center;justify-content:center;font-weight:600}
.barra .hola{line-height:1.2;padding:0 8px 0 4px;color:#fff;text-decoration:none;cursor:pointer;background:none;border:0;text-align:left;font:inherit}
.barra .hola b{font-weight:700}
.barra .hola small{display:block;color:#fff;opacity:.92;font-size:.8rem}
.barra .engrane{width:70px;height:100%;background:var(--oxford);display:flex;align-items:center;justify-content:center;color:#fff}
.barra .engrane svg{width:26px;height:26px}
.barra .engrane:hover{background:var(--oxford-2)}
.menu-flota{position:absolute;top:calc(var(--barra) - 4px);right:76px;background:#fff;color:var(--tinta);border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,.18);min-width:270px;padding:8px 0;display:none;z-index:60}
.menu-flota.abierto{display:block}
.menu-flota a,.menu-flota .fila{display:flex;gap:10px;align-items:center;padding:9px 16px;color:var(--tinta);text-decoration:none;font-size:.92rem}
.menu-flota a:hover{background:var(--azul-claro)}
.menu-flota .titulo{padding:6px 16px;font-size:.75rem;color:var(--tenue);text-transform:uppercase;letter-spacing:.05em}
.menu-flota select{margin:4px 16px 8px;width:calc(100% - 32px)}
.menu-flota hr{border:0;border-top:1px solid var(--linea);margin:6px 0}

/* ---------------- Menú lateral */
.lateral{position:fixed;top:var(--barra);left:0;bottom:0;width:var(--lateral);background:#fff;overflow-y:auto;z-index:30;padding:10px 0 30px;border-right:1px solid var(--linea)}
.lateral a,.lateral button.grupo{display:flex;align-items:center;gap:14px;width:100%;padding:11px 22px;color:var(--oxford);text-decoration:none;font:inherit;font-size:.97rem;background:none;border:0;cursor:pointer;text-align:left}
.lateral a:hover,.lateral button.grupo:hover{color:var(--azul-osc);background:#fafafa}
.lateral a.on,.lateral button.grupo.on{color:var(--azul-osc)}
.lateral .flecha{margin-left:auto;transition:transform .15s}
.lateral .abierto > button.grupo .flecha{transform:rotate(90deg)}
.lateral .sub{display:none;padding:2px 0 6px}
.lateral .abierto > .sub{display:block}
.lateral .sub .it{display:flex;align-items:center}
.lateral .sub a{padding:8px 10px 8px 46px;font-size:.93rem;position:relative}
.lateral .sub a::before{content:"";position:absolute;left:34px;top:50%;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.6}
.lateral .sub a.mas{width:auto;padding:8px 22px 8px 10px;margin-left:auto;font-size:1.2rem;line-height:1}
.lateral .sub a.mas::before{display:none}
.velo{display:none}

/* ---------------- Contenido */
.contenido{margin-left:var(--lateral);padding:calc(var(--barra) + 22px) 24px 40px;min-height:100vh}
.solo-contenido .contenido{margin-left:0}
body.menu-oculto .lateral{transform:translateX(-100%)}
body.menu-oculto .contenido{margin-left:0}
.lateral,.contenido{transition:transform .2s,margin .2s}

/* ---------------- Tarjetas */
.card{background:var(--papel);border-radius:var(--radio);box-shadow:var(--sombra);padding:20px;margin-bottom:18px}
.card > h2:first-child,.card > h3:first-child{margin-top:0}
.panel{background:var(--papel);border-radius:var(--radio);box-shadow:var(--sombra);margin-bottom:18px}
.panel-cab{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:16px 22px;border-bottom:1px solid var(--linea)}
.panel-cab h1,.panel-cab h2{margin:0;color:var(--azul-osc);font-size:1.35rem;font-weight:500;margin-right:auto}
.panel-cuerpo{padding:20px 22px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cabecera{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between;margin-bottom:14px}
.cabecera h1{margin:0}
.acciones{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.kpi{background:var(--papel);border-radius:var(--radio);box-shadow:var(--sombra);padding:16px 18px;text-decoration:none;color:inherit;display:block;border-top:3px solid var(--azul)}
.kpi .n{font-size:1.9rem;font-weight:300;line-height:1.1;color:var(--tinta)}
.kpi .l{color:var(--tenue);font-size:.85rem}
.kpi.alerta{border-top-color:var(--azul)}
.kpi.rojo{border-top-color:var(--bad)}
dl.datos{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:6px 12px;margin:0}
dl.datos dt{color:var(--tenue)}
dl.datos dd{margin:0;word-break:break-word}

/* ---------------- Barra de herramientas de listas */
.herr{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.herr input,.herr select{width:auto;min-width:180px;height:44px}
.btn-buscar{width:44px;height:44px;border-radius:6px;background:#808080;color:#fff;border:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.btn-agregar{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 18px 0 4px;border:2px solid var(--azul);border-radius:999px;background:var(--azul);color:#fff;font-weight:700;text-decoration:none;cursor:pointer;font:inherit;font-weight:700}
.btn-agregar .circ{width:34px;height:34px;border-radius:50%;background:#fff;color:var(--azul);display:flex;align-items:center;justify-content:center;font-size:1.4rem;line-height:1}
.btn-agregar.sec{background:#fff;color:var(--azul-osc)}
.btn-agregar.sec .circ{background:var(--azul);color:#fff}
.kebab{position:relative}
.kebab > button{width:44px;height:44px;border-radius:6px;background:#808080;color:#fff;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center}
.kebab .menu,.fila-menu .menu{position:absolute;right:0;top:calc(100% + 4px);background:#fff;border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.16);min-width:200px;z-index:20;display:none;padding:6px 0}
.kebab.abierto .menu,.fila-menu.abierto .menu{display:block}
.kebab .menu a,.kebab .menu button,.fila-menu .menu a,.fila-menu .menu button{display:flex;gap:8px;align-items:center;width:100%;padding:9px 14px;color:var(--tinta);text-decoration:none;background:none;border:0;cursor:pointer;font:inherit;font-size:.92rem;text-align:left}
.kebab .menu a:hover,.fila-menu .menu a:hover,.kebab .menu button:hover,.fila-menu .menu button:hover{background:var(--azul-claro);color:var(--azul-osc)}
.fila-menu{position:relative;display:inline-block}
.fila-menu > button{width:42px;height:34px;border-radius:6px;background:var(--azul-claro);color:var(--azul-osc);border:0;cursor:pointer;font-size:1.1rem;font-weight:700;letter-spacing:1px}
.fila-menu .menu form{margin:0}
.fila-menu .menu .peligro{color:var(--bad)}

/* ---------------- Lista + panel de detalle */
.maestro{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:0}
.maestro .lista{padding:10px 22px 20px;min-width:0}
.maestro .detalle{border-left:1px solid var(--linea);padding:22px}
.detalle h3.nombre{color:var(--azul-osc);font-size:1.3rem;font-weight:500;text-transform:uppercase;border-bottom:1px solid var(--linea);padding-bottom:8px}
.detalle .rs{color:var(--azul-osc);text-transform:uppercase;font-size:.95rem}
.detalle .linea{display:flex;gap:8px;align-items:flex-start;margin:6px 0;color:var(--oxford)}
.detalle .vacio-panel{color:var(--tenue);text-align:center;padding:60px 10px}
tr.sel td{background:var(--azul-claro)}
tr.clic{cursor:pointer}

/* ---------------- Tablas */
.tabla-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse}
th,td{padding:12px 10px;text-align:left;border-bottom:1px solid var(--linea);vertical-align:middle}
th{font-weight:500;color:var(--oxford);font-size:.9rem;white-space:nowrap}
th a{color:inherit;text-decoration:none}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right}
td.acc{text-align:right;width:56px}
tbody tr:hover{background:#fafafa}

/* ---------------- Etiquetas */
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.78rem;font-weight:500;white-space:nowrap;background:#eee;color:var(--tenue)}
.badge.ok{background:var(--ok-bg);color:var(--ok)}
.badge.warn{background:var(--warn-bg);color:var(--warn)}
.badge.bad{background:var(--bad-bg);color:var(--bad)}
.badge.info{background:var(--azul-claro);color:var(--azul-osc)}
.badge.muted{background:#eee;color:var(--tenue)}

/* ---------------- Formularios (etiqueta flotante siempre visible) */
.campo{position:relative;margin:8px 0 16px}
.campo > label:first-child{position:absolute;top:-8px;left:10px;padding:0 5px;background:#fff;font-size:.72rem;color:var(--tenue);text-transform:uppercase;letter-spacing:.03em;z-index:1;line-height:1.2;margin:0;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
label{display:block;font-size:.85rem;color:var(--tenue);margin:0 0 4px}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=tel],input[type=search],input[type=url],select,textarea{
  width:100%;padding:11px 12px;border:1px solid var(--borde);border-radius:6px;background:#fff;color:var(--tinta);font:inherit;font-size:16px;min-height:44px}
input[type=file]{font:inherit;font-size:.9rem;max-width:100%}
textarea{min-height:96px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--azul);border-color:var(--azul)}
input[readonly]{background:#f6f6f6}
.check{display:flex;gap:8px;align-items:flex-start;color:var(--tinta);font-size:.95rem;margin-bottom:10px;cursor:pointer}
.check input{margin-top:3px;width:18px;height:18px}
.req::after{content:" *";color:var(--bad)}
.ayuda{font-size:.8rem;color:var(--tenue);margin-top:4px}
fieldset{border:1px solid var(--linea);border-radius:var(--radio);padding:16px;margin:0 0 16px}
legend{padding:0 6px;color:var(--tenue);font-size:.88rem}
.switch{display:flex;width:fit-content;max-width:100%;align-items:center;gap:12px;cursor:pointer;margin:6px 0 14px;color:var(--tinta)}
.switch input{appearance:none;-webkit-appearance:none;width:44px;height:24px;border-radius:999px;background:#c9c9c9;position:relative;cursor:pointer;transition:background .15s;flex:0 0 44px;margin:0}
.switch input::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.switch input:checked{background:var(--azul)}
.switch input:checked::after{left:23px}

/* Selector VENDIDO / DE RENTA */
.segmento{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.segmento label{margin:0;border:2px solid var(--linea);border-radius:var(--radio);padding:14px;text-align:center;cursor:pointer;color:var(--tinta);font-weight:500;letter-spacing:.06em;background:#fff;position:static;font-size:1rem;text-transform:none}
.segmento input{position:absolute;opacity:0;pointer-events:none}
.segmento input:checked + span{color:var(--azul-osc)}
.segmento label:has(input:checked){border-color:var(--azul);background:var(--azul-claro)}
.segmento small{display:block;font-weight:400;letter-spacing:0;margin-top:2px}

/* Pestañas */
.pestanas{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--borde);margin-bottom:22px}
.pestanas a,.pestanas button{display:flex;align-items:center;gap:6px;padding:10px 16px;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0;color:var(--oxford);text-decoration:none;background:none;cursor:pointer;font:inherit;font-size:.93rem;margin-bottom:-1px}
.pestanas a.on,.pestanas button.on{border-color:var(--borde);background:#fff;color:var(--azul-osc)}
.pestanas a.off{opacity:.45;pointer-events:none}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:999px;border:2px solid var(--azul);background:var(--azul);color:#fff;text-decoration:none;font:inherit;font-size:.95rem;font-weight:600;cursor:pointer;min-height:42px;white-space:nowrap}
.btn:hover{background:#1fb9ee;border-color:#1fb9ee}
.btn.sec{background:#fff;color:var(--azul-osc);border-color:var(--azul)}
.btn.sec:hover{background:var(--azul-claro)}
.btn.gris{background:#808080;border-color:#808080}
.btn.cyan{background:var(--azul);border-color:var(--azul);color:#fff}
.btn.wa{background:#1f9d55;border-color:#1f9d55}
.btn.peligro{background:#fff;color:var(--bad);border-color:#e6b4b0}
.btn.chico{padding:6px 12px;min-height:34px;font-size:.85rem}
.btn.block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* Mensajes */
.flash{padding:12px 14px;border-radius:8px;margin-bottom:14px;background:var(--info-bg);color:#07506b}
.flash.ok{background:var(--ok-bg);color:var(--ok)}
.flash.error{background:var(--bad-bg);color:var(--bad)}
.flash.warn{background:var(--warn-bg);color:var(--warn)}
.aviso{padding:12px 14px;border-radius:8px;background:var(--warn-bg);color:var(--warn);margin-bottom:14px}
.nota-azul{padding:14px 16px;border-radius:6px;background:#f1f1f1;color:var(--azul-osc);margin-bottom:16px}

/* Modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:80;display:none;align-items:flex-start;justify-content:center;padding:6vh 14px;overflow-y:auto}
.modal.abierto{display:flex}
.modal .caja{background:#fff;border-radius:10px;width:100%;max-width:760px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal .caja.ancho{max-width:980px}
.modal .caja-cab{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--linea)}
.modal .caja-cab h2{margin:0;font-weight:400}
.modal .cerrar{margin-left:auto;background:none;border:0;font-size:1.6rem;line-height:1;color:var(--bad);cursor:pointer}
.modal .caja-cuerpo{padding:20px}
.modal .caja-pie{display:flex;gap:10px;justify-content:flex-end;padding:14px 20px;border-top:1px solid var(--linea)}

/* Configuración: cuadros */
.cuadros{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
.cuadro{background:#fff;border-radius:var(--radio);box-shadow:var(--sombra);padding:26px 16px;text-align:center;text-decoration:none;color:var(--oxford);display:flex;flex-direction:column;align-items:center;gap:12px;border:2px solid transparent}
.cuadro:hover{border-color:var(--azul);color:var(--azul-osc)}
.cuadro svg{width:42px;height:42px;stroke:var(--azul);stroke-width:1.5}
.cuadro span{font-weight:500}
.cuadro small{color:var(--tenue);font-size:.8rem}

/* Árbol de categorías */
.arbol{border:1px solid var(--linea);border-radius:6px;overflow:hidden}
.arbol .n1,.arbol .n2,.arbol .n3{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--linea);font-size:.93rem;text-transform:uppercase}
.arbol .n1{background:#eef1f6}
.arbol .n2{padding-left:30px}
.arbol .n3{padding-left:52px;color:var(--oxford)}
.arbol .n2::before{content:"—";color:var(--azul-osc)}
.arbol .n3::before{content:"+";color:var(--azul-osc);font-weight:700}
.arbol form{margin-left:auto}
.arbol .x{border:1px solid #e3a09a;color:var(--bad);background:#fff;border-radius:4px;width:26px;height:24px;cursor:pointer;line-height:1}

/* Bitácora */
.log{list-style:none;margin:0;padding:0;position:relative}
.log::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--linea)}
.log li{position:relative;padding:0 0 18px 28px}
.log li::before{content:"";position:absolute;left:1px;top:5px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--azul)}
.log li.interno::before{border-color:#bdbdbd}
.log .cuando{font-size:.8rem;color:var(--tenue)}
.log .titulo{font-weight:500}
.log .detalle{white-space:pre-line;margin-top:2px}
.fotos{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.fotos a{display:block;width:92px;height:92px;border-radius:8px;overflow:hidden;background:#eee}
.fotos img{width:100%;height:100%;object-fit:cover;display:block}

.pieza{display:grid;grid-template-columns:1fr 90px 140px 40px;gap:8px;margin-bottom:8px}
.pieza button{border:0;background:#eee;border-radius:8px;cursor:pointer;font-size:1.1rem}
.paginas{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.paginas a,.paginas b,.paginas span{padding:6px 11px;border-radius:6px;background:#fff;text-decoration:none;border:1px solid var(--linea)}
.paginas b{background:var(--azul);border-color:var(--azul);color:#fff}
.vacio{color:var(--tenue);padding:18px 0;text-align:center}
.filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin-bottom:12px}
.filtros > *{flex:1 1 160px}
.filtros .btn{flex:0 0 auto}
.lista-tarjetas{display:grid;gap:10px}
.item{border:1px solid var(--linea);border-radius:var(--radio);padding:12px 14px;background:#fff}
.item .fila{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;align-items:center}
.item .acciones{margin-top:10px}
details.plegable{border:1px solid var(--linea);border-radius:var(--radio);padding:10px 14px;margin-bottom:12px;background:#fff}
details.plegable summary{cursor:pointer;font-weight:500}
details.plegable[open] summary{margin-bottom:12px}

/* Inicio: publicaciones */
.pubs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.pub{background:#fff;border-radius:var(--radio);box-shadow:var(--sombra);overflow:hidden;display:flex;flex-direction:column}
.pub .pub-cab{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--linea);color:var(--azul-osc);font-weight:500}
.pub.aviso-p .pub-cab{background:var(--azul);color:#fff;border-bottom:0}
.pub.aviso-p{background:var(--azul);color:#fff}
.pub .pub-cab .tipo{margin-left:auto;font-size:.75rem;text-transform:uppercase;opacity:.8}
.pub .pub-cuerpo{padding:16px;white-space:pre-line}
.pub img{width:100%;max-height:260px;object-fit:contain;background:#fff;display:block}

/* Acceso */
.acceso{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--azul)}
.acceso .card{width:100%;max-width:400px;padding:30px}
.acceso .logo-acceso{display:block;height:34px;margin:0 auto 20px}

/* Gráficas simples */
.barras{display:flex;align-items:flex-end;gap:8px;height:180px;padding-top:10px;border-bottom:1px solid var(--linea)}
.barras .b{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.barras .b i{display:block;width:100%;max-width:46px;background:var(--azul);border-radius:4px 4px 0 0}
.barras .b span{font-size:.72rem;color:var(--tenue);margin-top:4px}
.barras .b em{font-style:normal;font-size:.75rem;color:var(--oxford)}

@media (max-width:1100px){ .maestro{grid-template-columns:1fr} .maestro .detalle{border-left:0;border-top:1px solid var(--linea)} }
@media (max-width:900px){
  .g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lateral{transform:translateX(-100%);box-shadow:0 0 30px rgba(0,0,0,.2)}
  body.menu-visible .lateral{transform:none}
  body.menu-visible .velo{display:block;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:25}
  .contenido{margin-left:0}
}
@media (max-width:640px){
  :root{--barra:58px}
  .contenido{padding:calc(var(--barra) + 14px) 10px 32px}
  .barra .marca{width:auto;padding:0 10px}
  .barra .marca img.logo,.barra .marca .sep,.barra .marca .connect{display:none}
  .barra .marca img.iso{display:block}
  .barra .hola,.barra .icono.pc{display:none}
  .barra .engrane{width:54px}
  .menu-flota{right:0;left:0;min-width:0}
  .g2,.g3{grid-template-columns:1fr}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  dl.datos{grid-template-columns:1fr;gap:0}
  dl.datos dd{margin-bottom:8px}
  .pieza{grid-template-columns:1fr 70px 40px}
  .pieza .np{grid-column:1 / 3}
  .card{padding:14px}
  .panel-cab,.panel-cuerpo,.maestro .lista,.maestro .detalle{padding-left:14px;padding-right:14px}
  .herr input,.herr select{min-width:0;flex:1 1 140px}
  .ocultar-movil{display:none}
  .acciones .btn{flex:1 1 auto}
}
@media print{
  .barra,.lateral,.pie,.no-print,.acciones,.flash,.herr{display:none!important}
  body{background:#fff}
  .contenido{margin:0;padding:0}
  .card,.panel{box-shadow:none;border:1px solid #ccc;break-inside:avoid}
}

/* Ajustes de herramientas y modo lectura */
form.herr input,form.herr select{width:auto}
form.herr input[type=search]{width:220px}
fieldset:disabled input,fieldset:disabled select,fieldset:disabled textarea{background:#f4f4f4;color:var(--tinta);opacity:1;-webkit-text-fill-color:var(--tinta)}
fieldset:disabled .segmento label{cursor:default}
@media (max-width:640px){ form.herr input[type=search]{width:100%;flex:1 1 100%} form.herr{width:100%} }
@media (max-width:640px){ .pestanas{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none} .pestanas::-webkit-scrollbar{display:none} .pestanas a,.pestanas button{white-space:nowrap;flex:0 0 auto;padding:10px 12px} }

/* Pantallas a toda la altura: el panel principal llega hasta abajo */
.contenido{display:flex;flex-direction:column}
.contenido > .panel.estira{flex:1 0 auto;display:flex;flex-direction:column}
.contenido > .panel.estira > .panel-cuerpo,.contenido > .panel.estira > .maestro{flex:1 0 auto}
.kebab .menu,.fila-menu .menu{max-height:calc(100vh - 16px);overflow-y:auto;z-index:60}

/* ================= Pulido 1.1.2: tipografía, íconos, espaciado, pie ================= */
/* Títulos en Outfit */
.panel-cab h1,.panel-cab h2,.modal .caja-cab h2,.detalle h3.nombre,.pub .pub-cab,.kpi .n,.cuadro span,.barra .marca .connect,.acceso h1,.hero h1{font-family:var(--f-titulo)}
.panel-cab h1,.panel-cab h2{font-weight:400;font-size:1.45rem;letter-spacing:.01em}
.detalle h3.nombre{font-weight:400;font-size:1.3rem;letter-spacing:.02em}
.kpi .n{font-weight:300;font-size:2rem}
.barra .marca .connect{font-weight:300;font-size:1.3rem;letter-spacing:.06em}
.barra .hola{font-size:.92rem}
.barra .hola b{font-weight:600}
/* Botones: negrita real de Inter, sin negritas simuladas */
.btn,.btn-agregar{font-family:var(--f-texto);font-weight:600;letter-spacing:.01em}
.btn-agregar{font-size:.95rem;gap:12px;padding:0 20px 0 5px}
.btn-agregar .circ{font-weight:400;font-size:1.35rem}
.fila-menu > button{font-weight:600}
th{font-weight:500;letter-spacing:.01em}
.badge{font-weight:500;letter-spacing:.01em}
/* Íconos finos: trazo uniforme de 1.4 px en cualquier tamaño */
.lateral svg.ic{width:20px;height:20px;flex-basis:20px}
.barra .icono svg,.barra .engrane svg,.barra .hamb svg{stroke-width:1.4}
.cuadro svg{stroke-width:1.2}
.btn svg.ic,.btn-agregar svg.ic{width:17px;height:17px;flex-basis:17px}
/* Espaciado en múltiplos de 8 px */
.campo{margin:8px 0 20px}
.grid{gap:8px 20px}
.grid > .campo{margin-bottom:12px}
.panel-cab{padding:16px 24px;min-height:76px}
.panel-cuerpo{padding:24px}
.maestro .lista{padding:8px 24px 24px}
.maestro .detalle{padding:24px}
.pestanas{margin-bottom:24px}
.acciones{gap:8px}
/* Secciones dentro de formularios largos */
.form-seccion{display:flex;align-items:center;gap:12px;margin:16px 0 16px;color:var(--azul-osc);font-family:var(--f-titulo);font-weight:400;font-size:1.05rem;letter-spacing:.02em}
.form-seccion::after{content:"";flex:1;height:1px;background:var(--linea)}
.form-seccion:first-child{margin-top:4px}
/* Selector de recuadros (EMPLEADO / VENDEDOR EXTERNO, VENDIDO / DE RENTA): sin círculo visible */
.segmento input[type=radio],fieldset:disabled .segmento input[type=radio]{position:absolute!important;opacity:0!important;width:0!important;height:0!important;margin:0!important;pointer-events:none}
.segmento label{position:relative;font-family:var(--f-titulo);font-weight:400;letter-spacing:.08em}
.segmento small{font-family:var(--f-texto)}
/* Pie: listón gris a todo lo ancho, pegado al borde inferior */
.pie{position:fixed;left:0;right:0;bottom:0;height:var(--pie);z-index:45;background:var(--oxford);color:#fff;font-size:.75rem;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;padding:0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pie span{overflow:hidden;text-overflow:ellipsis}
.lateral{bottom:var(--pie)}
.contenido{padding-bottom:calc(var(--pie) + 22px)}
body.solo-contenido{padding-bottom:var(--pie)}
@media (max-width:640px){ .pie{font-size:.66rem} .contenido{padding-bottom:calc(var(--pie) + 14px)} .panel-cab{min-height:0;padding:14px} .panel-cuerpo,.maestro .detalle{padding:16px 14px} }
@media print{ .pie{display:none!important} }
.acceso{min-height:calc(100vh - var(--pie))}
.notificar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.notificar .campo{flex:1 1 220px;margin:8px 0 0}
.notificar .acciones{margin:0}
.filtro-opciones{margin-bottom:8px}
.campo > input.filtro-opciones + select{margin-top:0}
/* Pestañas compactas del panel de detalle */
.pestanas.mini{gap:2px;margin-bottom:16px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.pestanas.mini::-webkit-scrollbar{display:none}
.pestanas.mini a{padding:8px 10px;font-size:.84rem;white-space:nowrap;flex:0 0 auto}
.mini-item{display:block;padding:10px 0;border-bottom:1px solid var(--linea);font-size:.86rem;color:inherit;text-decoration:none}
.mini-item:last-child{border-bottom:0}
.mini-item .rs{font-size:.8rem;letter-spacing:.03em;display:flex;align-items:center;gap:6px}
.mini-item .linea{margin:4px 0}
.mini-link:hover{background:var(--azul-claro);margin:0 -10px;padding-left:10px;padding-right:10px;border-radius:6px}
.estrella svg.ic{width:14px;height:14px;fill:#f5b301;stroke:#f5b301}
.pin-caja{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;background:#f7fbfd;border:1px solid var(--linea);border-radius:var(--radio);padding:16px 20px}
.pin-caja > div{flex:1 1 320px}
.pin{font-family:var(--f-titulo);font-size:2rem;font-weight:300;letter-spacing:.18em;color:var(--azul-osc)}
.confidencial{border:1px solid #e9d7a6;background:#fffbf0}
.confidencial h3{display:flex;align-items:center;gap:8px}

/* Etiquetas flotantes: altura suficiente para que se vean los acentos de las mayúsculas (RÉGIMEN, RAZÓN, TELÉFONO) */
.campo > label:first-child{line-height:1.5;top:-10px;padding:0 6px}
/* Outfit sin espaciado extra: con espaciado el navegador apaga las ligaduras (fi, fl) y se ven huecos («Perf il») */
h1,h2,h3,.panel-cab h1,.panel-cab h2,.detalle h3.nombre,.form-seccion,.modal .caja-cab h2{letter-spacing:0}
/* Campo de archivo con el mismo estilo que los demás */
.campo > input[type=file]{width:100%;padding:16px 12px 10px;border:1px solid var(--borde);border-radius:6px;background:#f4f4f4;font:inherit;font-size:.9rem;color:var(--tinta)}
.campo > input[type=file]::file-selector-button{font:inherit;font-size:.85rem;font-weight:500;border:0;border-radius:6px;background:var(--azul-claro);color:var(--azul-osc);padding:6px 12px;margin-right:12px;cursor:pointer}
/* Sin desbordes horizontales en celular: el panel de detalle no se ensancha por sus pestañas */
.maestro > *,.maestro .detalle,.maestro .lista{min-width:0}
.contenido,.panel{min-width:0;max-width:100%}
.acciones{flex-wrap:wrap}
@media (max-width:640px){ .panel-cab{flex-wrap:wrap;gap:8px} }
.maestro.maestro-izq{grid-template-columns:280px minmax(0,1fr)}
.maestro.maestro-izq .detalle{border-left:1px solid var(--linea)}
@media (max-width:1100px){ .maestro.maestro-izq{grid-template-columns:1fr} .maestro.maestro-izq .detalle{border-left:0;border-top:1px solid var(--linea)} }

/* Menú: módulos y opciones próximamente */
.lateral .it.prox{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 14px 7px 44px;color:#b3b3b3;font-size:.88rem;cursor:default}
.lateral .it.prox small{font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;border:1px solid #d6d6d6;border-radius:10px;padding:1px 7px;color:#9a9a9a;white-space:nowrap}
.lateral .grupo-prox > button.grupo{color:#a8a8a8}

/* ---------------- 1.1.4 · Inventarios */
.verde{color:var(--ok)} .rojo{color:var(--bad)} .centro{text-align:center}
svg.ic.verde{stroke:var(--ok)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:20px}
.kpis-mini{display:flex;flex-wrap:wrap;gap:10px 26px;margin:14px 0 18px}
.kpis-mini > div{display:flex;flex-direction:column;line-height:1.2}
.kpis-mini b{font-family:var(--f-titulo);font-weight:400;font-size:1.35rem;color:var(--tinta)}
.kpis-mini small{font-size:.78rem}
.sub-tit{font-family:var(--f-titulo);font-weight:400;font-size:1.02rem;color:var(--azul-osc);margin:22px 0 10px}
.acciones-cab{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.acciones-cab form{margin:0}
.btn.sec.peligro{color:var(--bad);border-color:#e6b4b0}
.btn.sec.peligro:hover{background:var(--bad-bg)}
.btn-icono{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;border-radius:50%;background:none;color:var(--tenue);cursor:pointer}
.btn-icono:hover{background:var(--bad-bg);color:var(--bad)}
.flash.info{background:var(--info-bg);color:#07506b}
fieldset.limpio{border:0;padding:0;margin:0;min-width:0}
fieldset.limpio:disabled input,fieldset.limpio:disabled select,fieldset.limpio:disabled textarea{background:#fafafa;color:var(--tinta)}
.radios{display:flex;flex-wrap:wrap;gap:6px 18px;min-height:44px;align-items:center;padding:8px 12px;border:1px solid var(--borde);border-radius:6px}
.radios label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;margin:0;font-size:.93rem}
.radios input{width:auto;height:auto;margin:0;accent-color:var(--azul-osc)}
label.chk{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--tenue);cursor:pointer}
label.chk input{width:auto;height:auto}
.switch.sin-margen{margin:0}
input.corto{width:92px;text-align:right}
input.medio{width:140px;text-align:right}
td.num input{text-align:right}
.dato{min-height:44px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--linea);border-radius:6px;background:#fafafa;color:var(--oxford)}
.con-sufijo{display:inline-flex;align-items:center;gap:6px}
.con-sufijo span{color:var(--tenue);min-width:12px;text-align:right}
.con-sufijo input{width:130px;text-align:right}
table.precios td,table.partidas td,table.almacenes-prod td{vertical-align:middle}
table.almacenes-prod input[type=text]{min-width:0}
/* Imagen del producto */
.con-imagen{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:start}
.img-caja{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border:1px dashed var(--borde);border-radius:var(--radio);text-align:center}
.img-caja img{width:100%;aspect-ratio:1;object-fit:contain;background:#fff;border-radius:6px}
.img-caja label.btn{cursor:pointer}
.img-producto{width:100%;max-height:220px;object-fit:contain;background:#fff;border-radius:var(--radio);margin-bottom:12px}
td.mini-img{width:52px;padding-top:4px;padding-bottom:4px}
td.mini-img img,td.mini-img .sin-img{width:40px;height:40px;border-radius:6px;object-fit:cover;display:flex;align-items:center;justify-content:center;background:#f3f3f3;color:#b5b5b5}
.eleccion{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.modal .caja.chica{max-width:520px}
table.compacta th,table.compacta td{padding:6px 8px;font-size:.88rem}
.herr-linea{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px}
.herr-linea select{width:auto;min-width:220px}
/* Buscador con sugerencias */
.auto{position:relative}
/* La lista de sugerencias flota sobre toda la pantalla (se ubica con JS junto al campo) */
.sugerencias{position:fixed;z-index:90;margin:0;padding:4px 0;list-style:none;background:#fff;border:1px solid var(--borde);border-radius:8px;box-shadow:0 10px 28px rgba(0,0,0,.16);max-height:300px;overflow:auto;overscroll-behavior:contain}
.sugerencias.arriba{box-shadow:0 -8px 24px rgba(0,0,0,.14)}
.sugerencias li{padding:8px 12px;cursor:pointer;font-size:.9rem;line-height:1.35}
.sugerencias li.on,.sugerencias li:hover{background:var(--azul-claro);color:var(--azul-osc)}
.sugerencias li.nada{color:var(--tenue);cursor:default;background:none}
td.auto.prod{min-width:300px}
/* Documentos: partidas, series y totales */
.partidas tr[data-fila-extra] > td{background:#fafcfd;border-top:0}
.series-captura{display:grid;grid-template-columns:240px minmax(0,1fr);gap:4px 18px;align-items:start;padding:6px 0 0}
.series-captura textarea{min-height:70px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88rem}
.totales-doc{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;margin-top:20px;align-items:start}
.totales-doc table td{padding:7px 10px}
.totales-doc tr.total td{font-family:var(--f-titulo);font-size:1.2rem;color:var(--azul-osc);border-top:2px solid var(--azul)}
.descuento{display:flex;align-items:center;gap:6px}
.descuento select{width:auto;height:36px;min-height:36px;padding:0 8px}
.descuento input{height:36px;min-height:36px}
.ficha-doc{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:20px}
.ficha-doc > div{display:flex;flex-direction:column;padding:12px 14px;border:1px solid var(--linea);border-radius:var(--radio);background:#fcfcfc;min-width:0}
.ficha-doc small{text-transform:uppercase;font-size:.7rem;letter-spacing:.04em}
.ficha-doc b{font-weight:500;overflow-wrap:anywhere}
.series-lista{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.series-lista span{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;padding:2px 7px;border-radius:4px;background:#f1f3f4;color:var(--oxford)}
.series-lista span.baja{background:var(--bad-bg);color:var(--bad);text-decoration:line-through}
.elige-series{margin-top:8px;border:1px solid var(--linea);border-radius:8px;padding:8px 10px;background:#fff}
.elige-series .cab{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:.85rem}
.elige-series .cab input{width:200px;height:34px;min-height:34px}
.casillas{display:flex;flex-wrap:wrap;gap:4px 14px;max-height:180px;overflow:auto}
.casillas label{display:inline-flex;align-items:center;gap:5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;cursor:pointer}
.casillas input{width:auto;height:auto}
.caja-accion{margin-top:20px;padding:16px;border:1px solid var(--linea);border-radius:var(--radio);background:#fcfcfc;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.caja-accion .campo{flex:1 1 100%;margin-bottom:6px}
/* Flujo de la transferencia */
.flujo{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;list-style:none;padding:0;margin:0 0 22px;counter-reset:paso}
.flujo li{position:relative;padding:28px 8px 0;text-align:center;display:flex;flex-direction:column;font-size:.88rem}
.flujo li::before{counter-increment:paso;content:counter(paso);position:absolute;top:0;left:50%;transform:translateX(-50%);width:24px;height:24px;border-radius:50%;background:#fff;border:2px solid var(--borde);color:var(--tenue);font-size:.75rem;line-height:20px;z-index:1}
.flujo li::after{content:"";position:absolute;top:11px;left:calc(-50% + 14px);right:calc(50% + 14px);height:2px;background:var(--borde)}
.flujo li:first-child::after{display:none}
.flujo li.hecho::before{background:var(--azul);border-color:var(--azul);color:#fff}
.flujo li.hecho::after{background:var(--azul)}
.flujo small{color:var(--tenue);font-size:.78rem}
/* Actividad */
ul.actividad{list-style:none;margin:0;padding:0}
ul.actividad li{display:flex;gap:12px;align-items:flex-start;padding:8px 0;border-bottom:1px solid #eee;font-size:.88rem}
ul.actividad li > span:first-child{flex:0 0 auto;min-width:54px;text-align:right;font-weight:600}
ul.actividad .entra{color:var(--ok)} ul.actividad .sale{color:var(--bad)}
/* Histórico de costos */
figure.grafica-costos{margin:0 0 18px}
figure.grafica-costos figcaption{font-size:.85rem;color:var(--tenue);margin-bottom:4px}
figure.grafica-costos svg{width:100%;height:auto;max-height:260px}
figure.grafica-costos .rejilla{stroke:#ececec;stroke-width:1}
figure.grafica-costos .eje{fill:var(--tenue);font:11px var(--f-texto)}
figure.grafica-costos .linea{fill:none;stroke:var(--azul-osc);stroke-width:2;stroke-linejoin:round}
figure.grafica-costos .punto circle{fill:var(--azul-osc);stroke:#fff;stroke-width:2}
figure.grafica-costos .punto circle.zona{fill:transparent;stroke:none;cursor:pointer}
figure.grafica-costos .punto:hover circle:first-child{r:6}
/* Reportes */
.reporte section{min-width:0}
.reporte table{width:100%}
td.barra-col,th.barra-col{width:22%}
.barra-h{display:block;height:8px;border-radius:0 4px 4px 0;background:var(--azul)}
/* Hoja de impresión */
body.hoja-impresion{background:#fff;padding:24px}
.hoja-impresion main{max-width:900px;margin:0 auto}
.hoja-impresion header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--azul);margin-bottom:16px}
.hoja-impresion table{width:100%;border-collapse:collapse;margin-bottom:18px}
.hoja-impresion th,.hoja-impresion td{border:1px solid #ccc;padding:6px 8px;text-align:left;font-size:.88rem}
.hoja-impresion .firmas{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:60px;text-align:center}
.hoja-impresion .firmas div{display:flex;flex-direction:column;gap:2px}
.hoja-impresion .linea-firma{border-top:1px solid #333;margin-bottom:4px}
/* Menú: próximamente alineado con los enlaces */
.lateral .sub .it.prox{padding-left:46px}
@media (max-width:900px){
  .con-imagen{grid-template-columns:1fr}
  .img-caja{max-width:260px}
  .totales-doc{grid-template-columns:1fr}
  .series-captura{grid-template-columns:1fr}
  .flujo{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:14px}
  .flujo li::after{display:none}
  .eleccion{grid-template-columns:1fr}
  .g3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){ .g3{grid-template-columns:1fr} td.auto.prod{min-width:220px} }
@media print{ .hoja-impresion{padding:0} }
td.mono{white-space:nowrap}
.lateral .sub .it.prox{padding-right:10px}.lateral .it.prox small{font-size:.56rem;padding:1px 5px;letter-spacing:.02em}.lateral .it.prox span{min-width:0}

/* ================= 1.1.5 · Observaciones de Inventarios ================= */
/* Títulos de sección de los documentos con línea divisoria antes del contenido */
.sub-tit{margin:28px 0 16px;padding-bottom:8px;border-bottom:1px solid var(--linea)}
.detalle .sub-tit{margin:20px 0 10px}
/* Botón «+ Agregar …» separado de la última línea de la tabla */
[data-agregar-fila]{margin-top:14px}
/* Menú lateral: se recorre con la rueda o deslizando, sin barra de scroll visible */
.lateral{scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain}
.lateral::-webkit-scrollbar{display:none;width:0;height:0}
/* Ficha en modo consulta */
.modo-consulta{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--tenue);background:#f1f1f1;border-radius:999px;padding:3px 10px}
.modo-consulta svg.ic{width:14px;height:14px;flex-basis:14px}
fieldset.limpio:disabled .img-caja label.btn{display:none}
/* Switch bloqueado (no aplica) */
.switch.bloqueado{cursor:not-allowed;opacity:.75}
.switch.bloqueado input{cursor:not-allowed}
.switch input:disabled{background:#e3e3e3}
/* Ficha técnica */
.archivo-caja{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:12px 14px;border:1px dashed var(--borde);border-radius:var(--radio);margin:8px 0 20px}
.archivo-caja .nombre{display:flex;align-items:center;gap:8px;min-width:0;overflow-wrap:anywhere}
.archivo-caja input[type=file]{flex:1 1 240px}
.archivo-caja .ayuda{flex-basis:100%;margin:0}
/* Selección masiva en listas */
td.sel-col,th.sel-col{width:36px;padding-left:4px;padding-right:0}
td.sel-col label,th.sel-col label{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0;cursor:pointer}
td.sel-col input,th.sel-col input{width:18px;height:18px;margin:0;accent-color:var(--azul-osc);cursor:pointer}
tr.marcado td{background:#f3fbff}
.barra-masiva{position:sticky;top:calc(var(--barra) + 6px);z-index:15;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:8px 0 10px;padding:8px 12px;border-radius:var(--radio);background:var(--oxford);color:#fff;box-shadow:var(--sombra)}
.barra-masiva .cuantos{font-weight:600;margin-right:6px}
.barra-masiva .btn.sec{background:#fff}
.barra-masiva .todos-filtro{color:#fff;font-size:.85rem}
.barra-masiva .todos-filtro a,.barra-masiva .quitar{color:#bfeeff;background:none;border:0;cursor:pointer;font:inherit;text-decoration:underline;padding:0}
.barra-masiva .quitar{margin-left:auto}
/* Pasos del alta de cliente */
.asistente-nota{margin-top:-8px}
.sub-tit.con-herr{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 16px}
.iva-compra{display:flex;align-items:center;gap:8px;margin:0;font-family:var(--f-texto);font-size:.8rem;color:var(--tenue);text-transform:uppercase;letter-spacing:.03em}
.iva-compra select{width:auto;min-width:170px;min-height:36px;height:36px;padding:0 10px;font-size:.9rem;text-transform:none;letter-spacing:0}
select.iva-partida{width:auto;min-width:110px;min-height:36px;height:36px;padding:0 8px;font-size:.9rem}
.archivo-caja input[type=file]{font:inherit;font-size:.9rem;color:var(--tinta)}
.archivo-caja input[type=file]::file-selector-button{font:inherit;font-size:.85rem;font-weight:500;border:0;border-radius:6px;background:var(--azul-claro);color:var(--azul-osc);padding:6px 12px;margin-right:12px;cursor:pointer}

/* 1.2.0 · Encabezado de listas: título arriba; filtros a la izquierda y «Agregar» + ⋮ a la derecha, en una sola línea */
.panel-cab.con-filtros h1{flex:1 1 100%}
.barra-herr{display:flex;flex:1 1 100%;align-items:center;gap:10px;min-width:0}
.barra-herr form.herr{flex:1 1 auto;min-width:0;gap:6px;flex-wrap:wrap}
.barra-herr form.herr input,.barra-herr form.herr select{height:36px;min-height:36px;font-size:.8rem;padding:0 8px;min-width:0;width:auto;flex:1 1 100px;max-width:210px}
.barra-herr form.herr input[type=date]{flex:0 1 124px;padding:0 6px}
.barra-herr form.herr input[type=search]{flex:1 1 130px;width:auto}
.barra-herr .btn-buscar{width:36px;height:36px;flex:0 0 36px}
.herr-acc{display:flex;align-items:center;gap:8px;margin-left:auto;flex:0 0 auto}
.herr-acc .btn-agregar{height:38px;font-size:.88rem;gap:8px;padding:0 16px 0 4px}
.herr-acc .btn-agregar .circ{width:30px;height:30px;font-size:1.2rem}
.herr-acc .kebab > button{width:38px;height:38px}
@media (max-width:900px){ .barra-herr{flex-wrap:wrap} .herr-acc{order:-1;width:100%;justify-content:flex-end} .barra-herr form.herr{flex:1 1 100%} .barra-herr form.herr input,.barra-herr form.herr select{max-width:none} }
/* Totales de las listas en recuadros (misma forma que los recuadros del detalle del documento) */
.kpis-mini{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:4px 0 18px}
.kpis-mini > div{display:flex;flex-direction:column;padding:10px 14px;border:1px solid var(--linea);border-radius:var(--radio);background:#fcfcfc;min-width:0}
.kpis-mini small{order:-1;text-transform:uppercase;font-size:.68rem;letter-spacing:.04em;color:var(--tenue)}
.kpis-mini b{font-size:1.15rem}
.kpis-mini > div.alerta{border-color:#f0c36d;background:#fffaf0}
/* Lista desplegable con buscador en un solo campo */
select.combo-oculto{display:none!important}
input.combo-inp{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23808080' stroke-width='1.6'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:17px;padding-right:38px}

/* ============================================================ 1.2.0 · Ventas, gastos y órdenes de compra */
.segmento.tipo-doc{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.segmento label b{display:block;font-weight:600}
.metodo-pago .segmento{max-width:640px}
.mini-seg{display:flex;gap:6px;margin-bottom:6px}
.mini-seg label{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border:1px solid var(--linea);border-radius:999px;font-size:.82rem;cursor:pointer;margin:0;position:static;text-transform:none;letter-spacing:0;color:var(--tinta)}
.mini-seg label:has(input:checked){border-color:var(--azul);background:var(--azul-claro);color:var(--azul-osc)}
.mini-seg input{width:auto;height:auto;margin:0}
.campo-receptor > label{display:block}
table.conceptos-venta td{vertical-align:top}
table.conceptos-venta td.prod{min-width:260px}
.fila-info{font-size:.76rem;margin-top:4px;line-height:1.4}
.desc-variable{margin-top:6px}
td.acc-fila{white-space:nowrap;text-align:right}
td.acc-fila .btn-icono{width:30px;height:30px}
.btn-icono.on{background:var(--azul-claro);color:var(--azul-osc)}
[data-btn]:hover{background:var(--azul-claro)!important;color:var(--azul-osc)!important}
tr.fila-extra > td{padding-top:0;border-top:0}
tr.fila-extra .extra{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;font-size:.85rem}
tr.fila-extra .extra[hidden]{display:none}
tr.fila-extra .extra select{width:auto;height:34px}
tr.fila-extra .extra textarea{width:100%;min-height:54px}
tr.fila-extra:not(:has(.extra:not([hidden]))) > td{padding:0}
.chip{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76rem;padding:2px 7px;border-radius:4px;background:#f1f3f4;color:var(--oxford);margin:1px 2px}
.btn-agregar-fila{margin-top:14px}
.info-cliente{margin:4px 0 16px;padding:10px 14px;border-radius:var(--radio);background:#f7fbfd;border:1px solid #d6eef8;font-size:.86rem;line-height:1.5}
.autoriza{margin:16px 0;padding:14px 16px;border:1px solid #f0c36d;background:#fffaf0;border-radius:var(--radio)}
.autoriza-tit{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:.9rem}
.autoriza .ic{width:18px;height:18px}
.metodo-pago{margin-top:22px;padding-top:18px;border-top:1px solid var(--linea)}
.pagos-venta{margin-top:6px;padding:14px 16px;border:1px solid var(--linea);border-radius:var(--radio);background:#fcfcfc}
.pagos-venta.inactivo{opacity:.55}
.pagos-venta.inactivo table{pointer-events:none}
.pagos-tit{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}
.pagos-venta select,.pagos-venta input{height:38px}
.apartado{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;margin:4px 0 12px}
.apartado .campo{margin:0;min-width:160px}
select.solo-lectura{background:#f4f4f4;cursor:not-allowed}
.acciones-menu > button.btn{width:auto;height:44px;padding:0 16px;gap:8px;background:var(--azul);color:#fff}
.acciones-menu .menu a.peligro{color:var(--bad)}
.coment-linea{margin-top:4px;padding:6px 8px;background:#f7f7f7;border-left:3px solid var(--azul);font-size:.84rem;border-radius:3px}
.linea-tiempo{list-style:none;margin:10px 0;padding:0 0 0 16px;border-left:2px solid var(--linea)}
.linea-tiempo li{position:relative;padding:6px 0 10px 12px;font-size:.9rem}
.linea-tiempo li::before{content:"";position:absolute;left:-22px;top:11px;width:10px;height:10px;border-radius:50%;background:var(--azul)}
.xml-previa{max-height:480px;overflow:auto;background:#1f2a31;color:#d9ecf3;padding:14px;border-radius:var(--radio);font-size:.76rem;line-height:1.45;white-space:pre}
.etq-grupo{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--tenue);margin:6px 0}
.casillas-lista{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;max-height:260px;overflow:auto}
.casillas-lista label{display:flex;align-items:center;gap:8px;margin:0;position:static;text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--tinta);cursor:pointer}
.casillas-lista input{width:auto;height:auto;margin:0}
.series-elegir{max-height:320px;margin-top:10px}
.recorta{max-width:320px}
.ficha-doc a{color:inherit}
.sub-tit.con-herr,h4.sub-tit.con-herr{display:flex;align-items:center;justify-content:space-between;gap:10px}
@media (max-width:640px){ table.conceptos-venta td.prod{min-width:180px} .segmento.tipo-doc{grid-template-columns:1fr} }
tr.tachado td{color:var(--tenue)}
tr.tachado td:not(:last-child){text-decoration:line-through}
.oc-elegir{max-width:520px}

/* ============================================================ 1.2.1 · Refinamiento visual (observaciones de Alejandro) */
:root{
  --azul-osc:#32CAFE;                 /* textos azules: #32CAFE en todo el sistema */
  --lateral:228px; --lat-fondo:#F3F3F3; --lat-linea:#E5E5E5;
  --alto:36px;                        /* altura única de botones, íconos de acción y filtros */
  --campo:40px;                       /* altura de los campos de captura */
  --linea:#E5E5E5;
}
body{background:#fff;font-size:14px}
a{color:var(--azul)}
/* Barra superior: logo único (con CONNECT integrado) centrado sobre el menú lateral */
.barra .marca{width:var(--lateral);justify-content:center;padding:0 10px;gap:0}
.barra .marca img.logo{height:40px;width:auto;max-width:100%}
.barra .marca img.iso,.barra .marca .sep,.barra .marca .connect{display:none!important}
.barra .hamb{margin-left:8px;padding:6px}
.barra .hamb svg{width:22px;height:22px}
.barra .der{gap:8px}
.barra .icono{width:34px;height:34px;border-radius:6px}
.barra .icono svg{width:17px;height:17px;flex-basis:17px}
.barra .icono .cuenta{top:-4px;right:-4px;min-width:16px;height:16px;font-size:.62rem;padding:0 4px}
.barra .hola{font-size:.8rem;padding:0 10px 0 4px}
.barra .hola small{font-size:.68rem}
.barra .engrane{width:62px}
.barra .engrane svg{width:22px;height:22px}
/* Menú lateral: fondo #F3F3F3, divisores #E5E5E5, letra más chica */
.lateral{width:var(--lateral);background:var(--lat-fondo);border-right:1px solid var(--lat-linea);padding:6px 0 24px}
.lateral > a,.lateral > div{margin:0 12px;border-bottom:1px solid var(--lat-linea)}
.lateral > :last-child{border-bottom:0}
.lateral a,.lateral button.grupo{gap:10px;padding:9px 6px;font-size:.84rem;color:var(--oxford)}
.lateral svg.ic{width:17px;height:17px;flex-basis:17px}
.lateral .flecha{width:14px!important;height:14px!important;flex-basis:14px!important;margin-left:auto}
.lateral a:hover,.lateral button.grupo:hover{background:none;color:var(--azul)}
.lateral a.on,.lateral button.grupo.on{color:var(--azul)}
.lateral .sub{padding:0 0 6px}
.lateral .sub a{padding:6px 6px 6px 28px;font-size:.8rem}
.lateral .sub a::before{left:19px}
.lateral .sub a.mas{padding:6px 4px 6px 8px;font-size:1.05rem}
.lateral .sub .it.prox,.lateral .it.prox{padding:5px 4px 5px 28px;font-size:.78rem}
/* Contenido a todo el espacio: sin tarjeta «flotante», sin márgenes duplicados */
.contenido{margin-left:var(--lateral);padding:var(--barra) 0 calc(var(--pie) + 16px);background:#fff}
body.menu-oculto .contenido{margin-left:0}
.contenido > .panel,.contenido > .card{border-radius:0;box-shadow:none;margin:0;border-bottom:1px solid var(--linea)}
.contenido > .panel:last-child,.contenido > .card:last-child{border-bottom:0}
.contenido > .card{padding:20px 24px}
.contenido > :not(.panel):not(.card):not(.migas):not(.modal):not(script){margin-left:24px;margin-right:24px}
.contenido > .flash:first-of-type,.contenido > .migas + .flash{margin-top:12px}
.contenido > .cuadros,.contenido > .kpis,.contenido > .grid{margin-top:16px}
.panel .card,.panel-cuerpo .card{box-shadow:none;border:1px solid var(--linea)}
.kpi{box-shadow:none;border:1px solid var(--linea);border-top:3px solid var(--azul)}
.cuadro{box-shadow:none;border:1px solid var(--linea)}
.cuadro:hover{border-color:var(--azul)}
/* Migas de pan */
.migas{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;padding:10px 24px 0;font-size:.74rem;color:var(--tenue);line-height:1.4}
.migas a{color:var(--tenue);text-decoration:none}
.migas a:hover{color:var(--azul)}
.migas .sep{display:inline-flex;color:#b8b8b8}
.migas .sep svg.ic{width:11px;height:11px;flex-basis:11px}
.migas .aqui{color:var(--oxford)}
/* Encabezado de pantalla: título + acciones a la derecha; «Filtros» en la línea de abajo */
.panel-cab{padding:12px 24px 14px;min-height:0;gap:10px 12px;border-bottom:1px solid var(--linea)}
.panel-cab h1,.panel-cab h2{font-size:1.35rem;color:var(--azul)}
.panel-cab.con-filtros h1{flex:1 1 auto}
.panel-cab .herr-acc{margin-left:auto;display:flex;align-items:center;gap:8px}
.barra-filtros{display:flex;align-items:center;gap:10px;flex:1 1 100%;min-width:0;margin-top:2px}
.filtros-etq{flex:0 0 auto;padding-left:10px;border-left:3px solid var(--azul);font-size:.82rem;color:var(--oxford);line-height:1.6}
.barra-filtros form.herr{flex:1 1 auto;display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}
.barra-filtros form.herr input,.barra-filtros form.herr select{height:var(--alto);min-height:var(--alto);font-size:.8rem;padding:0 10px;width:auto;min-width:0;flex:0 1 190px;max-width:230px;border-radius:6px}
.barra-filtros form.herr input[type=search]{flex:1 1 170px;max-width:260px}
.barra-filtros form.herr input[type=date]{flex:0 1 132px;padding:0 6px}
.barra-filtros .btn-buscar{flex:0 0 var(--alto)}
@media (max-width:900px){ .barra-filtros{flex-wrap:wrap} .filtros-etq{display:none} .barra-filtros form.herr input,.barra-filtros form.herr select,.barra-filtros form.herr input[type=search]{max-width:none;flex:1 1 140px} }
/* Botones: todos de la misma altura; el ancho depende del texto */
.btn,.btn.chico,.btn-agregar,.herr-acc .btn-agregar,.acciones-menu > button.btn{height:var(--alto);min-height:var(--alto);padding-top:0;padding-bottom:0;font-size:.84rem;line-height:1}
.btn{padding:0 16px;gap:6px}
.btn.chico{padding:0 12px;font-size:.8rem}
.btn svg.ic{width:15px;height:15px;flex-basis:15px;stroke-width:1.8}
.btn svg.ic + span,.btn span + svg.ic{margin:0}
.btn-agregar,.herr-acc .btn-agregar{padding:0 16px 0 3px;gap:8px}
.btn-agregar .circ,.herr-acc .btn-agregar .circ{width:calc(var(--alto) - 8px);height:calc(var(--alto) - 8px);font-size:1.15rem}
.btn-buscar,.barra-herr .btn-buscar,.kebab > button,.herr-acc .kebab > button{width:var(--alto);height:var(--alto);border-radius:6px}
.btn-buscar svg,.kebab > button svg{width:16px;height:16px}
.fila-menu > button{height:28px;width:36px;font-size:.95rem}
/* Campos más bajos y etiquetas en píldora (se ven igual en campos activos y bloqueados) */
input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=tel],input[type=search],input[type=url],select{min-height:var(--campo);height:var(--campo);padding:0 12px;font-size:14px}
textarea{font-size:14px;padding:10px 12px;min-height:84px}
.campo{margin:10px 0 16px}
.grid > .campo{margin-bottom:10px}
.campo > label:first-child{top:-9px;left:10px;padding:0 8px;background:#fff;border:1px solid var(--borde);border-radius:999px;font-size:.64rem;line-height:15px;letter-spacing:.04em}
.campo > label:first-child.req::after{content:" *"}
.dato,.radios{min-height:var(--campo)}
.descuento select,.descuento input,.iva-compra select,select.iva-partida,.pagos-venta select,.pagos-venta input{height:34px;min-height:34px}
.campo > input[type=file]{height:auto;padding:14px 12px 8px}
@media (max-width:640px){ input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=tel],input[type=search],input[type=url],select,textarea{font-size:16px} }
/* Secciones siempre separadas por una línea */
.form-seccion{font-size:.98rem;color:var(--azul)}
.sub-tit{color:var(--azul)}
.panel-cuerpo > section + section,.panel-cuerpo > .seccion + .seccion{margin-top:20px;padding-top:20px;border-top:1px solid var(--linea)}
.maestro .detalle{border-left:1px solid var(--linea)}
.pestanas{border-bottom:1px solid var(--linea)}
.pestanas a,.pestanas button{font-size:.86rem;padding:8px 14px}
th{font-size:.8rem}
td{font-size:.86rem}
th,td{padding:10px 10px}
h1{color:var(--azul)}
/* Móvil: mismo logo, más chico */
@media (max-width:900px){ .contenido{margin-left:0} }
@media (max-width:640px){
  .barra .marca{width:auto;padding:0 6px 0 10px}
  .barra .marca img.logo{display:block!important;height:30px}
  .barra .engrane{width:48px}
  .migas{padding:8px 14px 0}
  .contenido > :not(.panel):not(.card):not(.migas):not(.modal):not(script){margin-left:14px;margin-right:14px}
  .contenido > .card{padding:14px}
  .panel-cab{padding:10px 14px 12px}
}
@media print{ .migas{display:none!important} }

/* ---------------- 1.2.1 · Panel de inicio: 4 columnas en computadora, 1 en celular */
.tablero{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:16px 24px 24px;align-items:start}
.col-inicio{border:1px solid var(--linea);border-radius:10px;background:#fff;padding:0 16px 14px;min-width:0;min-height:320px}
.col-inicio > header{display:flex;align-items:center;gap:8px;min-height:52px;padding:8px 0;margin-bottom:10px;border-bottom:1px solid var(--linea)}
.col-inicio > header h2{margin:0;font-size:1.2rem;font-weight:300;color:var(--oxford)}
.col-inicio > header .btn-icono{margin-left:auto;color:var(--tenue);width:30px;height:30px}
.col-inicio > header .btn-icono:hover{background:var(--azul-claro);color:var(--azul)}
.col-inicio .vacio{padding:24px 0;font-size:.85rem}
.accesos{display:grid;grid-template-columns:1fr 1fr}
.acceso-r{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:104px;padding:12px 6px;text-align:center;text-decoration:none;color:var(--oxford);font-size:.82rem;line-height:1.3;border-bottom:1px solid var(--linea);border-radius:0;transition:background .12s,color .12s}
.acceso-r:nth-child(odd){border-right:1px solid var(--linea)}
.acceso-r:nth-last-child(-n+2):nth-child(odd),.acceso-r:last-child{border-bottom:0}
.acceso-r svg.ic{width:30px;height:30px;flex-basis:30px;stroke:var(--azul);stroke-width:1.2}
.acceso-r:hover{background:#f7fcff;color:var(--azul)}
.cuenta-acc{display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:#eee;color:var(--tenue);font-size:.7rem;font-weight:600;line-height:18px}
.cuenta-acc.con{background:var(--azul);color:#fff}
.promo{display:grid;grid-template-columns:78px minmax(0,1fr);gap:12px;padding:0 0 14px;margin-bottom:14px;border-bottom:1px solid var(--linea)}
.promo:last-child{border-bottom:0;margin-bottom:0}
.promo img,.promo .sin-imagen{width:78px;height:78px;border-radius:6px;object-fit:cover;background:#bdbdbd;color:#f5f5f5;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.78rem;line-height:1.2}
.promo h3,.aviso-i h3{margin:0 0 4px;font-size:1.02rem;font-weight:400;color:var(--azul);display:flex;align-items:flex-start;gap:6px}
.aviso-i h3{color:var(--tinta);font-weight:500}
.promo p,.aviso-i p{margin:0;font-size:.8rem;line-height:1.45;color:var(--oxford);overflow-wrap:anywhere}
.letra-chica{display:block;margin-top:6px;text-align:right;font-size:.64rem;line-height:1.35;color:var(--tenue)}
.editar-pub{margin-left:auto;color:var(--tenue);display:inline-flex}
.editar-pub svg.ic{width:14px;height:14px;flex-basis:14px}
.editar-pub:hover{color:var(--azul)}
.aviso-i{padding:0 0 14px;margin-bottom:14px;border-bottom:1px solid var(--linea)}
.aviso-i:last-child{border-bottom:0;margin-bottom:0}
.aviso-i img{width:100%;max-height:180px;object-fit:contain;border-radius:6px;margin:4px 0 8px}
.firma-aviso{margin-top:8px;text-align:right;font-size:.68rem;color:var(--tenue);line-height:1.3}
.recordatorios{list-style:none;margin:0;padding:0}
.recordatorios li{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--linea);font-size:.86rem;color:var(--tinta)}
.recordatorios li span{flex:1;min-width:0;overflow-wrap:anywhere}
.recordatorios form{margin:0}
.recordatorios .btn-icono{color:var(--azul)}
.nuevo-rec{display:flex;gap:6px;align-items:center;margin:10px 0 6px}
.nuevo-rec input{flex:1;min-width:0;height:34px;min-height:34px;font-size:.84rem}
.nuevo-rec .btn-icono{color:var(--azul);flex:0 0 34px}
.nuevo-rec .btn-icono:hover,.recordatorios .btn-icono:hover{background:var(--azul-claro);color:var(--azul)}
.orden-accesos{list-style:none;margin:0;padding:0;max-height:52vh;overflow:auto}
.orden-accesos li{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--linea)}
.orden-accesos label{flex:1;display:flex;align-items:center;gap:8px;margin:0;position:static;font-size:.9rem;color:var(--tinta);text-transform:none;letter-spacing:0;cursor:pointer}
.orden-accesos input{width:auto;height:auto;margin:0}
.orden-accesos svg.ic{stroke:var(--azul)}
.orden-accesos .mover{display:flex}
.orden-accesos .mover .btn-icono{width:28px;height:28px}
.orden-accesos .mover .btn-icono:hover{background:var(--azul-claro);color:var(--azul)}
svg.ic.rot90{transform:rotate(90deg)}
@media (max-width:1200px){ .tablero{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:640px){ .tablero{grid-template-columns:1fr;padding:12px 14px 20px} .col-inicio{min-height:0} }

/* ---------------- 1.2.1 · Envíos y entregas */
.kpis-mini > a{display:flex;flex-direction:column;padding:10px 14px;border:1px solid var(--linea);border-radius:var(--radio);background:#fcfcfc;min-width:0;text-decoration:none;color:inherit}
.kpis-mini > a:hover{border-color:var(--azul)}
.kpis-mini > a.alerta{border-color:#f0c36d;background:#fffaf0}
.segmento.formas-entrega{grid-template-columns:repeat(5,minmax(0,1fr))}
.segmento.formas-entrega label{padding:10px 8px;font-size:.84rem;letter-spacing:.02em}
@media (max-width:900px){ .segmento.formas-entrega{grid-template-columns:repeat(2,minmax(0,1fr))} }
.nota-modalidad p{margin:18px 0 0}
.caja-guia{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--linea);border-radius:var(--radio);background:#fcfcfc;margin-bottom:8px}
.caja-guia > svg.ic{width:34px;height:34px;flex-basis:34px;stroke:var(--azul)}
.caja-guia > div{flex:1 1 220px}
.caja-guia .acciones{flex:0 0 auto}
.caja-guia.pendiente{border-color:#f0c36d;background:#fffaf0}
.guia-num{font-size:1.25rem;letter-spacing:.04em}
.entregado{display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding:14px 16px;border:1px solid #bfe3cc;border-radius:var(--radio);background:#f4fbf6}
.firma-img{max-width:280px;max-height:120px;background:#fff;border:1px solid var(--linea);border-radius:6px;padding:4px}
.flujo.flujo-3{grid-template-columns:repeat(3,minmax(0,1fr));max-width:620px}
.esperando{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:.84rem;animation:parpadeo 1.6s ease-in-out infinite}
@keyframes parpadeo{50%{opacity:.55}}
.aviso-wa{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.aviso-wa span{flex:1 1 240px}
.lienzo-firma{position:relative;height:220px;border:2px dashed var(--borde);border-radius:10px;background:#fafafa;margin:8px 0 16px}
.lienzo-firma canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}
.lienzo-firma .guia-firma{position:absolute;left:0;right:0;bottom:10px;text-align:center;color:#b3b3b3;pointer-events:none;font-size:.9rem}
.lienzo-firma.con-firma .guia-firma{display:none}
.lienzo-firma [data-firma-borrar]{position:absolute;top:8px;right:8px}
/* Ventana de guías pendientes */
.modal-guias .caja{max-width:860px;border-top:6px solid #f5a623}
.alerta-guias{gap:12px;background:#fffaf0}
.alerta-guias h2{font-size:1.15rem!important;color:#9a6200;letter-spacing:.02em}
.alerta-guias svg.ic{width:28px;height:28px;flex-basis:28px;stroke:#9a6200}
.modal-guias .caja-pie form{margin:0 auto 0 0}
.acciones-menu > button.btn,.herr-acc .acciones-menu > button.btn,.acciones-cab .acciones-menu > button.btn{width:auto;padding:0 16px;gap:8px}
.acciones-menu > button.btn svg{width:15px;height:15px}
/* 1.2.1 · Perfil de la empresa: logo de documentos y editor de formatos PDF */
.logo-docs{display:flex;flex-wrap:wrap;gap:20px;align-items:center;max-width:900px}
.logo-docs .muestra{padding:14px 18px;border:1px solid var(--linea);border-radius:var(--radio);background:#fff;min-width:220px;min-height:84px;display:flex;align-items:center}
.logo-docs > div:last-child{flex:1 1 320px}
textarea.editor-html{width:100%;min-height:420px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;white-space:pre;tab-size:2}
.barra-filtros form.herr select{flex:1 1 120px;max-width:200px}
.barra-filtros form.herr input[type=search]{flex:1.4 1 140px;max-width:280px}
.barra-filtros form.herr input[type=date]{flex:0 1 128px}
@media (max-width:900px){ .panel-cab > h1{flex:1 1 100%} .panel-cab > .herr-acc{order:0;width:auto;margin-left:auto;justify-content:flex-end;flex-wrap:wrap} }
.campo > input[type=hidden]:first-child + label{position:absolute;top:-9px;left:10px;z-index:2;margin:0;padding:0 8px;background:#fff;border:1px solid var(--borde);border-radius:999px;font-size:.64rem;line-height:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--tenue);display:inline-block}

/* ================= 1.3.0 · Observaciones de la 1.2.1 ================= */
/* Línea a todo lo ancho entre el encabezado (título + botones) y el área de filtros */
.panel-cab > .barra-filtros{margin:6px -24px 0;padding:12px 24px 0;border-top:1px solid var(--linea);flex-basis:calc(100% + 48px)}
@media (max-width:640px){ .panel-cab > .barra-filtros{margin:6px -14px 0;padding:10px 14px 0;flex-basis:calc(100% + 28px)} }
.card > .barra-filtros{margin-top:10px;padding-top:12px;border-top:1px solid var(--linea)}
/* EFOS y timbrado */
.flash.efos{display:flex;gap:10px;align-items:flex-start}
.flash.efos svg.ic{flex:0 0 20px;width:20px;height:20px;margin-top:2px}
.pasos-sandbox{margin:10px 0 16px;padding-left:20px;line-height:1.6;max-width:900px}
.pasos-sandbox li{margin-bottom:10px}
.pasos-sandbox input[type=file]{max-width:220px}
.etq-archivo{display:inline-flex;flex-direction:column;gap:4px;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--tenue,#6b7780);margin-right:12px}
.etq-archivo input{font-size:.85rem;text-transform:none;letter-spacing:0}

/* ===== 1.3.1 · Captura de partidas como Bind: el renglón deja de ser buscador al elegir ===== */
table.conceptos-venta td.cod{white-space:nowrap;padding-top:14px;color:var(--oxford)}
table.conceptos-venta td.uni{padding-top:14px;color:var(--tenue,#6b7780)}
table.conceptos-venta td.prod{min-width:300px;width:46%}
.concepto-txt{padding-top:6px;line-height:1.35;color:var(--oxford)}
.concepto-txt [data-nombre]{cursor:default}
tr[data-producto*='"variable":1'] .concepto-txt [data-nombre]{cursor:text;border-bottom:1px dashed #b9c6ce}
.ver-ficha{display:inline-flex;vertical-align:-3px;margin-left:6px;padding:1px 5px;border:1px solid #9fd8a9;border-radius:5px;color:#2e9a47;background:#effaf1}
.ver-ficha svg{width:15px;height:15px}
.concepto-txt + .desc-variable,.prod .desc-variable{margin-top:4px;width:100%}
.prod .fila-info{margin-top:3px;font-size:.8rem}
.prod .fila-info .verde{color:#2e9a47;font-weight:600}
.acc-fila .btn-icono.quitar{color:#d9534f}
.agregar-partida{display:block;width:100%;margin:10px 0 4px;padding:12px;border:2px dashed #c9d3d9;border-radius:8px;background:#fff;color:var(--oxford);font:inherit;font-size:1.05rem;cursor:pointer;transition:border-color .15s,color .15s}
.agregar-partida:hover,.agregar-partida:focus{border-color:#e05252;color:#2b2b2b;outline:0}
.sugerencias li u{text-decoration:underline;text-underline-offset:2px}
@media (max-width:640px){ table.conceptos-venta td.prod{min-width:200px} }

/* ============================================================ 1.3.2 */
label.switch.resaltar, label.resaltar { outline: 2px solid var(--azul, #32CAFE); outline-offset: 4px; border-radius: 8px; transition: outline-color .3s; }
.modal.obligatoria .caja-cab h2 { font-size: 1.15rem; line-height: 1.35; }
.aviso-txt { color: #9a6700; }
.lista-grupos td.acc-iconos { width: 1%; white-space: nowrap; text-align: right; vertical-align: middle; }
.lista-grupos td.acc-iconos form { display: inline; }
.lista-grupos td.acc-iconos .btn-icono { opacity: .55; }
.lista-grupos tr:hover td.acc-iconos .btn-icono, .lista-grupos tr.sel td.acc-iconos .btn-icono { opacity: 1; }
.tit-detalle { font-family: var(--f-titulo); font-weight: 400; color: var(--azul); font-size: 1.2rem; margin: 0 0 14px; }
.renombrar-grupo { border-bottom: 1px solid #E5E5E5; padding-bottom: 14px; margin-bottom: 16px; }
.lista-grupos .btn-icono:not(.peligro):hover { background: #e9f8fe; color: var(--azul); }
.credito-campo input.bloqueado, .credito-campo input[readonly] { background: #f6f6f6; color: #555; }
.vincular-dirs .casilla { display: flex; gap: 8px; align-items: flex-start; padding: 6px 0; border-bottom: 1px solid #f0f0f0; }
.vincular-dirs .casilla small { display: block; }
.grupo-dirs { margin-bottom: 18px; }
.grupo-dirs .sub-tit { display: flex; align-items: center; gap: 10px; }
.grupo-dirs .sub-tit::after { content: ""; flex: 1; border-top: 1px solid #E5E5E5; }
.grupo-dirs .mas-dir { width: 26px; height: 26px; order: 2; }
.grupo-dirs .mas-dir:hover { background: #e9f8fe; color: var(--azul); }
.tabla-dirs th { font-weight: 400; color: #777; }

/* iPad / iPhone: el listón gris del pie queda fijo al hacer scroll (sin franja blanca debajo) */
html{background:linear-gradient(to bottom,var(--azul) 0,var(--azul) 50%,var(--oxford) 50%,var(--oxford) 100%);overscroll-behavior-y:none}
body{overscroll-behavior-y:none;min-height:100vh;min-height:100dvh}
.pie{height:calc(var(--pie) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);-webkit-transform:translateZ(0);transform:translateZ(0);will-change:transform}
.lateral{bottom:calc(var(--pie) + env(safe-area-inset-bottom,0px))}

/* Captura de ventas (1.3.2, maqueta de Alejandro): Datos generales en 5 columnas, la primera más ancha */
.grid-venta{display:grid;grid-template-columns:minmax(0,2fr) repeat(4,minmax(0,1fr));gap:14px 16px;align-items:start}
.grid-venta .campo{margin-bottom:0;min-width:0}
.grid-venta input[readonly],.tipo-entrega select:disabled{background:#f4f4f4;color:#444}
.grid-venta .ayuda{font-size:.72rem}
.info-cliente{margin-top:16px}
.segmento.tipo-doc{margin:4px 0 22px}
.seg-metodo{grid-template-columns:repeat(2,minmax(0,300px));max-width:none}
.tipo-entrega{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:end}
.tipo-entrega .segmento.formas-entrega{grid-column:1 / span 3;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:0}
.tipo-entrega .segmento.formas-entrega label{padding:12px 8px;font-size:.9rem}
.tipo-entrega .campo{margin-bottom:0}
.entrega-nuevo{margin-top:12px}
.extra-surtido{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.extra-surtido input{max-width:320px}
/* iPad horizontal (≈1024–1366 px): 3 columnas para que nada se empalme (fecha de entrega / orden de compra) */
@media (max-width:1366px){ .grid-venta{grid-template-columns:repeat(3,minmax(0,1fr))} .grid-venta .campo-receptor{grid-column:span 2} }
@media (max-width:1100px){ .tipo-entrega{grid-template-columns:repeat(2,minmax(0,1fr))} .tipo-entrega .segmento.formas-entrega{grid-column:1 / -1} }
@media (max-width:900px){ .grid-venta{grid-template-columns:repeat(2,minmax(0,1fr))} .grid-venta .campo-receptor{grid-column:1 / -1} }
@media (max-width:640px){ .grid-venta,.tipo-entrega{grid-template-columns:1fr} .seg-metodo{grid-template-columns:1fr 1fr} .tipo-entrega .segmento.formas-entrega{grid-template-columns:1fr 1fr 1fr} }
.metodo-pago{margin-top:0;padding-top:0;border-top:0}
.grupo-dirs .sub-tit{border-bottom:0;padding-bottom:0;margin:22px 0 4px}
.tipo-entrega ~ div > .grid{margin-top:14px}

/* ============================================================ 1.4.0 */
/* Carga de XML: zona para arrastrar */
.zona-xml{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 16px;border:2px dashed var(--azul);border-radius:10px;background:var(--azul-claro);color:var(--azul-osc);text-align:center;cursor:pointer;position:relative}
.zona-xml svg.ic{width:30px;height:30px}
.zona-xml.encima{background:#d3f1fd;border-style:solid}
.zona-xml input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.zona-xml [data-zona-lista]{font-size:.85rem;word-break:break-all}
.zona-xml-mini{display:flex;gap:10px;align-items:center;padding:10px 14px;margin-bottom:16px;border:1px dashed var(--azul);border-radius:8px;background:var(--azul-claro);color:var(--azul-osc)}
/* Panel de totales de gastos */
.totales-gasto td{vertical-align:middle}
.totales-gasto input[type=text]{width:150px;text-align:right;padding:6px 8px}
.totales-gasto input[readonly]{background:#f6f6f6;border-color:transparent}
.totales-gasto select.tipo-ret{max-width:170px;padding:4px 6px;font-size:.85rem;margin-left:6px}
.totales-gasto tr.total input{font-family:var(--f-titulo);font-size:1.1rem;color:var(--azul-osc)}
button.enlace{background:none;border:0;padding:0;color:var(--azul-osc);cursor:pointer;font:inherit;font-weight:600}
tr.fila-ajuste td{background:#fbfbfb;font-size:.92rem}
.atencion-nuevo{background:var(--azul-claro);border-radius:8px;padding:8px 14px;margin:0 0 12px}
/* Listado + panel de detalle de Finanzas */
.kpi-tarjetas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}
.kpi-tarjetas a{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;border:1px solid var(--linea);border-radius:10px;background:#fafafa;color:var(--oxford-2);text-decoration:none;font-size:1.05rem}
.kpi-tarjetas a b{font-weight:500;font-size:1.05rem}
.kpi-tarjetas a.on{border:2px solid var(--azul);background:var(--azul-claro)}
@media (max-width:700px){.kpi-tarjetas{grid-template-columns:repeat(2,minmax(0,1fr))}}
.selector-cc{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.selector-cc .cc-txt{font-weight:600;color:var(--azul-osc)}
.selector-cc .auto{flex:1;min-width:220px}
.formas-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 16px;max-height:220px;overflow:auto;padding:8px;border:1px solid var(--linea);border-radius:8px}
.detalle .dato{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:7px 0;min-height:0;border:0;border-bottom:1px solid #eee;border-radius:0;background:none;font-size:.92rem}
.detalle .dato > span{text-align:right}
.detalle .dato small{color:var(--tenue)}
.pin-caja{display:flex;gap:8px;justify-content:center;margin:14px 0}
.pin-caja input{width:44px;height:52px;text-align:center;font-size:1.4rem}
.tabla-mini td,.tabla-mini th{padding:6px 8px;font-size:.9rem}
.grupo-cliente{border:1px solid var(--linea);border-radius:10px;padding:10px 14px;margin:0 0 12px}
.grupo-cliente h4{margin:0 0 6px;color:var(--azul-osc)}
.grid-linea{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,2fr) auto;gap:8px 16px;align-items:end}
.grid-linea .campo{margin-bottom:8px}
@media (max-width:760px){.grid-linea{grid-template-columns:1fr}}
.segmento a.opcion-grande{display:flex;flex-direction:column;gap:6px;border:2px solid var(--linea);border-radius:var(--radio);padding:26px 14px;text-align:center;color:var(--tinta);text-decoration:none;background:#fff}
.segmento a.opcion-grande b{font-size:1.2rem;color:var(--azul-osc);letter-spacing:.06em}
.segmento a.opcion-grande:hover{border-color:var(--azul);background:var(--azul-claro)}
@media (max-width:700px){.panel-cab .herr-acc{flex:1 1 100%;flex-wrap:wrap;justify-content:flex-start;row-gap:8px;margin-left:0}.herr-acc .btn-agregar.sec{padding-right:12px}}

/* 1.5.1: botón Guardar también al final de los documentos */
.pie-guardar{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:16px;border-top:1px solid var(--linea)}
@media (max-width:700px){.pie-guardar{justify-content:stretch}.pie-guardar .btn{flex:1}}

/* 1.5.1: recepción con XML */
.xml-carga{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px dashed var(--azul);border-radius:10px;padding:10px 14px;margin:0 0 14px;color:var(--tinta)}
.xml-carga span{flex:1;min-width:200px}
.xml-concepto{font-size:12.5px;line-height:1.35;margin-bottom:5px;padding:5px 8px;border-radius:8px;background:#f1fbff;border-left:3px solid var(--azul)}
.xml-concepto.sin-equiv{background:#fff6ec;border-left-color:#e08a1e}
.xml-concepto .xml-acciones{display:block;margin-top:2px}
.verde{color:#1c8a4a}
/* 1.5.1: campanita con avisos recientes */
.menu-avisos{width:min(380px,calc(100vw - 20px));max-height:min(75vh,640px);overflow:auto}
.menu-avisos a.notif{display:flex;gap:10px;align-items:flex-start;white-space:normal}
.menu-avisos a.notif span{display:flex;flex-direction:column;gap:1px;min-width:0}
.menu-avisos a.notif b{font-weight:600;font-size:.86rem;line-height:1.25}
.menu-avisos a.notif small{font-size:.76rem;line-height:1.3;overflow-wrap:anywhere}
.menu-avisos a.notif.nueva{background:#eaf8ff}
.menu-avisos a.notif.nueva b::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--azul);margin-right:6px;vertical-align:middle}
.barra .icono .cuenta.nueva{background:var(--azul)}
.barra .icono .cuenta[hidden]{display:none}

/* 1.5.1: textos largos en insignias y columnas de rejilla que no deben ensanchar la página en el celular */
.badge.largo{white-space:normal;text-align:left;line-height:1.35;height:auto;padding-top:4px;padding-bottom:4px}
.grid > *{min-width:0}
.acciones{flex-wrap:wrap}

.caja-dash{border:1px solid var(--linea);border-radius:12px;padding:14px 16px;margin:0 0 18px}
.caja-dash h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}

/* ===================== 1.6.0 · Correo integrado ===================== */
.lateral a .nl-menu{margin-left:auto;background:var(--azul);color:#fff;border-radius:999px;font-size:.7rem;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;font-weight:600}
.correo-panel{padding:0;overflow:hidden}
.correo-app{display:grid;grid-template-columns:230px minmax(300px,380px) 1fr;height:calc(100vh - var(--barra) - var(--pie) - 36px);min-height:520px}
.correo-app > *{min-width:0;overflow:auto}
.correo-carpetas{border-right:1px solid var(--linea);padding:12px 10px;background:#fafafa;display:flex;flex-direction:column;gap:2px}
.correo-carpetas a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;color:var(--tinta);text-decoration:none;font-size:.9rem}
.correo-carpetas a:hover{background:#eef8fd}
.correo-carpetas a.on,.correo-carpetas .abierta > a.cta{background:var(--azul-claro);font-weight:600}
.correo-carpetas a span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.correo-carpetas .correo-redactar{justify-content:center;color:#fff;margin-bottom:10px}
.correo-carpetas .cta i,.correo-items .cta-color,.punto-color{width:10px;height:10px;border-radius:50%;flex:0 0 10px;display:inline-block}
.correo-carpetas .fold{margin:2px 0 6px 18px;display:flex;flex-direction:column}
.correo-carpetas .fold a{padding:5px 10px;font-size:.85rem}
.correo-carpetas .nl{background:var(--azul);color:#fff;border-radius:999px;font-size:.7rem;padding:0 6px;min-width:18px;text-align:center}
.correo-carpetas .nl.err{background:var(--bad)}
.correo-carpetas .correo-admin{margin-top:auto;color:var(--tenue);font-size:.82rem}
.correo-lista{border-right:1px solid var(--linea);display:flex;flex-direction:column}
.correo-lista-cab{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--linea);position:sticky;top:0;background:#fff;z-index:2}
.correo-lista-cab b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem}
.correo-lista-cab form.en-linea{display:inline}
.correo-busca{padding:8px 12px 4px}
.correo-busca input{width:100%;box-sizing:border-box;border:1px solid var(--borde);border-radius:999px;padding:7px 14px;font:inherit;font-size:.88rem}
.correo-filtros{display:flex;gap:6px;flex-wrap:wrap;padding:6px 12px 8px;border-bottom:1px solid var(--linea)}
.correo-filtros a{font-size:.76rem;padding:3px 10px;border-radius:999px;border:1px solid var(--borde);color:var(--tinta);text-decoration:none;white-space:nowrap}
.correo-filtros a.on{background:var(--azul);border-color:var(--azul);color:#fff}
.correo-nuevos{padding:8px 12px;background:var(--azul-claro);text-align:center;font-size:.86rem}
.correo-items{list-style:none;margin:0;padding:0}
.correo-items li a{display:grid;grid-template-columns:auto 1fr auto;column-gap:8px;padding:10px 12px 10px 14px;border-bottom:1px solid #eee;color:var(--tinta);text-decoration:none;position:relative}
.correo-items li a:hover{background:#f6fbfe}
.correo-items li.sel a{background:var(--azul-claro)}
.correo-items li.nuevo a::before{content:"";position:absolute;left:4px;top:16px;width:6px;height:6px;border-radius:50%;background:var(--azul)}
.correo-items li.nuevo .de,.correo-items li.nuevo .asunto{font-weight:700}
.correo-items .cta-color{grid-row:1;grid-column:1;align-self:center}
.correo-items .de{grid-column:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}
.correo-items li a:not(:has(.cta-color)) .de{grid-column:1 / span 2}
.correo-items .hora{grid-column:3;font-size:.75rem;color:var(--tenue);white-space:nowrap}
.correo-items .asunto,.correo-items .ext,.correo-items .etqs{grid-column:1 / -1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.correo-items .asunto{font-size:.88rem}
.correo-items .ext{font-size:.8rem;color:var(--tenue)}
.correo-items .etqs{display:flex;gap:6px;align-items:center;margin-top:3px}
.correo-items .etqs:empty{display:none}
.etq-ent{font-size:.66rem;font-weight:700;letter-spacing:.03em;padding:1px 7px;border-radius:999px;background:#eef1f3;color:#4b5a63;white-space:nowrap}
.etq-ent.cliente{background:#e3f5ea;color:#17804a}.etq-ent.prospecto{background:#fff2d6;color:#9a6200}.etq-ent.proveedor{background:#ece8fb;color:#5b3fc4}.etq-ent.xml{background:#E6F7FE;color:#0B8FC4}
.estrella{color:#F29F05}
.correo-ver{background:#fff}
.correo-ver .vacio-panel{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--tenue)}
.correo-ver .vacio-panel svg{width:48px;height:48px;opacity:.4}
.correo-ver-cab{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--linea);position:sticky;top:0;background:#fff;z-index:2}
.correo-ver-cab .acc{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-left:auto}
.correo-cuerpo-grid{display:grid;grid-template-columns:1fr}
.correo-cuerpo-grid.con-lateral{grid-template-columns:minmax(0,1fr) 270px}
.correo-msg{padding:16px 20px;min-width:0}
.correo-asunto{font-size:1.25rem;margin:0 0 10px;font-weight:600;overflow-wrap:anywhere}
.correo-de{font-size:.88rem;line-height:1.5;margin-bottom:14px;overflow-wrap:anywhere}
.correo-de .fecha{float:right;font-size:.8rem}
.resp-info{display:inline-block;margin-top:6px;font-size:.8rem;padding:2px 10px;border-radius:999px}
.resp-info.ok{background:var(--ok-bg);color:var(--ok)}.resp-info.warn{background:var(--warn-bg);color:var(--warn)}
.correo-imgs{font-size:.82rem;background:#fafafa;border:1px solid var(--linea);border-radius:8px;padding:6px 10px;margin-bottom:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.correo-imgs svg{width:16px;height:16px}
iframe.correo-html{width:100%;border:0;min-height:200px;display:block}
.correo-texto{white-space:normal;overflow-wrap:anywhere;font-size:.92rem;line-height:1.55}
.correo-adjuntos{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--linea)}
.correo-adjuntos .adj{display:flex;gap:8px;align-items:center;border:1px solid var(--borde);border-radius:10px;padding:7px 12px;text-decoration:none;color:var(--tinta);max-width:100%}
.correo-adjuntos .adj span{display:flex;flex-direction:column;min-width:0;font-size:.84rem;overflow:hidden;text-overflow:ellipsis}
.correo-adjuntos .adj small{color:var(--tenue);font-size:.72rem}
.correo-adjuntos .adj.peligro{border-color:var(--bad)}
.correo-adjuntos .adj.xml{border-color:var(--azul)}
.correo-xml{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:12px;border:1.5px solid var(--azul);border-radius:12px;padding:12px 14px;background:#f5fcff;font-size:.88rem}
.correo-xml .acc{display:flex;gap:8px;flex-wrap:wrap}
.correo-hilo{margin-top:18px}
.correo-hilo a{display:block;padding:6px 0;border-bottom:1px solid #f0f0f0;font-size:.84rem;color:var(--tinta);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.correo-lateral{border-left:1px solid var(--linea);padding:16px;background:#fafafa;font-size:.86rem;min-width:0}
.correo-lateral .etq{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--tenue);margin-bottom:3px}
.correo-lateral .nombre{font-weight:700;color:var(--azul-osc);text-decoration:none;display:block;overflow-wrap:anywhere}
.correo-lateral dl.mini{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:10px 0}
.correo-lateral dl.mini dt{color:var(--tenue)}.correo-lateral dl.mini dd{margin:0;text-align:right}
.correo-lateral .botones{display:flex;gap:6px;flex-wrap:wrap}
.correo-lateral .doc{display:block;padding:4px 0;border-bottom:1px solid #eee;color:var(--tinta);text-decoration:none;font-size:.8rem}
.correo-lateral form.ligar{margin-top:14px}
.solo-movil{display:none!important}
.correo-campos .campo{position:relative}
.correo-campos .enlace.mini{position:absolute;right:10px;top:12px;font-size:.78rem;background:none;border:0;color:var(--azul-osc);cursor:pointer}
.editor{border:1px solid var(--borde);border-radius:10px;overflow:hidden;margin-top:8px}
.editor-barra{display:flex;gap:4px;align-items:center;flex-wrap:wrap;padding:6px 8px;border-bottom:1px solid var(--linea);background:#fafafa}
.editor-barra button{border:1px solid transparent;background:none;border-radius:6px;padding:3px 9px;cursor:pointer;font:inherit;font-size:.88rem}
.editor-barra button:hover{background:#eaeaea}
.editor-barra [data-borrador-estado]{margin-left:auto;font-size:.76rem}
.editor-area{min-height:260px;padding:14px;outline:none;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.editor-area.firma{min-height:90px;border:1px solid var(--borde);border-radius:10px}
.editor-area blockquote{color:#555}
.editor-area img{max-width:100%}
.docs-connect label{display:block;font-size:.86rem;padding:3px 0}
.tabla-mini.horario input{border:1px solid var(--borde);border-radius:6px;padding:3px 6px;font:inherit}
@media (max-width:1500px){ .correo-cuerpo-grid.con-lateral{grid-template-columns:1fr} .correo-lateral{border-left:0;border-top:1px solid var(--linea)} }
@media (max-width:1100px){ .correo-app{grid-template-columns:190px minmax(250px,310px) 1fr} }
@media (max-width:820px){
  .solo-movil{display:inline-flex!important}
  .correo-app{display:block;height:auto;min-height:0}
  .correo-app > *{overflow:visible}
  .correo-carpetas{display:none;border-right:0;border-bottom:1px solid var(--linea)}
  .correo-app.ver-carpetas .correo-carpetas{display:flex}
  .correo-ver{display:none}
  .correo-app.con-mensaje .correo-ver{display:block}
  .correo-app.con-mensaje .correo-lista,.correo-app.con-mensaje .correo-carpetas{display:none}
  .correo-lista{border-right:0}
  .correo-ver-cab .acc .btn{padding-left:10px;padding-right:10px}
  .correo-msg{padding:14px}
  .correo-de .fecha{float:none;display:block}
}

/* 1.6.1 · Pantalla completa que se mantiene al cambiar de módulo (marco a pantalla completa) */
html.con-marco,html.con-marco body{overflow:hidden;height:100%}
html.con-marco body>*:not(.marco-pc){display:none!important}
.marco-pc{position:fixed;inset:0;width:100%;height:100%;border:0;display:block;z-index:2147483000;background:#fff}
.icono.pc .pc-si{display:none}
.icono.pc.activo .pc-si{display:inline-block}
.icono.pc.activo .pc-no{display:none}
/* 1.6.1 · autorizar sin guardar y «Sale de» en el tipo de entrega */
.autoriza .aut-acc{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px}
.autoriza .aut-estado .ic{width:16px;height:16px;vertical-align:-3px}
.autoriza.autorizado{border-color:#9bd8b0;background:#f1fbf4}
.sale-de{margin:4px 0 10px;padding:8px 12px;border-left:3px solid var(--azul);background:var(--azul-claro);border-radius:6px}
/* 1.6.1 · iPad / iPhone: los campos de fecha y hora no se salen de su columna ni desalinean el renglón */
.grid > *{min-width:0}
.grid > .campo{align-self:start}
input[type=date],input[type=time],input[type=datetime-local],input[type=month]{min-width:0;max-width:100%;box-sizing:border-box}
@supports (-webkit-touch-callout: none) {
  input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:none;appearance:none;display:block;width:100%;height:44px;min-height:44px;line-height:20px;text-align:left}
  input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;margin:0;min-height:20px}
  .barra-filtros form.herr input[type=date],.barra-herr form.herr input[type=date]{width:auto;display:inline-block}
}
.diag-pasos{list-style:none;padding:0;margin:8px 0 0}
.diag-pasos li{padding:8px 10px;border-left:3px solid #9bd8b0;margin-bottom:6px;background:#fafafa;border-radius:4px}
.diag-pasos li.bad{border-left-color:#e05a5a;background:#fff5f5}
.editor-barra select.resp-rapidas{width:auto;margin-left:auto;max-width:220px;min-height:30px;padding:3px 8px;font-size:.85rem}
.correo-busca .enlace.mini{margin:4px 2px 0;font-size:.8rem}
.busca-av{margin-top:8px;padding:10px 12px;border:1px solid var(--linea);border-radius:10px;background:#fafafa}
.busca-av .campo{margin:8px 0 10px}
.busca-av .casilla{display:flex;gap:6px;align-items:center;font-size:.88rem;margin:4px 0}
.busca-av .acciones{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}
.busca-av label.casilla{position:static;justify-content:flex-start;text-transform:none;letter-spacing:0;color:var(--tinta);background:none;padding:0}
.busca-av label.casilla input{width:auto;min-height:0;margin:0}
.flujo.flujo-3{grid-template-columns:repeat(3,minmax(0,1fr))}
/* 1.6.3 · autorización a distancia */
.autoriza .aut-dist{margin-top:10px;padding-top:10px;border-top:1px dashed #f0c36d}
.autoriza .aut-dist .campo{max-width:520px}
.aut-espera b{font-variant-numeric:tabular-nums}
.aut-sol{border:1px solid var(--linea);border-radius:12px;padding:14px 16px;margin-bottom:12px;background:#fff}
.aut-sol h3{margin:0 0 4px;font-size:1.05rem}
.aut-sol ul{margin:8px 0;padding-left:18px}
.aut-sol .acc{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:10px}
/* 1.6.3 App en mi celular */
.app-qr{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:10px 0;padding:12px;border:1px solid var(--linea,#E3E3E3);border-radius:12px;background:#fff}
.app-qr-img svg{width:180px;height:180px;display:block}

/* 1.6.4 · CONNECT dentro de la app del celular */
.barra .app-atras svg{transform:rotate(180deg)}
body.en-app{--seguro:env(safe-area-inset-top,0px)}
body.en-app .barra{height:calc(var(--barra) + var(--seguro));padding-top:var(--seguro)}
body.en-app .lateral{top:calc(var(--barra) + var(--seguro))}
body.en-app .contenido{padding-top:calc(var(--barra) + var(--seguro) + 22px)}
body.en-app .pie{padding-bottom:env(safe-area-inset-bottom,0px)}
@media (max-width:640px){
  body.en-app .contenido{padding-top:calc(var(--barra) + var(--seguro) + 14px)}
  body.en-app .barra .der{gap:6px}
  body.en-app .barra .icono{width:38px;height:38px}
}

/* ===================================================================== 1.7.0 · CRM, zonas, estados y municipios, WhatsApp */
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}
.chip-zona{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;background:var(--azul-claro);color:var(--azul-osc);font-size:.82rem;white-space:nowrap;margin:1px 2px}
.chip-zona button{border:0;background:none;color:var(--azul-osc);cursor:pointer;font-size:1rem;line-height:1;padding:0 0 0 4px}
.geo-revisar input.combo-inp{border-color:#f0c36d;background:#fffaf0}
.casillas-lista.en-linea{flex-direction:row;flex-wrap:wrap;gap:6px 18px;max-height:none}
.zonas-lista{max-height:none}
.segmento.chico{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));max-width:560px;margin-bottom:10px}
.segmento.chico label{padding:10px;font-size:.92rem;letter-spacing:.02em}
.modal .caja.grande{max-width:880px}
.atajos{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:.8rem}
.atajos a{color:var(--azul-osc);text-decoration:none;border-bottom:1px dashed var(--azul)}
.badge.temp-caliente{background:#fde7e5;color:#c0392b}
.badge.temp-tibio{background:#fff2d6;color:#9a6200}
.badge.temp-frio{background:#e6f1fb;color:#2c6aa0}
.badge.potencial{font-weight:600;letter-spacing:.04em;min-width:22px;text-align:center}
/* Registrar acción */
.crm-paso{display:flex;align-items:center;gap:10px;font-family:var(--f-titulo);font-weight:400;color:var(--azul-osc);font-size:1.02rem;margin:18px 0 10px}
.crm-paso span{width:26px;height:26px;border-radius:50%;background:var(--azul);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem}
.crm-accion > .crm-paso:first-of-type{margin-top:4px}
.crm-tipos{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin-bottom:12px}
.crm-op{margin:0;cursor:pointer}
.crm-op input{position:absolute;opacity:0;pointer-events:none}
.crm-op span{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border:2px solid var(--linea);border-radius:var(--radio);background:#fff;font-size:.85rem;text-align:center;color:var(--oxford);min-height:74px;justify-content:center}
.crm-op span svg.ic{width:22px;height:22px}
.crm-op input:checked + span{border-color:var(--azul);background:var(--azul-claro);color:var(--azul-osc)}
.crm-op input:focus-visible + span{outline:2px solid var(--azul-osc)}
.crm-respuestas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:12px}
.crm-resp{margin:0;cursor:pointer}
.crm-resp input{position:absolute;opacity:0;pointer-events:none}
.crm-resp span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:52px;padding:8px;border:2px solid var(--linea);border-radius:var(--radio);background:#fff;font-weight:500;font-size:.9rem;color:var(--tinta)}
.crm-resp.r-no_contesto input:checked + span{border-color:#9e9e9e;background:#f2f2f2}
.crm-resp.r-no_interesa input:checked + span{border-color:var(--bad);background:var(--bad-bg);color:var(--bad)}
.crm-resp.r-interesa_despues input:checked + span{border-color:#e0a12a;background:var(--warn-bg);color:var(--warn)}
.crm-resp.r-interesa_ahora input:checked + span{border-color:var(--azul);background:var(--azul);color:#fff}
.crm-resp.r-datos_erroneos input:checked + span{border-color:var(--oxford);background:var(--oxford);color:#fff}
.crm-resp input:focus-visible + span{outline:2px solid var(--azul-osc)}
.crm-gps{margin:-4px 0 10px}
/* Ficha del lead */
.crm-resumen{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:16px;align-items:start;margin-bottom:8px}
.crm-resumen .kpis-mini{margin:0}
.crm-proxima{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--azul);border-left:5px solid var(--azul);border-radius:var(--radio);background:var(--azul-claro)}
.crm-proxima small{text-transform:uppercase;font-size:.68rem;letter-spacing:.04em;color:var(--tenue)}
.crm-proxima b{display:flex;align-items:center;gap:6px;font-weight:500;color:var(--azul-osc)}
.crm-proxima.vencida{border-color:var(--bad);background:var(--bad-bg)}
.crm-proxima.vencida b{color:var(--bad)}
.crm-proxima.mini{margin:12px 0 4px}
.crm-ficha{display:grid;grid-template-columns:1fr 280px;gap:24px;align-items:start}
.crm-datos{border-left:1px solid var(--linea);padding-left:18px}
.crm-datos .linea{display:flex;gap:8px;align-items:flex-start;margin:7px 0;color:var(--oxford);font-size:.9rem;word-break:break-word}
.crm-log li .titulo{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.crm-log li .titulo svg.ic{width:18px;height:18px}
.crm-log li.r-no_interesa::before{border-color:var(--bad)}
.crm-log li.r-interesa_despues::before{border-color:#e0a12a}
.crm-log li.r-no_contesto::before,.crm-log li.r-datos_erroneos::before{border-color:#9e9e9e}
.crm-log li.tachada .titulo,.crm-log li.tachada .detalle{text-decoration:line-through;color:var(--tenue)}
.crm-log li.tachada::before{border-color:#d0d0d0}
.crm-dato{font-size:.85rem;color:var(--oxford);margin-top:4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.crm-convertido{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.crm-convertido .acciones-linea{display:flex;gap:8px;margin-left:auto}
.btn.ico-solo svg.ic{width:18px;height:18px}
/* Agenda */
.agenda-tit{display:flex;align-items:center;gap:6px}
.agenda{display:flex;flex-direction:column;border:1px solid var(--linea);border-radius:var(--radio);overflow:hidden;margin-bottom:8px}
.agenda-it{display:grid;grid-template-columns:96px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--linea);background:#fff}
.agenda-it:last-child{border-bottom:0}
.agenda-it.vencida{background:#fff8f7;border-left:4px solid var(--bad)}
.agenda-it .cuando{color:var(--oxford);font-size:.88rem}
.agenda-it .que{display:flex;gap:10px;align-items:flex-start;min-width:0}
.agenda-it .que a{color:var(--tinta);text-decoration:none}
.agenda-it .ic-tipo{width:34px;height:34px;border-radius:50%;background:var(--azul-claro);color:var(--azul-osc);display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px}
.agenda-it .botones{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
/* Embudo */
.embudo{display:flex;flex-direction:column;gap:10px;max-width:900px}
.embudo .etapa{display:grid;grid-template-columns:200px 1fr 150px;gap:14px;align-items:center}
.embudo .et-nombre{display:flex;flex-direction:column;line-height:1.25}
.embudo .et-barra{height:30px;background:#f3f3f3;border-radius:6px;overflow:hidden}
.embudo .et-barra span{display:block;height:100%;background:var(--azul);border-radius:6px}
.embudo.motivos .et-barra span{background:var(--oxford)}
.embudo .et-num{display:flex;flex-direction:column;line-height:1.2}
.embudo .et-num b{font-family:var(--f-titulo);font-weight:400;font-size:1.25rem}
@media (max-width:900px){
  .crm-resumen,.crm-ficha{grid-template-columns:1fr}
  .crm-datos{border-left:0;border-top:1px solid var(--linea);padding:12px 0 0}
}
@media (max-width:640px){
  .agenda-it{grid-template-columns:1fr;gap:6px}
  .agenda-it .botones{justify-content:flex-start}
  .embudo .etapa{grid-template-columns:1fr 70px}
  .embudo .et-barra{grid-column:1 / -1;grid-row:2}
  .crm-tipos{grid-template-columns:repeat(3,1fr)}
  .crm-respuestas{grid-template-columns:1fr 1fr}
  .crm-convertido .acciones-linea{margin-left:0}
}
.kpis-mini a{color:inherit;text-decoration:none}
input[type=datetime-local]{width:100%;min-height:var(--campo);height:var(--campo);padding:0 12px;font:inherit;font-size:14px;border:1px solid var(--borde);border-radius:6px;background:#fff;color:var(--tinta)}
@media (max-width:640px){ input[type=datetime-local]{font-size:16px} }
@media (max-width:640px){.kpis-mini{grid-template-columns:1fr 1fr}}

/* ---------------------------------------------------------------- 1.8.0 Órdenes de servicio */
.os-tablero{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:4px 0 16px}
.os-etapa{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--linea);border-radius:var(--radio);background:#fcfcfc;min-width:0}
.os-etapa > small{text-transform:uppercase;font-size:.68rem;letter-spacing:.04em;color:var(--tenue)}
.os-chip{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:6px;text-decoration:none;color:var(--tinta);font-size:.86rem;border:1px solid transparent;background:#fff}
.os-chip b{font-family:var(--f-titulo);font-weight:400;font-size:1.05rem}
.os-chip.vacio{color:var(--tenue)} .os-chip.vacio b{color:#b5b5b5}
.os-chip.c-info{border-color:#bfe9fb} .os-chip.c-info b{color:var(--azul-osc)}
.os-chip.c-warn{border-color:#f0c36d;background:#fffaf0} .os-chip.c-warn b{color:var(--warn)}
.os-chip.c-bad{border-color:#efb1aa;background:var(--bad-bg)} .os-chip.c-bad b{color:var(--bad)}
.os-chip.c-ok{border-color:#a9dcbf;background:var(--ok-bg)} .os-chip.c-ok b{color:var(--ok)}
.os-chip:hover,.os-chip.on{border-color:var(--azul);background:var(--azul-claro)}
.segmento.os-canales{grid-template-columns:repeat(3,minmax(0,1fr))}
.os-lineas{margin:4px 0 12px}
.os-linea{display:grid;grid-template-columns:minmax(0,1fr) 90px auto auto 40px;gap:8px;align-items:center;margin-bottom:8px}
.os-linea .os-vale-sel{max-width:220px}
.os-linea .os-gar{display:flex;align-items:center;gap:6px;margin:0;position:static;text-transform:none;letter-spacing:0;font-size:.88rem;color:var(--tinta);white-space:nowrap;cursor:pointer}
.os-linea .os-gar input{width:auto;height:auto;margin:0}
.os-presupuesto tr.os-amp td{background:var(--azul-claro);color:var(--azul-osc)}
.os-presupuesto tr.tachado td{text-decoration:line-through;color:var(--tenue)}
.ok-txt{color:var(--ok)}
.os-vale{border:1px solid var(--linea);border-radius:var(--radio);padding:12px 14px;margin-bottom:12px;background:#fff}
.os-vale-cab{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:8px}
.os-firmas{display:flex;flex-wrap:wrap;gap:16px}
.os-firmas figure{margin:0}
.os-enlace .acciones-linea{display:inline-flex;flex-wrap:wrap;gap:8px;margin-left:8px}
input.corto{width:90px}
@media (max-width:900px){ .os-tablero{grid-template-columns:1fr 1fr} }
@media (max-width:640px){
  .os-tablero{display:flex;overflow-x:auto;gap:10px;padding-bottom:4px;scroll-snap-type:x mandatory}
  .os-etapa{min-width:210px;scroll-snap-align:start}
  .os-chip.vacio{display:none}
  .segmento.os-canales{grid-template-columns:1fr}
  .os-linea{grid-template-columns:1fr 80px 40px}
  .os-linea .os-vale-sel,.os-linea .os-gar{grid-column:1 / -1}
}

/* ---------------------------------------------------------------- 1.8.0 Ranking de vendedores */
.barra .icono.rk-barra{width:auto;padding:0 10px;gap:4px;color:var(--azul-osc);font-weight:700;text-decoration:none}
.barra .icono.rk-barra svg.ic{fill:#f5b301;stroke:#f5b301}
.rk-periodo{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:6px 0 16px}
.rk-tipos{display:flex;gap:6px;flex-wrap:wrap}
.rk-tipos a{padding:8px 14px;border:2px solid var(--linea);border-radius:999px;text-decoration:none;color:var(--tinta);font-size:.9rem}
.rk-tipos a.on{border-color:var(--azul);background:var(--azul-claro);color:var(--azul-osc)}
.rk-nav{display:flex;align-items:center;gap:8px}
.rk-nav b{font-family:var(--f-titulo);font-weight:400;font-size:1.05rem;color:var(--azul-osc)}
.rk-tarjeta{display:flex;align-items:center;gap:18px;padding:16px 18px;border:1px solid var(--azul);border-left:5px solid var(--azul);border-radius:var(--radio);background:var(--azul-claro);margin-bottom:16px}
.rk-estrella{position:relative;width:86px;height:86px;flex:0 0 86px;display:flex;align-items:center;justify-content:center}
.rk-estrella svg.ic{position:absolute;inset:0;width:86px;height:86px;fill:#f5b301;stroke:#e3a500;stroke-width:.8}
.rk-estrella b{position:relative;font-family:var(--f-titulo);font-weight:500;font-size:1.6rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25);margin-top:4px}
.rk-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.rk-txt small{text-transform:uppercase;font-size:.7rem;letter-spacing:.04em;color:var(--tenue)}
.rk-txt > b{font-family:var(--f-titulo);font-weight:400;font-size:1.35rem;color:var(--azul-osc)}
.rk-sube{color:var(--ok);font-weight:600} .rk-baja{color:var(--bad);font-weight:600}
.rk-tabla tr.rk-yo td{background:var(--azul-claro)}
.rk-pos{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-weight:700;font-size:.85rem;color:#fff}
.rk-pos.rk-1{background:#e3a500} .rk-pos.rk-2{background:#9aa5ad} .rk-pos.rk-3{background:#b0703c}
.rk-mini{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
@media (max-width:640px){ .rk-tarjeta{flex-direction:row;gap:12px} .rk-estrella,.rk-estrella svg.ic{width:64px;height:64px;flex-basis:64px} .rk-estrella b{font-size:1.25rem} }

/* 1.8.1 · Formularios en MAYÚSCULAS (salvo correos) */
form[data-mayus] input[type=text],form[data-mayus] input:not([type]),form[data-mayus] textarea,form[data-mayus] select,form[data-mayus] .combo-inp,form[data-mayus] input[type=search]{text-transform:uppercase}
form[data-mayus] input::placeholder,form[data-mayus] textarea::placeholder,form[data-mayus] .combo-inp::placeholder{text-transform:none}
form[data-mayus] input[type=email]{text-transform:lowercase}
form[data-mayus] input[data-no-mayus],form[data-mayus] textarea[data-no-mayus],form[data-mayus] [data-no-mayus]{text-transform:none}   /* 1.8.2: más específica que la regla de MAYÚSCULAS (antes perdía y el nombre corto se veía en mayúsculas) */
.sugerencias.mayus li{text-transform:uppercase}
.sugerencias.mayus li.nada{text-transform:none}
/* 1.8.1 · Combo en el celular: la lista se abre pegada debajo del campo y se mueve con él */
.combo-cont{position:relative}
.sugerencias.pegada{position:absolute;left:0;right:0;top:100%;width:auto!important;margin-top:2px;z-index:60}
.sugerencias.pegada.arriba{box-shadow:0 10px 28px rgba(0,0,0,.16)}
/* 1.8.1 · Alta de orden de servicio: la serie decide todo */
.os-serie-busca{display:flex;gap:8px}
.os-serie-busca input{flex:1;min-width:0;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em}
.os-tarjeta{box-shadow:none;border:1px solid var(--linea);border-left:4px solid var(--azul);margin:6px 0 10px}
.os-tarjeta-cab{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}
.os-avisos{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}
.os-avisos .check{margin-bottom:6px}
.os-dueno{border-top:1px dashed var(--linea);margin-top:10px;padding-top:6px}
.titular-pg{border:1px solid var(--linea);border-left:4px solid var(--azul);border-radius:var(--radio);padding:4px 14px 2px;background:var(--azul-claro, #f3f8fc)}

/* 1.8.3 · menú ⋯ / Acciones llevado al final de la página al abrirse (en iPhone las tablas con scroll lo recortaban) */
.menu.flota-body{position:fixed;display:block;background:#fff;border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.16);min-width:200px;z-index:200;padding:6px 0;max-height:calc(100vh - 16px);overflow-y:auto}
.menu.flota-body a,.menu.flota-body button{display:flex;gap:8px;align-items:center;width:100%;padding:9px 14px;color:var(--tinta);text-decoration:none;background:none;border:0;cursor:pointer;font:inherit;font-size:.92rem;text-align:left}
.menu.flota-body a:hover,.menu.flota-body button:hover{background:var(--azul-claro);color:var(--azul-osc)}
.menu.flota-body form{margin:0}
.menu.flota-body .peligro,.menu.flota-body a.peligro{color:var(--bad)}

/* 1.8.3 · Polartik SHIPIT */
.g5{grid-template-columns:1fr repeat(4,minmax(0,1fr))}
@media (max-width:700px){ .g5{grid-template-columns:repeat(2,minmax(0,1fr))} }
.naranja{color:#b45309}
.ro-shipit{min-height:44px;display:flex;align-items:center;padding:8px 12px;border:1px dashed var(--linea);border-radius:6px;background:#f7fbfd;color:var(--tenue);font-size:.86rem;line-height:1.3}
.shipit-tit{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pastilla-shipit{display:inline-flex;align-items:center;background:#32CAFE;border-radius:999px;padding:5px 14px}
.pastilla-shipit img{height:20px;width:auto;display:block}
.caja-liga{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid #bfe7f7;background:#f3fbff;border-radius:var(--radio);margin:10px 0}
.caja-liga a.mono{word-break:break-all;font-size:.82rem}
fieldset.bulto{border:1px solid var(--linea);border-radius:var(--radio);padding:10px 14px 12px;margin:0 0 12px}
fieldset.bulto legend{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--azul-osc);padding:0 6px}
fieldset.bulto legend .btn{min-height:30px;padding:2px 8px}
.bulto-items{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.bulto-item{display:flex;align-items:center;gap:10px;font-size:.88rem}
.bulto-item input{width:72px;flex:0 0 72px;text-align:right}
tr.sel td{background:#eef9ff}
.kpis-mini .shipit-badge{font-size:.7rem}
tr.fila-alerta td{background:#fff6ee}
.tarjeta-sec{border:1px solid var(--linea);border-radius:var(--radio);padding:14px 16px;margin:0 0 16px;background:#fff}
.cuadro.off{opacity:.62}
.cuadro.off svg{stroke:var(--tenue)}
.panel-cab h1.shipit-tit{margin:0}
.panel-cab h1 .pastilla-shipit{padding:7px 18px}
.panel-cab h1 .pastilla-shipit img{height:30px}
/* 1.9.0 · Contabilidad */
.resumen-contab{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;padding:4px 0 14px;font-size:.92rem}
.resumen-contab form{display:inline-flex;gap:8px;align-items:center;margin-left:auto}
form.en-linea{display:inline-flex;gap:6px;align-items:center;margin:0}
.acciones-det{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.detalle table.compacta{width:100%}
.detalle table.compacta td{vertical-align:top}
tr.total td{border-top:2px solid var(--azul);background:#fafcfd}
.opciones-poliza{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opciones-poliza a.opcion-grande{display:flex;flex-direction:column;gap:6px;border:2px solid var(--linea);border-radius:var(--radio);padding:16px 12px;color:var(--tinta);text-decoration:none;background:#fff}
.opciones-poliza a.opcion-grande b{font-size:.98rem;color:var(--azul-osc);letter-spacing:.04em}
.opciones-poliza a.opcion-grande small{color:var(--tenue);line-height:1.35}
.opciones-poliza a.opcion-grande:hover{border-color:var(--azul);background:var(--azul-claro)}
ul.lista-simple{list-style:none;margin:0 0 10px;padding:0}
ul.lista-simple li{padding:7px 0;border-bottom:1px solid #eee;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
table.pol-captura td.cta-pol{min-width:280px}
table.pol-captura td.acc-pol{white-space:nowrap;width:76px}
.pol-extra{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end;padding:4px 0}
.pol-extra label{display:flex;flex-direction:column;gap:3px;font-size:.78rem;color:var(--tenue)}
.pol-extra input,.pol-extra select{height:36px;min-height:36px}
.pol-extra input[name$="[uuid]"]{width:330px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}
.pol-extra input[name$="[rfc]"]{width:160px}
.pol-banco{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end}
.pol-banco .badge{align-self:center}
.arbol-cc td.n1{font-weight:600;background:#f6f8fa}
.arbol-cc td.n2{font-weight:500;padding-left:22px}
.arbol-cc td.n3{padding-left:40px}
.arbol-cc td.n4{padding-left:58px}
.arbol-cc td.n5{padding-left:76px}
.balanza td.n1{font-weight:600}
.balanza td.n2{padding-left:18px}
.balanza td.n3{padding-left:34px}
.balanza td.n4{padding-left:50px}
.balanza tr.nivel1 td{background:#f6f8fa}
.checklist{list-style:none;margin:0;padding:0}
.checklist li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid #eee}
.checklist li .ic-est{flex:0 0 22px;text-align:center;font-weight:700}
.checklist li.ok .ic-est{color:var(--ok)}
.checklist li.aviso .ic-est{color:var(--warn)}
.checklist li.bloquea .ic-est{color:var(--bad)}
.guia-grupo{margin-bottom:22px}
.guia-grupo .fila-guia{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.3fr);gap:6px 18px;align-items:center;padding:8px 0;border-bottom:1px solid #eee}
.guia-grupo .fila-guia .campo{margin:0}
.guia-grupo .fila-guia small{display:block;color:var(--tenue);font-size:.78rem}
@media (max-width:760px){.opciones-poliza{grid-template-columns:1fr}.guia-grupo .fila-guia{grid-template-columns:1fr}.resumen-contab form{margin-left:0}}
details.cambiar-cc{margin-top:4px}
details.cambiar-cc summary{cursor:pointer;color:var(--azul-osc);font-size:.8rem}
details.cambiar-cc form{display:flex;gap:6px;align-items:center;margin-top:6px;min-width:280px}
details.cambiar-cc .auto{flex:1}
table[data-tabla-pagos] tr.coincide td{background:#fff6d1}
table[data-tabla-pagos] tr.sel td{background:#eef9fe}

/* ================= 1.9.2 · Menú de tres niveles (Contabilidad) ================= */
.lateral .sub-grupo-tit{display:flex;align-items:center;gap:8px;width:100%;padding:6px 6px 6px 28px;background:none;border:0;font:inherit;font-size:.8rem;color:var(--oxford);cursor:pointer;text-align:left;position:relative}
.lateral .sub-grupo-tit::before{content:"";position:absolute;left:19px;top:50%;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.6}
.lateral .sub-grupo-tit:hover{color:var(--azul)}
.lateral .sub-grupo-tit .flecha{width:12px!important;height:12px!important;flex-basis:12px!important;margin-left:auto;transition:transform .15s}
.lateral .sub-grupo.abre > .sub-grupo-tit .flecha{transform:rotate(90deg)}
.lateral .sub-grupo.abre > .sub-grupo-tit{color:var(--azul-osc)}
.lateral .sub2{display:none;padding:0 0 4px}
.lateral .sub-grupo.abre > .sub2{display:block}
.lateral .sub .sub2 a{padding:5px 6px 5px 42px;font-size:.78rem}
.lateral .sub .sub2 a::before{left:33px;width:3px;height:3px}
.lateral .sub .sub2 a.mas{padding:5px 4px 5px 8px}
.lateral .sub .sub2 a.mas::before{display:none}
/* 1.9.2 · Contabilidad parte 2 */
.grid .campo.span2{grid-column:span 2}
@media (max-width:640px){.grid .campo.span2{grid-column:auto}}
label.casilla{display:flex;gap:8px;align-items:center;font-size:.9rem;margin:6px 0;cursor:pointer}
label.casilla input{width:auto;min-height:0;margin:0}
.estado-fin tr.ef-bloque td{background:#eef9fe;color:var(--azul-osc);padding-top:14px;letter-spacing:.04em}
.estado-fin tr.ef-seccion td{font-weight:600;color:var(--oxford);padding-top:12px;border-bottom:1px solid var(--linea)}
.estado-fin tr.ef-subtotal td{background:#fafcfd;font-style:italic}
.estado-fin tr.ef-gran td{background:#eef9fe;font-size:1.02rem}
.estado-fin td.num.rojo{color:var(--bad)}
.filtros-aux select[data-aux-nivel]{max-width:260px}
.aux-cuenta{margin-bottom:18px}
.aux-cuenta .sub-tit{margin:14px 0 8px}
.aux-cuenta .sub-tit .mono{font-weight:600}
.ce-tarjetas{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.ce-tarjetas .tarjeta-sec{margin:0;display:flex;flex-direction:column;gap:6px}
.ce-tarjetas .tarjeta-sec p{margin:0;font-size:.85rem}
.btn.off{opacity:.45;pointer-events:none}
.pastilla-guias{position:fixed;right:18px;bottom:calc(var(--pie) + 14px);z-index:60;display:inline-flex;gap:8px;align-items:center;padding:9px 16px;border:0;border-radius:999px;background:#ff8a3d;color:#fff;font:inherit;font-size:.85rem;box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer}
.pastilla-guias svg.ic{stroke:#fff;width:18px;height:18px}

/* ================= 1.9.3 · Impuestos, conciliación y constancia de situación fiscal ================= */
.datos-v .dato{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:6px 12px;min-height:54px;background:#fcfcfc}
.datos-v .dato small{font-size:.7rem;color:var(--tenue);text-transform:uppercase;letter-spacing:.03em}
.datos-v .dato span{color:var(--tinta)}
input.chico-inp{width:120px;min-height:32px;padding:4px 8px;text-align:right;font-size:.88rem}
select.chico-sel{min-height:32px;padding:4px 8px;font-size:.85rem;margin-top:4px;max-width:100%}
.form-papel .acciones{margin:12px 0 4px}
.tabla-captura td{vertical-align:top}
.tabla-captura input,.tabla-captura select{min-height:34px;padding:4px 8px;font-size:.88rem}
.tabla-captura td select{margin-bottom:4px;width:100%;min-width:220px}
.tabla-captura input.num{text-align:right;min-width:90px}
/* constancia de situación fiscal */
.csf-bloque{border:1px dashed var(--azul);border-radius:var(--radio);background:var(--azul-claro);padding:12px 14px;margin:0 0 16px}
.csf-fila{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.csf-ic svg.ic{width:26px;height:26px;stroke:var(--azul-osc)}
.csf-txt{flex:1 1 260px;display:flex;flex-direction:column;gap:2px}
.csf-txt small{color:var(--oxford)}
.csf-subir{cursor:pointer;background:#fff}
.csf-estado{margin-top:10px;padding:8px 12px;border-radius:6px;font-size:.88rem;background:#fff}
.csf-estado.ok{background:var(--ok-bg);color:var(--ok)}
.csf-estado.warn{background:var(--warn-bg);color:var(--warn)}
.csf-estado.error{background:var(--bad-bg);color:var(--bad)}
.csf-estado.info{color:var(--azul-osc)}
.csf-regimenes{margin-top:10px;padding:10px 12px;background:#fff;border-radius:6px;border:1px solid var(--linea)}
.csf-regimenes b{display:block;margin-bottom:4px;font-weight:600;color:var(--tinta)}
.csf-actual{margin-top:8px;font-size:.85rem}
.campo.csf-lleno input,.campo.csf-lleno select,.campo.csf-lleno .combo-inp{box-shadow:0 0 0 2px var(--azul);transition:box-shadow .3s}
/* cuenta contable del proveedor en la captura */
.cc-prov-captura{border:1px solid var(--linea);border-radius:var(--radio);padding:4px 14px 10px;margin:14px 0;background:#fcfcfc}
.cc-prov-captura .sub-tit{margin:10px 0 4px;border:0;padding:0}
.cc-opciones{display:flex;flex-wrap:wrap;gap:4px 18px;margin:6px 0 4px}
/* conciliación bancaria */
.conc-cuadre{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:6px 0 8px}
.conc-cuadre h3{margin:0 0 8px;font-size:.95rem;color:var(--azul-osc)}
.conc-saldo label{font-size:.8rem;color:var(--tenue)}
.conc-saldo input{max-width:180px;text-align:right}
table.mini{width:100%;margin-top:8px;font-size:.88rem}
table.mini td{padding:5px 4px;border-bottom:1px solid #eee}
table.mini tr.total td{font-weight:600;background:#f6f8fa}
.conc-dos{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.conc-tabla td{font-size:.86rem}
.conc-tabla tr.conc-ligada td{background:#f6fbf7}
.conc-tabla tr.conc-ignorada td{opacity:.6}
.conc-ligar{position:sticky;bottom:calc(var(--pie, 0px) + 8px);display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;margin-top:10px;background:#fff;border:1px solid var(--azul);border-radius:var(--radio);box-shadow:var(--sombra)}
@media (max-width:900px){.conc-dos,.conc-cuadre{grid-template-columns:1fr}}
@media (max-width:640px){input.chico-inp{width:96px}}
.campo input[type=month]{width:100%;border:1px solid var(--borde);border-radius:6px;background:#fff;color:var(--tinta);font:inherit;font-size:14px;min-height:var(--campo);height:var(--campo);padding:0 12px}
.tabla-captura input.num{min-width:0;width:100%;max-width:120px}
.tabla-captura td:first-child{min-width:240px}
.tabla-captura td select{min-width:0}
@media (max-width:640px){.campo input[type=month]{font-size:16px}}
