/* Componentes de operação: isolados do chat, scanner e formulários existentes. */
.driver-tracking { width:min(calc(100% - 32px),588px); margin:8px auto 24px; padding:14px 16px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; color:#425d74; background:#fff; border:1px solid #dce6ef; border-radius:14px; }
.driver-tracking > div { min-width:0; display:grid; grid-template-columns:20px minmax(0,1fr); align-items:center; gap:4px 8px; }
.home-page .driver-tracking { width:100%; margin:16px 0; }
.driver-tracking { scroll-margin-bottom:calc(var(--nav-height, 78px) + 24px); }
.tracking-symbol { grid-row:1/3; display:grid; place-items:center; color:#718599; }
.tracking-symbol .icon { width:20px; height:20px; }
.driver-tracking strong { font-size:13px; }
.driver-tracking small { grid-column:2; font-size:12px; line-height:1.4; color:#728599; }
.driver-tracking button { min-height:44px; padding:9px 13px; color:#075cae; background:#edf6ff; border:1px solid #c6dff3; border-radius:10px; font:inherit; font-size:13px; font-weight:800; cursor:pointer; }
.driver-tracking button:disabled { opacity:.5; cursor:default; }
.driver-tracking[data-state="active"] .tracking-symbol { color:#16865b; }
.driver-tracking[data-state="active"] strong { color:#16865b; }
.driver-tracking:not([data-state]) .tracking-symbol,.driver-tracking:not([data-state]) strong,
.driver-tracking[data-state="paused"] .tracking-symbol,.driver-tracking[data-state="paused"] strong,
.driver-tracking[data-state="error"] strong { color:#c14c4c; }
.driver-tracking[data-state="error"] .tracking-symbol { color:#c14c4c; }
.driver-tracking,.driver-tracking button,.tracking-symbol { transition:color .18s ease,background-color .18s ease,border-color .18s ease; }
.driver-tracking.is-changing strong { animation:tracking-status-enter .18s ease-out; }
.driver-tracking[data-state="waiting"] .tracking-symbol { animation:tracking-loading 1.4s ease-in-out infinite; }
@keyframes tracking-status-enter { from { opacity:.55; transform:translateY(2px); } to { opacity:1; transform:translateY(0); } }
@keyframes tracking-loading { 50% { opacity:.45; } }
.occurrence-search { margin-bottom:16px; display:flex; align-items:center; gap:10px; }
.occurrence-search .icon { color:#6285a5; width:20px; }
.occurrence-search input { min-height:48px; }
.occurrence-categories { display:grid; gap:12px; }
.occurrence-category { overflow:hidden; background:#fff; border:1px solid #dce6ef; border-radius:15px; }
.occurrence-category summary { min-height:58px; padding:16px; display:flex; justify-content:space-between; align-items:center; gap:12px; list-style:none; color:#2b4660; font-size:15px; font-weight:800; cursor:pointer; }
.occurrence-category summary::-webkit-details-marker { display:none; }
.occurrence-category summary > span { display:flex; align-items:center; gap:10px; }
.occurrence-category summary .icon { width:20px; color:#0870cd; }
.occurrence-category summary small { font-size:12px; color:#71879c; font-weight:600; }
.occurrence-category summary small::after { content:' ＋'; }
.occurrence-category[open] summary { border-bottom:1px solid #e7eef5; }
.occurrence-category[open] summary small::after { content:' −'; }
.occurrence-category .problem-grid { padding:12px; gap:8px; }
.occurrence-category .problem-card { box-shadow:none; min-height:78px; }
.occurrence-category .problem-card[hidden],.occurrence-category[hidden] { display:none; }
.occurrence-category .problem-card strong { font-size:15px; line-height:1.35; }
.occurrence-category .problem-card small { font-size:12px; line-height:1.35; }
.occurrence-no-results { padding:24px; color:#71869a; text-align:center; }
.fleet-dashboard-summary { margin-bottom:12px; padding:12px 14px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 18px; color:#647c91; background:#fff; border:1px solid #dce6ef; border-radius:13px; font-size:12px; }
.fleet-dashboard-summary b,.fleet-dashboard-summary > strong { color:#075cae; }
.fleet-summary-title { display:flex; align-items:center; gap:8px; color:#244863; }
.fleet-summary-title .icon { width:22px; height:22px; color:#0870cd; }
.fleet-dashboard-summary small { color:#8495a5; font-size:11px; }
.fleet-dashboard-summary ~ .cat-workspace { height:calc(100vh - var(--cat-header) - 244px); }
.fleet-metrics { margin-bottom:16px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.fleet-metrics article { padding:14px 18px; display:flex; align-items:center; justify-content:space-between; gap:12px; background:#fff; border:1px solid #dce6ef; border-radius:14px; }
.fleet-metrics span { color:#6a8093; font-size:13px; }
.fleet-metrics strong { font-size:25px; color:#193d5c; }
.tracking-workspace { height:calc(100vh - var(--cat-header) - 186px); min-height:480px; display:grid; grid-template-columns:260px minmax(0,1fr) 290px; gap:14px; }
.fleet-list-panel,.tracking-map-panel,.fleet-detail-panel { min-width:0; min-height:0; background:#fff; border:1px solid #dce6ef; border-radius:16px; overflow:hidden; }
.fleet-list-panel { display:flex; flex-direction:column; }
.fleet-list-panel header { padding:18px 16px 12px; }
.fleet-list-panel h2 { margin:0 0 4px; font-size:16px; }
.fleet-list-panel header small { color:#7a8fa1; font-size:12px; }
.fleet-search { margin:0 12px 12px; display:flex; align-items:center; gap:8px; padding:0 10px; border:1px solid #d7e3ed; background:#f7fafd; border-radius:10px; }
.fleet-search .icon { width:17px; color:#7890a5; }
.fleet-search input { min-width:0; min-height:42px; padding:0; border:0; background:transparent; border-radius:0; font-size:12px; box-shadow:none; }
.fleet-list { flex:1; overflow-y:auto; padding:0 8px; scrollbar-width:thin; }
.fleet-card { width:100%; padding:14px 12px; display:block; text-align:left; color:#243d54; background:#fff; border:1px solid transparent; border-bottom-color:#e9eff5; border-radius:12px; font:inherit; cursor:pointer; }
.fleet-card:hover { background:#f7fafd; }
.fleet-card.selected { border-color:#c0ddf4; background:#edf6ff; }
.fleet-card-top { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:7px; }
.fleet-card-top strong { font-size:13px; }
.fleet-plate { padding:3px 5px; color:#6b8296; background:#f1f5f9; border-radius:5px; font-size:11px; font-weight:700; }
.fleet-driver { display:block; margin-bottom:8px; font-size:13px; }
.fleet-card > small { display:block; margin-top:8px; color:#8495a5; font-size:11px; }
.fleet-card .fleet-late { color:#b77a13; }
.fleet-state { display:inline-flex; padding:4px 8px; color:#718499; background:#eef3f7; border-radius:999px; font-size:11px; font-weight:800; }
.fleet-state.is-changing { animation:tracking-status-enter .18s ease-out; }
.fleet-state.em_movimento { color:#147351; background:#e6f7ef; }
.fleet-state.parado { color:#91641a; background:#fff4dc; }
.fleet-state.sem_sinal { color:#9a5151; background:#fff0f0; }
.fleet-state.pausado { color:#7c659b; background:#f4effb; }
.fleet-list-panel footer { padding:12px 16px; color:#8496a6; border-top:1px solid #e8eef5; font-size:11px; line-height:1.5; }
.tracking-map-panel { position:relative; display:flex; flex-direction:column; }
.tracking-map-toolbar { padding:12px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid #e6edf5; }
.tracking-map-toolbar > span { display:flex; align-items:center; gap:8px; font-size:13px; }
.tracking-map-toolbar .icon { width:18px; color:#0870cd; }
.fleet-map { min-height:280px; flex:1; background:#e9eff3; z-index:0; }
.tracking-map-legend { padding:12px 14px; display:flex; flex-wrap:wrap; gap:8px 14px; border-top:1px solid #e6edf5; color:#6a8093; font-size:11px; }
.tracking-map-legend i { display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:5px; }
.legend-moving { background:#0870cd; }.legend-stopped { background:#cb9227; }.legend-stale { background:#8b9aac; }
.tracking-map-legend small { flex-basis:100%; color:#95a3af; font-size:11px; }
.tracking-map-message { position:absolute; z-index:500; top:66px; left:16px; right:16px; margin:0; padding:10px 12px; background:#fff6df; border:1px solid #e5d5a5; border-radius:10px; color:#8f6b28; font-size:12px; line-height:1.4; }
.fleet-marker > span { width:46px; height:46px; display:grid; place-items:center; color:#fff; background:#0870cd; border:3px solid #fff; border-radius:16px; box-shadow:0 4px 15px #123b6440; }
.fleet-marker svg { width:27px; height:27px; }
.fleet-marker.parado > span { background:#cb9227; }
.fleet-marker.pausado > span,.fleet-marker.sem_sinal > span { background:#8b9aac; }
.fleet-detail-panel { overflow-y:auto; padding:20px; scrollbar-width:thin; }
.fleet-detail-head small { display:block; margin-bottom:5px; color:#7890a3; font-size:11px; font-weight:800; letter-spacing:.06em; }
.fleet-detail-head h2 { margin:0 0 10px; color:#193d5c; font-size:28px; }
.fleet-detail-grid { margin:20px 0 12px; display:grid; gap:14px; }
.fleet-detail-grid dt { color:#8395a5; font-size:12px; }
.fleet-detail-grid dd { margin:3px 0 0; overflow-wrap:anywhere; color:#2d465c; font-size:13px; font-weight:700; }
.fleet-detail-note,.fleet-history-status { color:#8295a5; font-size:11px; line-height:1.5; }
.fleet-detail-actions { margin-top:18px; display:grid; gap:8px; }
.fleet-history-heading { padding-top:18px; border-top:1px solid #e7eef5; color:#344f64; font-size:14px; }
.tracking-empty,.tracking-list-empty { padding:32px 16px; color:#7890a3; font-size:13px; text-align:center; line-height:1.5; }
.tracking-empty > .icon { color:#a8bccc; width:40px; height:40px; }
.tracking-empty h2 { color:#3e5b71; font-size:17px; }
@media (max-width:1450px) { .tracking-workspace { grid-template-columns:235px minmax(0,1fr) 260px; gap:10px; }.fleet-detail-panel { padding:16px; }.fleet-metrics article { padding:12px; }.fleet-metrics span { font-size:12px; } }
@media (max-width:1100px) { .tracking-workspace { grid-template-columns:220px minmax(0,1fr); height:auto; min-height:570px; }.fleet-detail-panel { grid-column:1/-1; }.tracking-map-panel { min-height:500px; }.fleet-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-height:800px) { .fleet-dashboard-summary ~ .cat-workspace { height:calc(100vh - var(--cat-header) - 221px); min-height:390px; }.tracking-workspace { min-height:440px; } }
@media (prefers-reduced-motion:reduce) { .driver-tracking,.driver-tracking button,.tracking-symbol { transition:none; }.driver-tracking.is-changing strong,.driver-tracking[data-state="waiting"] .tracking-symbol,.fleet-state.is-changing { animation:none; } }
