:root{--azul:#1c2b39;--azul-2:#2a3f52;--naranja:#e2692f;--naranja-claro:#fdeee6;--fondo:#f3f5f8;--borde:#dde3ea;--texto:#1c2b39;--suave:#5f6f7f;--verde:#1f9d55;--rojo:#d63c3c;--amarillo:#e6a700;color:var(--texto);background:var(--fondo);font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}body,h1,h2,h3,h4{margin:0}h1{font-size:22px}h2{text-transform:capitalize;font-size:18px}h3{font-size:15px}h4{color:var(--azul-2);margin:14px 0 6px;font-size:13px}button{font:inherit;cursor:pointer}pre{white-space:pre-wrap;border:1px solid var(--borde);background:#f7f9fb;border-radius:8px;margin:6px 0;padding:10px;font-family:inherit}a{color:var(--naranja)}.app{min-height:100vh;display:flex}.lateral{background:var(--azul);color:#fff;flex-direction:column;gap:2px;width:230px;height:100vh;padding:16px 10px;display:flex;position:sticky;top:0}.logo{color:var(--azul);background:#fff;border-radius:10px;align-items:center;gap:10px;margin-bottom:16px;padding:8px 10px;display:flex}.logo strong{font-size:14px;display:block}.logo small{color:var(--suave)}.nav{color:#c9d4de;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.nav:hover{background:var(--azul-2);color:#fff}.nav.activo{background:var(--naranja);color:#fff;font-weight:600}.contador{background:var(--rojo);color:#fff;border-radius:10px;margin-left:auto;padding:1px 7px;font-size:11px;font-style:normal}.nav.activo .contador{background:var(--azul)}.lateral-pie{color:#8aa0b4;flex-direction:column;gap:4px;margin-top:auto;padding:8px;display:flex}.lateral-pie .link{color:#8aa0b4;text-align:left}main{flex:1;min-width:0}.pagina{flex-direction:column;gap:16px;padding:22px 26px;display:flex}.pagina-cab{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.sub{color:var(--suave);margin:4px 0 0}.btn{border:1px solid var(--borde);color:var(--texto);white-space:nowrap;background:#fff;border-radius:8px;align-items:center;gap:4px;padding:7px 12px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--azul-2)}.btn.primario{background:var(--naranja);border-color:var(--naranja);color:#fff;font-weight:600}.btn.primario:hover{background:#c95a25}.btn.primario:disabled{opacity:.5;cursor:not-allowed}.btn.peligro{color:var(--rojo);border-color:#f1c4c4}.btn.chico{padding:3px 8px;font-size:12px}.btn-icono{color:var(--suave);background:0 0;border:0;font-size:18px}.link{color:var(--naranja);background:0 0;border:0;padding:0 4px;text-decoration:underline}.tarjeta{border:1px solid var(--borde);background:#fff;border-radius:12px;padding:16px}.tarjeta-cab{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.aviso{background:var(--naranja-claro);border:1px solid #f5c9b2;border-radius:10px;padding:10px 14px}.error{color:var(--rojo);margin:4px 0;font-size:13px}.ayuda{color:var(--suave);margin:6px 0;font-size:12.5px}.libre{color:var(--verde);margin:4px 0}.nota{color:var(--suave);max-width:360px;margin-top:2px;font-size:11.5px}.acciones{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.acciones-fila{justify-content:flex-end;gap:6px;display:flex}.badge{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-block}.e-solicitado{color:#5f6f7f;background:#eceff3}.e-preasignado{color:#3561c4;background:#e7efff}.e-esperando{color:#9a6b00;background:#fff3d6}.e-confirmado{color:#177a43;background:#dcf5e6}.e-curso{color:#b4501e;background:#ffe6d9}.e-finalizado{color:#2a3f52;background:#e3e8ee}.e-cancelado,.n-vencido,.n-critico{color:#a12d2d;background:#fbe1e1}.n-alerta{color:#b4501e;background:#ffe6d9}.n-proximo{color:#9a6b00;background:#fff3d6}.n-vigente{color:#177a43;background:#dcf5e6}.n-sin_vencimiento{color:#5f6f7f;background:#eceff3}.mes-nav{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.mes-nav h2{text-align:center;min-width:150px}.leyenda{color:var(--suave);flex-wrap:wrap;gap:12px;margin-left:auto;font-size:12px;display:flex}.leyenda i{vertical-align:-2px;border-radius:3px;width:12px;height:12px;display:inline-block}.leyenda i.bloqueado,.g-celda.bloqueado{background:repeating-linear-gradient(45deg,#fbe1e1,#fbe1e1 4px,#fff 4px 8px)}.grilla{gap:2px;display:grid;overflow-x:auto}.g-esquina{color:var(--suave);padding:6px;font-weight:600}.g-dia{color:var(--texto);background:0 0;border:0;border-radius:6px;flex-direction:column;align-items:center;padding:4px 0;font-weight:600;display:flex}.g-dia small{color:var(--suave);font-size:10px;font-weight:400}.g-dia.finde{color:var(--suave)}.g-dia.hoy{background:var(--azul);color:#fff}.g-dia.hoy small{color:#c9d4de}.g-dia.sel{outline:2px solid var(--naranja)}.g-placa{background:#f7f9fb;border-radius:6px;flex-direction:column;justify-content:center;padding:6px;display:flex}.g-placa small{color:var(--suave)}.g-celda{background:#fff;border:1px solid #edf0f4;border-radius:6px;flex-direction:column;gap:2px;min-height:46px;padding:3px;display:flex}.g-celda:hover{border-color:var(--naranja)}.g-celda.sel{border-color:var(--naranja);box-shadow:inset 0 0 0 1px var(--naranja)}.blq{border-radius:3px;height:8px;display:block}.blq.e-esperando,.leyenda i.e-esperando{background:var(--amarillo)}.blq.e-confirmado,.leyenda i.e-confirmado{background:var(--verde)}.blq.e-curso,.leyenda i.e-curso{background:var(--naranja)}.blq.e-finalizado,.leyenda i.e-finalizado{background:var(--azul-2)}.blq.e-solicitado,.blq.e-preasignado{background:#8aa0b4}.g-celda small{color:var(--suave);font-size:10px}.dia-placas{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.dia-placa{border:1px solid var(--borde);border-radius:10px;padding:10px}.dia-placa h4{color:var(--azul);margin-top:0;font-size:15px}.dia-placa h4 small{color:var(--suave);font-size:12px;font-weight:400}.item-servicio{text-align:left;border:1px solid var(--borde);background:#f7f9fb;border-radius:8px;width:100%;margin-top:6px;padding:8px;display:block}.item-servicio:hover{border-color:var(--naranja)}.tachado{opacity:.5;text-decoration:line-through}.modal-fondo{z-index:10;background:#141e2873;justify-content:center;align-items:flex-start;padding:30px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:14px;width:100%;box-shadow:0 20px 50px #00000040}.modal-cab{border-bottom:1px solid var(--borde);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-cuerpo{padding:16px 18px}.modal-pie{border-top:1px solid var(--borde);justify-content:flex-end;gap:8px;margin-top:14px;padding-top:14px;display:flex}.form-servicio{grid-template-columns:1.3fr 1fr;gap:20px;display:grid}.form-col{flex-direction:column;gap:10px;display:flex}.form-col h4{margin:0}label{color:var(--azul-2);flex-direction:column;flex:1;gap:4px;font-size:12.5px;font-weight:600;display:flex}label.check{flex-direction:row;align-items:center;font-weight:400}label.falta input{border-color:var(--rojo);background:#fff7f7}input,select,textarea{font:inherit;border:1px solid var(--borde);color:var(--texto);background:#fff;border-radius:8px;padding:7px 9px;font-weight:400}input:focus,select:focus,textarea:focus{outline:2px solid var(--naranja-claro);border-color:var(--naranja)}.fila{gap:10px;display:flex}.consulta{flex-wrap:wrap}.opcion-placa{text-align:left;border:2px solid var(--borde);background:#fff;border-radius:10px;padding:10px}.opcion-placa.ok{border-left:5px solid var(--verde)}.opcion-placa.no{border-left:5px solid var(--rojo);background:snow}.opcion-placa.sel{border-color:var(--naranja);box-shadow:0 0 0 3px var(--naranja-claro)}.opcion-cab{align-items:center;gap:8px;display:flex}.opcion-cab .sem{margin-left:auto;font-size:12px}.motivo{color:var(--rojo);margin-top:3px;font-size:12px}.detalle-cab{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.placa-grande{letter-spacing:1px;background:#fde24f;border:2px solid #222;border-radius:6px;padding:2px 10px;font-size:20px;font-weight:800}.detalle{grid-template-columns:130px 1fr;gap:6px 12px;margin:14px 0;display:grid}.detalle dt{color:var(--suave)}.detalle dd{margin:0}.historial{margin:0;padding:0;font-size:12.5px;list-style:none}.historial li{border-bottom:1px dashed var(--borde);padding:5px 0}.historial time{color:var(--suave);margin-right:6px}.tabla{border-collapse:collapse;width:100%}.tabla th{text-align:left;color:var(--suave);border-bottom:1px solid var(--borde);padding:6px 8px;font-size:12px;font-weight:600}.tabla td{vertical-align:top;border-bottom:1px solid #eef1f5;padding:7px 8px}.fila-vencido,.fila-critico{background:#fff7f7}.ficha{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 16px;display:grid}.ficha span{color:var(--suave);font-size:11.5px;display:block}.mensaje{border:1px solid var(--borde);border-radius:10px;margin-bottom:10px;padding:10px}.mensaje-cab{justify-content:space-between;display:flex}.mensaje.enviado{color:var(--suave);margin-bottom:4px;padding:6px 10px}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.kpi{border:1px solid var(--borde);border-left:4px solid var(--naranja);background:#fff;border-radius:10px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.kpi span{color:var(--suave);font-size:12px}.kpi strong{color:var(--azul);font-size:26px}.kpi small{color:var(--suave);font-size:11.5px}.tres-col{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.disp{flex-direction:column;gap:6px;display:flex}.disp.ok{border-top:5px solid var(--verde)}.disp.no{border-top:5px solid var(--rojo)}.disp p{margin:0}.barras{flex-direction:column;gap:8px;display:flex}.barra-fila{grid-template-columns:130px 1fr auto;align-items:center;gap:10px;display:grid}.barra-etq{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.barra-pista{background:#eef1f5;border-radius:4px;height:14px}.barra{background:var(--azul-2);border-radius:4px;min-width:2px;height:100%}.barra-val{font-size:12.5px;font-weight:600}.barra-val small{color:var(--suave);font-weight:400}@media (width<=860px){.app{flex-direction:column}.lateral{flex-flow:wrap;width:100%;height:auto;position:static}.logo{width:100%}.lateral-pie{display:none}.form-servicio{grid-template-columns:1fr}.pagina{padding:14px}.fila{flex-wrap:wrap}}.segmentado{border:1px solid var(--borde);border-radius:8px;display:inline-flex;overflow:hidden}.segmentado button{color:var(--suave);background:#fff;border:0;padding:7px 12px}.segmentado button.activo{background:var(--azul);color:#fff}.almanaque{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.alm-cab{text-align:center;color:var(--suave);padding:4px;font-size:12px;font-weight:600}.alm-dia{cursor:pointer;background:#fff;border:1px solid #e6eaef;border-radius:8px;flex-direction:column;gap:3px;min-width:0;min-height:108px;padding:5px;display:flex}.alm-dia:hover{border-color:var(--naranja)}.alm-dia.fuera{opacity:.55;background:#f7f9fb}.alm-dia.sel{border-color:var(--naranja);box-shadow:inset 0 0 0 1px var(--naranja)}.alm-dia.hoy .alm-num span{background:var(--azul);color:#fff;border-radius:12px;padding:0 7px}.alm-num{justify-content:space-between;align-items:center;font-weight:700;display:flex}.alm-num small{font-size:10px;font-weight:600}.alm-num .libres{color:var(--verde)}.alm-num .llenos{color:var(--rojo)}.alm-svc{text-align:left;white-space:nowrap;text-overflow:ellipsis;border:0;border-radius:5px;padding:2px 5px;font-size:11px;overflow:hidden}.alm-mas{color:var(--suave);font-size:10.5px}.alm-bloq{color:var(--rojo);font-size:10.5px}.sub-cab{justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.sub-cab h4{margin:0}.fila-historial td{color:var(--suave);background:#f7f9fb}.meses-ss{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px;display:grid}.mes-ss{border:1px solid var(--borde);text-transform:capitalize;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:6px;font-size:12px;display:flex}.mes-ss.ok{background:#effaf3;border-color:#bfe8cf}.mes-ss.falta{background:#fff}.mes-ss .link{padding:0;font-size:12px}.j-trabajo{color:#177a43;background:#dcf5e6}.j-descanso{color:#5f6f7f;background:#eef1f5}.j-incapacidad{color:#a12d2d;background:#fbe1e1}.j-vacaciones{color:#3561c4;background:#e2ecff}.j-permiso{color:#9a6b00;background:#fff3d6}.j-pendiente{color:#b8c2cc;background:#fff}.pinceles{color:var(--suave);flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.pincel{border:1px solid var(--borde);background:#fff;border-radius:14px;padding:4px 10px;font-size:12px}.pincel.activo{outline:2px solid var(--naranja);font-weight:700}.planilla-scroll{overflow-x:auto}.planilla{border-collapse:collapse;width:100%;font-size:12px}.planilla th,.planilla td{text-align:center;border:1px solid #e6eaef;min-width:24px;padding:3px 2px}.planilla th{background:#f7f9fb;font-weight:600}.planilla th.finde{background:#eef1f5}.planilla .izq{text-align:left;white-space:nowrap;min-width:190px;padding:4px 8px}.planilla td.j{font-weight:700}.planilla td.tot{background:#f7f9fb;font-weight:700}.manual{box-shadow:inset 0 -3px 0 var(--naranja)}.pintable{cursor:crosshair}.pintable:hover{outline:2px solid var(--naranja)}.leyenda-j{color:var(--suave);flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;display:flex}.leyenda-j i{text-align:center;border-radius:4px;width:20px;font-style:normal;font-weight:700;display:inline-block}.cal-conductores{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.cal-conductor header{margin-bottom:8px}.cal-conductor header small{color:var(--suave);text-transform:capitalize}.mini-cal{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.mini-cab{text-align:center;color:var(--suave);font-size:11px;font-weight:600}.mini-dia{border-radius:6px;flex-direction:column;align-items:center;min-height:40px;padding:3px;font-size:12px;font-weight:700;display:flex}.mini-dia small{font-size:9px;font-weight:500}.mini-dia.hoy{outline:2px solid var(--azul)}.cal-totales{flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:12.5px;display:flex}@media print{.no-print,.lateral{display:none!important}.solo-print{color:#666;font-size:11px;display:block}body,:root{background:#fff}.pagina{padding:0}.tarjeta{break-inside:avoid;border:1px solid #ccc}.planilla{font-size:9px}.planilla .izq{min-width:120px}.cal-conductores{grid-template-columns:repeat(3,1fr)}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:landscape;margin:10mm}}.tarjeta-vehiculo{padding:0;overflow:hidden;box-shadow:0 2px 8px #1c2b3914}.tarjeta-vehiculo>.tarjeta-cab{background:var(--azul);color:#fff;border-left:6px solid var(--naranja);margin:0;padding:12px 16px}.tarjeta-vehiculo>.tarjeta-cab h3{letter-spacing:.3px;font-size:17px}.tarjeta-vehiculo>:not(.tarjeta-cab){margin-left:16px;margin-right:16px}.tarjeta-vehiculo>:last-child{margin-bottom:16px}.tarjeta-vehiculo>.ficha{margin-top:14px}.sub-cab{border-radius:8px;margin-top:18px;margin-bottom:6px;padding:8px 12px;box-shadow:0 1px 3px #0000000f}.sub-cab h4{font-size:14px}.sub-cab.vehiculo{border-left:5px solid var(--azul-2);background:#e8eef4}.sub-cab.vehiculo h4{color:var(--azul)}.sub-cab.conductor{background:var(--naranja-claro);border-left:5px solid var(--naranja)}.sub-cab.conductor h4{color:#a8481a}.titulo-ss{border-left:5px solid var(--verde);background:#effaf3;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex;color:#177a43!important;margin-top:16px!important}.tarjeta-vehiculo>.tabla,.tarjeta-vehiculo>.meses-ss{width:calc(100% - 32px)}.chip-hora{text-align:center;cursor:pointer;border-radius:4px;padding:1px 2px;font-size:10.5px;font-weight:700;line-height:1.4;display:block}.chip-hora.e-esperando{background:var(--amarillo);color:#fff}.chip-hora.e-confirmado{background:var(--verde);color:#fff}.chip-hora.e-curso{background:var(--naranja);color:#fff}.chip-hora.e-finalizado{background:var(--azul-2);color:#fff}.chip-hora.e-solicitado,.chip-hora.e-preasignado{color:#fff;background:#8aa0b4}.g-celda{min-height:54px}.item-servicio{cursor:pointer;flex-direction:column;align-items:flex-start;gap:4px;display:flex}.hora-grande{border-radius:6px;padding:2px 8px;font-size:16px;font-weight:800}.confirmado-check{background:#effaf3;border:1px solid #bfe8cf;border-radius:8px;padding:8px;color:#177a43!important;font-weight:600!important}.ubic{color:var(--azul-2);background:#f1f4f8;border-radius:6px;margin-top:4px;padding:4px 8px;font-size:12px}.ubic.cerca{color:#177a43;background:#dcf5e6;font-weight:600}.sugerencia{color:#7a5600;background:#fff3d6;border-radius:6px;margin-top:4px;padding:5px 8px;font-size:12px}.segmentado.ida{display:flex}.segmentado.ida button{flex:1;font-size:12.5px}.traslados{border-collapse:collapse;font-size:12px}.traslados th{white-space:nowrap;background:#f7f9fb;border:1px solid #e6eaef;padding:4px 6px;font-weight:600}.traslados td{border:1px solid #e6eaef;padding:2px}.traslados td.vacia{text-align:center;color:var(--suave);background:#f3f5f8}.traslados input{text-align:center;width:62px;padding:3px 4px}.traslados input.por-defecto{background:#f3f5f8}.g-celda{gap:3px;min-height:64px;padding:4px}.chip-hora{text-align:left;white-space:nowrap;justify-content:space-between;gap:4px;padding:2px 4px;font-size:11.5px;display:flex;overflow:hidden}.chip-hora em{opacity:.9;text-overflow:ellipsis;font-style:normal;font-weight:500;overflow:hidden}.g-dia{font-size:14px}.logo{justify-content:center;padding:6px}.logo img{border-radius:6px;width:100%;max-width:200px;height:auto;display:block}.svc-dia{border-top:1px dashed var(--borde);flex-direction:column;gap:4px;width:100%;margin-top:6px;padding-top:6px;display:flex}.svc-dia-tit{color:var(--azul-2);font-size:12px}.svc-dia-item{border-radius:6px;align-items:center;gap:6px;padding:3px;font-size:12px;display:flex}.svc-dia-item .chip-hora{flex:none;justify-content:center;min-width:84px}.svc-dia-item.choca{background:#fff1f1}.choca-txt{color:var(--rojo)}.semana{color:var(--suave);font-size:11px}.grilla{-webkit-overflow-scrolling:touch;position:relative}.g-esquina,.g-placa{z-index:2;position:sticky;left:0}.g-esquina{background:#fff}.g-placa{background:#eef2f6;box-shadow:3px 0 6px -3px #1c2b3940}@media (width<=860px){.grilla{--col-placa:78px}.g-placa{padding:4px}.g-placa strong{font-size:13px}}.peligro-lleno{background:var(--rojo)!important;border-color:var(--rojo)!important}.aviso.tardia{color:#8f2424;background:#fdecec;border-color:#f3b7b7}.cancelado-info{color:#8f2424;background:#fbe1e1;border-radius:8px;margin:8px 0;padding:8px 10px;font-size:13px}.cancelado-info.tardia{border-left:5px solid var(--rojo)}.acciones-mini{flex-wrap:wrap;gap:6px;display:flex}.placas-oferta{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.vista-whatsapp{background:#e7f8dd;border-color:#c9e8b5;max-width:560px}.programacion{border:1px solid var(--borde);background:#f7f9fb;border-radius:10px;flex-direction:column;gap:8px;margin:8px 0 12px;padding:10px 12px;display:flex}.prog-cab{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.prog-cab h4{margin:0}.prog-cab label{flex:none}.estilo-def{align-items:center;flex-direction:row!important;gap:6px!important}.prog-fila{border:1px solid var(--borde);background:#fff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 8px;display:flex}.prog-fila.inactiva{opacity:.5}.prog-fila input[type=time]{width:110px}.dias{gap:3px;margin-left:auto;display:flex}.dias button{border:1px solid var(--borde);color:var(--suave);background:#fff;border-radius:6px;padding:3px 6px;font-size:11.5px}.dias button.activo{background:var(--azul);color:#fff;border-color:var(--azul)}.prog-hist{color:var(--suave);flex-direction:column;display:flex}.acceso{background:var(--azul);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.acceso-caja{background:#fff;border-radius:14px;flex-direction:column;gap:12px;width:100%;max-width:360px;padding:24px;display:flex;box-shadow:0 20px 50px #0000004d}.acceso-caja img{border-radius:8px;width:100%}.acceso-caja h1{text-align:center;color:var(--azul);font-size:18px}.acceso-caja .btn{justify-content:center;padding:10px}.nube-ok{color:#8fd3a8}.aviso-nube{color:#8f2424;background:#fdecec;border-bottom:1px solid #f3b7b7;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 16px;display:flex}.error-detalle{color:#8f2424;background:#fdecec;max-height:160px;font-size:12px;overflow:auto}.cobro{color:var(--azul);background:#fff;border-radius:6px;margin-top:8px;padding:6px 8px}.cobro.pendiente{color:#7a5600;background:#fff3d6}.lista-cobros{margin:6px 0 0;padding-left:18px}.fila-clic{cursor:pointer}.fila-clic:hover td{background:#f7f9fb}.ok-envio{background:#e7f8dd;border-color:#c9e8b5}.chat{background:#efeae2;border-radius:10px;flex-direction:column;gap:8px;min-height:280px;max-height:60vh;margin-top:10px;padding:12px;display:flex;overflow-y:auto}.burbuja{white-space:pre-wrap;border-radius:10px;max-width:80%;padding:8px 10px;font-size:13.5px;box-shadow:0 1px 1px #0000001a}.burbuja.yo{background:#d9fdd3;align-self:flex-end}.burbuja.agente{background:#fff;align-self:flex-start}.burbuja.sistema{color:#8f2424;background:#fdecec;align-self:center}.burbuja-detalle{color:var(--suave);background:#f3f5f8;margin:6px 0 0;font-size:11px}.chat-entrada{align-items:flex-end;gap:8px;margin-top:8px;display:flex}.chat-entrada textarea{flex:1}.sub-cab.mantenimiento{border-left:5px solid var(--amarillo);background:#fff3d6}.sub-cab.mantenimiento h4{color:#7a5600;align-items:center;gap:8px;display:flex}.bloqueo{border:1px solid var(--borde);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:6px 0;padding:8px 10px;display:flex}.bloqueo.activo{background:#fff3d6;border-color:#f0d48a}.bloqueo.pasado{color:var(--suave);padding:4px 10px}.afectado{border:1px solid var(--borde);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px;display:flex}.chip-taller{text-align:center;font-size:14px}.campo-archivo{border:1px dashed var(--borde);background:#f7f9fb;border-radius:8px;padding:8px}.lectura{background:#e7f8dd;border:1px solid #c9e8b5;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:13px;display:flex}.lectura.con-avisos{background:#fff3d6;border-color:#f0d48a}.lectura small{color:var(--suave)}.en-servicio{color:#fff;background:#e2692f;animation:2s ease-in-out infinite latido}.g-placa .en-servicio{margin-top:2px;padding:1px 6px;font-size:10px}@keyframes latido{50%{opacity:.75}}@media (prefers-reduced-motion:reduce){.en-servicio{animation:none}}.conductor-mes{background:linear-gradient(90deg,#fff3d6,#fff);border:1px solid #f0d9a8;border-radius:10px;margin-bottom:14px;padding:10px 14px;font-size:15px}.tabla-kpi{border-collapse:collapse;width:100%;font-size:13.5px}.tabla-kpi th,.tabla-kpi td{text-align:center;white-space:nowrap;border-bottom:1px solid #e6eaf0;padding:7px 10px}.tabla-kpi th:first-child,.tabla-kpi td:first-child{text-align:left}.tabla-kpi thead th{color:#fff;background:#1c2b39}.tabla-kpi .meta{color:#6b7a89;font-size:12px}.tabla-kpi .kpi-perspectiva td{color:#e2692f;text-transform:uppercase;letter-spacing:.04em;background:#f3f5f8;font-size:11.5px;font-weight:700}.tabla-kpi .kpi-total td{border-top:2px solid #1c2b39;font-size:15px;font-weight:800}.tabla-kpi .kpi-info td{color:#6b7a89}.kpi-verde{color:#157a40;background:#e3f6ea}.kpi-amarillo{color:#8a6200;background:#fff4d6}.kpi-rojo{color:#b3261e;background:#fde4e1}.estrellas button{color:#cfd6de;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:22px}.estrellas button.on{color:#e2a12f}.form-revision{gap:10px;display:grid}.revision-fila{border-bottom:1px solid #eef1f5;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 0;display:flex}.revision-fila small{color:#6b7a89;flex-basis:100%}.revision-fila .btn{margin-left:auto}.botones-conductores{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.dos-col{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}@media print{.menu,.no-imprimir,.barra-lateral,nav,aside{display:none!important}.desempeno .tarjeta{break-inside:avoid;box-shadow:none}.kpi-verde,.kpi-amarillo,.kpi-rojo,.tabla-kpi thead th,.kpi-perspectiva td{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.acceso-caja form{flex-direction:column;gap:12px;display:flex}.acceso-caja .sub{text-align:center;color:#5f6f7f;margin:0;font-size:13.5px}.acceso-caja .link{align-self:center}.portal{flex-direction:column;gap:16px;max-width:1100px;margin:0 auto;padding:16px;display:flex}.portal-cab{color:#fff;background:#1c2b39;border-left:6px solid #e2692f;border-radius:14px;flex-wrap:wrap;align-items:center;gap:14px 20px;padding:16px 20px;display:flex}.portal-cab img{background:#fff;border-radius:8px;height:54px}.portal-cab h1{margin:0;font-size:22px}.portal-cab p{opacity:.85;margin:2px 0 0;font-size:13.5px}.portal-acciones{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.portal-acciones .link{color:#fff}.portal-bloque{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 3px #0000000f}.portal-bloque h2{color:#1c2b39;margin:0 0 12px;font-size:16px}.portal-servicio{border:1px solid #e6eaf0;border-left:5px solid #9aa7b4;border-radius:10px;margin-bottom:10px;padding:12px}.portal-servicio.e-confirmado{border-left-color:#2f9e5b}.portal-servicio.e-en_curso{border-left-color:#e2692f}.portal-servicio.e-finalizado{border-left-color:#1c2b39}.portal-servicio.e-esperando_conductor{border-left-color:#e2a12f}.ps-cab{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.ps-cab .badge{background:#f3f5f8;margin-left:auto}.ps-ruta{color:#3c4b5a;margin-top:4px;font-size:13.5px}.linea-tiempo{grid-template-columns:repeat(5,1fr);margin-top:12px;display:grid;position:relative}.linea-tiempo:before{content:"";background:#e6eaf0;height:3px;position:absolute;top:7px;left:10%;right:10%}.paso{color:#9aa7b4;flex-direction:column;align-items:center;gap:2px;font-size:12px;display:flex;position:relative}.paso .punto{z-index:1;background:#e6eaf0;border:3px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 0 0 1px #d5dce4}.paso.hecho{color:#1c2b39}.paso.hecho .punto{background:#e2692f;box-shadow:0 0 0 1px #e2692f}.portal-flota{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.portal-camioneta{background:#f3fbee;border:1px solid #c9e8b5;border-radius:10px;flex-direction:column;gap:2px;padding:10px;display:flex}.portal-camioneta small{color:#5f6f7f}.portal-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:12px;display:grid}.portal-kpis div{background:#f3f5f8;border-radius:10px;flex-direction:column;padding:12px;display:flex}.portal-kpis span{color:#5f6f7f;font-size:12px}.portal-kpis strong{color:#1c2b39;font-size:24px}.portal-kpis small{color:#5f6f7f}.portal-tabla{border-collapse:collapse;width:100%;font-size:13px}.portal-tabla th{color:#fff;text-align:left;background:#1c2b39;padding:7px 8px}.portal-tabla td{border-bottom:1px solid #eef1f5;padding:7px 8px}.portal-pie{text-align:center;color:#5f6f7f;padding:8px;font-size:12.5px}.solo-print,.informe-cab{display:none}@media print{.portal{padding:0}.solo-print{display:block}.informe-cab{border-bottom:3px solid #e2692f;align-items:center;gap:14px;margin-bottom:12px;padding-bottom:10px;display:flex}.informe-cab img{height:56px}.informe-cab h1{color:#1c2b39;margin:0;font-size:20px}.portal-cab{display:none}.portal-bloque{box-shadow:none;padding:0}.portal-tabla th,.portal-kpis div{-webkit-print-color-adjust:exact;print-color-adjust:exact}.pie-informe{color:#5f6f7f;text-align:center;margin-top:14px;font-size:11px}}@media (width<=640px){.portal-acciones{width:100%;margin-left:0}.linea-tiempo small{font-size:10px}}.semana-cab{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;display:flex}.semana-cab h2{margin:0}.semana{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:8px;display:grid}.semana-dia{background:#fff;border:1px solid #e6eaf0;border-radius:10px;padding:10px}.semana-dia.hoy{border-color:#e2692f;box-shadow:0 0 0 2px #fbe7dc}.semana-dia.vacio{color:#9aa7b4;background:#fafbfc}.semana-fecha{color:#1c2b39;text-transform:capitalize;margin-bottom:6px;font-weight:700}.semana-servicio{border-left:4px solid #9aa7b4;flex-direction:column;gap:1px;margin-bottom:6px;padding:4px 8px;font-size:13px;display:flex}.semana-servicio .num{color:#e2692f;font-weight:700}.semana-servicio small{color:#5f6f7f}.semana-servicio.e-confirmado{border-left-color:#2f9e5b}.semana-servicio.e-en_curso{border-left-color:#e2692f}.semana-servicio.e-finalizado{border-left-color:#1c2b39}.semana-servicio.e-esperando_conductor{border-left-color:#e2a12f}.semana-servicio.e-cancelado{opacity:.7;border-left-color:#b3261e;text-decoration:line-through}.instalar-app{z-index:1000;border:1px solid var(--borde);background:#fff;border-radius:12px;align-items:center;gap:12px;width:min(520px,100vw - 32px);padding:10px 14px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #1c2b3938}.instalar-app img{border:1px solid var(--borde);border-radius:10px;flex:none;width:44px;height:44px}.instalar-app>div{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.instalar-app small{color:var(--suave)}@media (display-mode:standalone){.instalar-app{display:none}}
