:root{--bg:#f6f2ea;--panel:#fff;--line:#e7dac1;--gold:#b9851d;--gold-strong:#a8710a;--text:#17130d;--muted:#746a5b;--blue:#1871d8;--orange:#ee7900;--green:#4b9b25;--shadow:0 9px 25px rgba(104,74,18,.09)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}.app-shell{min-height:100vh;display:flex;flex-direction:column}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.topbar{padding:8px 16px;display:grid;grid-template-columns:minmax(300px,.82fr) minmax(500px,1.25fr) auto;align-items:center;gap:12px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 3px 14px rgba(100,72,17,.045);position:sticky;top:0;z-index:500}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{width:60px;height:60px;flex:0 0 auto}.brand-mark img{width:100%;height:100%;object-fit:contain}.eyebrow,.section-kicker{margin:0 0 2px;color:var(--gold);font-size:8px;font-weight:900;letter-spacing:.15em}.brand h1{margin:0;font-size:26px;line-height:1;font-weight:850;letter-spacing:-.035em;white-space:nowrap}.subtitle{margin:4px 0 0;color:#8b6a2d;font-size:10px}.stage-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.summary-card{min-height:56px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 10px;display:grid;align-content:center;box-shadow:0 4px 12px rgba(99,73,25,.045)}.summary-card span{font-size:7px;font-weight:900;text-transform:uppercase;color:#655d51}.summary-card strong{font-size:20px;line-height:1;margin:2px 0}.summary-card small{font-size:7px;color:#8c8171}.summary-card.waiting-driver strong{color:#b08a2e}.summary-card.pickup strong{color:#d59a00}.summary-card.collected strong{color:var(--orange)}.summary-card.enroute strong{color:var(--blue)}.summary-card.delivered strong{color:var(--green)}
.topbar-actions{display:flex;align-items:center;gap:6px}.system-strip{display:flex;align-items:center;gap:4px}.system-chip{height:32px;border:1px solid var(--line);background:#fffaf1;border-radius:8px;padding:0 8px;display:grid;align-content:center;line-height:1.05}.system-chip b{font-size:7px;text-transform:uppercase;color:#705c35}.system-chip small{margin-top:2px;font-size:7px;color:#7e7466;max-width:82px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.system-chip.online{display:flex;align-items:center;gap:5px}.system-chip.online i{width:7px;height:7px;border-radius:50%;background:#49ac32;box-shadow:0 0 0 4px rgba(73,172,50,.12)}.clock{text-align:right;min-width:108px}.clock strong{display:block;font-size:22px;color:var(--gold)}.clock span{font-size:8px;color:#7c7264}.header-button{height:36px;border:1px solid #d9be83;background:#fff;color:var(--text);border-radius:9px;padding:0 11px;font-weight:800;cursor:pointer;font-size:11px}.header-button:hover{background:#fffaf0;border-color:var(--gold)}.primary-head{background:linear-gradient(180deg,#c99529,#b47e16);color:#fff;border-color:#b47e16}.icon-only{width:36px;padding:0;font-size:15px}
main{flex:1;padding:10px 12px 12px;min-height:0;display:flex}.monitor-grid{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-content:start}.trip-card{--stage:var(--gold);min-width:0;height:292px;border:1px solid var(--line);background:#fff;border-radius:13px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.trip-card.pickup{--stage:#d59a00}.trip-card.collected{--stage:var(--orange)}.trip-card.enroute{--stage:var(--blue)}.trip-card.delivered{--stage:var(--green)}.status-bar{min-height:38px;padding:6px 10px;background:linear-gradient(90deg,color-mix(in srgb,var(--stage) 15%,#fff),#fff 68%);border-bottom:2px solid var(--stage);display:flex;align-items:center;gap:7px}.status-bar strong{font-size:10px;text-transform:uppercase;letter-spacing:.045em;color:var(--stage)}.status-time{margin-left:auto;font-size:15px;line-height:1;font-weight:900;color:var(--stage)}.card-number{width:31px;height:25px;border-radius:6px;background:var(--stage);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900}.card-body{display:grid;grid-template-columns:minmax(165px,.76fr) minmax(0,1.24fr);gap:12px;padding:11px;height:calc(100% - 38px)}.trip-info{display:flex;flex-direction:column;min-width:0}.platform-logo{display:block;object-fit:contain;object-position:left center;margin:0 0 7px;max-width:138px;height:40px}.platform-logo.99{width:54px}.platform-logo.uber{width:90px}.platform-logo.indrive{width:126px}.trip-info h3{margin:0 0 3px;font-size:19px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip-info p{margin:0 0 10px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip-info dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:7px}.trip-info dt{font-size:8px;color:#8c8172;text-transform:uppercase;letter-spacing:.045em}.trip-info dd{margin:2px 0 0;font-size:18px;font-weight:850}.updated{margin-top:auto;font-size:9px;color:#776d60;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.updated i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#52af39;margin-right:4px}.mini-map{position:relative;height:100%;min-height:0;border:1px solid #e5dccb;border-radius:11px;overflow:hidden;background:#f5f2ec}.mini-map .leaflet-control-attribution{font-size:6px!important}.map-unavailable{display:grid;place-items:center;text-align:center;padding:18px;color:#927d55;background:radial-gradient(circle at 50% 45%,#fff 0,#f6f0e5 76%)}.map-unavailable span{display:grid;gap:5px;font-size:10px;line-height:1.35}.map-unavailable b{font-size:12px;color:#846826}.map-unavailable small{font-size:8px;color:#9a8b72}.map-marker-shell{background:transparent;border:0}.map-marker-shell span{width:28px;height:28px;border-radius:50%;background:#fff;border:3px solid var(--marker);display:grid;place-items:center;font-size:14px;box-shadow:0 3px 9px rgba(0,0,0,.2)}
.monitor-grid.multi-row .trip-card{height:282px}
.empty-state{grid-column:1/-1;min-height:calc(100vh - 98px);display:grid;place-items:center;align-content:center;text-align:center;border:1px dashed #ddcfb4;border-radius:14px;background:rgba(255,255,255,.68);padding:30px}.empty-state h2{margin:14px 0 6px;font-size:24px}.empty-state p{max-width:540px;color:var(--muted);font-size:13px;line-height:1.5}.radar{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:#fff7e6;border:1px solid #ebd6aa;box-shadow:0 10px 28px rgba(160,112,19,.11)}
.drawer{position:fixed;inset:0;z-index:1000;visibility:hidden;pointer-events:none}.drawer.open{visibility:visible;pointer-events:auto}.drawer-backdrop{position:absolute;inset:0;border:0;background:rgba(31,24,13,.32);opacity:0;transition:.2s}.drawer.open .drawer-backdrop{opacity:1}.drawer-panel{position:absolute;right:0;top:0;bottom:0;width:min(470px,94vw);background:#fff;padding:22px;box-shadow:-18px 0 45px rgba(35,24,5,.18);transform:translateX(100%);transition:.25s;overflow:auto}.drawer.open .drawer-panel{transform:none}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.dialog-header h2{margin:0;font-size:24px}.dialog-close{width:36px;height:36px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:22px;cursor:pointer}.history-toolbar{display:flex;justify-content:space-between;margin:20px 0 10px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted)}.history-list{display:grid;gap:8px}.history-row{display:grid;grid-template-columns:70px 1fr auto;gap:11px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px}.history-platform img{max-width:62px;height:24px}.history-main{display:grid;gap:3px}.history-main strong{font-size:12px}.history-main span,.history-time{font-size:9px;color:var(--muted)}.history-empty{padding:30px;text-align:center;color:var(--muted)}
.panel-dialog{border:0;border-radius:15px;padding:0;background:#fff;color:var(--text);box-shadow:0 26px 80px rgba(35,24,5,.22);width:min(620px,94vw)}.panel-dialog::backdrop{background:rgba(31,24,13,.38)}.settings-dialog .dialog-header{padding:20px 22px;border-bottom:1px solid var(--line)}.settings-body{padding:20px 22px;display:grid;gap:15px}.settings-status{display:flex;align-items:center;justify-content:space-between;padding:14px;border-radius:11px;background:#faf6ee;border:1px solid var(--line)}.settings-status span{display:block;font-size:10px;color:var(--muted)}.settings-status strong{font-size:15px}.status-dot{width:12px;height:12px;border-radius:50%;background:#999}.status-dot.ok{background:#39a755;box-shadow:0 0 0 6px rgba(57,167,85,.12)}.status-dot.off{background:#d24b42}.qr{text-align:center;padding:15px;border:1px dashed var(--line);border-radius:11px}.qr img{display:block;max-width:220px;width:100%;margin:12px auto 0}.hidden{display:none}.settings-body label{display:grid;gap:6px;font-size:10px;font-weight:800;color:#665c4c}.settings-body input,.settings-body select{height:43px;border:1px solid var(--line);border-radius:9px;padding:0 11px;background:#fff}.coordinates-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.settings-help{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.sound-setting{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;border:1px solid var(--line);border-radius:11px}.sound-setting strong,.sound-setting span{display:block}.sound-setting span{margin-top:3px;font-size:9px;color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:15px 22px;border-top:1px solid var(--line)}.primary-button,.secondary-button{height:41px;border-radius:9px;padding:0 15px;font-weight:800;cursor:pointer}.primary-button{border:1px solid var(--gold);background:var(--gold);color:#fff}.secondary-button{border:1px solid var(--line);background:#fff;color:var(--text)}
body.tv-mode .topbar{padding:6px 10px;grid-template-columns:minmax(280px,.75fr) minmax(470px,1.35fr) auto}body.tv-mode .brand-mark{width:50px;height:50px}body.tv-mode .brand h1{font-size:23px}body.tv-mode .subtitle{display:none}body.tv-mode main{padding:7px 8px 8px}body.tv-mode .monitor-grid{gap:9px}body.tv-mode .monitor-grid .trip-card{height:calc((100vh - 92px - 18px)/3);min-height:250px}
@media(max-width:1500px){.topbar{grid-template-columns:minmax(290px,.8fr) minmax(430px,1.15fr) auto}.system-strip{display:none}.brand h1{font-size:24px}.trip-card{height:270px}.card-body{grid-template-columns:minmax(120px,.75fr) minmax(0,1.25fr)}}
@media(max-width:1050px){.topbar{grid-template-columns:1fr auto}.stage-summary{grid-column:1/-1;grid-row:2}.monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trip-card,.monitor-grid.multi-row .trip-card{height:250px}.topbar-actions{justify-self:end}}
@media(max-width:700px){.topbar{position:static;padding:10px;grid-template-columns:1fr}.brand-mark{width:52px;height:52px}.brand h1{font-size:22px}.stage-summary{grid-template-columns:repeat(2,1fr)}.topbar-actions{justify-self:stretch;flex-wrap:wrap}.clock{margin-left:auto}.system-strip{display:none}.monitor-grid{grid-template-columns:1fr}.trip-card,.monitor-grid.multi-row .trip-card{height:auto;min-height:330px}.card-body{grid-template-columns:1fr}.mini-map{min-height:190px}.header-button span{display:none}.header-button{width:38px;padding:0}.primary-head span{display:inline}.primary-head{width:auto;padding:0 12px}.coordinates-grid{grid-template-columns:1fr}}

/* V1.7.0 — painel de logs operacionais */
.logs-dialog{width:min(1500px,96vw);height:min(900px,92vh);padding:0;overflow:hidden;border:1px solid #dec99c;border-radius:20px;background:#fffdf9;color:#17130c}
.logs-dialog::backdrop{background:rgba(29,23,12,.48);backdrop-filter:blur(3px)}
.logs-dialog .dialog-header{padding:18px 22px;border-bottom:1px solid #eadcc0;background:#fff}
.logs-toolbar{display:flex;flex-direction:column;gap:12px;padding:14px 18px;border-bottom:1px solid #eadcc0;background:#fbf7ef}
.logs-tabs{display:flex;gap:8px;flex-wrap:wrap}
.logs-tab{border:1px solid #d9c18f;background:#fff;color:#4b3b1c;border-radius:999px;padding:8px 14px;font-weight:800;cursor:pointer}
.logs-tab.active{background:#ba8720;color:#fff;border-color:#ba8720}
.logs-filters{display:grid;grid-template-columns:minmax(240px,1fr) 190px auto auto auto;gap:10px;align-items:center}
.logs-filters input,.logs-filters select{width:100%;border:1px solid #dfcfad;border-radius:10px;background:#fff;padding:10px 12px;font:inherit;color:#211a0d}
.logs-live{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:13px;color:#6f5b31}
.secondary-button.danger{color:#9d2b23;border-color:#e2b6b1;background:#fff7f6}
.logs-summary{display:flex;justify-content:space-between;gap:12px;padding:9px 18px;border-bottom:1px solid #eee1c7;color:#75623d;font-size:12px;background:#fff}
.logs-list{height:calc(100% - 190px);overflow:auto;padding:12px 18px 24px;background:#f6f1e7}
.log-entry{background:#fff;border:1px solid #e4d7bb;border-left:5px solid #b68a2f;border-radius:12px;margin-bottom:10px;overflow:hidden}
.log-entry.warn{border-left-color:#e09a00}.log-entry.error{border-left-color:#c53b31}
.log-entry summary{display:grid;grid-template-columns:150px 110px minmax(180px,1fr) auto;gap:12px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}
.log-entry summary::-webkit-details-marker{display:none}
.log-time{font-variant-numeric:tabular-nums;color:#65583f;font-size:12px}
.log-category{display:inline-flex;justify-content:center;padding:5px 8px;border-radius:999px;background:#f3ead7;color:#7a5713;font-weight:900;font-size:11px;text-transform:uppercase}
.log-event{font-weight:900;overflow-wrap:anywhere}
.log-preview{font-size:12px;color:#7b6d55;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}
.log-body{border-top:1px solid #eee2ca;padding:14px;background:#fffdf9}
.log-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.log-field{border:1px solid #eee0c4;border-radius:9px;padding:9px;background:#fff}
.log-field b{display:block;font-size:10px;text-transform:uppercase;color:#9a7a37;margin-bottom:4px}.log-field span{font-size:13px;overflow-wrap:anywhere}
.log-json{margin:0;max-height:360px;overflow:auto;background:#201b13;color:#f6ead1;border-radius:10px;padding:12px;font:12px/1.45 Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.log-actions{display:flex;justify-content:flex-end;margin-top:10px}.copy-log{border:1px solid #d9c18f;background:#fff;border-radius:8px;padding:7px 10px;cursor:pointer;font-weight:700}
.logs-empty{padding:60px 20px;text-align:center;color:#806d48}
@media(max-width:1000px){.logs-filters{grid-template-columns:1fr 1fr}.logs-live{grid-column:1/-1}.log-entry summary{grid-template-columns:120px 90px 1fr}.log-preview{display:none}.log-fields{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.logs-dialog{width:100vw;height:100vh;border-radius:0}.logs-filters{grid-template-columns:1fr}.log-entry summary{grid-template-columns:1fr;gap:5px}.log-fields{grid-template-columns:1fr}.logs-list{height:calc(100% - 280px)}}

/* V1.7.1 — auditoria individual vinculada ao card */
.card-log-button{width:24px;height:24px;flex:0 0 24px;border:1px solid color-mix(in srgb,var(--stage) 40%,#d9cba9);border-radius:6px;background:#fff;color:var(--stage);display:grid;place-items:center;padding:0;font-size:16px;line-height:1;font-weight:900;cursor:pointer;opacity:.72;transition:.15s}
.card-log-button:hover{opacity:1;background:color-mix(in srgb,var(--stage) 9%,#fff);transform:translateY(-1px)}
.card-logs-dialog{width:min(1050px,94vw);height:min(820px,90vh);overflow:hidden;border:1px solid #ddc99e;border-radius:17px;background:#fffdf9}
.card-logs-dialog::backdrop{background:rgba(31,24,13,.42);backdrop-filter:blur(2px)}
.card-logs-header{padding:18px 20px 14px;border-bottom:1px solid #eadcc0;background:#fff}
.card-logs-meta{margin:5px 0 0;max-width:820px;color:#746950;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-logs-tabs{display:flex;gap:7px;padding:11px 16px;border-bottom:1px solid #eadcc0;background:#faf6ed}
.card-log-tab{border:1px solid #d8c18f;background:#fff;color:#58451f;border-radius:999px;padding:7px 13px;font-size:11px;font-weight:850;cursor:pointer}
.card-log-tab.active{background:#b9851d;border-color:#b9851d;color:#fff}
.card-logs-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 16px;border-bottom:1px solid #eadcc0;background:#fff;color:#766443;font-size:11px}
.card-logs-toolbar>div{display:flex;gap:7px}.card-logs-toolbar .secondary-button{height:32px;padding:0 11px;font-size:10px}
.card-logs-text{height:calc(100% - 169px);margin:0;padding:18px 20px;overflow:auto;background:#1f1b14;color:#f6ead0;font:12px/1.55 Consolas,"Courier New",monospace;white-space:pre-wrap;word-break:break-word;tab-size:2}
@media(max-width:700px){.card-logs-dialog{width:100vw;height:100vh;border-radius:0}.card-logs-header{padding:14px}.card-logs-meta{max-width:78vw}.card-logs-tabs{overflow:auto}.card-logs-toolbar{align-items:flex-start}.card-logs-toolbar>div{flex-wrap:wrap;justify-content:flex-end}.card-logs-text{height:calc(100% - 190px);padding:14px;font-size:11px}}

/* V2.0.1 — estado persistente do mini mapa */
.mini-map{position:relative}
.map-state-badge{position:absolute;z-index:500;top:8px;left:8px;padding:4px 8px;border:1px solid rgba(189,139,34,.35);border-radius:999px;background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(0,0,0,.08);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#76520d;pointer-events:none}
.trip-card.delivered .map-state-badge{color:#347d21;border-color:rgba(52,125,33,.28)}

/* V2.0.3 — coluna operacional limpa e legível */
.delivery-panel{gap:0}.delivery-panel .platform-logo{height:33px;margin-bottom:7px}.client-block{margin-bottom:8px}.field-label{display:flex;align-items:center;gap:5px;margin-bottom:3px;color:#91784b;font-size:7px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;line-height:1}.field-icon{width:5px;height:5px;border-radius:50%;color:var(--stage);font-size:7px;line-height:5px;flex:0 0 5px}.delivery-panel h3{font-size:20px;line-height:1.08;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.delivery-lines{display:grid;gap:6px;margin-bottom:8px}.delivery-line,.destination-line{display:flex;align-items:center;gap:8px;min-width:0}.line-icon{width:18px;height:18px;flex:0 0 18px;display:grid;place-items:center;color:var(--stage);font-size:11px;font-weight:900;border:1px solid color-mix(in srgb,var(--stage) 28%,#e6dac1);border-radius:6px;background:color-mix(in srgb,var(--stage) 6%,#fff)}.line-copy{display:block;min-width:0;flex:1}.line-copy small{display:block;margin-bottom:1px;color:#927c53;font-size:7px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;line-height:1}.line-copy strong{display:block;min-width:0;color:#21180c;font-size:10.5px;line-height:1.18;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vehicle-line .line-copy strong{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.plate-line .line-copy strong{font-variant-numeric:tabular-nums;letter-spacing:.045em}.destination-line{align-items:flex-start;margin-bottom:8px;padding:7px 8px;border-left:2px solid color-mix(in srgb,var(--stage) 55%,#d7c49d);border-radius:0 7px 7px 0;background:linear-gradient(90deg,color-mix(in srgb,var(--stage) 6%,#fff),rgba(255,255,255,0))}.destination-line .line-icon{margin-top:1px;border:0;background:transparent;width:13px;height:13px;flex-basis:13px;font-size:8px}.destination-line .line-copy strong{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:23px}.delivery-metrics{margin:0!important;display:grid!important;grid-template-columns:1fr 1fr;gap:5px!important}.delivery-metrics>div{padding:5px 7px;border:1px solid #e8dcc4;border-radius:7px;background:#fff}.delivery-metrics dt{font-size:7px!important}.delivery-metrics dd{font-size:15px!important;margin-top:1px!important}.delivery-panel .updated{margin-top:auto;padding-top:5px;font-size:8px}
@media(max-width:1500px){.delivery-panel h3{font-size:18px}.delivery-lines{gap:5px;margin-bottom:6px}.delivery-line,.destination-line{gap:6px}.line-icon{width:16px;height:16px;flex-basis:16px;font-size:9px}.line-copy strong{font-size:9.5px}.destination-line{padding:6px;margin-bottom:6px}.delivery-metrics>div{padding:4px 6px}.delivery-metrics dd{font-size:14px!important}}
@media(max-width:700px){.delivery-panel .platform-logo{height:38px}.delivery-panel h3{font-size:22px}.line-copy strong{font-size:11px}.delivery-metrics dd{font-size:17px!important}}

/* V2.0.4 — tipografia leve nos dados secundários */
.line-copy .field-value{display:block;min-width:0;color:#2b2115;font-size:10.5px;line-height:1.22;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vehicle-line .line-copy .field-value{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.plate-line .line-copy .field-value{font-variant-numeric:tabular-nums;letter-spacing:.045em;font-weight:500}
.destination-line .line-copy .field-value{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:23px;font-weight:500}
@media(max-width:1500px){.line-copy .field-value{font-size:9.5px}}
@media(max-width:700px){.line-copy .field-value{font-size:11px}}

/* V2.0.5 — compactação vertical da coluna de informações */
.card-body{padding:9px 10px;gap:10px}
.delivery-panel{min-height:0;overflow:hidden}
.delivery-panel .platform-logo{height:29px;margin-bottom:4px}
.client-block{margin-bottom:5px}
.field-label{margin-bottom:2px;font-size:6.5px;line-height:1}
.delivery-panel h3{font-size:19px;line-height:1.02}
.delivery-lines{gap:3px;margin-bottom:5px}
.delivery-line,.destination-line{gap:6px}
.line-icon{width:15px;height:15px;flex-basis:15px;border-radius:5px;font-size:8px}
.line-copy small{margin-bottom:0;font-size:6.5px;line-height:1}
.line-copy .field-value{font-size:9.5px;line-height:1.12}
.vehicle-line .line-copy .field-value{-webkit-line-clamp:2;line-height:1.08}
.destination-line{margin-bottom:5px;padding:5px 6px}
.destination-line .line-icon{width:11px;height:11px;flex-basis:11px;font-size:7px}
.destination-line .line-copy .field-value{min-height:0;line-height:1.12;-webkit-line-clamp:2}
.delivery-metrics{gap:4px!important;margin-top:auto!important}
.delivery-metrics>div{min-height:37px;padding:4px 6px}
.delivery-metrics dt{font-size:6.5px!important;line-height:1!important}
.delivery-metrics dd{font-size:14px!important;line-height:1!important;margin-top:3px!important}
.delivery-panel .updated{display:none}

@media(max-width:1500px){
  .card-body{padding:8px 9px;gap:9px}
  .delivery-panel .platform-logo{height:27px;margin-bottom:3px}
  .client-block{margin-bottom:4px}
  .delivery-panel h3{font-size:18px}
  .delivery-lines{gap:2px;margin-bottom:4px}
  .line-icon{width:14px;height:14px;flex-basis:14px}
  .line-copy .field-value{font-size:9px}
  .destination-line{padding:4px 5px;margin-bottom:4px}
  .delivery-metrics>div{min-height:34px;padding:3px 5px}
  .delivery-metrics dd{font-size:13px!important;margin-top:2px!important}
}

@media(max-width:700px){
  .delivery-panel{overflow:visible}
  .delivery-panel .platform-logo{height:34px}
  .delivery-panel h3{font-size:21px}
  .line-copy .field-value{font-size:10.5px}
  .delivery-metrics dd{font-size:16px!important}
}

/* V2.0.6 — equilíbrio entre informações e mini mapa */
.card-body{
  grid-template-columns:minmax(185px,.90fr) minmax(0,1.10fr);
}
.delivery-panel{
  min-width:0;
}
.delivery-lines{
  min-width:0;
}
.vehicle-line .line-copy strong,
.destination-line .line-copy strong{
  overflow-wrap:anywhere;
  word-break:normal;
}
.destination-line .line-copy strong{
  -webkit-line-clamp:2;
  min-height:0;
}
.delivery-metrics{
  margin-top:auto!important;
  padding-bottom:2px;
}

@media(max-width:1500px){
  .card-body{
    grid-template-columns:minmax(150px,.88fr) minmax(0,1.12fr);
  }
}

@media(max-width:1050px){
  .card-body{
    grid-template-columns:minmax(165px,.90fr) minmax(0,1.10fr);
  }
}

@media(max-width:700px){
  .card-body{
    grid-template-columns:1fr;
  }
}

/* ===== INTEGRAÇÃO PORTAL STARNAILS ===== */
.portal-return{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-top:5px;
  color:#8a650c;
  font-size:11px;
  line-height:1.2;
  font-weight:700;
  text-decoration:none;
  opacity:.82;
  transition:opacity .18s ease,color .18s ease;
}
.portal-return:hover,
.portal-return:focus-visible{
  color:#5f4200;
  opacity:1;
  text-decoration:underline;
  text-underline-offset:3px;
}
@media(max-width:900px){
  .portal-return{margin-inline:auto}
}

/* V2.1.0 — origem e destino reais vindos do GraphQL da Uber */
.route-addresses{display:grid;gap:3px;margin-bottom:5px}
.route-addresses .destination-line{margin-bottom:0}
.route-addresses .origin-line{border-left-color:#7f8b9a;background:linear-gradient(90deg,rgba(105,120,138,.07),rgba(255,255,255,0))}
.route-addresses .origin-line .line-icon{color:#687789}
.route-addresses .line-copy .field-value{-webkit-line-clamp:2}

/* V2.2.0 — mapa fluido, cards limpos e alerta de coleta */
.mini-map .leaflet-marker-icon{transition:transform 1.15s linear!important;will-change:transform}
.mini-map .leaflet-tile{transition:opacity .22s linear}
.delivery-metrics.single-metric{grid-template-columns:1fr!important}
.delivery-metrics.single-metric>div{text-align:center}
.trip-card.pickup-alert{box-shadow:0 0 0 2px rgba(190,139,34,.72),0 0 24px rgba(190,139,34,.28);animation:pickupAlertPulse 1.8s ease-in-out infinite}
.trip-card.pickup-alert .status-bar{background:linear-gradient(90deg,#fff7df,#fff);color:#765000}
.trip-card.pickup-alert .status-time{background:#bd8b22;color:#fff;border-color:#bd8b22}
@keyframes pickupAlertPulse{0%,100%{box-shadow:0 0 0 1px rgba(190,139,34,.45),0 0 10px rgba(190,139,34,.12)}50%{box-shadow:0 0 0 3px rgba(190,139,34,.82),0 0 28px rgba(190,139,34,.34)}}
.pickup-alert-bar{position:sticky;top:8px;z-index:900;margin:0 0 10px;padding:11px 16px;border:1px solid #d4a43d;border-radius:10px;background:#fff8e5;box-shadow:0 8px 24px rgba(92,65,10,.16);color:#6d4b00;font-size:14px;font-weight:900;text-align:center;letter-spacing:.02em;animation:pickupBarPulse 1.4s ease-in-out infinite}
.pickup-alert-bar.hidden{display:none}
@keyframes pickupBarPulse{50%{background:#ffefbd;transform:translateY(-1px)}}
.pickup-alert-settings{margin-top:6px;padding:15px;border:1px solid #e4d3af;border-radius:12px;background:#fffaf0}
.setting-section-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.setting-section-title strong{display:block;color:#35270e;font-size:14px}.setting-section-title span{display:block;margin-top:3px;color:#7f7155;font-size:11px;line-height:1.35}
.switch-setting{display:flex!important;align-items:center;justify-content:space-between;gap:14px;margin:0 0 12px!important;padding:10px 11px;border:1px solid #e7dcc5;border-radius:9px;background:#fff;cursor:pointer}.switch-setting span{display:block}.switch-setting strong{display:block;color:#35270e;font-size:12px}.switch-setting small{display:block;margin-top:2px;color:#8b7c60;font-size:10px}.switch-setting input{position:absolute;opacity:0;pointer-events:none}.switch-setting i{position:relative;width:42px;height:23px;flex:0 0 42px;border-radius:999px;background:#cfc7b8;transition:.2s}.switch-setting i::after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:.2s}.switch-setting input:checked+i{background:#bd8b22}.switch-setting input:checked+i::after{transform:translateX(19px)}
.alert-options-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.alert-options-grid label{margin:0!important}.alert-test-row{display:flex;gap:8px;margin-top:12px}.alert-test-row .secondary-button{flex:1}
@media(max-width:700px){.alert-options-grid{grid-template-columns:1fr}.pickup-alert-bar{position:relative;top:auto}.trip-card.pickup-alert{animation:none}}

/* V2.2.5 — informações operacionais sem alterar a grade oficial */
.pickup-alert-bar{display:none!important}
.pickup-code{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 5px;padding:5px 8px;border:1px solid rgba(190,139,34,.42);border-radius:7px;background:#fff8e7}
.pickup-code span{font-size:7px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#8b6a27}
.pickup-code strong{font-size:18px;line-height:1;font-weight:950;letter-spacing:.08em;color:#9a6800;font-variant-numeric:tabular-nums}
.trip-card.pickup-alert{box-shadow:0 0 0 2px rgba(190,139,34,.62),var(--shadow);animation:pickupAlertPulse 2.2s ease-in-out infinite}
.trip-card.pickup-alert .status-bar strong:before{content:'🔔 ';font-size:10px}
@media(max-width:1500px){.pickup-code{padding:4px 7px;margin-bottom:4px}.pickup-code strong{font-size:16px}}

/* V2.3.0 — indicadores, atualização por card e histórico operacional */
.update-health{display:flex!important;align-items:center;gap:5px;margin-top:5px;font-size:10px!important;font-weight:700!important;text-transform:none!important;letter-spacing:0!important}
.update-health i{width:7px;height:7px;border-radius:50%;display:inline-block;background:#4aa83b;box-shadow:0 0 0 3px rgba(74,168,59,.12)}
.update-health.warning{color:#a96f00!important}.update-health.warning i{background:#e2a117;box-shadow:0 0 0 3px rgba(226,161,23,.14)}
.update-health.critical{color:#c33b32!important}.update-health.critical i{background:#cf4037;box-shadow:0 0 0 3px rgba(207,64,55,.14)}
.update-health.history{color:#568640!important}.update-health.history i{background:#65a943}
.trip-card.update-warning{box-shadow:0 12px 26px rgba(191,132,10,.10)}
.trip-card.update-critical{box-shadow:0 12px 28px rgba(181,49,40,.13)}
.trip-card.update-critical .mini-map{outline:2px solid rgba(207,64,55,.35);outline-offset:-2px}
.map-marker-shell.driver-marker span{font-size:15px;box-shadow:0 0 0 5px rgba(255,255,255,.9),0 3px 12px rgba(0,0,0,.28)}

.dashboard-dialog{width:min(1180px,94vw);max-width:none;padding:0;border:0;border-radius:18px;overflow:hidden;background:#f8f5ee;box-shadow:0 30px 90px rgba(71,47,4,.28)}
.dashboard-dialog::backdrop{background:rgba(24,18,8,.42);backdrop-filter:blur(3px)}
.dashboard-subtitle{margin:4px 0 0;color:#846b3c;font-size:13px}
.dashboard-body{padding:18px 20px 22px;max-height:78vh;overflow:auto}
.dashboard-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}
.dashboard-kpis article{background:#fff;border:1px solid #ead9b9;border-radius:13px;padding:13px 14px;min-height:78px;display:flex;flex-direction:column;justify-content:center}
.dashboard-kpis span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8a7043;font-weight:800}
.dashboard-kpis strong{font-size:24px;line-height:1.05;margin-top:5px;color:#17130d}
.dashboard-columns{display:grid;grid-template-columns:1.05fr .95fr;gap:14px}
.dashboard-panel{background:#fff;border:1px solid #ead9b9;border-radius:14px;padding:14px}
.dashboard-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid #f0e5d1}
.dashboard-panel-head h3{margin:0;font-size:15px}.dashboard-panel-head span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#9a7a3d;font-weight:800}
.platform-stats{display:flex;flex-direction:column;gap:8px}.platform-stat-row{display:grid;grid-template-columns:1.4fr .7fr .9fr;gap:10px;align-items:center;padding:10px;border:1px solid #f0e4cf;border-radius:10px;background:#fffdfa}
.platform-stat-name{display:flex;flex-direction:column}.platform-stat-name strong{font-size:15px}.platform-stat-name span,.platform-stat-row small{font-size:10px;color:#8b7650}.platform-stat-row>div:not(:first-child){display:flex;flex-direction:column}.platform-stat-row>div:not(:first-child)>strong{font-size:14px;margin-top:2px}
.recent-deliveries{display:flex;flex-direction:column;gap:7px}.recent-delivery{width:100%;display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:9px;padding:8px 10px;border:1px solid #f0e4cf;border-radius:10px;background:#fff;cursor:pointer;text-align:left}.recent-delivery:hover{background:#fff8e9;border-color:#dcb868}.recent-delivery .platform-logo{max-width:46px;max-height:23px}.recent-delivery div{display:flex;flex-direction:column}.recent-delivery strong{font-size:13px}.recent-delivery small{font-size:10px;color:#8a7550}.recent-delivery time{font-weight:800;color:#9c6a00;font-size:12px}
.timeline-summary-panel{margin-top:14px}.day-timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 18px}.timeline-event{display:grid;grid-template-columns:48px 10px 1fr;align-items:center;gap:8px;border:0;background:transparent;padding:6px 4px;text-align:left;cursor:pointer;border-radius:8px}.timeline-event:hover{background:#fff7e7}.timeline-event time{font-weight:800;color:#9b6a00;font-size:12px}.timeline-event i{width:8px;height:8px;border-radius:50%;background:#c9982c;box-shadow:0 0 0 4px rgba(201,152,44,.14)}.timeline-event div{display:flex;flex-direction:column}.timeline-event strong{font-size:12px}.timeline-event span{font-size:10px;color:#7e6c4d}.dashboard-empty{color:#8b7752;font-size:12px;margin:8px 0}

.history-row.history-open-trip{width:100%;font:inherit;text-align:left;cursor:pointer;background:#fff}.history-row.history-open-trip:hover{background:#fff8e9;border-color:#d8b15b}.history-time{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.history-time small{font-size:9px;color:#9b7940;font-weight:700}

@media(max-width:1150px){.dashboard-kpis{grid-template-columns:repeat(3,1fr)}.dashboard-columns{grid-template-columns:1fr}}
@media(max-width:720px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.day-timeline{grid-template-columns:1fr}.dashboard-body{padding:12px}.dashboard-dialog{width:96vw}.topbar-actions #dashboardBtn{display:none}}

/* V2.3.4 — refinamento visual dos cards sem alterar a estrutura do painel */
.trip-card,
.monitor-grid.multi-row .trip-card{
  height:304px;
}
.card-body{
  min-height:0;
  padding:8px 9px;
  gap:9px;
}
.delivery-panel{
  min-height:0;
  overflow:hidden;
}
.delivery-panel .platform-logo{
  height:31px;
  margin-bottom:5px;
}
.client-block{
  margin-bottom:6px;
}
.delivery-panel h3{
  font-size:19px;
}
.delivery-lines{
  gap:4px;
  margin-bottom:5px;
}
.delivery-line,
.destination-line{
  gap:6px;
}
.line-icon{
  width:17px;
  height:17px;
  flex-basis:17px;
}
.route-addresses{
  gap:2px;
  margin-bottom:4px;
}
.destination-line{
  margin-bottom:0;
  padding:5px 7px;
}
.destination-line .line-copy strong{
  -webkit-line-clamp:2;
  line-height:1.12;
}
.delivery-metrics{
  margin-top:auto!important;
  padding-bottom:0;
}
.delivery-metrics>div{
  min-height:39px;
  padding:4px 7px;
  display:grid;
  align-content:center;
}
.delivery-metrics dd{
  font-size:16px!important;
  line-height:1!important;
}
.delivery-panel .updated{
  display:none!important;
}
.mini-map{
  min-height:0;
}
.map-update-badge{
  position:absolute;
  z-index:500;
  right:8px;
  top:8px;
  max-width:56%;
  display:flex;
  align-items:center;
  gap:5px;
  padding:4px 8px;
  border:1px solid rgba(77,159,59,.24);
  border-radius:999px;
  background:rgba(255,255,255,.93);
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  color:#3f7f31;
  font-size:9px;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  pointer-events:none;
}
.map-update-badge i{
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
  background:#4aa83b;
}
.map-update-badge.warning{
  color:#9b6900;
  border-color:rgba(226,161,23,.32);
}
.map-update-badge.warning i{
  background:#e2a117;
}
.map-update-badge.critical{
  color:#b9362e;
  border-color:rgba(207,64,55,.32);
}
.map-update-badge.critical i{
  background:#cf4037;
}
.map-update-badge.history{
  color:#4f7e3e;
  border-color:rgba(101,169,67,.28);
}
.map-update-badge.history i{
  background:#65a943;
}
@media(max-width:1500px){
  .trip-card,
  .monitor-grid.multi-row .trip-card{
    height:292px;
  }
  .card-body{
    padding:7px 8px;
    gap:8px;
  }
  .delivery-panel .platform-logo{
    height:29px;
  }
  .delivery-lines{
    gap:3px;
    margin-bottom:4px;
  }
  .destination-line{
    padding:4px 6px;
  }
  .delivery-metrics>div{
    min-height:36px;
  }
  .map-update-badge{
    max-width:58%;
    font-size:8px;
    padding:3px 7px;
  }
}
@media(max-width:1050px){
  .trip-card,
  .monitor-grid.multi-row .trip-card{
    height:270px;
  }
}
@media(max-width:700px){
  .trip-card,
  .monitor-grid.multi-row .trip-card{
    height:auto;
    min-height:350px;
  }
  .delivery-panel{
    overflow:visible;
  }
  .map-update-badge{
    max-width:62%;
  }
}

/* V2.3.8 — acabamento final do mini mapa e card 99 com código de coleta */
.mini-map{
  border:1px solid rgba(132,108,63,.16);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),0 3px 12px rgba(53,40,18,.07);
  overflow:hidden;
}
.mini-map .leaflet-tile-pane{filter:saturate(.88) brightness(1.025) contrast(.96)}
.mini-map .leaflet-control-attribution{font-size:6px!important;opacity:.65;background:rgba(255,255,255,.76)!important}
.map-update-badge{
  left:10px;
  right:auto;
  top:10px;
  max-width:54%;
  min-height:23px;
  padding:4px 10px;
  font-size:9px;
  letter-spacing:.035em;
  text-transform:uppercase;
  box-shadow:0 3px 12px rgba(28,23,14,.10);
  backdrop-filter:blur(4px);
}
.map-update-badge i{width:7px;height:7px;flex-basis:7px;box-shadow:0 0 0 3px rgba(74,168,59,.10)}
.map-marker-shell{background:transparent!important;border:0!important}
.map-marker-shell span{
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border:2px solid var(--marker);
  border-radius:50%;
  background:#fff;
  color:#241b0f;
  font-size:12px;
  line-height:1;
  box-shadow:0 3px 10px rgba(24,19,12,.22),0 0 0 3px rgba(255,255,255,.84);
}
.map-marker-shell.driver-marker span{
  font-size:13px;
  box-shadow:0 4px 13px rgba(24,19,12,.25),0 0 0 4px rgba(255,255,255,.88);
}
.map-marker-shell.pickup-marker span{font-size:12px;font-weight:900;color:#3d4752}
.map-marker-shell.destination-marker span{font-size:12px;color:#9b6900}
.mini-map .leaflet-marker-icon{transition:none!important;will-change:transform}

.trip-card.has-pickup-code .card-body{padding-top:6px;padding-bottom:6px}
.trip-card.has-pickup-code .delivery-panel .platform-logo{height:27px;margin-bottom:3px}
.trip-card.has-pickup-code .client-block{margin-bottom:4px}
.trip-card.has-pickup-code .delivery-panel h3{font-size:18px;line-height:1}
.trip-card.has-pickup-code .delivery-lines{gap:2px;margin-bottom:3px}
.trip-card.has-pickup-code .delivery-line{min-height:15px}
.trip-card.has-pickup-code .line-icon{width:15px;height:15px;flex-basis:15px;font-size:8px;border-radius:5px}
.trip-card.has-pickup-code .line-copy small{font-size:6px;margin-bottom:0}
.trip-card.has-pickup-code .line-copy .field-value{font-size:9px;line-height:1.1}
.trip-card.has-pickup-code .route-addresses{gap:1px;margin-bottom:3px}
.trip-card.has-pickup-code .destination-line{padding:3px 5px;min-height:31px}
.trip-card.has-pickup-code .destination-line .line-copy .field-value{
  min-height:auto;
  font-size:8.8px;
  line-height:1.08;
  -webkit-line-clamp:2;
}
.trip-card.has-pickup-code .pickup-code{
  min-height:31px;
  margin:0 0 3px;
  padding:3px 7px;
  flex:0 0 auto;
}
.trip-card.has-pickup-code .pickup-code span{font-size:6.5px}
.trip-card.has-pickup-code .pickup-code strong{font-size:17px;line-height:1}
.trip-card.has-pickup-code .delivery-metrics>div{min-height:31px;padding:2px 5px}
.trip-card.has-pickup-code .delivery-metrics dt{font-size:6px!important}
.trip-card.has-pickup-code .delivery-metrics dd{font-size:13px!important;margin-top:1px!important}

@media(max-width:1500px){
  .map-update-badge{top:8px;left:8px;min-height:21px;padding:3px 8px;font-size:8px}
  .map-marker-shell span{width:24px;height:24px;font-size:11px}
  .trip-card.has-pickup-code .delivery-panel .platform-logo{height:25px}
  .trip-card.has-pickup-code .delivery-panel h3{font-size:17px}
  .trip-card.has-pickup-code .line-copy .field-value{font-size:8.5px}
  .trip-card.has-pickup-code .destination-line .line-copy .field-value{font-size:8.2px}
  .trip-card.has-pickup-code .pickup-code{min-height:28px}
  .trip-card.has-pickup-code .pickup-code strong{font-size:15px}
  .trip-card.has-pickup-code .delivery-metrics>div{min-height:29px}
}

@media(max-width:700px){
  .trip-card.has-pickup-code .delivery-panel .platform-logo{height:32px}
  .trip-card.has-pickup-code .delivery-panel h3{font-size:21px}
  .trip-card.has-pickup-code .line-copy .field-value{font-size:10.5px}
  .trip-card.has-pickup-code .destination-line .line-copy .field-value{font-size:10px}
}


/* V2.3.9 — alerta de coleta confirmado em vermelho, sem sino */
.trip-card.pickup-alert{border-color:#d51f2a!important;box-shadow:0 0 0 2px rgba(213,31,42,.72),0 0 28px rgba(213,31,42,.34),var(--shadow)!important;animation:pickupAlertRedPulse 1s ease-in-out infinite!important}
.trip-card.pickup-alert .status-bar{background:linear-gradient(90deg,#d51f2a,#b9101a)!important;color:#fff!important;border-bottom-color:#a90e17!important}
.trip-card.pickup-alert .status-bar strong,.trip-card.pickup-alert .status-bar .card-number{color:#fff!important}
.trip-card.pickup-alert .status-time{background:#fff!important;color:#c51620!important;border-color:#fff!important}
.trip-card.pickup-alert .status-bar strong:before{content:none!important;display:none!important}
@keyframes pickupAlertRedPulse{0%,100%{box-shadow:0 0 0 1px rgba(213,31,42,.55),0 0 8px rgba(213,31,42,.18),var(--shadow);filter:none}50%{box-shadow:0 0 0 4px rgba(213,31,42,.95),0 0 34px rgba(213,31,42,.52),var(--shadow);filter:saturate(1.12)}}
@media(max-width:700px){.trip-card.pickup-alert{animation:pickupAlertRedPulse 1.15s ease-in-out infinite!important}}


/* V2.4.0 — alerta de coleta suave, somente bordas e cabeçalho limpo */
.trip-card.pickup-alert{
  background:#fff!important;
  border-color:#e35d64!important;
  box-shadow:0 0 0 1px rgba(211,47,58,.42),0 0 14px rgba(211,47,58,.18),var(--shadow)!important;
  animation:pickupAlertBorderSoft 1.15s ease-in-out infinite!important;
}
.trip-card.pickup-alert .status-bar{
  background:#fff!important;
  color:#c82832!important;
  border-bottom-color:#ef9da2!important;
}
.trip-card.pickup-alert .status-bar strong{color:#c82832!important}
.trip-card.pickup-alert .status-bar .card-number{background:#c82832!important;color:#fff!important}
.trip-card.pickup-alert .status-time{
  background:transparent!important;
  color:#c82832!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
.trip-card.pickup-alert .card-log-button{background:#fff!important;color:#c82832!important;border-color:#ef9da2!important}
@keyframes pickupAlertBorderSoft{
  0%,100%{border-color:#e98a90;box-shadow:0 0 0 1px rgba(211,47,58,.30),0 0 8px rgba(211,47,58,.12),var(--shadow)}
  50%{border-color:#c91f2a;box-shadow:0 0 0 4px rgba(211,47,58,.68),0 0 22px rgba(211,47,58,.26),var(--shadow)}
}
.alert-always-on input:disabled+i{opacity:1!important;filter:none!important}
.alert-always-on{cursor:default!important}

.trip-card.waiting_driver .status-bar{background:#fff8df;color:#6f5514}.trip-card.waiting_driver{border-color:#e6cf8e}.trip-card.waiting_driver .mini-map.map-unavailable{background:linear-gradient(135deg,#fffdf6,#f8f0d8)}.trip-card.waiting_driver .mini-map.map-unavailable b{color:#8b6a20}

/* V2.6.5 — manutenção de cards órfãos */
.danger-button{border:1px solid #b42318;background:#fff;color:#b42318;border-radius:9px;padding:8px 12px;font-weight:800;cursor:pointer}.danger-button:hover{background:#fff1f0}.danger-button:disabled{opacity:.45;cursor:not-allowed}

/* V2.6.6 — estado explícito do áudio */
#sound.audio-disabled{border-color:#b9b9b9;background:#f2f2f2;color:#666}
#sound[aria-pressed="true"]{border-color:#c9921d;background:#fff9e8;color:#9b6900;font-weight:700}

/* V2.8.0 — alertas profissionais e urgência visual */
.trip-card.pickup-alert{
  position:relative;
  z-index:3;
  transform-origin:center;
  animation:urgentCardAttention 3.6s ease-in-out infinite!important;
  will-change:transform,box-shadow,border-color;
}
.trip-card.pickup-alert::after{
  content:"";
  position:absolute;
  inset:-3px;
  border:3px solid rgba(218,28,42,.72);
  border-radius:inherit;
  pointer-events:none;
  animation:urgentBorderWave 1.15s ease-out infinite;
}
.trip-card.pickup-alert .status-bar,
.trip-card.pickup-alert .status-time{
  animation:urgentHeaderPulse 1.15s ease-in-out infinite;
}
@keyframes urgentCardAttention{
  0%,74%,100%{transform:translateX(0);box-shadow:0 0 0 2px rgba(211,31,43,.46),0 0 14px rgba(211,31,43,.20),var(--shadow)}
  77%{transform:translateX(-3px)}
  80%{transform:translateX(3px)}
  83%{transform:translateX(-2px)}
  86%{transform:translateX(2px)}
  89%{transform:translateX(0);box-shadow:0 0 0 5px rgba(211,31,43,.82),0 0 34px rgba(211,31,43,.46),var(--shadow)}
}
@keyframes urgentBorderWave{
  0%{opacity:.95;transform:scale(1)}
  70%,100%{opacity:0;transform:scale(1.018)}
}
@keyframes urgentHeaderPulse{
  0%,100%{filter:none}
  50%{filter:brightness(.92) saturate(1.35)}
}
.background-alert-panel{border:1px solid #ead8ad;border-radius:14px;padding:14px;background:#fffdf7;margin-top:12px}
.background-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}
.background-status-grid>div{border:1px solid #eadfca;border-radius:10px;padding:9px 10px;background:#fff;display:flex;flex-direction:column;gap:2px}
.background-status-grid span{font-size:10px;text-transform:uppercase;color:#806f54;font-weight:700}
.background-status-grid strong{font-size:12px;color:#9b2c24}
.background-status-grid strong.ok{color:#2f8f25}.background-status-grid strong.bad{color:#b42318}
@media(max-width:700px){.background-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.trip-card.pickup-alert,.trip-card.pickup-alert::after,.trip-card.pickup-alert .status-bar,.trip-card.pickup-alert .status-time{animation-duration:2.8s!important}}

/* V2.6.11 — estado inicial sem inferência de aproximação */
.trip-card.awaiting_data{--stage:#a97816;border-color:#e7d3a2}.trip-card.awaiting_data .status-bar{background:linear-gradient(90deg,#fff9e8,#fff 68%)}.trip-card.awaiting_data .mini-map.map-unavailable{background:linear-gradient(135deg,#fffdf7,#f6efe0)}.trip-card.awaiting_data .mini-map.map-unavailable b{color:#89691f}


/* V2.6.13 — popup da corrida real */
.trip-card[data-trip-id]{cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}
.trip-card[data-trip-id]:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(50,42,24,.16)}
.trip-card[data-trip-id]:focus-visible{outline:3px solid rgba(189,139,34,.46);outline-offset:3px}

/* V2.6.16 — PWA unificada Windows e Android */
.pwa-settings{border:1px solid #e3d2ad;border-radius:14px;padding:15px;background:linear-gradient(145deg,#fffdf8,#fff);margin-top:14px}
.pwa-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:13px 0}
.pwa-status-grid>div{border:1px solid #eadfca;border-radius:10px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:3px}
.pwa-status-grid span{font-size:10px;text-transform:uppercase;color:#806f54;font-weight:800;letter-spacing:.04em}
.pwa-status-grid strong{font-size:12px;color:#6d5a36}.pwa-status-grid strong.ok{color:#2f8f25}.pwa-status-grid strong.bad{color:#b42318}.pwa-status-grid strong.warn{color:#a66d00}
.pwa-actions{display:flex;flex-wrap:wrap;gap:8px}.pwa-actions button:disabled{opacity:.5;cursor:not-allowed}
.pwa-update-notice{margin-top:12px;border:1px solid #d5ad54;background:#fff8df;border-radius:10px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}
@media(max-width:700px){.pwa-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pwa-actions button{flex:1 1 100%}}


/* V2.6.28 — estados operacionais consolidados */
.trip-card.cancelled{border-color:#d55a61;background:#fffafa;box-shadow:0 10px 24px rgba(173,49,58,.12)}
.trip-card.cancelled .status-bar{background:#fff0f1;color:#b21f2d;border-bottom-color:#efb8bd}
.trip-card.cancelled .status-time{background:#b72a35;color:#fff;border-color:#b72a35}
.trip-card.cancelled .mini-map{filter:grayscale(.35);opacity:.82}
.trip-card.pickup-alert{border-color:#e32636!important;box-shadow:0 0 0 2px rgba(227,38,54,.65),0 0 24px rgba(227,38,54,.28)!important;animation:pickupAlertPulseRed 1.25s ease-in-out infinite!important}
.trip-card.pickup-alert .status-bar{background:linear-gradient(90deg,#fff0f1,#fff)!important;color:#c61e2d!important}
.trip-card.pickup-alert .status-time{background:#d92534!important;color:#fff!important;border-color:#d92534!important}
@keyframes pickupAlertPulseRed{0%,100%{box-shadow:0 0 0 1px rgba(227,38,54,.45),0 0 10px rgba(227,38,54,.12)}50%{box-shadow:0 0 0 3px rgba(227,38,54,.86),0 0 30px rgba(227,38,54,.34)}}
