/* ===== Logística ===== */
/* Colores de estado (discretos; siempre acompañados del nombre del estado). Un estado nuevo solo necesita su tono aquí. */
.lg-t-blue{--lg-c:#2F4796;--lg-bg:#EAEEF9;--lg-dot:#354FA3}
.lg-t-teal{--lg-c:#0F6474;--lg-bg:#E2F3F5;--lg-dot:#1C8A9C}
.lg-t-amber{--lg-c:#8A4F00;--lg-bg:#FFF1D9;--lg-dot:#E39A1C}
.lg-t-light{--lg-c:#4A5468;--lg-bg:#EEF0F4;--lg-dot:#B3BAC7}
.lg-t-gray{--lg-c:#4A5468;--lg-bg:#E6E8ED;--lg-dot:#7A8395}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .lg-t-blue{--lg-c:#AFC0F5;--lg-bg:#1D2747;--lg-dot:#7F96E8}
  :root:not([data-theme="light"]) .lg-t-teal{--lg-c:#8ADBE6;--lg-bg:#12303A;--lg-dot:#3FB4C6}
  :root:not([data-theme="light"]) .lg-t-amber{--lg-c:#FFCE7A;--lg-bg:#33260F;--lg-dot:#F0AA36}
  :root:not([data-theme="light"]) .lg-t-light{--lg-c:#C3C9D6;--lg-bg:#242B3A;--lg-dot:#8D96A8}
  :root:not([data-theme="light"]) .lg-t-gray{--lg-c:#B6BDCC;--lg-bg:#1F2533;--lg-dot:#5E6779}
}
:root[data-theme="dark"] .lg-t-blue{--lg-c:#AFC0F5;--lg-bg:#1D2747;--lg-dot:#7F96E8}
:root[data-theme="dark"] .lg-t-teal{--lg-c:#8ADBE6;--lg-bg:#12303A;--lg-dot:#3FB4C6}
:root[data-theme="dark"] .lg-t-amber{--lg-c:#FFCE7A;--lg-bg:#33260F;--lg-dot:#F0AA36}
:root[data-theme="dark"] .lg-t-light{--lg-c:#C3C9D6;--lg-bg:#242B3A;--lg-dot:#8D96A8}
:root[data-theme="dark"] .lg-t-gray{--lg-c:#B6BDCC;--lg-bg:#1F2533;--lg-dot:#5E6779}

/* Chip de estado: punto + nombre */
.lg-st{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 10px 3px 8px;border-radius:var(--r-pill);background:var(--lg-bg);color:var(--lg-c);font-size:var(--fs-footnote);font-weight:700;line-height:1.3;white-space:nowrap}
.lg-st>i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--lg-dot)}
.lg-st.plain{background:none;padding:0;color:var(--ink-2);font-size:var(--fs-subhead);font-weight:600;gap:8px}
.lg-st.plain>i{width:9px;height:9px}
.lg-st.lg-big{font-size:var(--fs-subhead);padding:6px 14px 6px 11px}
.lg-st.lg-big>i{width:9px;height:9px}
.lg-dot{flex:none;display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--lg-dot)}

/* Tipo de remolque con ícono */
.lg-tt{display:inline-flex;align-items:center;gap:5px;min-width:0;white-space:nowrap}
.lg-tt .ic{flex:none;width:19px;height:19px;color:var(--tint)}
.lg-tt.none,.lg-tt.none .ic{color:var(--muted)}
.row-ic.tr-ic.none{background:var(--fill);color:var(--muted)}
.pk-ic{flex:none;width:36px;height:36px;border-radius:var(--r-xs);display:grid;place-items:center;background:var(--blue-t);color:var(--tint)}
.pk-ic .ic{width:22px;height:22px}

/* Tablero */
.lg-new{margin:0 0 14px}
.lg-page .filters .chip{min-height:44px}
.lg-fchip{gap:7px}
.lg-fchip b{font-size:var(--fs-footnote);font-weight:700;min-width:22px;padding:1px 7px;border-radius:var(--r-sm);background:var(--fill);color:var(--ink-2);text-align:center;font-variant-numeric:tabular-nums}
.lg-fchip.on b{background:var(--surface);color:var(--tint)}
.lg-f2 .chip .ic{width:19px;height:19px}
/* Celular: división y tipo de remolque en la hoja «Filtros»; computadora: segunda fila de chips */
.lg-moref .ic{width:18px;height:18px}
.lg-fsheet .fl{margin:4px 2px 8px}
.lg-fsheet .chips{margin:0 0 18px}
.lg-fsheet .form-foot{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}
@media (max-width:1023px){.lg-page>.lg-f2{display:none}}
@media (min-width:1024px){.lg-moref{display:none!important}}
.lg-sep{flex:none;width:1px;align-self:stretch;margin:6px 2px;background:var(--line-2)}
.lg-group{margin:4px 0 18px}
.lg-group .sec-hrow{align-items:center}
.lg-cards{display:flex;flex-direction:column;gap:10px;margin:0 0 6px}
@media (min-width:640px){.lg-cards{display:grid;grid-template-columns:1fr 1fr}}
.lg-card{display:block;min-width:0;padding:12px 14px 12px 13px;border-radius:var(--r);border:1px solid var(--line);border-left:4px solid var(--lg-dot);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1);text-decoration:none;transition:transform .14s ease,background-color .18s}
.lg-card:active{background:var(--fill);transform:scale(.99)}
.lg-c1{display:flex;align-items:center;gap:10px;min-width:0}
.lg-c1 .chev{margin-left:auto}
.lg-op{margin-top:8px;font-size:var(--fs-body);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lg-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;margin-top:3px;font-size:var(--fs-subhead);color:var(--ink-2)}
.lg-card .dot,.lg-ref .dot{color:var(--muted)}
.lg-route{margin-top:6px;font-size:var(--fs-subhead);font-weight:600;overflow-wrap:anywhere}
.lg-route .arr{margin:0 7px;color:var(--muted);font-weight:500}
.lg-ref{display:flex;flex-wrap:wrap;gap:2px 6px;margin-top:3px;font-size:var(--fs-footnote);color:var(--muted)}
.lg-idle-h{margin:2px 4px 8px;font-size:var(--fs-footnote);color:var(--muted)}
.lg-cards+.lg-idle-h{margin-top:12px}
.lg-idles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 6px}
@media (min-width:520px){.lg-idles{grid-template-columns:repeat(5,minmax(0,1fr))}}
.lg-idle{display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:56px;padding:8px 10px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;box-shadow:var(--shadow-1)}
.lg-idle:active{background:var(--fill)}
.lg-idle b{font-size:var(--fs-body);font-weight:800;font-variant-numeric:tabular-nums}
.lg-idle small{font-size:var(--fs-footnote);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Detalle */
.lg-hero{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 16px;margin:0 0 18px;box-shadow:var(--shadow-1)}
.lg-hero::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--lg-dot)}
.lg-hero.lg-t-blue::before{background:repeating-linear-gradient(90deg,var(--blue) 0 9px,var(--blue-d) 9px 12px,var(--blue-m) 12px 14px)}
.lg-hero-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.lg-hero-top small{font-size:var(--fs-subhead);color:var(--muted)}
.lg-hero-sub{margin:10px 0 14px;font-size:var(--fs-subhead);color:var(--ink-2);line-height:1.4}
.lg-opr{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1)}
.lg-opr>div{flex:1;min-width:0;display:flex;flex-direction:column}
.lg-opr b{font-size:var(--fs-body);font-weight:600}
.lg-opr small{font-size:var(--fs-footnote);color:var(--muted)}
.lg-opr .av .ic{width:24px;height:24px}
.lg-opr .btn-ghost{min-height:44px}
.lg-sum{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:2px 14px;margin:0;box-shadow:var(--shadow-1)}
.lg-sum dd small{display:block;margin-top:2px;font-size:var(--fs-footnote);color:var(--muted)}
.lg-sum .lg-tt{white-space:normal}
.lg-acts{margin:0 0 20px}
.lg-acts>*{min-height:50px}
.lg-log{list-style:none;margin:0;padding:2px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.lg-log li{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;border-bottom:1px solid var(--line)}
.lg-log li:last-child{border-bottom:0}
.lg-log small{font-size:var(--fs-footnote);color:var(--muted);font-variant-numeric:tabular-nums}
.lg-log .lg-st.plain{font-size:var(--fs-subhead)}
.lg-hh{margin-top:6px}
.lg-hrow .row-l1 b{white-space:normal}
.lg-hrow .row-l2{white-space:normal}

/* Hoja «Actualizar estado» y selector de estado del formulario */
.lg-stlist{display:flex;flex-direction:column;gap:8px;padding-bottom:6px}
.lg-stopt{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 14px;border-radius:var(--r);border:1.5px solid var(--line);background:var(--surface-2);color:var(--ink);text-align:left;transition:background-color .15s,border-color .15s}
.lg-stopt:active{transform:scale(.99)}
.lg-stopt.on{border-color:var(--lg-dot);background:var(--lg-bg)}
.lg-stopt .lg-dot{width:12px;height:12px}
.lg-stx{flex:1;min-width:0;display:flex;flex-direction:column}
.lg-stx b{font-size:var(--fs-body);font-weight:600}
.lg-stx small{font-size:var(--fs-footnote);color:var(--muted)}
.lg-stopt.on .lg-stx b{color:var(--lg-c)}
.lg-stgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lg-stgrid .lg-stopt{min-height:48px;padding:8px 12px;gap:10px}
.lg-stgrid .lg-stx b{font-size:var(--fs-subhead)}
.lg-stgrid .lg-stopt:last-child:nth-child(odd){grid-column:span 2}

/* Formulario */
.lg-fh{margin:6px 2px 10px;font-size:var(--fs-subhead);font-weight:600;color:var(--ink-2)}
.lg-fh:not(:first-child){margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.lg-pickrow{display:flex;align-items:center;gap:4px}
.lg-pickrow .pick{flex:1}
.lg-pickrow .icon-btn[hidden]{display:none}
.lg-pk-u{font-weight:800;font-variant-numeric:tabular-nums}
.lg-typebox{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}
.lg-typebox:empty{display:none}
.lg-type{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);border:1px dashed var(--line-2);font-size:var(--fs-body)}
.lg-type small{margin-left:auto;font-size:var(--fs-footnote);color:var(--muted);text-align:right}
.lg-type .lg-tt .ic{width:24px;height:24px}

/* Inicio → Unidades en operación */
.lg-home{margin-top:-2px}
.lg-live{display:flex;align-items:center;gap:8px;margin:-2px 4px 10px;font-size:var(--fs-subhead);font-weight:600;color:var(--ink-2)}
.lg-live span{font-weight:400;color:var(--muted)}
.lg-pulse{flex:none;width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 55%,transparent);animation:lgPulse 2.2s ease-out infinite}
@keyframes lgPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 55%,transparent)}80%,100%{box-shadow:0 0 0 7px transparent}}
.lg-rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 16px;margin:0 -16px;padding:2px 16px 8px;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}
.lg-rail::-webkit-scrollbar{display:none}
.lgh-card{flex:0 0 86%;max-width:340px;scroll-snap-align:start;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:11px;min-width:0;padding:16px 14px 12px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--ink);text-align:left;box-shadow:var(--shadow-1);transition:transform .14s ease}
.lgh-card:active{transform:scale(.98)}
.lg-rail.one .lgh-card{flex-basis:100%;max-width:none}
@media (min-width:600px){.lgh-card{flex-basis:300px}}
.lgh-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--lg-dot)}
.lgh-card.lg-t-blue::before{background:repeating-linear-gradient(90deg,var(--blue) 0 9px,var(--blue-d) 9px 12px,var(--blue-m) 12px 14px)}
.lgh-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.lgh-unit{font-size:var(--fs-title2);line-height:1;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.lgh-op{display:flex;align-items:center;gap:8px;min-width:0;font-size:var(--fs-subhead);font-weight:600}
.lgh-op>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lgh-op .av .ic{width:18px;height:18px}
.lgh-route{display:grid;grid-template-columns:14px 1fr;gap:10px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2)}
.lgh-route.none{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:var(--fs-subhead)}
.lgh-route.none .ic{width:18px;height:18px}
.lgh-rail{position:relative;display:block;margin:5px 0}
.lgh-rail i{position:absolute;left:50%;transform:translateX(-50%);display:block}
.lgh-rail .a{top:0;width:10px;height:10px;border-radius:50%;border:2px solid var(--muted);background:var(--surface-2)}
.lgh-rail .b{bottom:0;width:12px;height:12px;border-radius:50%;background:var(--lg-dot);box-shadow:0 0 0 3px var(--lg-bg)}
.lgh-rail .ln{top:12px;bottom:14px;width:0;border-left:2px dashed var(--line-2)}
.lgh-rail .mk{top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--lg-dot);box-shadow:0 0 0 3px var(--surface-2)}
.lgh-at-empty_transit .mk{background:var(--surface-2);border:2px solid var(--lg-dot)}
.lgh-at-unloading .mk{display:none}
.lgh-at-unloading .b{animation:lgPulseB 2s ease-out infinite}
@keyframes lgPulseB{0%{box-shadow:0 0 0 3px var(--lg-bg)}60%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 3px var(--lg-bg)}}
.lgh-pts{display:flex;flex-direction:column;gap:10px;min-width:0}
.lgh-pts>span{display:flex;flex-direction:column;min-width:0}
.lgh-pts small{font-size:var(--fs-caption);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.lgh-pts b{font-size:var(--fs-body);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lgh-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:var(--fs-footnote);color:var(--ink-2)}
.lgh-div{font-size:var(--fs-caption);font-weight:700;border-radius:var(--r-xs);padding:2px 8px;background:var(--fill);color:var(--ink-2)}
.lgh-ref{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}
.lg-none{display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 14px;border-radius:var(--r);border:1px dashed var(--line-2);color:var(--muted);font-size:var(--fs-subhead);text-decoration:none}
.lg-none>span{flex:1}
.lg-none>.ic:first-child{width:22px;height:22px}
.lg-none .ic-chev{width:16px;height:16px}
@media (prefers-reduced-motion:reduce){.lg-pulse,.lgh-at-unloading .b{animation:none}}
.lg-linkbtn{border:0;background:none;padding:0;min-height:44px;color:var(--tint);font-size:inherit;text-align:left}

/* ===== Control de vacíos ===== */
.lg-t-ok{--lg-c:#1E6B44;--lg-bg:#E3F3EA;--lg-dot:#2E9A62}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .lg-t-ok{--lg-c:#8FE0B4;--lg-bg:#13281D;--lg-dot:#5BC98E}}
:root[data-theme="dark"] .lg-t-ok{--lg-c:#8FE0B4;--lg-bg:#13281D;--lg-dot:#5BC98E}
.ec-entry,.fc-entry{display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 14px;margin:0 0 14px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;box-shadow:var(--shadow-1)}
.ec-entry:active,.fc-entry:active{background:var(--fill);transform:scale(.99)}
.ec-entry .mod-ic,.fc-entry .mod-ic{width:44px;height:44px}
.ec-entry-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ec-entry-tx b{font-size:var(--fs-body);font-weight:700}
.ec-entry-tx small{font-size:var(--fs-subhead);color:var(--ink-2)}
.ec-entry-n{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;font-size:var(--fs-footnote);color:var(--muted)}
.ec-pend.on{color:var(--ink);font-weight:600}
.ec-pend b{font-variant-numeric:tabular-nums}
.ec-late{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--r-pill);background:var(--danger-t);color:var(--danger);font-size:var(--fs-footnote);font-weight:700;white-space:nowrap}
.ec-late .ic{width:14px;height:14px}
.ec-tiles{grid-template-columns:repeat(2,1fr)}
@media (min-width:560px){.ec-tiles{grid-template-columns:repeat(4,1fr)}}
.ec-tile{text-align:left;color:var(--ink);font:inherit;min-height:64px;cursor:pointer}
.ec-tile.on{border-color:var(--tint);box-shadow:0 0 0 1.5px var(--tint)}
.ec-page .filters .chip .ic{width:15px;height:15px;color:var(--muted)}
.ec-page .filters .chip.on .ic{color:var(--tint)}
.ec-cards{display:flex;flex-direction:column;gap:10px;margin:0 0 18px}
@media (min-width:640px){.ec-cards{display:grid;grid-template-columns:1fr 1fr}}
.ec-card{display:block;min-width:0;padding:12px 14px 10px 13px;border-radius:var(--r);border:1px solid var(--line);border-left:4px solid var(--lg-dot);background:var(--surface);color:var(--ink);text-decoration:none;box-shadow:var(--shadow-1)}
.ec-card.late{border-left-color:var(--danger)}
.ec-card:active{background:var(--fill);transform:scale(.99)}
.ec-c1{display:flex;align-items:center;gap:8px}
.ec-c1 .chev{margin-left:auto}
.ec-num{font-size:var(--fs-title3);font-weight:800;letter-spacing:.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ec-num.big{display:block;margin:2px 0 8px;font-size:var(--fs-title1)}
.ec-st{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}
.ec-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:10px 0 2px}
.ec-grid .wide{grid-column:1/-1}
.ec-grid dt{font-size:var(--fs-caption);color:var(--muted)}
.ec-grid dd{margin:0;font-size:var(--fs-subhead);font-weight:600;overflow-wrap:anywhere}
.ec-grid .wide dd{font-size:var(--fs-body)}
.ec-grid i{font-weight:400;color:var(--muted)}
.ec-ext{font-size:var(--fs-caption);font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--cta-ink);background:var(--orange-t);border-radius:var(--r-xs);padding:1px 5px;margin-right:2px;vertical-align:1px}
.ec-mvh{margin-top:8px}
.ec-mv .row-ic{width:36px;height:36px}
.ec-mv .row-ic .ic{width:19px;height:19px}
.ec-mv.done .row-ic{background:var(--ok-t);color:var(--ok)}
.ec-mv .row-l1{flex-wrap:wrap;gap:4px 8px}
.ec-mv .row-l2{white-space:normal}
.ec-act{font-size:var(--fs-subhead);font-weight:600;color:var(--ink-2)}
.ec-hero small{font-size:var(--fs-subhead);color:var(--muted)}
.ec-acts{display:flex;flex-direction:column;gap:2px;margin-top:14px}
.ec-acts .sheet-acts{margin:10px 0 2px}
.ec-acts .sheet-acts>*{min-height:50px;font-size:var(--fs-subhead);padding:0 8px}
.ec-hero .sheet-acts{margin-bottom:0}
.ec-link{margin-top:10px;justify-content:flex-start;text-align:left;min-height:56px}
.ec-link>span{display:flex;flex-direction:column}
.ec-link small{font-size:var(--fs-footnote);font-weight:400;color:var(--muted)}
.ec-miss{list-style:none;margin:0 0 6px;padding:0}
.ec-miss li{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;margin:0 0 8px;border-radius:var(--r-sm);background:var(--warn-t);color:var(--warn);font-size:var(--fs-subhead);font-weight:500}
.ec-miss .ic{flex:none;width:18px;height:18px;margin-top:2px}
.ec-cols dt{font-size:var(--fs-footnote);line-height:1.25}
.ec-cols dd{font-weight:600;font-variant-numeric:tabular-nums}
.ec-code{margin:0 0 6px}
.ec-sum{margin:0 0 14px}
.linkish{border:0;background:none;padding:0;color:var(--tint);font:inherit;font-weight:600;text-decoration:underline}

/* ===== Ubicación GPS ===== */
/* Inicio: línea discreta en la tarjeta */
.lgh-loc{display:flex;align-items:flex-start;gap:6px;min-width:0;font-size:var(--fs-footnote);color:var(--ink-2)}
.lgh-loc>.ic{flex:none;width:16px;height:16px;margin-top:2px;color:var(--tint)}
.lgh-loc-tx{display:flex;flex-direction:column;min-width:0}
.lgh-loc-tx b{font-size:var(--fs-subhead);font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lgh-loc-tx small{font-size:var(--fs-footnote);color:var(--muted)}
.lgh-loc.stale>.ic,.lgh-loc.stale small{color:var(--warn)}
.lgh-loc.none,.lgh-loc.none>.ic{color:var(--muted)}
.lgh-map{position:relative;z-index:0;isolation:isolate;display:block;height:150px;margin:0 -2px;border-radius:var(--r-sm);overflow:hidden;background:var(--fill);pointer-events:none}
.lgh-map.fail{display:none}
.lgh-map .leaflet-control-attribution{font-size:var(--fs-caption);line-height:1.3;padding:0 4px;background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--muted)}
.lgh-map .leaflet-control-attribution a{color:inherit}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .lgh-map .leaflet-tile-pane{filter:brightness(.82) contrast(1.08)}}
:root[data-theme="dark"] .lgh-map .leaflet-tile-pane{filter:brightness(.82) contrast(1.08)}
/* Inicio: puntos de las fichas al deslizar */
.lg-dots{display:flex;justify-content:center;gap:2px;margin:2px 0 0}
.lg-dot{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;background:none}
.lg-dots .lg-dot{width:32px;height:44px}
.lg-dot i{width:7px;height:7px;border-radius:var(--r-pill);background:var(--line-2);transition:width .2s ease,background-color .2s ease}
.lg-dot.on i{width:18px;background:var(--tint)}
@media (prefers-reduced-motion:reduce){.lg-dot i{transition:none}}
/* Detalle: ubicación en tiempo real */
.gps .grp-h{align-items:baseline}
.gps-live{font-size:var(--fs-footnote);color:var(--muted);font-variant-numeric:tabular-nums}
.gps-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px;box-shadow:var(--shadow-1)}
.gps-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}
.gps-fresh{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-footnote);font-weight:600;border-radius:var(--r-pill);padding:4px 10px;background:var(--fill);color:var(--ink-2)}
.gps-fresh .ic{width:14px;height:14px}
.gps-fresh.live{background:var(--ok-t);color:var(--ok)}
.gps-fresh.live i{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:lgPulse 2.2s ease-out infinite}
.gps-fresh.stale{background:var(--warn-t);color:var(--warn)}
.gps-fresh.none:empty{display:none}
.gps-mapwrap{position:relative;margin:0 0 10px}
.gps-map{position:relative;z-index:0;isolation:isolate;height:270px;border-radius:var(--r-sm);overflow:hidden;background:var(--fill)}
.gps-map.empty{height:150px}
.gps-map .leaflet-control-attribution{font-size:var(--fs-caption)}
.gps-map .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}
.gps-center{position:absolute;z-index:1;right:10px;bottom:22px;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:0;border-radius:var(--r-pill);background:var(--surface);color:var(--tint);font-size:var(--fs-subhead);font-weight:600;box-shadow:var(--shadow-2)}
.gps-center .ic{width:18px;height:18px}
.gps-center:active{transform:scale(.97)}
.gps-msg{position:absolute;z-index:1;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px;text-align:center;border-radius:var(--r-sm);background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--ink-2)}
.gps-msg[hidden]{display:none}
.gps-msg .ic{width:26px;height:26px;color:var(--muted)}
.gps-msg small{font-size:var(--fs-footnote);color:var(--muted)}
.gps-data{margin:0;padding:0 2px}
.gps-data dd{font-variant-numeric:tabular-nums}
.gps-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.gps-acts:empty{display:none}
.gps-acts>*{min-height:46px;font-size:var(--fs-subhead);padding:0 8px}
.gps-acts>:last-child:nth-child(odd){grid-column:1/-1}
.gps-mini{display:flex;flex-direction:column;gap:10px;padding:12px 14px;background:var(--surface);border:1px dashed var(--line-2);border-radius:var(--r);color:var(--ink-2);font-size:var(--fs-subhead)}
.gps-mini p{display:flex;gap:8px;margin:0}
.gps-mini p .ic{flex:none;width:18px;height:18px;color:var(--muted)}
/* Marcador de la unidad (color del estado de Logística) */
.gps-pin-wrap{background:none;border:0}
/* Marcador de la unidad: el mismo del Centro de Monitoreo (styles/maps.css → .vm, .vm-static) */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .gps-map .leaflet-tile-pane{filter:brightness(.82) contrast(1.08)}}
:root[data-theme="dark"] .gps-map .leaflet-tile-pane{filter:brightness(.82) contrast(1.08)}
/* Destino en el mapa (lugar de entrega, terminal, planta o patio) */
.gps-tgt{position:absolute;left:0;top:0;transform:translate(-50%,calc(-100% - 8px));display:inline-flex;align-items:center;gap:5px;padding:4px 9px 4px 6px;border-radius:var(--r-pill);background:#1E2638;color:var(--on-color);font:700 var(--fs-caption)/1 var(--font);white-space:nowrap;box-shadow:var(--shadow-2);border:2px solid #fff}
.gps-tgt::after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-6px;border:6px solid transparent;border-bottom:0;border-top-color:#1E2638}
.gps-tgt .ic{width:14px;height:14px;stroke-width:2.1}
.gps-tgt.approx{background:#5A6275;border-style:dashed}
.gps-tgt.approx::after{border-top-color:#5A6275}
.gps-line{stroke:#1E2638;stroke-opacity:.75}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .gps-line{stroke:#E8ECF5}}
:root[data-theme="dark"] .gps-line{stroke:#E8ECF5}
.gps-dest{display:flex;align-items:flex-start;gap:10px;margin:0 0 10px;padding:10px 12px;border-radius:var(--r-sm);background:var(--fill)}
.gps-dest[hidden]{display:none}
.gps-dest-ic{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-sm);background:#1E2638;color:var(--on-color)}
.gps-dest-ic .ic{width:19px;height:19px}
.gps-dest-tx{display:flex;flex-direction:column;gap:1px;min-width:0}
.gps-dest-tx small{font-size:var(--fs-footnote);color:var(--muted)}
.gps-dest-tx b{font-size:var(--fs-subhead);color:var(--ink)}
.gps-dest-tx span{font-size:var(--fs-footnote);color:var(--ink-2);line-height:1.35}
.gps-dest-tx em{font-style:normal;font-size:var(--fs-footnote);font-weight:600;color:var(--ok);margin-top:3px}
.gps-dest.approx .gps-dest-tx em,.gps-dest.none .gps-dest-tx em{color:var(--warn)}
.gps-dest.none .gps-dest-ic{background:var(--line-2);color:var(--ink-2)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .gps-dest-ic{background:#E8ECF5;color:#1E2638}}
:root[data-theme="dark"] .gps-dest-ic{background:#E8ECF5;color:#1E2638}
/* Inicio: distancia al destino */
.lgh-dest{display:flex;align-items:flex-start;gap:6px;min-width:0;margin-top:-4px;font-size:var(--fs-footnote);color:var(--ink-2)}
.lgh-dest>.ic{flex:none;width:16px;height:16px;margin-top:1px;color:var(--ink-2)}
.lgh-dest>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.lgh-dest b{color:var(--ink);font-weight:700}
.lgh-dest.none{color:var(--muted)}
/* Selector de ubicación */
.pp{display:flex;flex-direction:column;gap:10px;min-height:100%}
.pp-what{display:flex;flex-direction:column;gap:2px;margin:0;font-size:var(--fs-subhead);color:var(--ink-2)}
.pp-what b{font-size:var(--fs-subhead);color:var(--ink)}
.pp-find .search{margin:0}
.pp-mapwrap{position:relative;flex:1 1 auto;min-height:280px}
.pp-map{position:absolute;inset:0;z-index:0;isolation:isolate;border-radius:var(--r);overflow:hidden;background:var(--fill)}
.pp-map.empty{display:grid;place-items:center;padding:20px;text-align:center;color:var(--muted)}
.pp-cross{position:absolute;z-index:1;left:50%;top:50%;width:40px;height:40px;margin:-38px 0 0 -20px;color:#E5482F;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}
.pp-cross .ic{width:40px;height:40px;stroke-width:2;fill:#fff}
.pp-hint{margin:0;font-size:var(--fs-footnote);color:var(--muted);text-align:center}
.pp .sheet-acts{margin-top:0}
.pp-sheet .bsheet-body{display:flex;flex-direction:column}
.pp-sheet .pp{flex:1 1 auto}
/* Catálogos: ubicación en el mapa */
.geo-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.geo-st{font-size:var(--fs-subhead);font-weight:600;color:var(--ink-2)}
.geo-st.ok{color:var(--ok)}
.geo-st.warn{color:var(--warn)}
/* Ajustes → GPS */
.gps-st{display:flex;align-items:flex-start;gap:8px;margin:0 0 4px;font-size:var(--fs-subhead);color:var(--ink-2)}
.gps-st:empty{display:none}
.gps-st .ic{flex:none;width:18px;height:18px;margin-top:1px}
.gps-st.ok{color:var(--ok)}
.gps-st.warn{color:var(--warn)}
.gps-set .in-act.on{color:var(--cta-ink)}
.gps-sug{margin:0 0 12px}
.gps-dev .row-ic.off{background:var(--fill);color:var(--muted)}
.gps-dev .row-l1{flex-wrap:wrap}

/* ===== Control de llenos ===== */
.lg-t-violet{--lg-c:#5B3DA0;--lg-bg:#EFE9FA;--lg-dot:#7C5CC4}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .lg-t-violet{--lg-c:#CDBDF3;--lg-bg:#2A2144;--lg-dot:#A48AE6}}
:root[data-theme="dark"] .lg-t-violet{--lg-c:#CDBDF3;--lg-bg:#2A2144;--lg-dot:#A48AE6}
.fc-tiles{grid-template-columns:repeat(3,1fr)}
@media (min-width:600px){.fc-tiles{grid-template-columns:repeat(6,1fr)}}
.fc-tile{min-height:60px}
.fc-tile small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Pizarra */
.fc-board{margin:0 0 18px}
.fc-n{font-size:var(--fs-footnote);color:var(--muted);white-space:nowrap}
.fc-bar{display:flex;flex-direction:column;gap:8px;margin:0 0 10px}
@media (min-width:600px){.fc-bar{flex-direction:row;align-items:center;justify-content:space-between}.fc-seg{width:300px}}
.fc-seg{margin:0}
.fc-nav{display:flex;align-items:center;gap:2px}
.fc-nav b{flex:1;text-align:center;font-size:var(--fs-body);font-weight:600}
.fc-nav .icon-btn{width:44px;height:44px;color:var(--tint)}
.fc-nav [data-cal="prev"] .ic{width:18px;height:18px}
.fc-nav [data-cal="next"] .ic{width:16px;height:16px}
.fc-nav .btn-ghost{min-height:40px;padding:0 10px}
.fc-month{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-1)}
.fc-dow{display:grid;grid-template-columns:repeat(7,1fr);padding:7px 0 5px;background:var(--surface-2);border-bottom:1px solid var(--line);font-size:var(--fs-caption);font-weight:700;color:var(--muted);text-align:center;letter-spacing:.04em}
.fc-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.fc-day{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;min-height:54px;padding:5px 2px 6px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:none;color:var(--ink);font:inherit;transition:background-color .15s}
.fc-day:nth-child(7n){border-right:0}
.fc-day:nth-last-child(-n+7){border-bottom:0}
.fc-day:active{background:var(--fill)}
.fc-day.out{color:var(--muted)}
.fc-day.out .fc-dots,.fc-day.out .fc-evs{opacity:.55}
.fc-day.sel{background:var(--blue-t)}
.fc-dn{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:var(--fs-subhead);font-weight:600;font-variant-numeric:tabular-nums}
.fc-day.today .fc-dn{background:var(--blue);color:var(--on-color)}
.fc-dots{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:3px;min-height:7px;max-width:44px}
.fc-dots i{width:7px;height:7px;border-radius:50%;background:var(--lg-dot)}
.fc-more{font-size:10px;font-style:normal;font-weight:700;color:var(--muted);line-height:1}
.fc-evs{display:none}
@media (min-width:1024px){
  .fc-day{align-items:stretch;min-height:104px;padding:6px}
  .fc-dn{align-self:flex-start;width:26px;height:26px;font-size:var(--fs-footnote)}
  .fc-dots{display:none}
  .fc-evs{display:flex;flex-direction:column;gap:3px;min-width:0}
  .fc-ev{display:block;padding:2px 6px;border-radius:var(--r-2xs);border-left:3px solid var(--lg-dot);background:var(--lg-bg);color:var(--lg-c);font-size:var(--fs-caption);font-weight:600;line-height:1.35;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
  .fc-ev.done{text-decoration:line-through;opacity:.75}
  .fc-evs .fc-more{text-align:left;padding-left:6px}
}
.fc-daylist{margin-top:12px}
.fc-dh{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 4px 8px;font-size:var(--fs-subhead);font-weight:600;color:var(--ink-2)}
.fc-dh small{font-size:var(--fs-footnote);font-weight:400;color:var(--muted);white-space:nowrap}
.fc-week{display:flex;flex-direction:column;gap:14px}
@media (min-width:1024px){.fc-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:start}.fc-week .fc-wh{flex-direction:column;align-items:flex-start;gap:0}.fc-week .fc-card{padding:10px 10px 8px 9px}.fc-week .fc-num{font-size:var(--fs-subhead)}.fc-week .fc-c2,.fc-week .fc-c3{font-size:var(--fs-footnote)}.fc-week .ec-st .lg-st{font-size:var(--fs-caption);padding:2px 7px 2px 6px}}
.fc-wh{display:flex;align-items:baseline;gap:8px;margin:0 4px 6px;font-size:var(--fs-subhead);font-weight:600}
.fc-wh small{font-size:var(--fs-footnote);font-weight:400;color:var(--muted)}
.fc-wday.today .fc-wh b{color:var(--tint)}
.fc-wday.today .fc-wh b::after{content:" · Hoy";font-weight:400}
.fc-none{margin:0;padding:10px 12px;border-radius:var(--r-sm);border:1px dashed var(--line-2);color:var(--muted);font-size:var(--fs-footnote)}
/* Tarjetas */
.fc-cards{display:flex;flex-direction:column;gap:10px}
.fc-list{margin:0 0 18px}
@media (min-width:640px){.fc-list{display:grid;grid-template-columns:1fr 1fr}.fc-daylist .fc-cards{display:grid;grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.fc-daylist .fc-cards{grid-template-columns:repeat(3,1fr)}}
.fc-card{display:block;min-width:0;padding:12px 14px 10px 13px;border-radius:var(--r);border:1px solid var(--line);border-left:4px solid var(--lg-dot);background:var(--surface);color:var(--ink);text-decoration:none;box-shadow:var(--shadow-1);transition:transform .14s ease,background-color .18s}
.fc-card.late{border-left-color:var(--danger)}
.fc-card.done{opacity:.78}
.fc-card:active{background:var(--fill);transform:scale(.99)}
.fc-c1{display:flex;align-items:center;gap:8px;min-width:0}
.fc-c1 .chev{margin-left:auto}
.fc-num{font-size:var(--fs-title3);font-weight:800;letter-spacing:.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.fc-when{font-size:var(--fs-subhead);font-weight:700;color:var(--tint);white-space:nowrap;font-variant-numeric:tabular-nums}
.fc-c2,.fc-c3{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;margin-top:5px;font-size:var(--fs-subhead);color:var(--ink-2)}
.fc-c3{margin-top:3px}
.fc-c3 b{font-weight:600;color:var(--ink)}
.fc-w{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.fc-loc{display:inline-flex;align-items:center;gap:4px;font-weight:600;white-space:nowrap}
.fc-loc .ic{width:16px;height:16px;flex:none}
.fc-loc.port{color:var(--tint)}
.fc-loc.off{color:var(--cta-ink)}
.fc-card .dot{color:var(--muted)}
/* Ficha */
.fc-hero .lg-hero-sub{display:block;margin:12px 0 14px}
.fc-hero .lg-hero-sub>.ic{width:16px;height:16px;display:inline-block;vertical-align:-3px;margin-right:5px;color:var(--tint)}
.fc-hero .lg-hero-sub b{color:var(--ink);font-size:var(--fs-body)}
.fc-hero .fc-loc{vertical-align:-2px}
.fc-docst{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:10px 12px;border-radius:var(--r-sm);font-size:var(--fs-subhead);font-weight:600}
.fc-docst.ok{background:var(--ok-t);color:var(--ok)}
.fc-docst.warn{background:var(--warn-t);color:var(--warn)}
.fc-docst .ic{flex:none;width:18px;height:18px}
.fc-doclist{border-top:1px solid var(--line)}
.fc-doc{align-items:center;gap:10px}
.fc-doc .att-tx b,.fc-doc .att-tx small{white-space:normal;overflow-wrap:anywhere}
.fc-doc .att-tx small{line-height:1.35}
.fc-doc .att-ic.none{background:var(--fill);color:var(--muted)}
.fc-doc .att-ic.none .ic{width:22px;height:22px}
.fc-doc.pending .att-ic.none{background:var(--warn-t);color:var(--warn)}
.fc-doc.not_required .att-tx b{color:var(--ink-2)}
.fc-doc.err .att-ic{background-color:var(--danger);color:var(--on-color);font-size:10px;font-weight:800}
.fc-extra{font-size:var(--fs-caption);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.fc-dst{display:inline-block;margin-right:6px;padding:1px 6px;border-radius:var(--r-xs);font-size:var(--fs-caption);font-weight:700;white-space:nowrap}
.fc-dst.attached{background:var(--ok-t);color:var(--ok)}
.fc-dst.pending{background:var(--warn-t);color:var(--warn)}
.fc-dst.not_required{background:var(--fill);color:var(--muted)}
.fc-upwrap{display:block;margin-top:7px}
.fc-up{display:inline-flex;min-height:40px;padding:0 12px;cursor:pointer;white-space:nowrap;font-size:var(--fs-footnote)}
.fc-up .ic{width:16px;height:16px}
.fc-add{margin:12px 0 4px;cursor:pointer;min-height:50px}
.fc-dochint{display:flex;gap:8px;margin:4px 2px 12px;font-size:var(--fs-footnote);color:var(--ink-2);line-height:1.4}
.fc-dochint .ic{flex:none;width:16px;height:16px;margin-top:2px;color:var(--tint)}
/* Expediente: orden y selección */
.fc-xp{margin:0 0 12px;border-top:1px solid var(--line)}
.fc-xprow{gap:8px;align-items:center}
.fc-xprow.off{opacity:.5}
.fc-xpsw{flex:none;padding:0;border:0;min-height:0}
.fc-xpsw .sw{margin:0}
.fc-xprow .att-tx b{font-size:var(--fs-subhead)}
.fc-xprow .att-b .icon-btn:disabled{opacity:.3}
.btn-wa.block{margin-top:2px}
