/* =====================================================================
   CURIFOR POST VENTA — hoja de estilo única
   ===================================================================== */
:root{
  --bg:#0e1116; --panel:#151a21; --panel2:#1b2029; --panel3:#222834;
  --linea:#272e3a; --linea2:#333c4b;
  --txt:#e8ecf2; --txt2:#98a3b3; --txt3:#67707e;
  --azul:#3b82f6; --azul2:#16294a; --azulc:#93c5fd;
  --verde:#22c55e; --verde2:#0f2a1b; --verdec:#86efac;
  --ambar:#f59e0b; --ambar2:#33260a; --ambarc:#fcd34d;
  --rojo:#ef4444; --rojo2:#331417; --rojoc:#fca5a5;
  --morado:#a855f7; --morado2:#271a3d; --moradoc:#d8b4fe;
  --cyan:#06b6d4; --cyan2:#0a2830; --cyanc:#67e8f9;
  --r:10px; --sombra:0 6px 24px rgba(0,0,0,.4);
}
*{box-sizing:border-box;}
html,body{height:100%;margin:0;}
body{background:var(--bg);color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:14px;line-height:1.5;overflow:hidden;
  -webkit-font-smoothing:antialiased;}
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-thumb{background:var(--linea2);border-radius:9px;}
::-webkit-scrollbar-track{background:transparent;}

button,select,input,textarea{font-family:inherit;font-size:13.5px;color:var(--txt);
  background:var(--panel2);border:1px solid var(--linea);border-radius:8px;padding:7px 11px;}
button,select{cursor:pointer;}
button:hover:not(:disabled){border-color:var(--azul);}
button:disabled{opacity:.45;cursor:not-allowed;}
button.pri{background:var(--azul);border-color:var(--azul);color:#fff;font-weight:600;}
button.pri:hover:not(:disabled){background:#4f8ff8;}
button.gh{background:transparent;border-color:transparent;color:var(--txt2);padding:6px 9px;}
button.gh:hover{background:var(--panel2);color:var(--txt);border-color:transparent;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--azul);
  box-shadow:0 0 0 3px rgba(59,130,246,.15);}
textarea{resize:vertical;width:100%;}
a{color:var(--azulc);}

/* ---------------- LOGIN ---------------- */
.login{height:100vh;display:grid;place-items:center;padding:20px;overflow:auto;}
.login .caja{width:100%;max-width:390px;background:var(--panel);border:1px solid var(--linea);
  border-radius:16px;padding:30px 28px;box-shadow:var(--sombra);}
.login .marca{display:flex;align-items:center;gap:11px;margin-bottom:5px;}
.login .logo{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--azul),#1d4ed8);
  display:grid;place-items:center;font-weight:800;font-size:15px;color:#fff;}
.login h1{margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em;}
.login .sub{color:var(--txt3);font-size:12.5px;margin:0 0 22px 49px;}
.login label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--txt3);font-weight:700;margin:0 0 5px;}
.login input{width:100%;margin-bottom:14px;padding:10px 12px;}
.login button{width:100%;padding:10px;}
.login .err{background:var(--rojo2);border:1px solid #5a2328;color:var(--rojoc);
  border-radius:8px;padding:9px 12px;font-size:12.5px;margin-bottom:14px;}
.login .demo{margin-top:20px;padding-top:18px;border-top:1px solid var(--linea);}
.login .demo p{margin:0 0 9px;font-size:11.5px;color:var(--txt3);}
.login .demo select{width:100%;}

/* ---------------- ESTRUCTURA ---------------- */
.app{display:grid;grid-template-columns:222px 1fr;height:100vh;}
.lateral{background:var(--panel);border-right:1px solid var(--linea);
  display:flex;flex-direction:column;min-height:0;}
