﻿.flt-body{background:#f5f7fb;color:#273750}/* Sin tope de ancho: el resto de la plataforma usa container-fluid, que ocupa
   toda la pantalla. El max-width de 1680px dejaba franjas vacias en monitores
   anchos y sacaba a Flotillas del patron. */
.flt-page{width:100%;max-width:none;margin:0;padding:22px 26px 28px;min-width:0;box-sizing:border-box}.flt-page .page-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 18px}.flt-page h1{font-size:22px;color:#2a3b6e;margin:0 0 5px;font-weight:700}.flt-page .page-header p{color:#d35900;margin:0;font-size:var(--et-fs-sm)}.flt-page .et-hd-actions{display:flex;flex-wrap:wrap;gap:8px}.flt-context{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--et-fs-sm)}.flt-context>span>span{color:#718098}.flt-context label{display:flex;align-items:center;gap:10px}.flt-status{margin:10px 0 14px;color:#63748a;font-size:var(--et-fs-sm);min-height:18px}.flt-error{color:#a82940!important;background:#fff2f3;padding:10px;border-radius:7px}.flt-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}.flt-kpi{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #e2e8f2;border-top:3px solid var(--accent,#4e73df);padding:17px 14px;border-radius:11px;text-align:left;box-shadow:0 3px 10px #24416b05;color:#2a3b6e;min-width:0}.flt-kpi>i{font-size:18px;padding:10px;background:#eef3ff;border-radius:9px;color:var(--accent,#4e73df)}.flt-kpi span{display:flex;flex-direction:column;gap:4px;min-width:0}.flt-kpi em{font-style:normal;font-size:var(--et-fs-xs);font-weight:600}.flt-kpi strong{font-size:27px;line-height:1.2}.flt-kpi small{color:#6b7991;font-size:var(--et-fs-label)}.flt-columns{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(300px,1fr);gap:18px}.flt-main,.flt-side{display:flex;flex-direction:column;gap:18px;min-width:0}.flt-panel{background:white;border:1px solid #e1e7f0;border-radius:12px;padding:17px;box-shadow:0 4px 12px #28426a04}.flt-panel>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.flt-panel h2{font-size:var(--et-fs-sm);font-weight:700;text-transform:uppercase;color:#2a3b6e;margin:0}.flt-panel h2 i{margin-right:6px}.flt-panel header p,.flt-footnote{font-size:var(--et-fs-xs);color:#718098;line-height:1.6;margin:5px 0 0}.flt-panel>header label{display:flex;align-items:center;gap:7px;font-size:var(--et-fs-xs);white-space:nowrap}.flt-link{border:0;background:transparent;padding:3px;color:#2456ad;font-size:var(--et-fs-sm);text-align:left;cursor:pointer}.flt-link:hover{text-decoration:underline}.flt-body :focus-visible{outline:2px solid var(--et-primary);outline-offset:3px}.flt-empty{display:flex;min-height:116px;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#79869a;text-align:center;padding:24px;font-size:var(--et-fs-sm)}.flt-empty i{font-size:28px;color:#bbc8da}.flt-scroll{overflow:auto;max-width:100%}.flt-body table{width:100%;white-space:nowrap}.flt-body td{padding:9px 15px;border-top:0;border-bottom:0;vertical-align:middle;font-size:12px}.flt-body th{padding:11px}.flt-body td small{display:block;color:var(--et-ink-muted,#718098);font-size:11px;margin-top:2px}.flt-panel footer{display:flex;justify-content:space-between;gap:12px;padding-top:12px}.flt-badge{display:inline-block;background:transparent;color:#52657d;padding:2px 8px;border:1px solid;border-radius:var(--et-radius-pill,20px);font-size:10.5px;font-weight:700;white-space:nowrap}.flt-badge.reservado,.flt-badge.disponible,.flt-badge.resuelta{background:#e2f6ee;color:#157152}.flt-badge.critica,.flt-badge.bloqueada{background:#ffe8ed;color:#aa2842}.flt-badge.alta,.flt-badge.taller,.flt-badge.borrador{background:#fff0d8;color:#936013}.flt-alert{display:flex;gap:11px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0f6}.flt-alert>i{padding:11px;background:#fff0e6;border-radius:9px;color:#e8791a}.flt-alert>div{flex:1;min-width:0}.flt-alert strong{font-size:var(--et-fs-sm);display:block}.flt-alert small{font-size:var(--et-fs-xs);color:#728199;display:block;margin-top:5px}.flt-stack{display:flex;height:16px;border-radius:6px;overflow:hidden;margin:15px 0}.flt-stack span{min-width:1px}.flt-legend{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.flt-legend button{border:0;background:none;display:flex;flex-direction:column;text-align:left;font-size:var(--et-fs-label);color:#6b7a90;padding:4px}.flt-legend strong{font-size:22px;color:#2a3b6e}.flt-scope{display:flex;align-items:center;gap:10px;margin-top:18px;font-size:var(--et-fs-xs);color:#6f7d92;padding:12px 15px;border:1px solid #e1e7f0;background:#fff;border-radius:9px}.flt-scope span{flex:1}.flt-accesses{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.flt-accesses button{background:white;border:1px solid #dfe6f0;border-radius:10px;padding:18px;text-align:left;color:#2a3b6e;display:flex;flex-direction:column;gap:9px}.flt-accesses i{font-size:24px}.flt-accesses small{color:#718098}.flt-body .ia-bar{margin-bottom:18px}.flt-body .ia-bar-btn{width:100%;display:flex;align-items:center;gap:13px;background:var(--et-surface,#fff);border:1px solid var(--et-line,#e1e7f0);border-left:3px solid var(--et-ia,#FF5F00);border-radius:var(--et-radius,10px);padding:13px 16px;cursor:pointer;text-align:left}.flt-body .ia-bar-ico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 auto;border-radius:9px;background:var(--et-ia-soft,rgba(255,95,0,.10));color:var(--et-ia,#FF5F00)}#map{height:320px;border-radius:9px;background:#edf2f7}.flt-body [hidden]{display:none!important}.flt-body dialog:not(.et-accesses-dialog){width:min(1050px,calc(100vw - 32px));max-height:90vh;border:1px solid #dfe6f0;border-radius:13px;padding:20px;color:#273750;box-shadow:0 20px 80px #1c305443;margin:auto;overflow:auto}.flt-body dialog:not(.et-accesses-dialog)::backdrop{background:#17274270}.flt-body dialog:not(.et-accesses-dialog) header{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.flt-body dialog:not(.et-accesses-dialog) h2{font-size:17px;color:#2a3b6e;font-weight:700;margin:0}.flt-body dialog:not(.et-accesses-dialog) h3{font-size:var(--et-fs-xs);margin:0}.flt-body dialog:not(.et-accesses-dialog) p{font-size:var(--et-fs-xs);color:#6a7b91;margin:5px 0}.flt-panel h3{font-size:var(--et-fs-label);font-weight:700;text-transform:uppercase;color:#2a3b6e;margin:16px 0 8px}.flt-panel p:not([class]),.flt-panel li{font-size:var(--et-fs-xs)}.flt-body dialog:not(.et-accesses-dialog) footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid #e5eaf2;font-size:var(--et-fs-sm)}.flt-body label{font-size:var(--et-fs-sm);font-weight:500}.flt-body input,.flt-body select,.flt-body textarea{font:inherit;border:1px solid #d8e1ed;border-radius:6px;background:white;color:#273750;padding:9px 10px;min-width:0;max-width:100%}.flt-form{display:grid;gap:14px}.flt-form label{display:grid;gap:6px}.flt-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.flt-toolbar{display:flex;align-items:end;gap:12px;margin-bottom:12px}.flt-toolbar label{display:grid;gap:6px}.flt-toolbar label:first-child{flex:1}.flt-plan-deliveries{border:1px solid #dfe6f0;border-radius:9px;padding:14px}.flt-plan-deliveries p{font-size:var(--et-fs-xs);color:#728199}.flt-plan-deliveries input{width:95px}.flt-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:15px 0 22px}.flt-detail-grid dt{font-size:var(--et-fs-xs);color:#7b8899;margin-bottom:5px}.flt-detail-grid dd{font-size:var(--et-fs-xs);margin:0;overflow-wrap:anywhere}.flt-body #info-dialog{max-width:650px}.flt-body #info-content{white-space:pre-line;line-height:1.8;font-size:var(--et-fs-xs)}.flt-body #action-dialog,.flt-body #incident-dialog{max-width:740px}.flt-body button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:1250px){.flt-metrics{grid-template-columns:repeat(3,1fr)}.flt-page .page-header{align-items:flex-start}.flt-page .et-hd-actions{justify-content:flex-end}}@media(max-width:850px){.flt-columns{grid-template-columns:1fr}.flt-page{padding:18px}.flt-page .page-header{flex-direction:column;gap:14px}.flt-page .et-hd-actions{justify-content:flex-start}.flt-context{flex-wrap:wrap}.flt-detail-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.flt-page{padding:14px 12px}.flt-page h1{font-size:20px}.flt-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.flt-kpi{padding:12px 9px;gap:7px}.flt-kpi>i{font-size:14px;padding:7px}.flt-kpi strong{font-size:24px}.flt-panel{padding:13px}.flt-panel>header{align-items:flex-start;flex-wrap:wrap}.flt-context label{width:100%;justify-content:space-between}.flt-two{grid-template-columns:1fr}.flt-body dialog:not(.et-accesses-dialog){padding:15px;width:calc(100vw - 20px)}.flt-toolbar{flex-wrap:wrap}.flt-toolbar label:first-child{flex-basis:100%}.flt-detail-grid{grid-template-columns:1fr 1fr}.flt-scope{align-items:flex-start;flex-wrap:wrap}.flt-accesses{grid-template-columns:1fr 1fr}.flt-body dialog:not(.et-accesses-dialog) footer{flex-wrap:wrap}.flt-body dialog:not(.et-accesses-dialog) footer>span{max-width:100%}}
.flt-body table{background:#fff}.flt-body tbody tr{animation:none;opacity:1}.flt-body tbody td{background:#fff}.flt-body tbody tr:hover td{background:#f6f8fd}.flt-page .page-header{min-height:0;padding-bottom:0}.flt-page .et-screen-context{margin-bottom:0}
/* Cabeceras ordenables (flt_grids.js). El degradado del thead lo da et-grid-standard. */
.flt-body table[data-flt-sort] thead th{cursor:pointer;user-select:none}
.flt-body .flt-orden{opacity:.55;margin-left:4px;font-size:.85em}
.flt-body thead th[aria-sort] .flt-orden{opacity:1}
.flt-body table[data-flt-sort] thead th:focus-visible{outline:2px solid #fff;outline-offset:-3px}
#ai-result{white-space:pre-wrap;font-size:var(--et-fs-xs);line-height:1.7;margin-top:10px}
#ai-status{margin-top:8px}
/* Alineado a crm_supervisor_reportes: esa pantalla define su tabla a 12px,
   subtitulo 11px y badge 10.5px, por debajo de los tokens de eDS. */

/* Encabezado de grid identico a crm_supervisor_reportes: la tipografia la
   fija thead.bg-primary en etradie.css (11.5px/700/uppercase). Aqui solo
   el redondeo superior, porque la tabla va dentro de .flt-scroll. */
.flt-body .flt-scroll{border-radius:9px;overflow:hidden auto}
.flt-body .flt-scroll>table{margin:0}
.flt-body thead.bg-primary th:first-child{border-top-left-radius:9px}
.flt-body thead.bg-primary th:last-child{border-top-right-radius:9px}
/* Par titulo/subtitulo del modelo: 12.5/600 sobre 11px atenuado. */
.flt-body td strong{font-size:12.5px;font-weight:600;color:var(--et-ink,#273750)}

/* Mapa de una posicion, dentro del dialogo. Altura fija: Google necesita que
   el contenedor tenga medidas antes de construir el mapa. */
.flt-body #position-dialog{width:min(860px,calc(100vw - 32px))}
#position-map{height:min(460px,60vh);border-radius:9px;background:#edf2f7;margin-top:6px}
.flt-body #position-dialog footer{align-items:center}
.flt-body #position-coords{font-variant-numeric:tabular-nums}


/* --- Barra del Asistente eTradie IA -----------------------------------------
   etradie_assistance.css da el contorno naranja, la varita y el flex de la
   barra, pero deja .ia-bar-t y .ia-bar-s como spans en linea: titulo y
   subtitulo caian uno encima del otro. rh_dashboard lo resuelve en su propia
   hoja; aqui se hace lo mismo para no tocar la hoja compartida. */
.flt-body .ia-bar-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.flt-body .ia-bar-t{display:block;line-height:1.35}
.flt-body .ia-bar-s{display:block;line-height:1.45;overflow-wrap:anywhere}

/* --- Resultado del Asistente eTradie IA -------------------------------------
   El contorno, el radio y el fondo naranja los pone etradie_assistance.css
   (clase .et-ai-standard, que etradie_assistance.js aplica a .ia-card). Aqui
   solo va el espaciado interno y el renglon de observacion, para no duplicar
   la identidad de IA en cada modulo. */
.flt-body .ia-card{margin-top:12px;padding:0;overflow:hidden}
.flt-body .ia-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px 9px;margin:0}
.flt-body .ia-card h3{font-size:var(--et-fs-sm);font-weight:700;color:#2a3b6e;margin:0;text-transform:none}
.flt-body .ia-card h3 i{margin-right:6px;color:var(--et-ia,#FF5F00)}
.flt-body .ia-body{padding:0 16px 14px}
.flt-body .ia-body p{font-size:var(--et-fs-sm);line-height:1.65;color:#3b4a61;margin:0 0 9px}
.flt-body .ia-body p:last-child{margin-bottom:0}
.flt-body .ia-item{display:flex;gap:9px;align-items:flex-start;padding:7px 0;border-bottom:1px dashed var(--et-ia-soft,rgba(255,95,0,.18));font-size:var(--et-fs-sm);line-height:1.6;color:#3b4a61}
.flt-body .ia-item:last-child{border-bottom:0}
.flt-body .ia-item i{color:var(--et-ia,#FF5F00);margin-top:3px;flex:0 0 12px;text-align:center}


/* --- Acciones de rejilla: icono + texto -------------------------------------
   Decision de Ed, 01/10/2026: las columnas de accion llevan icono MAS texto,
   igual que los botones del encabezado de pagina en toda la plataforma. El
   icono no sustituye a la palabra; la acompana. Ancho fijo para que las
   etiquetas queden alineadas cuando hay varias acciones en la misma celda. */
.flt-body .flt-link>i:first-child{display:inline-block;width:13px;text-align:center;margin-right:5px;color:#5a6b85}
.flt-body .flt-link:hover>i:first-child{color:#2456ad}
.flt-body td .flt-link{white-space:nowrap}
