:root{
  --acento:#0E8FA8; --acento-osc:#0B7189; --acento-claro:#D6F0F5;
  --rojo:#C91C1E; --gris:#7D7B7E;
  --fondo:#F4F6F8; --panel:#FFFFFF; --borde:#D9DEE3; --texto:#1C2024; --texto2:#5B6470; --ok:#1E8E4E; --aviso:#B7791F; --error:#B42318;
  --sombra:0 1px 3px rgba(0,0,0,.08);
}
:root[data-tema="oscuro"]{
  --acento:#38B6CF; --acento-osc:#56C8DE; --acento-claro:#123C47;
  --fondo:#14181C; --panel:#1E2429; --borde:#2E363D; --texto:#E6EAEE; --texto2:#9AA5B1; --sombra:0 1px 3px rgba(0,0,0,.4);
}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,Arial,sans-serif;font-size:14px;color:var(--texto);background:var(--fondo)}
a{color:var(--acento-osc);text-decoration:none}
a:hover{text-decoration:underline}
.barra{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;padding:0 18px;height:50px;background:var(--panel);border-bottom:3px solid var(--acento);box-shadow:var(--sombra)}
.barra .marca{display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px;color:var(--texto)}
.barra .marca small{color:var(--acento);font-weight:600}
.cubo{width:16px;height:16px;border-radius:3px;background:var(--acento);display:inline-block}
.barra nav{display:flex;gap:4px;flex:1}
.barra nav a{padding:6px 10px;border-radius:6px;color:var(--texto2);font-weight:500}
.barra nav a.act,.barra nav a:hover{background:var(--acento-claro);color:var(--acento-osc);text-decoration:none}
.barra nav a.btn-nueva{background:var(--acento);color:#fff}
.barra nav a.btn-nueva:hover{background:var(--acento-osc);color:#fff}
.barra .usuario{display:flex;align-items:center;gap:10px;color:var(--texto2)}
.barra .tema{border:1px solid var(--borde);background:transparent;color:var(--texto2);border-radius:6px;cursor:pointer;padding:2px 8px}
.contenido{max-width:1240px;margin:0 auto;padding:18px}
.aviso{padding:10px 14px;border-radius:8px;margin-bottom:12px;background:var(--acento-claro);color:var(--acento-osc);border:1px solid var(--acento)}
.aviso.error{background:#FDECEC;color:var(--error);border-color:var(--error)}
:root[data-tema="oscuro"] .aviso.error{background:#3A1A1A}
h1{font-size:22px;margin:0 0 14px}
h2{font-size:17px;margin:18px 0 10px}
h3{font-size:14px;margin:12px 0 6px;color:var(--texto2);text-transform:uppercase;letter-spacing:.04em}
.panel{background:var(--panel);border:1px solid var(--borde);border-radius:10px;padding:14px 16px;margin-bottom:14px;box-shadow:var(--sombra)}
.fila{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.campo{display:flex;flex-direction:column;gap:4px;min-width:140px;flex:1}
.campo.corto{flex:0 0 160px}
.campo.ancho{flex:1 1 100%}
label{font-size:12px;color:var(--texto2);font-weight:600}
input[type=text],input[type=date],input[type=password],input[type=number],select,textarea{width:100%;padding:7px 9px;border:1px solid var(--borde);border-radius:6px;background:var(--panel);color:var(--texto);font:inherit}
textarea{min-height:70px;resize:vertical;line-height:1.4}
input:focus,select:focus,textarea:focus{outline:2px solid var(--acento-claro);border-color:var(--acento)}
.btn{display:inline-block;padding:7px 14px;border-radius:6px;border:1px solid var(--borde);background:var(--panel);color:var(--texto);font:inherit;cursor:pointer;text-decoration:none;font-weight:500}
.btn:hover{border-color:var(--acento);color:var(--acento-osc);text-decoration:none}
.btn.primario{background:var(--acento);border-color:var(--acento);color:#fff}
.btn.primario:hover{background:var(--acento-osc);color:#fff}
.btn.peligro{color:var(--error);border-color:var(--error)}
.btn.peq{padding:3px 8px;font-size:12px}
.btn.icono{padding:3px 7px;font-size:12px;line-height:1}
table.lista{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--borde);border-radius:10px;overflow:hidden}
table.lista th{background:var(--acento-claro);color:var(--acento-osc);text-align:left;padding:8px 10px;font-size:12px;text-transform:uppercase;letter-spacing:.03em}
table.lista td{padding:8px 10px;border-top:1px solid var(--borde);vertical-align:top}
table.lista tr:hover td{background:rgba(14,143,168,.05)}
.estado{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:600;background:var(--borde);color:var(--texto2)}
.estado.Borrador{background:#EEF0F2;color:#5B6470}.estado.Enviada,.estado.Seguimiento{background:#FFF3D6;color:#8A5A00}.estado.Aceptada{background:#DDF5E6;color:#146C3A}.estado.Perdida,.estado.Cancelada{background:#FDECEC;color:#B42318}.estado.Dormida{background:#E8E3F7;color:#5B3FA3}.estado.Pendiente{background:#D6F0F5;color:#0B7189}
.pestanas{display:flex;gap:4px;border-bottom:1px solid var(--borde);margin-bottom:14px;position:sticky;top:50px;background:var(--fondo);z-index:10;padding-top:6px}
.pestanas a{padding:8px 14px;border-radius:8px 8px 0 0;color:var(--texto2);font-weight:600;border:1px solid transparent;border-bottom:none}
.pestanas a.act{background:var(--panel);color:var(--acento-osc);border-color:var(--borde)}
.pestana{display:none}.pestana.act{display:block}
.bloque{border:1px solid var(--borde);border-radius:8px;padding:10px 12px;margin-bottom:8px;background:var(--panel)}
.bloque.no{opacity:.55;background:var(--fondo)}
.bloque .cab{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bloque .cab input[type=text]{flex:1;min-width:200px;font-weight:600}
.bloque .cab .ap{font-size:11px;color:var(--texto2);background:var(--acento-claro);padding:2px 6px;border-radius:4px}
.bloque .cant{width:54px !important;text-align:center}
.bloque textarea{margin-top:6px;min-height:56px;font-size:13px}
.vars{margin-top:6px;display:grid;grid-template-columns:1fr 1fr 70px 28px;gap:4px 6px;align-items:center}
.vars .cabv{font-size:11px;color:var(--texto2)}
.vars input{padding:4px 7px;font-size:13px}
.seccion-ap{margin:16px 0 6px;padding:4px 0;border-bottom:2px solid var(--acento-claro);color:var(--acento-osc);font-weight:700;font-size:13px;text-transform:uppercase}
.acciones{position:sticky;bottom:0;background:var(--panel);border-top:1px solid var(--borde);padding:10px 16px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px -18px -18px;z-index:10}
.mini{font-size:12px;color:var(--texto2)}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:900px){.dos{grid-template-columns:1fr}.barra nav a:not(.btn-nueva){display:none}.vars{grid-template-columns:1fr 1fr 60px 28px}}
.tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.tarjeta{background:var(--panel);border:1px solid var(--borde);border-radius:10px;padding:14px;box-shadow:var(--sombra)}
.tarjeta b{display:block;font-size:16px;margin-bottom:4px}
.tarjeta .n{font-size:26px;color:var(--acento);font-weight:700}
.similares .lineas{white-space:pre-wrap;font-family:Consolas,monospace;font-size:12px;color:var(--texto)}
.firma-dev{position:fixed;right:12px;bottom:8px;font-size:11px;color:var(--texto2);opacity:.7}
@media (max-width:700px){.firma-dev{display:none}}
.login{max-width:360px;margin:60px auto}
.preview{background:#fff;color:#1A1A1A;padding:30px 36px;border:1px solid var(--borde);border-radius:8px;max-width:900px;margin:0 auto;font-family:Arial,sans-serif;font-size:13px;line-height:1.45}
.preview .seccion{background:#7D7B7E;color:#fff;font-weight:700;padding:4px 8px;margin:16px 0 8px}
.preview .var{display:flex;gap:6px;padding-left:12px}.preview .var span:first-child{flex:0 0 55%;border-bottom:1px dotted #7D7B7E}
.preview .cab{display:flex;justify-content:space-between;border-bottom:2px solid #C91C1E;padding-bottom:8px;margin-bottom:14px}
.ayuda{font-size:12px;color:var(--texto2);margin-top:4px}
.lista-ordenable li{list-style:none;display:flex;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--borde);border-radius:6px;margin-bottom:4px;background:var(--panel)}
.lista-ordenable{padding:0;margin:0}
code{background:var(--acento-claro);padding:1px 4px;border-radius:3px;font-size:12px}

/* ---------------------------------------------------------------- CRM */
.barra .buscar{flex:0 0 260px}.barra .buscar input{padding:5px 9px;font-size:13px}
.menu-mas{position:relative}.menu-mas summary{list-style:none;cursor:pointer;padding:6px 10px;border-radius:6px;color:var(--texto2);font-weight:500}
.menu-mas summary::-webkit-details-marker{display:none}.menu-mas summary.act,.menu-mas summary:hover{background:var(--acento-claro);color:var(--acento-osc)}
.menu-mas div{position:absolute;top:34px;left:0;background:var(--panel);border:1px solid var(--borde);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.15);min-width:200px;padding:6px;z-index:30;display:flex;flex-direction:column}
.menu-mas div a{padding:7px 10px;border-radius:6px;color:var(--texto)}
.contenido.ancha{max-width:1500px}
.nowrap{white-space:nowrap}.recorte{max-height:2.7em;overflow:hidden}
.paginacion{display:flex;gap:8px;align-items:center;margin:10px 0}
.estado.emp-potencial{background:#EEF0F2;color:#5B6470}.estado.emp-cliente{background:#DDF5E6;color:#146C3A}.estado.emp-baja{background:#FDECEC;color:#B42318}
.estado.acc-Pendiente{background:#FFF3D6;color:#8A5A00}.estado.acc-Finalizada{background:#DDF5E6;color:#146C3A}.estado.acc-Cancelada{background:#EEF0F2;color:#5B6470}
.estado.prio-alta{background:var(--rojo);color:#fff;padding:2px 7px}
tr.atrasada td:first-child{color:var(--error);font-weight:600}
.btn.ok{color:var(--ok);border-color:var(--ok)}
.estado-form{display:inline-flex;gap:4px}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid var(--borde);border-radius:14px;font-size:12px;cursor:pointer;background:var(--panel)}
.chip:has(input:checked){background:var(--acento-claro);border-color:var(--acento);color:var(--acento-osc)}
.chip input{margin:0}
.ac-campo{position:relative}.ac-lista{position:absolute;top:100%;left:0;right:0;background:var(--panel);border:1px solid var(--borde);border-radius:0 0 8px 8px;box-shadow:0 6px 18px rgba(0,0,0,.15);z-index:40;display:none;max-height:280px;overflow:auto}
.ac-lista div{padding:7px 10px;cursor:pointer;border-top:1px solid var(--borde)}.ac-lista div:hover,.ac-lista div.sel{background:var(--acento-claro)}
.ac-lista .mini{display:block}
.ficha-cab{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;margin-bottom:10px}
.ficha-cab h1{margin:0}.ficha-cab .datos{color:var(--texto2);font-size:13px;line-height:1.5}
.tarjeta-n{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.tarjeta-n a,.tarjeta-n div{background:var(--panel);border:1px solid var(--borde);border-radius:10px;padding:10px 14px;min-width:120px;color:var(--texto)}
.tarjeta-n b{display:block;font-size:22px;color:var(--acento)}.tarjeta-n span{font-size:12px;color:var(--texto2)}
.tarjeta-n a.alerta b{color:var(--error)}
.kv{display:grid;grid-template-columns:150px 1fr;gap:3px 10px;font-size:13px}.kv dt{color:var(--texto2)}.kv dd{margin:0}
.timeline{list-style:none;padding:0;margin:0}.timeline li{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--borde)}
.timeline .f{flex:0 0 90px;color:var(--texto2);font-size:12px}.timeline .t{flex:1}
.barras{display:grid;grid-template-columns:50px 1fr 90px 90px;gap:4px 10px;align-items:center;font-size:13px}
.barras .b{height:14px;background:var(--acento-claro);border-radius:3px;position:relative}.barras .b i{display:block;height:100%;background:var(--acento);border-radius:3px}
.barras .b em{display:block;position:absolute;top:0;left:0;height:100%;background:var(--rojo);opacity:.7;border-radius:3px}
.adjuntos{padding-left:0;list-style:none}.adjuntos li{padding:3px 0}
.pendiente-hoy td:first-child{color:var(--acento-osc);font-weight:600}
.resumen-grupos{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
dialog.panel{border:1px solid var(--borde);min-width:420px;max-width:600px}dialog::backdrop{background:rgba(0,0,0,.35)}
.tabla-compacta td,.tabla-compacta th{padding:5px 8px;font-size:13px}
.notas{white-space:pre-wrap;font-size:13px;line-height:1.45}
@media (max-width:1000px){.barra .buscar{display:none}}
.zona-pegar{margin-top:10px;padding:12px 14px;border:2px dashed var(--borde);border-radius:8px;background:var(--fondo);font-size:13px;line-height:1.6}
.zona-pegar.sobre,.zona-pegar:focus{border-color:var(--acento);background:var(--acento-claro);outline:none}
kbd{border:1px solid var(--borde);border-bottom-width:2px;border-radius:4px;padding:0 5px;font-family:inherit;font-size:12px;background:var(--panel)}
.logo-ficha{max-height:64px;max-width:180px;background:#fff;padding:5px;border:1px solid var(--borde);border-radius:8px;object-fit:contain}
.mapa-cab{display:flex;gap:10px;align-items:center;margin-bottom:8px}.mapa-cab label{margin:0}
.mapa svg path:hover{stroke:var(--rojo);stroke-width:14}
.mapa-wrap{display:grid;grid-template-columns:270px 1fr;gap:12px;height:calc(100vh - 150px);min-height:520px}
.mapa-panel{overflow:auto;margin:0;padding:12px}.mapa-panel .campo{margin-bottom:6px;min-width:0}.mapa-panel .chip{margin:2px 0;display:flex}
.mapa-leaflet{border:1px solid var(--borde);border-radius:10px;overflow:hidden;background:#e9ecef}
.capa{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--texto);padding:3px 0;cursor:pointer}
.capa i{display:inline-block;width:12px;height:12px;border-radius:50%;flex:0 0 12px}.capa b{margin-left:auto;color:var(--texto2);font-weight:600}
.leaflet-popup-content{font-family:"Segoe UI",system-ui,Arial,sans-serif;font-size:13px;line-height:1.45}
@media (max-width:900px){.mapa-wrap{grid-template-columns:1fr;height:auto}.mapa-leaflet{height:70vh}}
/* ruta de visitas (mapa) */
.mapa-zona{position:relative;min-height:0;display:flex}.mapa-zona .mapa-leaflet{flex:1}
.ruta-panel{position:absolute;top:10px;right:10px;width:340px;max-height:calc(100% - 20px);overflow:auto;z-index:1000;margin:0;padding:12px;box-shadow:0 6px 22px rgba(0,0,0,.18)}
.ruta-lista{margin:8px 0 4px;padding-left:0;list-style:none;counter-reset:r}
.ruta-lista li{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid var(--borde)}
.ruta-lista li .num{flex:0 0 24px;height:24px;border-radius:50%;background:var(--acento);color:#fff;font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center}
.ruta-lista li .txt{flex:1;min-width:0;font-size:.88rem;line-height:1.2}.ruta-lista li .txt small{color:var(--texto2);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ruta-lista li .tramo{font-size:.75rem;color:var(--texto2);white-space:nowrap}
.ruta-lista li button{padding:2px 7px;min-width:30px}
.ruta-botones{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.ruta-cerca{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px dashed var(--borde);font-size:.86rem}
.ruta-cerca .txt{flex:1;min-width:0}.ruta-cerca .txt small{color:var(--texto2)}
.ruta-num{background:var(--acento);color:#fff;border:2px solid #fff;border-radius:50%;width:26px!important;height:26px!important;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.ruta-num.salida{background:#1f2933}
.leaflet-control.ruta-boton a{width:auto!important;padding:0 10px;font-weight:600;white-space:nowrap;font-size:13px}
@media (max-width:900px){
  .mapa-zona{flex-direction:column;order:-1}.mapa-zona .mapa-leaflet{height:65vh;flex:none}
  .ruta-panel{position:static;width:auto;max-height:none;margin-top:10px;box-shadow:none}
}
.desact{opacity:.5;pointer-events:none}

/* (v1.10) Mis mapas: panel de selección con buscador */
.lista-panel{right:10px}
.lista-sug{position:relative;z-index:5;background:var(--panel,#fff);border:1px solid var(--borde);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.15);max-height:260px;overflow:auto;margin-top:2px}
.lista-sug-item{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;font-size:.88rem;line-height:1.2}
.lista-sug-item:hover,.lista-sug-item.activa{background:var(--acento-claro)}
.lista-sug-item i{flex:0 0 10px;width:10px;height:10px;border-radius:50%;display:inline-block}
.lista-sug-item span{flex:1;min-width:0}.lista-sug-item small{display:block;color:var(--texto2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lista-sug-vacia{padding:6px 10px;font-size:.82rem;color:var(--texto2)}