.lat-top{padding:15px 16px 13px;border-bottom:1px solid var(--linea);}
.lat-top .marca{display:flex;align-items:center;gap:9px;}
.lat-top .logo{width:29px;height:29px;border-radius:8px;
  background:linear-gradient(135deg,var(--azul),#1d4ed8);display:grid;place-items:center;
  font-weight:800;font-size:12px;color:#fff;}
.lat-top .n{font-size:13.5px;font-weight:700;line-height:1.2;}
.lat-top .s{font-size:10.5px;color:var(--txt3);}
nav{flex:1;overflow-y:auto;padding:9px 9px 14px;}
nav .grupo{font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--txt3);
  font-weight:700;padding:12px 9px 5px;}
nav a{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;
  color:var(--txt2);text-decoration:none;font-size:13px;margin-bottom:1px;cursor:pointer;}
nav a:hover{background:var(--panel2);color:var(--txt);}
nav a.on{background:var(--azul2);color:var(--azulc);font-weight:600;}
nav a .ic{width:17px;text-align:center;font-size:14px;}
nav a .badge{margin-left:auto;font-size:10px;background:var(--azul);color:#fff;
  padding:1px 6px;border-radius:99px;font-weight:700;}
.lat-pie{border-top:1px solid var(--linea);padding:11px 14px;}
.lat-pie .yo{display:flex;align-items:center;gap:9px;}
.av{width:29px;height:29px;border-radius:99px;background:var(--azul2);color:var(--azulc);
  display:grid;place-items:center;font-size:11px;font-weight:700;flex:0 0 auto;}
.lat-pie .n{font-size:12.5px;font-weight:600;line-height:1.25;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lat-pie .r{font-size:10.5px;color:var(--txt3);}

.principal{display:flex;flex-direction:column;min-width:0;min-height:0;}
.barra{display:flex;align-items:center;gap:11px;padding:10px 16px;
  border-bottom:1px solid var(--linea);background:var(--panel);min-height:51px;}
.barra h2{margin:0;font-size:15.5px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;}
.sp{flex:1;}
.vivo{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--txt2);white-space:nowrap;}
.dot{width:7px;height:7px;border-radius:99px;background:var(--verde);animation:lat 2.4s infinite;}
@keyframes lat{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 6px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.gente{display:flex;align-items:center;}
.gente .av{width:25px;height:25px;font-size:9.5px;margin-left:-6px;
  border:2px solid var(--panel);}
.gente .av:first-child{margin-left:0;}
.pill{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:3px 9px;border-radius:99px;background:var(--ambar2);color:var(--ambarc);white-space:nowrap;}

.vista{flex:1;min-height:0;overflow:hidden;display:flex;}

/* ---------------- MÓDULO CASOS ---------------- */
.split{display:grid;grid-template-columns:minmax(480px,1fr) minmax(430px,560px);
  width:100%;min-height:0;}
.col{display:flex;flex-direction:column;min-width:0;min-height:0;}
.col.izq{border-right:1px solid var(--linea);}
.col.der{background:var(--panel);}
.filtros{display:flex;flex-wrap:wrap;gap:7px;padding:10px 14px;
  border-bottom:1px solid var(--linea);align-items:center;}
.filtros input[type=search]{flex:1;min-width:140px;}
.cnt{font-size:11.5px;color:var(--txt3);white-space:nowrap;}

.tabla{flex:1;overflow:auto;min-height:0;}
table{width:100%;border-collapse:collapse;font-size:12.5px;}
thead th{position:sticky;top:0;z-index:2;text-align:left;padding:8px 11px;font-size:9.5px;
  text-transform:uppercase;letter-spacing:.05em;color:var(--txt3);background:var(--panel2);
  border-bottom:1px solid var(--linea);white-space:nowrap;}
td{padding:8px 11px;border-bottom:1px solid #1d222c;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;max-width:170px;}
tbody tr{cursor:pointer;}
tbody tr:hover td{background:#1a202a;}
tbody tr.sel td{background:var(--azul2);}
tbody tr.pulso td{animation:pulso 1.6s ease-out;}
@keyframes pulso{0%{background:var(--verde2)}100%{background:transparent}}
.folio{font-weight:700;}
.num{text-align:right;font-variant-numeric:tabular-nums;}
.d3{color:var(--rojoc);font-weight:700;} .d2{color:var(--ambarc);font-weight:700;} .d1{color:var(--txt2);}
.chip{display:inline-block;font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:99px;
  text-transform:uppercase;letter-spacing:.04em;}
.c-DYP{background:var(--azul2);color:var(--azulc);}
.c-GARANTIA{background:var(--morado2);color:var(--moradoc);}
.c-REVISAR{background:var(--ambar2);color:var(--ambarc);}
.c-CG{background:var(--cyan2);color:var(--cyanc);}
.c-COBRAR{background:var(--verde2);color:var(--verdec);}
.c-INTERNO{background:#292933;color:#c3c3ce;}
.c-none{background:#1f242d;color:var(--txt3);}
.c-ESPERA{background:var(--rojo2);color:var(--rojoc);}
.mini{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--txt3);margin-right:5px;}
.mini.ok{color:var(--verdec);}

.paginacion{display:flex;align-items:center;justify-content:center;gap:14px;
  padding:8px 14px;border-top:1px solid var(--linea);font-size:12px;color:var(--txt3);
  background:var(--panel);}
.paginacion:empty{display:none;}
.paginacion button{padding:5px 10px;font-size:12.5px;}

.cab{padding:13px 16px;border-bottom:1px solid var(--linea);}
.cab .l1{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;}
.cab h3{margin:0;font-size:17px;font-weight:700;letter-spacing:-.01em;}
.cab .l2{margin-top:3px;font-size:12.5px;color:var(--txt2);}
.kpis{display:flex;gap:17px;margin-top:10px;flex-wrap:wrap;}
.kpi .v{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;}
.kpi .k{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--txt3);}

.tabs{display:flex;gap:2px;padding:0 12px;border-bottom:1px solid var(--linea);
  overflow-x:auto;background:var(--panel);}
.tab{padding:9px 12px;font-size:12.5px;color:var(--txt2);cursor:pointer;white-space:nowrap;
  border-bottom:2px solid transparent;}
.tab:hover{color:var(--txt);}
.tab.on{color:var(--azulc);border-bottom-color:var(--azul);font-weight:600;}
.tab .n{font-size:10px;background:var(--panel3);padding:1px 6px;border-radius:99px;
  margin-left:5px;color:var(--txt3);}
.cuerpo{flex:1;overflow-y:auto;padding:14px 16px 18px;min-height:0;}

.campo{margin-bottom:11px;}
.campo label{display:block;margin-bottom:4px;font-size:10px;text-transform:uppercase;
  letter-spacing:.05em;color:var(--txt3);font-weight:700;}
.campo select,.campo textarea,.campo input{width:100%;}
.ok{font-size:11.5px;color:var(--verde);opacity:0;transition:opacity .3s;}
.ok.on{opacity:1;}

.tl{position:relative;padding-left:21px;}
.tl::before{content:"";position:absolute;left:5px;top:5px;bottom:5px;width:2px;background:var(--linea);}
.ev{position:relative;padding-bottom:15px;}
.ev::before{content:"";position:absolute;left:-20px;top:4px;width:10px;height:10px;
  border-radius:99px;border:2px solid var(--bg);}
.ev.coment::before{background:var(--azul);}
.ev.doc::before{background:var(--verde);}
.ev.rep::before{background:var(--ambar);}
.ev.edit::before{background:var(--morado);}
.ev.apertura::before{background:var(--txt3);}
.ev .h{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--txt3);}
.ev .h b{color:var(--azulc);font-weight:600;}
.ev .b{font-size:12.5px;margin-top:2px;}
.et{display:inline-block;font-size:9px;font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;padding:1px 6px;border-radius:99px;margin-right:5px;}
.et-coment{background:var(--azul2);color:var(--azulc);}
.et-doc{background:var(--verde2);color:var(--verdec);}
.et-rep{background:var(--ambar2);color:var(--ambarc);}
.et-edit{background:var(--morado2);color:var(--moradoc);}
.et-apertura{background:#1f242d;color:var(--txt3);}
.ev.nuevo{animation:entra 1.8s ease-out;}
@keyframes entra{0%{background:var(--azul2)}100%{background:transparent}}

.lista{border:1px solid var(--linea);border-radius:9px;overflow:hidden;}
.lista .it{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;
  border-bottom:1px solid #1d222c;font-size:12.5px;}
.lista .it:last-child{border-bottom:none;}
.lista .it .s{color:var(--txt3);font-size:11.5px;}
.vacio{color:var(--txt3);font-size:12.5px;padding:18px 2px;text-align:center;}
.barra-com{border-top:1px solid var(--linea);padding:10px 16px;background:var(--panel);}
.aviso{background:var(--ambar2);border-left:3px solid var(--ambar);border-radius:0 8px 8px 0;
  padding:9px 12px;font-size:12px;color:var(--ambarc);margin-bottom:12px;}

/* ---------------- tarjetas / genérico ---------------- */
.rejilla{display:grid;gap:12px;padding:16px;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));width:100%;
  align-content:start;overflow-y:auto;}
.tarjeta{background:var(--panel);border:1px solid var(--linea);border-radius:var(--r);padding:15px 17px;}
.tarjeta .k{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--txt3);font-weight:700;}
.tarjeta .v{font-size:25px;font-weight:800;margin-top:5px;font-variant-numeric:tabular-nums;}
.tarjeta .d{font-size:11.5px;color:var(--txt3);margin-top:3px;}
.centro{flex:1;display:grid;place-items:center;padding:40px;text-align:center;color:var(--txt3);}
.centro .g{font-size:34px;margin-bottom:9px;opacity:.5;}

.toast{position:fixed;bottom:18px;right:18px;z-index:99;background:var(--panel3);
  border:1px solid var(--linea2);border-radius:10px;padding:11px 15px;font-size:12.5px;
  box-shadow:var(--sombra);max-width:330px;animation:sube .25s ease-out;}
@keyframes sube{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.toast b{color:var(--azulc);}

@media(max-width:1080px){
  .app{grid-template-columns:1fr;}
  .lateral{position:fixed;left:-240px;top:0;bottom:0;width:222px;z-index:50;transition:left .2s;}
  .lateral.abierto{left:0;box-shadow:var(--sombra);}
  .split{grid-template-columns:1fr;}
  .col.der{border-top:1px solid var(--linea);}
  body{overflow:auto;} .app{height:auto;min-height:100vh;}
}

/* ================= PLANIFICADOR ================= */
.split.planif{grid-template-columns:minmax(560px,1fr) minmax(380px,470px);}

/* ---- Agenda Curifor (panel de citas) ------------------------------ */
.citas-wrap{flex:0 0 auto;border-bottom:1px solid var(--linea);background:var(--panel2);}
.citas-cab{display:flex;align-items:center;gap:10px;padding:8px 14px;}
.citas-tit{font-size:11px;font-weight:700;color:var(--txt3);text-transform:uppercase;letter-spacing:.03em;flex:1;}
.cita-form{display:flex;flex-wrap:wrap;gap:7px;padding:0 14px 10px;align-items:center;}
.citas-fila{display:flex;gap:9px;overflow-x:auto;padding:0 14px 10px;}
.cita-card{flex:0 0 190px;background:var(--panel);border:1px solid var(--linea);
  border-left:3px solid var(--ambar);border-radius:8px;padding:8px 10px;}
.cita-card .pat{font-weight:700;font-size:12.5px;}
.cita-card .s{font-size:11px;color:var(--txt3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cita-acc{display:flex;gap:5px;margin-top:7px;flex-wrap:wrap;}
.cita-acc button{font-size:10.5px;padding:3px 7px;}
.btn-asiste{background:var(--verde2);border-color:var(--verde2);color:var(--verdec);}
.btn-noasiste{background:var(--rojo2);border-color:var(--rojo2);color:var(--rojoc);}
.btn-reagenda{background:var(--ambar2);border-color:var(--ambar2);color:var(--ambarc);}
.cita-reagenda-form{display:flex;gap:5px;margin-top:7px;align-items:center;}
.cita-reagenda-form input[type=date]{font-size:11px;padding:3px 5px;}

/* ---- Control de Taller (vista planilla) --------------------------- */
.ct-toolbar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--linea);}
.ct-tabla-wrap{flex:1;overflow:auto;padding:0 14px 14px;}
.ct-tabla th,.ct-tabla td{white-space:nowrap;}
.ct-tabla select,.ct-tabla input{font-size:12px;padding:3px 5px;}
tr.ct-sep td{background:var(--panel2);font-weight:700;font-size:11.5px;color:var(--txt2);padding:6px 10px;}
tr.ct-noshow{opacity:.5;}

/* ============ 📋 VCU Ford (Hoja Multipuntos) ============ */
.vcu-badge{display:inline-block;margin-top:5px;padding:3px 8px;border-radius:4px;
  font-size:11px;font-weight:700;cursor:pointer;}
.vcu-badge.ok{background:var(--verde);color:#04210f;}
.vcu-badge.pend{background:var(--rojo);color:#2a0708;}
.vcu-chip{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:3px;
  font-size:9px;font-weight:700;cursor:pointer;vertical-align:middle;}
.vcu-chip.ok{background:var(--verde);color:#04210f;}
.vcu-chip.pend{background:var(--rojo);color:#2a0708;}

.vcu-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;
  align-items:center;justify-content:center;z-index:1000;padding:20px;}
.vcu-overlay.open{display:flex;}
.vcu-modal{background:var(--panel);border:1px solid var(--linea);border-radius:var(--r);
  width:1300px;max-width:97vw;max-height:92vh;display:flex;flex-direction:column;box-shadow:var(--sombra);}
.vcu-modal-head{display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;border-bottom:1px solid var(--linea);}
.vcu-modal-head h3{margin:0;font-size:15px;}
.vcu-modal-estado{padding:8px 18px;font-size:12px;color:var(--txt2);border-bottom:1px solid var(--linea);}
.vcu-modal-body{flex:1;overflow:auto;padding:14px 18px;}
.vcu-modal-pie{display:flex;gap:10px;align-items:center;padding:12px 18px;border-top:1px solid var(--linea);}

/* Modal genérico chico (reutilizable) — mismo patrón que .vcu-overlay
   arriba, pero angosto, para formularios simples (ver mod-disponibilidad.js). */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;
  align-items:center;justify-content:center;z-index:1000;padding:20px;}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--panel);border:1px solid var(--linea);border-radius:var(--r);
  width:520px;max-width:97vw;max-height:92vh;display:flex;flex-direction:column;box-shadow:var(--sombra);}
.modal-head{display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;border-bottom:1px solid var(--linea);}
.modal-head h3{margin:0;font-size:15px;}
.modal-body{flex:1;overflow:auto;padding:14px 18px;}

/* Overlay de campos ENCIMA de la imagen real del PDF Ford — a pedido
   explícito de Cristóbal, no es una recreación, son inputs posicionados
   en % sobre las casillas/líneas reales del documento escaneado. Los
   colores de fondo son intencionalmente casi-blancos (para leerse sobre
   el papel escaneado), independientes del tema oscuro del resto de la
   app — por eso llevan su propio color:#111 en vez de heredar var(--txt). */
.vcuf-overlay-wrap{position:relative;width:100%;margin:0 0 12px;line-height:0;
  border:1px solid var(--linea2);border-radius:4px;overflow:hidden;}
.vcuf-overlay-wrap img{display:block;width:100%;height:auto;}
.vcuf-of-box{position:absolute;margin:0;padding:0;cursor:pointer;z-index:2;
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background:rgba(255,255,255,.001);border:1px solid transparent;border-radius:1px;
  box-shadow:0 0 0 1px rgba(20,60,120,.22);box-sizing:border-box;outline:none;}
.vcuf-of-box:hover{box-shadow:0 0 0 1.5px rgba(20,60,120,.7);}
.vcuf-of-box:checked{background:rgba(17,17,17,.62);box-shadow:0 0 0 1.5px #111;}
.vcuf-of-box:disabled{cursor:not-allowed;box-shadow:0 0 0 1px rgba(20,60,120,.1);}
.vcuf-of-box:disabled:checked{background:rgba(17,17,17,.45);}
.vcuf-of-text{position:absolute;border:none;border-bottom:1px solid rgba(26,58,92,.55);
  border-radius:0;background:rgba(255,255,255,.72);font-size:.85vw;line-height:1.15;
  padding:0 2px;box-sizing:border-box;z-index:2;font-family:inherit;color:#111;}
.vcuf-of-text.vcuf-of-empty{background:rgba(255,244,214,.85);}
.vcuf-of-text:focus{background:#fff;outline:1.5px solid #1a3a5c;}
.vcuf-of-textarea{position:absolute;border:1px solid rgba(26,58,92,.35);border-radius:3px;
  background:rgba(255,255,255,.82);font-size:.85vw;padding:3px 5px;box-sizing:border-box;
  resize:none;font-family:inherit;z-index:2;color:#111;}
.vcuf-of-textarea:focus{background:#fff;outline:1.5px solid #1a3a5c;}
.vcuf-of-range{position:absolute;height:1.7%;margin:0;padding:0;z-index:3;cursor:pointer;
  accent-color:#111;background:transparent;}
.vcuf-bat-marker{position:absolute;width:.35%;background:#111;z-index:2;pointer-events:none;}
.vcuf-bat-marker-lbl{position:absolute;font-size:.8vw;font-weight:700;color:#111;
  background:rgba(255,255,255,.8);padding:0 3px;border-radius:2px;
  transform:translate(-50%,-100%);white-space:nowrap;z-index:3;pointer-events:none;}
@media (max-width:700px){.vcuf-of-text,.vcuf-of-textarea,.vcuf-bat-marker-lbl{font-size:9px;}}


.tablero-wrap{flex:1;overflow:auto;min-height:0;}
.tablero{min-width:max-content;}
.tb-cab{display:flex;position:sticky;top:0;z-index:5;background:var(--panel2);
  border-bottom:1px solid var(--linea);}
.tb-tec{width:190px;flex:0 0 190px;padding:7px 11px;display:flex;align-items:center;gap:8px;
  border-right:1px solid var(--linea);position:sticky;left:0;background:var(--panel);z-index:3;}
.tb-cab .tb-tec{background:var(--panel2);font-size:9.5px;text-transform:uppercase;
  letter-spacing:.05em;color:var(--txt3);font-weight:700;}
.tb-tec .n{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tb-tec .c{font-size:10.5px;color:var(--txt3);}
.tb-horas{display:flex;}
.tb-h{flex:0 0 auto;font-size:9.5px;color:var(--txt3);padding:7px 0 6px 3px;
  border-right:1px solid #1b2029;}
.tb-h.marca{color:var(--txt2);font-weight:600;border-right-color:var(--linea);}
.tb-fila{display:flex;border-bottom:1px solid var(--linea);min-height:52px;}
.tb-fila.nodisp .tb-tec{opacity:.5;}
.tb-fila.nodisp .tb-pista{background:repeating-linear-gradient(45deg,transparent,transparent 7px,#1a1f28 7px,#1a1f28 14px);}
.tb-pista{position:relative;flex:1;min-height:52px;}
.tb-pista.libre{display:flex;flex-wrap:wrap;padding:3px;width:auto!important;}
.tb-slot{position:absolute;top:0;bottom:0;border-right:1px solid #1b2029;}
.tb-slot.sobre{background:var(--azul2);border-right-color:var(--azul);}
.tablero .tarjeta{position:absolute;top:4px;bottom:4px;border-radius:7px;padding:5px 8px;
  background:var(--panel3);border-left:3px solid var(--azul);cursor:grab;overflow:hidden;
  transition:transform .1s,box-shadow .1s;z-index:2;}
.tablero .tarjeta:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.45);z-index:4;}
.tablero .tarjeta.arrastrando{opacity:.4;cursor:grabbing;}
.tablero .tarjeta.sel{box-shadow:0 0 0 2px var(--azul);z-index:4;}
.tablero .tarjeta.cerrada{opacity:.55;}
.tablero .tarjeta .pat{font-size:11.5px;font-weight:700;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;}
.tablero .tarjeta .srv{font-size:9.5px;color:var(--txt3);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;}
.tablero .tarjeta .stop{position:absolute;top:4px;right:5px;color:var(--ambar);font-size:8px;}
.tarjeta.recepcion{border-left-color:var(--txt3);}
.tarjeta.ingreso_taller{border-left-color:var(--azul);}
.tarjeta.en_proceso{border-left-color:var(--ambar);}
.tarjeta.en_prueba{border-left-color:var(--morado);}
.tarjeta.lavado{border-left-color:var(--cyan);}
.tarjeta.entrega{border-left-color:var(--verde);}
.chip.e-recepcion{background:#1f242d;color:var(--txt3);}
.chip.e-ingreso_taller{background:var(--azul2);color:var(--azulc);}
.chip.e-en_proceso{background:var(--ambar2);color:var(--ambarc);}
.chip.e-en_prueba{background:var(--morado2);color:var(--moradoc);}
.chip.e-lavado{background:var(--cyan2);color:var(--cyanc);}
.chip.e-entrega{background:var(--verde2);color:var(--verdec);}

/* ================= GENÉRICO DE MÓDULOS ================= */
.mod{flex:1;overflow-y:auto;padding:16px;min-width:0;}
.mod h3{margin:0 0 4px;font-size:15px;font-weight:700;}
.mod .sub{margin:0 0 14px;font-size:12.5px;color:var(--txt3);}
.seccion{background:var(--panel);border:1px solid var(--linea);border-radius:var(--r);
  margin-bottom:14px;overflow:hidden;}
.seccion > h4{margin:0;padding:11px 15px;font-size:12.5px;font-weight:700;
  border-bottom:1px solid var(--linea);display:flex;align-items:center;gap:9px;}
.seccion > h4 .n{font-size:10px;background:var(--panel3);padding:1px 7px;
  border-radius:99px;color:var(--txt3);font-weight:600;}
.seccion .in{padding:13px 15px;}
.fila-form{display:flex;gap:9px;flex-wrap:wrap;align-items:flex-end;}
.fila-form .campo{margin-bottom:0;flex:1;min-width:130px;}
.tabla-simple{width:100%;}
.tabla-simple td,.tabla-simple th{white-space:normal;}
.acc{display:flex;gap:5px;}
.acc button{padding:4px 9px;font-size:11.5px;}

/* ============ elementos compartidos de los módulos ============ */
.punto{width:8px;height:8px;border-radius:99px;flex:0 0 auto;}
.punto.verde{background:var(--verde);} .punto.cyan{background:var(--cyan);}
.punto.morado{background:var(--morado);} .punto.ambar{background:var(--ambar);}
.punto.rojo{background:var(--rojo);} .punto.azul{background:var(--azul);}
.permisos{display:flex;flex-wrap:wrap;gap:7px;}
.chk{display:flex;align-items:center;gap:6px;font-size:12px;padding:5px 10px;
  background:var(--panel2);border:1px solid var(--linea);border-radius:7px;cursor:pointer;
  color:var(--txt2);}
.chk:hover{border-color:var(--azul);color:var(--txt);}
.chk input{width:14px;height:14px;accent-color:var(--azul);cursor:pointer;margin:0;padding:0;}
.item-lista{padding:10px 14px;border-bottom:1px solid #1d222c;cursor:pointer;}
.item-lista:hover{background:#1a202a;}
.item-lista.sel{background:var(--azul2);}
.tarjeta.libre{border-color:#1d4d31;}
.mod code{background:var(--panel2);padding:1px 5px;border-radius:4px;font-size:11.5px;}
.seccion .sp{flex:1;}

/* ============ 📈 Indicadores Post Venta (Power BI) ============ */
.mod-pbi{flex:1;display:flex;flex-direction:column;min-width:0;height:100%;}
.pbi-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:10px 16px;border-bottom:1px solid var(--linea);background:var(--panel2);}
.pbi-nav-label{font-size:11px;font-weight:700;color:var(--txt3);
  text-transform:uppercase;letter-spacing:.03em;flex:0 0 auto;}
.pbi-chips{display:flex;flex-wrap:wrap;gap:6px;}
.pbi-nav-hint{font-size:11px;color:var(--txt3);flex:0 0 auto;margin-left:auto;}
.info-chip{display:inline-block;font-size:10.5px;font-weight:600;padding:3px 9px;
  border-radius:99px;background:var(--panel3);border:1px solid var(--linea2);color:var(--txt2);
  white-space:nowrap;}
.pbi-frame{flex:1;width:100%;border:none;min-height:0;}

/* ============ 🧮 Cotizador de Mantenciones ============ */
.mod-cotizador{flex:1;display:flex;flex-direction:column;min-width:0;height:100%;}
.cotiz-frame{flex:1;width:100%;border:none;min-height:0;background:var(--panel);}

/* ============ 📋 OTs Pendientes — barra de sub-módulos ============ */
.mod-ots{flex:1;display:flex;flex-direction:column;min-width:0;height:100%;}
.subtabs{display:flex;gap:2px;padding:0 12px;border-bottom:1px solid var(--linea2);
  overflow-x:auto;background:var(--panel);flex:0 0 auto;}
.subtab{padding:11px 13px;font-size:12.5px;font-weight:600;color:var(--txt2);cursor:pointer;
  white-space:nowrap;border-bottom:2px solid transparent;}
.subtab:hover{color:var(--txt);}
.subtab.on{color:var(--azulc);border-bottom-color:var(--azul);}
.subtab.pend{opacity:.55;}
.subtab.pend::after{content:"";display:inline-block;width:5px;height:5px;border-radius:99px;
  background:var(--txt3);margin-left:6px;vertical-align:middle;}

/* ============ 🔍 Búsqueda de Cliente ============ */
.cli-busq{padding:16px;flex:0 0 auto;border-bottom:1px solid var(--linea);}
.cli-busq input{width:100%;max-width:480px;}
.cli-lista{flex:1;overflow-y:auto;padding:0 16px 18px;}
.cli-tarjeta{background:var(--panel);border:1px solid var(--linea);border-radius:10px;
  margin-bottom:12px;overflow:hidden;}
.cli-tarjeta .cab2{padding:11px 15px;background:var(--panel2);display:flex;
  align-items:baseline;gap:10px;flex-wrap:wrap;}
.cli-tarjeta .cab2 h4{margin:0;font-size:13.5px;font-weight:700;}
.cli-tarjeta .cab2 .meta{font-size:11.5px;color:var(--txt3);}
.cli-tarjeta table{width:100%;}
.cli-tarjeta .pie{display:flex;justify-content:flex-end;gap:14px;padding:9px 15px;
  font-size:12.5px;font-weight:700;color:var(--txt);background:var(--panel2);
  border-top:1px solid var(--linea);}
.cli-tarjeta .pie .saldo{color:var(--verdec);}
.cli-mov{padding:10px 15px;border-top:1px dashed var(--linea);}

/* ---- 👤 Por Asesor — ranking en barras --------------------------- */
.rank-fila{display:flex;align-items:center;gap:10px;padding:5px 0;}
.rank-fila .rank-n{flex:0 0 160px;font-size:12px;color:var(--txt2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rank-fila .rank-pista{flex:1;height:9px;border-radius:99px;background:var(--panel3);
  overflow:hidden;}
.rank-fila .rank-barra{height:100%;background:var(--azul);border-radius:99px;}
.rank-fila .rank-val{flex:0 0 34px;text-align:right;font-size:12px;font-weight:700;}

/* ---- 🏆 Ranking Cierres >90d ------------------------------------- */
.rk-chip{display:inline-block;padding:5px 12px;font-size:12px;font-weight:600;
  color:var(--txt2);background:var(--panel3);border:1px solid var(--linea2);
  border-radius:99px;cursor:pointer;white-space:nowrap;}
.rk-chip:hover{color:var(--txt);}
.rk-chip.on{color:var(--azulc);border-color:var(--azul);background:var(--azul2);}
.rk-fila-sem{display:flex;align-items:center;gap:10px;padding:4px 0;}
.rk-fila-sem .rk-sem{flex:0 0 90px;font-size:11px;color:var(--txt2);white-space:nowrap;}
.rk-fila-sem .rk-pista{flex:1;height:15px;border-radius:4px;background:var(--panel3);
  overflow:hidden;display:flex;}
.rk-fila-sem .rk-seg{height:100%;}
.rk-fila-sem .rk-tot{flex:0 0 28px;text-align:right;font-size:11.5px;font-weight:700;}
.rk-leyenda{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:11px;color:var(--txt2);}
.rk-leyenda .sw{display:inline-block;width:9px;height:9px;border-radius:2px;
  margin-right:5px;vertical-align:middle;}

/* ---- 🔔 Notificaciones ------------------------------------------- */
.notif-lista{display:flex;flex-direction:column;gap:9px;}
.notif-card{background:var(--panel2);border:1px solid var(--linea);border-left:3px solid var(--azul);
  border-radius:8px;padding:10px 13px;}
.notif-card.leida{border-left-color:var(--linea2);opacity:.68;}
.notif-card .meta{font-size:11px;color:var(--txt3);margin-bottom:4px;}
.notif-card .txt{font-size:12.5px;color:var(--txt);margin-bottom:7px;}
.notif-card .ir{font-size:11.5px;padding:4px 10px;}




/* ---- 📊 Producción Técnicos ---------------------------------------- */
.prod-wrap{padding:12px 14px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;}
.tabla-scroll{overflow-x:auto;}
.prod-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
.prod-mes-label{font-size:12px;font-weight:700;color:var(--txt2);display:flex;
  align-items:center;gap:6px;}
.prod-toolbar input[type=text]{min-width:160px;}
.prod-nota{font-size:11px;color:var(--txt3);flex-basis:100%;line-height:1.5;}
.prod-kpis,.prod-kpis-det{display:flex;flex-wrap:wrap;gap:8px;}
.prod-kpi{background:var(--panel2);border:1px solid var(--linea);border-radius:8px;
  padding:8px 12px;min-width:120px;}
.prod-kpi b{display:block;font-size:16px;color:var(--txt);}
.prod-kpi span{display:block;font-size:10.5px;color:var(--txt3);margin-top:2px;}
.prod-tabla th.num,.prod-tabla td.num{text-align:right;}
.prod-frac{font-size:10px;color:var(--txt3);margin-top:2px;}
.nodisp-badge{display:inline-block;font-size:9.5px;font-weight:700;padding:2px 7px;
  border-radius:99px;background:var(--rojo2);color:var(--rojoc);margin-left:6px;}
.empresa-badge{display:inline-block;font-size:9.5px;font-weight:700;padding:2px 7px;
  border-radius:99px;margin-left:6px;}
.empresa-badge.curifor{background:var(--azul2);color:var(--azulc);}
.empresa-badge.frontera{background:var(--ambar2);color:var(--ambarc);}
.empresa-badge.mixto{background:var(--panel3);color:var(--txt2);border:1px solid var(--linea2);}
.prod-det-head{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;
  padding:10px 0 4px;border-top:1px solid var(--linea);margin-top:4px;}
.prod-det-close{margin-left:auto;font-size:11.5px;}
.prod-det-sub{font-size:12px;font-weight:700;color:var(--txt2);margin:10px 0 6px;}
.prod-det-empty{font-size:11.5px;color:var(--txt3);padding:6px 0;}
.prod-mini th,.prod-mini td{font-size:12px;padding:5px 8px;}
