:root{--green:#123d35;--green2:#1d5c4f;--sand:#eee5d4;--gold:#b49355;--bg:#f5f6f4;--card:#fff;--text:#17231f;--muted:#6b7772;--line:#e2e7e4;--danger:#a94442;--warning:#9a6b18;--success:#1c6b4f;--sidebar:252px;--radius:16px;--shadow:0 8px 30px rgba(21,45,37,.07)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--green);color:#fff;padding:22px 14px;overflow-y:auto;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 20px}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--sand),#fff);color:var(--green);display:grid;place-items:center;font-weight:800}.brand h1{font-size:17px;line-height:1.1;margin:0}.brand small{opacity:.7}.nav-group{margin:16px 8px 7px;font-size:10px;text-transform:uppercase;letter-spacing:.15em;opacity:.55}.nav-item{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border:0;border-radius:11px;background:transparent;color:#e9f0ed;text-align:left;cursor:pointer;margin:3px 0}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.12);color:#fff}.nav-icon{width:22px;text-align:center}.main{margin-left:var(--sidebar);min-height:100vh}.topbar{height:74px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.topbar h2{margin:0;font-size:21px}.top-actions{display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:50%;background:var(--sand);display:grid;place-items:center;font-weight:700;color:var(--green)}.content{padding:26px;max-width:1600px;margin:auto}.grid{display:grid;gap:16px}.grid.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.pad{padding:20px}.kpi{padding:18px}.kpi-top{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.kpi strong{display:block;font-size:29px;margin-top:9px}.trend{font-size:12px;margin-top:8px;color:var(--success)}.section-head{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px}.section-head h3{margin:0;font-size:17px}.btn{border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:650}.btn.primary{background:var(--green);color:#fff}.btn.secondary{background:#fff;border:1px solid var(--line);color:var(--text)}.btn.gold{background:var(--gold);color:#fff}.btn.danger{background:#f8e9e7;color:var(--danger)}.toolbar{display:flex;gap:10px;flex-wrap:wrap}.input,.select,.textarea{width:100%;border:1px solid #d7deda;border-radius:10px;padding:11px 12px;background:#fff;color:var(--text)}.textarea{min-height:90px;resize:vertical}.filters{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:10px;padding:15px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:15px 16px;border-bottom:1px solid #edf0ee;font-size:14px;white-space:nowrap}.table tr:hover td{background:#fafbf9}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:750}.badge.confirmada,.badge.finalizada,.badge.disponivel,.badge.pago{background:#e3f2eb;color:#176147}.badge.pagamento,.badge.aguardando{background:#fff1d6;color:#8a5f11}.badge.andamento,.badge.caminho{background:#e6edf8;color:#315a90}.badge.cancelada,.badge.atraso{background:#f7e5e3;color:#99413b}.split{display:grid;grid-template-columns:1.55fr 1fr;gap:18px}.timeline{display:flex;gap:0;overflow:auto;padding:16px}.timeline-step{min-width:110px;position:relative;text-align:center;font-size:11px;color:var(--muted)}.timeline-step:before{content:"";display:block;width:12px;height:12px;border-radius:50%;background:#d8dfdb;margin:0 auto 9px;position:relative;z-index:2}.timeline-step:after{content:"";height:2px;background:#d8dfdb;position:absolute;top:5px;left:50%;width:100%;z-index:1}.timeline-step:last-child:after{display:none}.timeline-step.done:before,.timeline-step.done:after{background:var(--green2)}.operational-map-shell{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}.live-map{height:360px;width:100%;background:#e8eeeb;position:relative}.operational-map-shell.large .live-map{height:520px}.map-fallback,.map-unavailable{height:100%;display:grid;place-items:center;text-align:center;color:var(--muted);padding:24px}.map-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:11px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.map-legend span{display:flex;align-items:center;gap:6px}.map-note{margin-left:auto}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-dot.property{background:var(--gold)}.legend-dot.vehicle{background:var(--green)}.cm-map-icon{background:transparent;border:0}.property-map-pin{width:38px;height:38px;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:var(--gold);color:#fff;border:3px solid #fff;box-shadow:0 7px 18px rgba(33,53,46,.3);display:grid;place-items:center;font-weight:800}.property-map-pin span{display:block;transform:rotate(45deg);line-height:32px;text-align:center}.property-map-pin::after{content:""}.vehicle-map-pin{width:36px;height:36px;border-radius:50%;background:var(--green);color:#fff;border:3px solid #fff;box-shadow:0 7px 18px rgba(33,53,46,.35);display:grid;place-items:center;font-weight:800}.vehicle-map-pin.emservicopago{background:#315a90}.vehicle-map-pin.plantaolocal{background:#176147}.location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.location-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.location-card h3{margin:4px 0}.location-card p{color:var(--muted);margin:0 0 10px}.map-link{white-space:nowrap;text-decoration:none}.leaflet-popup-content a{color:var(--green);font-weight:700}.leaflet-control-attribution{font-size:9px!important}.form-steps{display:flex;gap:8px;overflow:auto;padding:14px}.step-pill{white-space:nowrap;padding:8px 11px;border-radius:999px;background:#eef1ef;color:var(--muted);font-size:12px}.step-pill.active{background:var(--green);color:#fff}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.field.full{grid-column:1/-1}.vehicle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.vehicle-card{border:1px solid var(--line);border-radius:14px;padding:15px;cursor:pointer}.vehicle-card.selected{border:2px solid var(--green);background:#f3f8f6}.vehicle-art{height:80px;border-radius:10px;background:linear-gradient(135deg,#eef2f0,var(--sand));display:grid;place-items:center;font-size:38px;margin-bottom:10px}.money{font-weight:750}.empty{padding:50px;text-align:center;color:var(--muted)}.list-item{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}.list-item:last-child{border:0}.operator-rank{width:34px;height:34px;border-radius:10px;background:var(--sand);display:grid;place-items:center;font-weight:800;color:var(--green)}.mobilebar{display:none}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-visual{background:linear-gradient(145deg,#0d3029,#1d5c4f);color:#fff;padding:70px;display:flex;flex-direction:column;justify-content:space-between}.login-visual h1{font-size:52px;max-width:620px;margin:0}.login-box{display:grid;place-items:center;padding:30px}.login-card{width:min(430px,100%);padding:34px}.login-card h2{font-size:28px;margin:0 0 8px}.login-card p{color:var(--muted);margin-bottom:24px}.toast{position:fixed;right:22px;bottom:22px;background:#153e35;color:#fff;padding:14px 18px;border-radius:12px;box-shadow:var(--shadow);z-index:50}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.info-box{background:#f7f8f7;border-radius:12px;padding:14px}.info-box small{color:var(--muted);display:block;margin-bottom:5px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);padding:0 16px}.tab{padding:13px 12px;border:0;background:transparent;cursor:pointer;color:var(--muted)}.tab.active{color:var(--green);border-bottom:2px solid var(--green);font-weight:700}
@media(max-width:1100px){.grid.kpis{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr 1fr}.vehicle-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){:root{--sidebar:0}.sidebar{display:none}.main{margin-left:0;padding-bottom:68px}.topbar{height:64px;padding:0 16px}.content{padding:16px}.grid.kpis{grid-template-columns:1fr 1fr;gap:10px}.kpi{padding:14px}.kpi strong{font-size:23px}.filters{grid-template-columns:1fr}.form-grid,.detail-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.vehicle-grid{grid-template-columns:1fr}.mobilebar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:40}.mobilebar button{border:0;background:#fff;padding:10px 4px;font-size:10px;color:var(--muted)}.mobilebar button.active{color:var(--green);font-weight:700}.login{grid-template-columns:1fr}.login-visual{display:none}.table td,.table th{padding:12px}.top-actions span{display:none}}

.notice{background:#eef5f2;border:1px solid #cfe0d9;border-radius:12px;padding:13px 15px;margin-bottom:16px;color:#274f43}.fleet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.fleet-card{min-width:0}.fleet-title{display:flex;align-items:center;gap:10px;justify-content:space-between}.fleet-title>div:nth-child(2){flex:1}.fleet-title small{display:block;color:var(--muted);margin-top:3px}.vehicle-symbol{width:42px;height:42px;border-radius:12px;background:var(--sand);display:grid;place-items:center;font-weight:800;color:var(--green)}.price-summary{margin-top:16px;display:flex;align-items:center;justify-content:space-between}.price-summary h2{margin:5px 0}.map-label{position:absolute;background:#fff;border:1px solid var(--line);padding:6px 9px;border-radius:8px;font-size:11px;z-index:4}.base1{left:12%;bottom:15%}.base2{right:8%;top:12%}.modal-backdrop{position:fixed;inset:0;background:rgba(8,24,20,.58);display:grid;place-items:center;padding:20px;z-index:100}.modal{width:min(720px,100%);padding:22px;max-height:90vh;overflow:auto}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}code{font-size:12px;background:#f2f4f3;padding:4px 7px;border-radius:6px}.badge.normal{background:#e3f2eb;color:#176147}.badge.atencao,.badge.configurar,.badge.aguardandoconfirmacao,.badge.previsaoconfirmada,.badge.nafila,.badge.aguardandopagamento,.badge.pagamentoemanalise{background:#fff1d6;color:#8a5f11}.badge.plantaolocal,.badge.veiculoacaminho,.badge.confirmado,.badge.confirmada{background:#e3f2eb;color:#176147}.badge.emservicopago,.badge.foradoturno,.badge.pendente{background:#e6edf8;color:#315a90}.table tr[data-res]{cursor:pointer}@media(max-width:1100px){.fleet-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.fleet-grid{grid-template-columns:1fr}.price-summary{align-items:flex-start;gap:14px;flex-direction:column}}
@media(max-width:760px){.operational-map-shell.large .live-map{height:400px}.map-note{margin-left:0;width:100%}.location-grid{grid-template-columns:1fr}.location-card{align-items:flex-start;flex-direction:column}.map-link{width:100%;text-align:center}}
.connection-line{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;font-size:12px;color:var(--muted)}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.status-dot.online{background:var(--success);box-shadow:0 0 0 4px rgba(28,107,79,.12)}.status-dot.local{background:var(--warning);box-shadow:0 0 0 4px rgba(154,107,24,.12)}.sync-button,.logout-button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 10px;color:var(--muted);cursor:pointer}.sync-button:hover,.logout-button:hover{color:var(--green);border-color:#b9c8c2}.loading-bar{background:#e6edf8;color:#315a90;border:1px solid #cfdbeb;border-radius:10px;padding:10px 13px;margin-bottom:14px;font-size:13px}.modal-error{color:var(--danger);font-size:13px;margin-top:12px;min-height:18px}.btn:disabled{opacity:.55;cursor:not-allowed}.setup-note{margin-top:18px}.setup-note p{color:var(--muted)}.badge.conectado,.badge.ativo{background:#e3f2eb;color:#176147}.badge.modolocal,.badge.parcial{background:#fff1d6;color:#8a5f11}
@media(max-width:760px){.sync-button span,.logout-button{display:none}.sync-button{padding:8px}.top-actions{gap:6px}}

/* Base Real V7 — cockpit e despacho */
.date-controls{display:flex;align-items:end;gap:12px;padding:13px 15px;margin-bottom:16px;flex-wrap:wrap}.date-controls label{display:grid;gap:5px;font-size:12px;font-weight:700;color:var(--muted)}.date-controls input{border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#fff;color:var(--text)}.dispatch-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:8px 0 16px}.dispatch-actions h3{margin:0 0 5px}.dispatch-actions p{margin:0;color:var(--muted)}.dispatch-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.dispatch-summary strong{display:block;font-size:20px;margin:8px 0}.dispatch-summary p{margin:0;color:var(--muted);font-size:12px}.conflict-panel{border:1px solid #e6b8b3;background:#fbefed;color:#7f3731;border-radius:13px;padding:14px 16px;margin:14px 0}.conflict-panel>b{display:block;margin-bottom:8px}.conflict-panel>div{display:grid;grid-template-columns:130px 1fr;gap:10px;padding:8px 0;border-top:1px solid rgba(127,55,49,.14)}.conflict-panel span{font-weight:750}.operation-list{padding-top:4px;padding-bottom:4px}.operation-row{display:grid;grid-template-columns:72px minmax(0,1.5fr) minmax(160px,.8fr) auto;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.operation-row:last-child{border-bottom:0}.operation-row.conflict{background:#fff7f5;margin:0 -12px;padding-left:12px;padding-right:12px;border-radius:10px}.operation-time{display:grid}.operation-time b{font-size:18px}.operation-time span,.operation-main small,.operation-resource small{color:var(--muted);font-size:12px}.operation-main,.operation-resource{display:grid;gap:3px;min-width:0}.operation-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alert-list{padding-top:5px;padding-bottom:5px}.alert-row{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:11px;align-items:center;border:0;background:transparent;text-align:left;padding:12px 0;border-bottom:1px solid var(--line);color:var(--text);cursor:pointer}.alert-row:last-child{border-bottom:0}.alert-row small{display:block;color:var(--muted);margin-top:3px}.alert-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#eef4f1;color:var(--green);font-weight:800}.alert-row.critico .alert-icon{background:#f8e9e7;color:var(--danger)}.alert-row.atencao .alert-icon,.alert-row.configurar .alert-icon{background:#fff1d6;color:var(--warning)}.badge.critico,.badge.conflito,.badge.comconflitos{background:#f7e5e3;color:#99413b}.badge.atencao,.badge.configurar,.badge.pendente,.badge.parcial{background:#fff1d6;color:#8a5f11}.badge.manual{background:#eee8f5;color:#63458a}.badge.automatica,.badge.atribuida,.badge.concluida,.badge.normal{background:#e3f2eb;color:#176147}.badge.reservado{background:#e6edf8;color:#315a90}.agenda-timeline{padding:18px 18px 24px;overflow:hidden}.agenda-hours{height:24px;position:relative;margin-left:2px}.agenda-hours span{position:absolute;transform:translateX(-50%);font-size:10px;color:var(--muted)}.agenda-track{height:90px;position:relative;border-radius:10px;background:repeating-linear-gradient(to right,#f8faf9 0,#f8faf9 calc(7.142% - 1px),#dfe5e2 calc(7.142% - 1px),#dfe5e2 7.142%);overflow:hidden}.agenda-bar{position:absolute;top:18px;height:50px;border-radius:10px;background:var(--green);color:#fff;padding:8px 10px;font-size:11px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.agenda-bar.conflict{background:var(--danger)}.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.mission-card h3{margin:3px 0}.mission-card p{font-size:13px}.mission-capacity{height:10px;border-radius:999px;background:#e9edeb;overflow:hidden;margin-top:14px}.mission-capacity span{height:100%;display:block;background:var(--green)}.mission-segments{display:grid;gap:5px;margin-top:12px}.mission-segments span{font-size:11px;color:var(--muted);background:#f5f7f6;border-radius:7px;padding:6px 8px}.reservation-filters{grid-template-columns:minmax(260px,2fr) minmax(180px,1fr);margin-bottom:12px}.badge.em andamento,.badge.emandamento{background:#e6edf8;color:#315a90}.vehicle-map-pin.reservado{background:#315a90}.vehicle-map-pin.disponivel{background:#176147}
@media(max-width:1100px){.dispatch-summary{grid-template-columns:repeat(2,1fr)}.mission-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.date-controls{align-items:stretch}.date-controls label{width:calc(50% - 6px)}.date-controls .btn{width:100%}.dispatch-actions{align-items:flex-start;flex-direction:column}.dispatch-summary{grid-template-columns:1fr 1fr}.operation-row{grid-template-columns:58px minmax(0,1fr) auto}.operation-resource{grid-column:2/4}.mission-grid{grid-template-columns:1fr}.reservation-filters{grid-template-columns:1fr}.conflict-panel>div{grid-template-columns:1fr}.agenda-track{height:110px}.agenda-bar{top:25px;height:58px}.alert-row{grid-template-columns:30px minmax(0,1fr)}.alert-row .badge{grid-column:2}.operation-main b{white-space:normal}}


/* V8 — execução operacional e PWA do motorista */
.btn.mini{padding:7px 9px;font-size:11px;white-space:nowrap}.operation-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.execution-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.execution-card{display:grid;gap:15px}.execution-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.execution-head h3{margin:4px 0}.execution-head p{margin:0;color:var(--muted)}.execution-resources{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.execution-resources span{background:#f6f8f7;border-radius:11px;padding:11px}.execution-resources small{display:block;color:var(--muted);margin-bottom:4px}.compact-flow{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.compact-flow span{font-size:10px;text-align:center;padding:8px 5px;border-radius:8px;background:#eef1ef;color:var(--muted)}.compact-flow span.done{background:#dfeee8;color:var(--green);font-weight:750}.execution-actions{display:flex;gap:8px;flex-wrap:wrap}.operation-main-action{min-width:160px}.completed-label{display:inline-flex;align-items:center;color:var(--success);font-weight:750;padding:8px}.last-event{border-top:1px solid var(--line);padding-top:12px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.last-event span,.last-event small{font-size:11px;color:var(--muted)}.driver-app-shell{max-width:820px;margin:auto}.driver-app-top{display:flex;justify-content:space-between;gap:18px;align-items:center}.driver-app-top label{min-width:260px}.driver-app-top label span{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.driver-next{margin:16px 0;background:linear-gradient(135deg,#f4f8f6,#eee5d4)}.driver-next h2{margin:6px 0}.driver-mode{grid-template-columns:1fr}.driver-mode .operation-main-action{width:100%;font-size:18px;padding:15px}.event-log{display:grid;gap:0}.event-row{display:grid;grid-template-columns:16px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.event-row:last-child{border-bottom:0}.event-dot{width:10px;height:10px;border-radius:50%;background:var(--green);margin-top:5px}.event-row small{display:block;color:var(--muted);margin-top:3px}.event-row p{margin:5px 0 0;color:var(--muted)}.occurrence-list{display:grid;gap:10px}.occurrence-row{padding:12px;border:1px solid var(--line);border-radius:11px}.occurrence-row>div{display:flex;align-items:center;gap:8px}.occurrence-row p{margin:8px 0}.occurrence-row small{color:var(--muted)}.mission-action{width:100%;margin-top:14px}.badge.motoristaacaminho,.badge.motoristachegou,.badge.passageiroembarcado,.badge.emviagem,.badge.chegando,.badge.embarcado{background:#e6edf8;color:#315a90}.badge.finalizada{background:#e3f2eb;color:#176147}.badge.noshow{background:#f7e5e3;color:#99413b}.badge.informativa{background:#eef1ef;color:#4d5c56}.badge.critica{background:#f7e5e3;color:#99413b}
@media(max-width:1100px){.execution-grid{grid-template-columns:1fr}.compact-flow{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.driver-app-top{align-items:stretch;flex-direction:column}.driver-app-top label{min-width:0;width:100%}.execution-resources{grid-template-columns:1fr}.compact-flow{grid-template-columns:repeat(2,1fr)}.execution-actions .btn{width:100%}.last-event{grid-template-columns:1fr}.operation-row-actions{grid-column:2/4;justify-content:flex-start}}

/* V9 — portais públicos do hóspede e acompanhamento */
.public-page{min-height:100vh;background:linear-gradient(180deg,#eef3f0 0,#f7f7f4 360px);color:var(--text)}
.public-topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1120px)/2));background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;backdrop-filter:blur(12px)}
.public-brand{display:flex;align-items:center;gap:11px}.public-brand b,.public-brand small{display:block}.public-brand small{color:var(--muted);margin-top:2px}.public-admin-link{font-size:12px;color:var(--green);text-decoration:none;font-weight:750}
.public-main{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:36px 0 64px}.public-hero{background:var(--green);color:#fff;border-radius:24px;padding:34px;margin-bottom:18px;position:relative;overflow:hidden}.public-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.06);right:-70px;top:-130px}.public-hero h1{font-size:38px;margin:7px 0 8px;position:relative;z-index:1}.public-hero p{margin:0;color:rgba(255,255,255,.78);font-size:17px;position:relative;z-index:1}.public-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#dac69b;font-weight:800}.public-stay-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px;position:relative;z-index:1}.public-stay-meta>span:not(.badge){background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:7px 10px;font-size:12px}
.public-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow);margin-bottom:18px}.public-card h2{margin:0}.public-now{border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#f7f9f8;color:var(--green);font-weight:750}.public-submit{width:100%;margin-top:18px;padding:14px}.public-confirm-card{margin-top:18px;padding:18px;border-radius:16px;background:#eef5f2;border:1px solid #cfe0d9}.public-confirm-card small{display:block;color:var(--muted)}.public-confirm-card strong{display:block;font-size:34px;margin:6px 0}.public-confirm-card p{margin:0 0 12px}.public-warning{background:#fff1d6;color:#7d570f;border-radius:10px;padding:10px 12px;font-size:12px;margin-bottom:12px}.public-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.public-request-list{display:grid;gap:10px}.public-request{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px 18px}.public-request>div{display:grid;gap:4px}.public-request small,.public-request span{color:var(--muted);font-size:12px}.public-empty,.public-error{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;text-align:center;color:var(--muted)}.public-error h2,.public-error h3{color:var(--text);margin-top:0}
.tracking-hero h1{font-size:32px}.tracking-layout{display:grid;grid-template-columns:1.55fr .85fr;gap:18px}.tracking-live-map{height:440px;border-radius:15px;background:#e8eeeb;overflow:hidden}.tracking-map-note{font-size:11px;color:var(--muted);margin-top:10px}.tracking-summary{margin:0}.tracking-eta{background:#eef5f2;border-radius:14px;padding:17px;margin-bottom:8px}.tracking-eta small{display:block;color:var(--muted)}.tracking-eta strong{font-size:32px;display:block;margin-top:4px}.tracking-vehicle-pin{width:40px;height:40px;border-radius:50%;background:var(--green);border:4px solid #fff;color:#fff;box-shadow:0 7px 22px rgba(20,60,52,.35);display:grid;place-items:center;font-size:17px}.public-timeline{display:grid;grid-template-columns:repeat(6,1fr);gap:0;overflow:auto;padding:12px 0}.public-timeline-step{position:relative;min-width:118px;text-align:center;color:var(--muted);font-size:11px}.public-timeline-step span{display:block;width:14px;height:14px;background:#dce3df;border-radius:50%;margin:0 auto 10px;position:relative;z-index:2}.public-timeline-step:after{content:"";position:absolute;top:6px;left:50%;width:100%;height:2px;background:#dce3df}.public-timeline-step:last-child:after{display:none}.public-timeline-step.done span,.public-timeline-step.done:after{background:var(--green)}.public-timeline-step.done b{color:var(--green)}
.badge.aguardandoaprovacaodacentral{background:#fff1d6;color:#8a5f11}
@media(max-width:840px){.tracking-layout{grid-template-columns:1fr}.tracking-live-map{height:360px}.public-hero{padding:26px}.public-hero h1{font-size:31px}}
@media(max-width:600px){.public-topbar{padding:0 16px}.public-main{width:min(100% - 22px,1120px);padding-top:18px}.public-hero{border-radius:18px;padding:22px}.public-hero h1{font-size:28px}.public-card{padding:18px;border-radius:16px}.public-request{align-items:flex-start;flex-direction:column}.public-actions .btn{width:100%}.tracking-live-map{height:310px}.public-admin-link{display:none}}


/* V10 — mapa operacional e acompanhamento premium */
.operational-map-shell{border-radius:18px;box-shadow:none}.operational-map-shell.large .live-map{height:660px}.live-map{background:#edf1ef}.map-legend{background:#fff;min-height:48px}.legend-vehicle{width:12px;height:12px;border-radius:4px;display:inline-block;box-shadow:0 0 0 2px #fff,0 0 0 3px #d7dfdb}.legend-status{width:12px;height:12px;border-radius:50%;display:inline-block;background:#9aa49f}.legend-status.stale{border:2px solid #7f8a85;background:transparent}.cm-map-icon{background:transparent!important;border:0!important}.vehicle-marker-host{transition:transform 1.8s linear}.vehicle-top-pin{width:48px;height:60px;display:grid;place-items:center;position:relative;filter:drop-shadow(0 7px 7px rgba(18,45,38,.25));transition:opacity .2s}.vehicle-top-pin.selected:after{content:"";position:absolute;inset:-5px;border:2px solid var(--vehicle-color);border-radius:50%;animation:mapPulse 1.8s ease-out infinite}.vehicle-bearing{width:32px;height:54px;transform-origin:50% 50%;transition:transform 1.5s linear}.vehicle-bearing svg{width:100%;height:100%;display:block}.vehicle-top-pin.stale{opacity:.55}.vehicle-top-pin.stale .vehicle-bearing{filter:grayscale(.35)}.vehicle-top-pin.no-signal{opacity:.62;filter:grayscale(1) drop-shadow(0 5px 5px rgba(18,45,38,.2))}.vehicle-top-pin.stopped .vehicle-state-dot{display:block;background:#fff;border:2px solid var(--vehicle-color)}.vehicle-state-dot{position:absolute;right:1px;bottom:4px;width:10px;height:10px;border-radius:50%;background:#1d9b67;border:2px solid #fff}.vehicle-top-pin.no-signal .vehicle-state-dot{background:#747f7a}.vehicle-top-pin.stale .vehicle-state-dot{background:#c1892c}.vehicle-alert{position:absolute;right:-2px;top:-2px;width:18px;height:18px;border-radius:50%;background:#b83e36;color:#fff;border:2px solid #fff;display:grid;place-items:center;font-size:11px;font-weight:900}.vehicle-map-tooltip{border:0!important;border-radius:10px!important;box-shadow:0 8px 25px rgba(25,49,41,.15)!important;color:#183027!important;font-weight:700!important}.operation-point-pin{width:34px;height:40px;border-radius:17px 17px 17px 5px;transform:rotate(-45deg);background:var(--point-color);border:3px solid #fff;box-shadow:0 6px 16px rgba(28,52,44,.23);display:grid;place-items:center;color:#fff}.operation-point-pin span{transform:rotate(45deg);font-weight:800}.operation-point-pin.highlighted{box-shadow:0 0 0 4px rgba(180,147,85,.2),0 6px 16px rgba(28,52,44,.25)}@keyframes mapPulse{0%{transform:scale(.82);opacity:.75}100%{transform:scale(1.45);opacity:0}}
.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;margin-bottom:14px;box-shadow:none}.map-filter-buttons{display:flex;gap:7px;flex-wrap:wrap}.map-filter{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;color:var(--muted);cursor:pointer;font-size:12px}.map-filter.active{background:var(--green);border-color:var(--green);color:#fff}.map-toolbar-summary{display:grid;text-align:right;font-size:12px}.map-toolbar-summary span{color:var(--muted)}.operations-map-layout{display:grid;grid-template-columns:290px minmax(480px,1fr) 310px;gap:14px;align-items:stretch}.map-side-list,.map-detail-panel{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;min-height:708px}.map-side-title{padding:18px;border-bottom:1px solid var(--line)}.map-side-title h3{margin:0 0 4px}.map-side-title small{color:var(--muted)}.map-transfer-list{display:grid}.map-transfer-item{border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:11px;padding:15px;cursor:pointer}.map-transfer-item:hover,.map-transfer-item.selected{background:#f1f6f3}.map-transfer-item>i{width:10px;height:42px;border-radius:8px}.map-transfer-item div{display:grid;gap:3px;min-width:0}.map-transfer-item small,.map-transfer-item span,.map-transfer-item em{font-size:11px;color:var(--muted);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-transfer-item b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-transfer-item strong{color:var(--danger);font-size:11px}.map-main-area{min-width:0}.map-detail-panel{padding:18px}.map-detail-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:15px}.map-detail-head small{color:var(--muted)}.map-detail-head h3{margin:3px 0 0}.map-detail-head>i{width:20px;height:20px;border-radius:6px}.map-detail-status{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 0}.signal-label{font-size:10px;font-weight:750;border-radius:999px;padding:5px 8px;background:#e6f2ec;color:#176147}.signal-label.stale{background:#fff1d6;color:#8a5f11}.signal-label.offline{background:#ecefed;color:#59635f}.map-detail-grid{display:grid;grid-template-columns:1fr;gap:0}.map-detail-grid>div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #edf0ee}.map-detail-grid small{color:var(--muted)}.map-detail-grid b{text-align:right;font-size:12px}.map-detail-note{margin-top:14px;padding:12px;border-radius:11px;background:#f5f7f6}.map-detail-note small{color:var(--muted)}.map-detail-note p{margin:5px 0 0;font-size:12px}.operational-points-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.operational-point-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;box-shadow:none}.point-card-icon{width:42px}.operational-point-card>div:nth-child(2){display:grid;gap:3px}.operational-point-card small,.operational-point-card span{font-size:11px;color:var(--muted)}.operational-point-card a{font-size:11px;color:var(--green);font-weight:750;text-decoration:none}.map-fleet-card .vehicle-mini-car{width:44px;height:55px;overflow:visible}.vehicle-mini-car .vehicle-top-pin{transform:scale(.7);transform-origin:left top}.vehicle-map-identity{display:flex;align-items:center;gap:8px;background:#f5f7f6;border-radius:10px;padding:10px;margin:12px 0}.vehicle-map-identity i{width:14px;height:14px;border-radius:4px}.vehicle-map-identity span{margin-left:auto;color:var(--muted);font-size:11px}.vehicle-map-settings{width:100%;margin-top:12px}.color-input{height:44px;padding:5px}
.tracking-public-page{background:#edf2ef}.tracking-public-main{width:min(1120px,100%);margin:0 auto;padding:20px}.tracking-map-stage{height:calc(100vh - 112px);min-height:620px;position:relative;border-radius:24px;overflow:hidden;background:#dfe7e3}.tracking-map-stage .tracking-live-map{height:100%;border-radius:0}.tracking-floating-card{position:absolute;left:20px;right:20px;bottom:20px;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border:1px solid rgba(222,230,226,.9);border-radius:20px;padding:20px;box-shadow:0 18px 50px rgba(17,48,39,.2);display:grid;grid-template-columns:1.05fr 1.35fr 1.1fr;gap:20px;align-items:center}.tracking-status-line{display:flex;justify-content:space-between;align-items:flex-start}.tracking-status-line h1{margin:4px 0;font-size:36px}.tracking-status-line p{margin:0;color:var(--muted);font-size:12px}.tracking-color{width:18px;height:18px;border-radius:6px}.tracking-route-summary{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}.tracking-route-summary div{display:grid;gap:3px}.tracking-route-summary small,.tracking-driver-row small{color:var(--muted);font-size:11px}.tracking-route-summary b{font-size:12px}.tracking-driver-row{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center}.tracking-avatar{width:42px;height:42px;border-radius:50%;background:var(--sand);display:grid;place-items:center;color:var(--green);font-weight:800}.tracking-driver-row>div:last-child{display:grid;gap:2px}.tracking-driver-row span{font-size:11px;color:var(--muted)}.tracking-last-update{grid-column:1/-1;font-size:10px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px}.tracking-progress-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;margin-top:14px}.tracking-progress-panel .public-timeline{padding-bottom:0}
@media(max-width:1280px){.operations-map-layout{grid-template-columns:260px minmax(420px,1fr)}.map-detail-panel{grid-column:1/-1;min-height:0}.map-detail-grid{grid-template-columns:repeat(2,1fr);column-gap:20px}.operational-points-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.operations-map-layout{grid-template-columns:1fr}.map-side-list,.map-detail-panel{min-height:0}.map-side-list{order:2}.map-main-area{order:1}.map-detail-panel{order:3}.operational-map-shell.large .live-map{height:520px}.tracking-floating-card{grid-template-columns:1fr 1fr}.tracking-driver-row{grid-column:1/-1}.operational-points-grid{grid-template-columns:1fr}.map-toolbar{align-items:flex-start;flex-direction:column}.map-toolbar-summary{text-align:left}}
@media(max-width:620px){.map-filter-buttons{flex-wrap:nowrap;overflow:auto;width:100%;padding-bottom:4px}.map-filter{white-space:nowrap}.operational-map-shell.large .live-map{height:430px}.map-detail-grid{grid-template-columns:1fr}.tracking-public-main{padding:0}.tracking-map-stage{height:calc(100vh - 72px);min-height:640px;border-radius:0}.tracking-floating-card{left:10px;right:10px;bottom:10px;grid-template-columns:1fr;padding:16px;gap:12px}.tracking-driver-row{grid-column:auto}.tracking-status-line h1{font-size:31px}.tracking-progress-panel{margin:10px;border-radius:16px}.map-note{width:100%;margin-left:0}}


/* V11 — acompanhamento do transfer gratuito */
.guest-shuttle-public-page{background:#edf2ef}.guest-public-main{width:min(1120px,100%)}.guest-tracking-section{margin:18px 0}.guest-free-map-stage{height:620px;position:relative;border-radius:24px;overflow:hidden;background:#dfe7e3}.guest-free-map-stage .tracking-live-map{height:100%;border-radius:0}.guest-free-floating-card{grid-template-columns:1.05fr 1.35fr 1.1fr}.guest-free-progress{margin-top:12px}.guest-new-request-card{margin-top:18px}.public-request.selected{border-color:#b8cec5;background:#f0f6f3}.public-request-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.free-public-timeline{grid-template-columns:repeat(6,1fr)}
@media(max-width:900px){.guest-free-floating-card{grid-template-columns:1fr 1fr}.guest-free-floating-card .tracking-driver-row{grid-column:1/-1}}
@media(max-width:620px){.guest-public-main{width:100%;padding:0}.guest-public-main>.public-hero,.guest-public-main>.public-card,.guest-public-main>section:not(.guest-tracking-section){margin-left:11px;margin-right:11px}.guest-free-map-stage{height:calc(100vh - 72px);min-height:640px;border-radius:0}.guest-tracking-section{margin-top:0}.guest-free-floating-card{grid-template-columns:1fr;left:10px;right:10px;bottom:10px;padding:16px;gap:12px}.guest-free-floating-card .tracking-driver-row{grid-column:auto}.guest-free-progress{margin:10px}.public-request-actions{width:100%;justify-content:space-between}.public-request-actions .btn{width:auto}}


/* V12 — GPS real pelo navegador do motorista */
.driver-gps-panel{margin:16px 0;border-color:#cbdcd4;box-shadow:none}.driver-gps-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.driver-gps-head h3{margin:4px 0 3px}.driver-gps-head p{margin:0;color:var(--muted);font-size:12px}.gps-live-status{border-radius:999px;padding:7px 11px;background:#ecefed;color:#59635f;font-size:11px;font-weight:800;white-space:nowrap}.gps-live-status[data-state="active"]{background:#e1f3e9;color:#176147}.gps-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.gps-health-grid>div{display:grid;gap:4px;background:#f5f7f6;border-radius:12px;padding:12px}.gps-health-grid small,.gps-health-grid span{font-size:10px;color:var(--muted)}.gps-health-grid b{font-size:13px}.driver-gps-actions{display:flex;gap:8px;flex-wrap:wrap}.driver-gps-actions .btn:disabled{opacity:.45;cursor:not-allowed}.driver-gps-note{margin:13px 0 0;color:var(--muted);font-size:11px}.gps-error{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#f7e5e3;color:#99413b;font-size:12px}.gps-error[hidden]{display:none}.gps-map-pulse{animation:gpsLivePulse 1.4s ease-out infinite}@keyframes gpsLivePulse{0%{box-shadow:0 0 0 0 rgba(29,92,79,.35)}100%{box-shadow:0 0 0 14px rgba(29,92,79,0)}}
@media(max-width:900px){.gps-health-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.driver-gps-head{display:grid}.gps-health-grid{grid-template-columns:1fr 1fr}.driver-gps-actions{display:grid;grid-template-columns:1fr 1fr}.driver-gps-actions .btn{width:100%}}

/* V13 — correção de formatação do cockpit */
.fleet-card .list-item{align-items:flex-start;gap:12px}
.fleet-card .list-item>span{flex:0 0 44%;min-width:0}
.fleet-card .list-item>b{min-width:0;flex:1;text-align:right;line-height:1.25;overflow-wrap:anywhere}

.dashboard-operation-list .operation-row{
  grid-template-columns:64px minmax(0,1fr) max-content;
  grid-template-areas:
    "time main actions"
    "time resource actions";
  column-gap:12px;
  row-gap:5px;
  align-items:start;
  min-width:0;
}
.dashboard-operation-list .operation-time{grid-area:time;align-content:start}
.dashboard-operation-list .operation-main{grid-area:main;min-width:0}
.dashboard-operation-list .operation-main b{
  white-space:normal;
  line-height:1.25;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.dashboard-operation-list .operation-main small{
  display:block;
  margin-top:3px;
  white-space:normal;
  line-height:1.25;
}
.dashboard-operation-list .operation-resource{
  grid-area:resource;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:3px 8px;
  min-width:0;
}
.dashboard-operation-list .operation-resource b{font-size:13px;line-height:1.2}
.dashboard-operation-list .operation-resource small{line-height:1.2}
.dashboard-operation-list .operation-resource small::before{content:"• ";color:var(--muted)}
.dashboard-operation-list .operation-row-actions{
  grid-area:actions;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:flex-start;
  gap:7px;
  flex-wrap:nowrap;
  min-width:104px;
}
.dashboard-operation-list .operation-row-actions .badge,
.dashboard-operation-list .operation-row-actions .btn{white-space:nowrap}

@media(max-width:620px){
  .dashboard-operation-list .operation-row{
    grid-template-columns:56px minmax(0,1fr);
    grid-template-areas:
      "time main"
      "time resource"
      "actions actions";
  }
  .dashboard-operation-list .operation-row-actions{
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    min-width:0;
    padding-top:7px;
  }
}


/* V14 — saúde operacional e alertas automáticos */
.operational-health-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:14px 0 18px}.operational-health-strip>div{display:grid;margin-right:auto}.operational-health-strip small{color:var(--muted)}.health-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:750;background:#f3f5f4;color:#50605a}.health-chip i{width:8px;height:8px;border-radius:50%;background:#7d8b85}.health-chip.normal{background:#e6f3ec;color:#176147}.health-chip.normal i{background:#27906a}.health-chip.attention{background:#fff3d9;color:#8a5f11}.health-chip.attention i{background:#d49a2f}.health-chip.critical{background:#fae8e6;color:#9b3c35}.health-chip.critical i{background:#bf463e}.health-chip.offline{background:#ecefed;color:#53605a}.health-chip.offline i{background:#66716c}.operation-health{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:750;white-space:nowrap}.operation-health.normal{background:#e6f3ec;color:#176147}.operation-health.attention{background:#fff3d9;color:#8a5f11}.operation-health.critical{background:#fae8e6;color:#9b3c35}.vehicle-alert.attention{background:#d28d20}.vehicle-alert.critical{background:#b83e36}.map-list-alert{align-self:center;font-size:10px!important;border-radius:999px;padding:5px 7px;white-space:nowrap}.map-list-alert.attention{background:#fff3d9;color:#8a5f11!important}.map-list-alert.critical{background:#fae8e6;color:#9b3c35!important}.map-detail-status{flex-wrap:wrap}.delay-label{font-size:10px;font-weight:750;border-radius:999px;padding:5px 8px}.delay-label.ontime{background:#e6f3ec;color:#176147}.delay-label.attention{background:#fff3d9;color:#8a5f11}.delay-label.critical{background:#fae8e6;color:#9b3c35}.map-health-issues{display:grid;gap:8px;margin:12px 0}.map-health-issue{display:grid;gap:2px;border-left:3px solid #8b9791;background:#f5f7f6;border-radius:8px;padding:9px 10px}.map-health-issue b{font-size:12px}.map-health-issue span{font-size:11px;color:var(--muted)}.map-health-issue.attention{border-color:#d49a2f;background:#fffaf0}.map-health-issue.critical{border-color:#bf463e;background:#fff5f4}.alert-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;box-shadow:none}.alert-settings-grid .btn{align-self:end}.alert-row{width:100%;border:0;background:transparent;text-align:left;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer}.alert-row:last-child{border-bottom:0}.alert-row small{display:block;color:var(--muted);margin-top:2px}.alert-row.critico .alert-icon{background:#fae8e6;color:#9b3c35}.alert-row.atencao .alert-icon{background:#fff3d9;color:#8a5f11}.alert-icon{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#e6f3ec;color:#176147;font-weight:900}
@media(max-width:900px){.alert-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.operational-health-strip>div{width:100%;margin-bottom:3px}.health-chip{flex:1;justify-content:center}.alert-settings-grid{grid-template-columns:1fr}.operation-health{white-space:normal;text-align:center}.map-list-alert{grid-column:2/-1;justify-self:start}}

/* V15 — histórico e reprodução das viagens */
.history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;margin-bottom:16px}.history-toolbar>div:last-child{display:grid;text-align:right}.history-toolbar span{font-size:11px;color:var(--muted)}.history-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}.history-side-list{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;position:sticky;top:92px}.history-operation-list{display:grid;max-height:760px;overflow:auto}.history-operation-item{width:100%;border:0;border-top:1px solid var(--line);background:#fff;text-align:left;padding:13px;display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:10px;align-items:start;cursor:pointer;color:var(--text)}.history-operation-item:hover,.history-operation-item.selected{background:#f1f7f4}.history-operation-item>i{width:8px;height:42px;border-radius:999px}.history-operation-item div{display:grid;gap:3px;min-width:0}.history-operation-item small,.history-operation-item span,.history-operation-item em{font-size:11px;color:var(--muted);font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-operation-item b{font-size:13px}.history-main{min-width:0}.history-trip-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:17px 19px;margin-bottom:14px}.history-trip-head h3{margin:3px 0}.history-trip-head p{margin:0;color:var(--muted)}.history-trip-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.history-source{border-radius:999px;background:#edf2ef;color:#52615b;font-size:10px;font-weight:750;padding:6px 9px}.history-source.demo{background:#fff3d9;color:#8a5f11}.history-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.history-metrics .card{padding:14px;display:grid;gap:5px;box-shadow:none}.history-metrics small,.history-metrics span{font-size:11px;color:var(--muted)}.history-metrics b{font-size:18px}.history-map-card{overflow:hidden}.history-replay-map{height:510px;background:#e5ebe8;position:relative}.history-map-empty{position:absolute;z-index:500;left:50%;top:50%;transform:translate(-50%,-50%);padding:13px 16px;border-radius:12px;background:rgba(255,255,255,.94);color:var(--muted);box-shadow:var(--shadow);text-align:center}.history-replay-controls{padding:15px 17px;border-top:1px solid var(--line);display:grid;gap:12px}.history-replay-buttons{display:flex;gap:8px;flex-wrap:wrap}.history-range-label{display:grid;gap:7px}.history-range-label span{font-size:11px;color:var(--muted);font-weight:700}.history-range-label input{width:100%;accent-color:var(--green2)}.history-replay-progress{height:8px;background:#e8ecea;border-radius:999px;overflow:hidden}.history-replay-progress span{display:block;height:100%;background:var(--green2);border-radius:999px;transition:width .25s ease}.history-frame-data{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.history-frame-data>div{background:#f5f7f6;border-radius:10px;padding:10px;display:grid;gap:3px}.history-frame-data small{font-size:10px;color:var(--muted)}.history-frame-data b{font-size:12px;overflow-wrap:anywhere}.history-detail-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:16px}.history-event-list{max-height:440px;overflow:auto}
@media(max-width:1180px){.history-layout{grid-template-columns:250px minmax(0,1fr)}.history-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.history-layout{grid-template-columns:1fr}.history-side-list{position:static}.history-operation-list{max-height:320px}.history-detail-grid{grid-template-columns:1fr}.history-replay-map{height:470px}}
@media(max-width:620px){.history-toolbar{align-items:flex-start;flex-direction:column}.history-toolbar>div:last-child{text-align:left}.history-trip-head{display:grid}.history-trip-status{justify-content:flex-start}.history-metrics{grid-template-columns:1fr 1fr}.history-replay-map{height:420px}.history-frame-data{grid-template-columns:1fr 1fr}.history-replay-buttons{display:grid;grid-template-columns:1fr 1fr}.history-replay-buttons .btn{width:100%}}

/* V16 — rotas viárias, mapa público resiliente e ilustrações dos veículos */
.street-route-notice{
  position:absolute;
  z-index:950;
  top:14px;
  left:50%;
  transform:translateX(-50%);
  max-width:calc(100% - 28px);
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(210,220,216,.95);
  box-shadow:0 8px 24px rgba(17,48,39,.14);
  color:var(--green);
  font-size:11px;
  font-weight:750;
  white-space:nowrap;
  pointer-events:none;
}
.street-route-notice.error{color:#99413b;background:rgba(255,244,242,.96);border-color:#f0cbc6}
.street-route-notice.loading:before{
  content:"";
  display:inline-block;
  width:9px;
  height:9px;
  margin-right:7px;
  border-radius:50%;
  border:2px solid #b8cec5;
  border-top-color:var(--green);
  animation:cmRouteSpin .8s linear infinite;
  vertical-align:-1px;
}
@keyframes cmRouteSpin{to{transform:rotate(360deg)}}

.vehicle-art{
  color:var(--green);
  padding:8px;
}
.vehicle-category-illustration{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
}
.vehicle-category-illustration svg{
  width:48px;
  height:62px;
  filter:drop-shadow(0 7px 7px rgba(17,48,39,.16));
}
.vehicle-category-illustration.suv{color:#193f36}
.vehicle-category-illustration.pickup{color:#2a6758}
.vehicle-category-illustration span{
  color:var(--green);
  font-size:13px;
  font-weight:800;
  letter-spacing:.01em;
}

.tracking-live-map.leaflet-container,
.live-map.leaflet-container,
.history-replay-map.leaflet-container{
  background:#e8eeeb;
}

@media(max-width:620px){
  .street-route-notice{top:10px;font-size:10px;max-width:calc(100% - 20px)}
  .vehicle-category-illustration{gap:10px}
  .vehicle-category-illustration svg{width:42px;height:56px}
  .vehicle-category-illustration span{font-size:12px}
}

/* V17 — robustez do mapa público */
.base-map-notice{
  position:absolute;
  top:12px;
  left:50%;
  transform:translateX(-50%);
  z-index:1000;
  max-width:calc(100% - 90px);
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(203,216,210,.95);
  box-shadow:0 6px 20px rgba(22,52,43,.12);
  color:#52615c;
  font-size:11px;
  font-weight:700;
  text-align:center;
  pointer-events:none;
}
.base-map-notice.error{
  background:#fff4f2;
  border-color:#efc7c2;
  color:#934039;
}

/* V18 — correção definitiva de visibilidade dos mapas */
.live-map,
.tracking-live-map,
.history-replay-map{
  isolation:isolate;
}
.live-map .leaflet-pane,
.tracking-live-map .leaflet-pane,
.history-replay-map .leaflet-pane{
  visibility:visible;
}
.base-map-notice{z-index:1000}

/* V19 — cadastro e ajuste fino dos pontos operacionais */
.points-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;margin-bottom:16px}.points-toolbar>div{display:grid;gap:3px}.points-toolbar span{font-size:12px;color:var(--muted)}.points-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px;align-items:start}.points-side{overflow:hidden;position:sticky;top:92px}.points-side-head{padding:16px;border-bottom:1px solid var(--line)}.points-side-head h3{margin:0}.points-side-head small{color:var(--muted)}.points-list{display:grid;max-height:760px;overflow:auto}.point-list-item{border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--text);text-align:left;padding:13px 14px;display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:10px;align-items:start;cursor:pointer}.point-list-item:hover,.point-list-item.selected{background:#f1f7f4}.point-list-item.inactive{opacity:.58}.point-list-item>i{width:8px;height:46px;border-radius:999px}.point-list-item>div{display:grid;gap:3px;min-width:0}.point-list-item small,.point-list-item span,.point-list-item em{font-size:11px;color:var(--muted);font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.point-list-item b{font-size:13px}.point-list-item em{border-radius:999px;background:#edf2ef;padding:4px 7px}.points-main{display:grid;gap:16px;min-width:0}.point-map-card{overflow:hidden;box-shadow:none}.point-editor-map{height:500px;background:#e7ece9}.point-map-tip{padding:11px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.point-detail-card{padding:18px;box-shadow:none}.point-detail-head{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:14px;align-items:start}.point-detail-head h3{margin:2px 0}.point-detail-head p{margin:0;color:var(--muted);font-size:12px}.point-detail-head small{color:var(--muted)}.point-detail-pin{width:48px;height:58px;display:grid;place-items:center}.point-detail-pin svg{width:42px;height:50px}.point-status{border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800}.point-status.active{background:#e6f3ec;color:#176147}.point-status.inactive{background:#ecefed;color:#5e6964}.point-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:16px;border-top:1px solid var(--line)}.point-detail-grid>div{display:grid;gap:4px;padding:12px 0;border-bottom:1px solid var(--line)}.point-detail-grid>div:nth-child(odd):not(.full){padding-right:16px}.point-detail-grid>div:nth-child(even){padding-left:16px;border-left:1px solid var(--line)}.point-detail-grid .full{grid-column:1/-1}.point-detail-grid small{font-size:10px;color:var(--muted)}.point-detail-grid b{font-size:12px;overflow-wrap:anywhere}.point-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
@media(max-width:980px){.points-layout{grid-template-columns:270px minmax(0,1fr)}.point-editor-map{height:460px}}
@media(max-width:780px){.points-layout{grid-template-columns:1fr}.points-side{position:static}.points-list{max-height:300px}.point-editor-map{height:430px}}
@media(max-width:620px){.points-toolbar{align-items:flex-start;flex-direction:column}.points-toolbar .btn{width:100%}.point-editor-map{height:390px}.point-detail-head{grid-template-columns:46px minmax(0,1fr)}.point-status{grid-column:2;justify-self:start}.point-detail-grid{grid-template-columns:1fr}.point-detail-grid>div:nth-child(odd):not(.full),.point-detail-grid>div:nth-child(even){padding:11px 0;border-left:0}.point-actions{display:grid}.point-actions .btn{width:100%}}

/* V20 — administração completa de frota e motoristas */
.fleet-admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 17px;margin-bottom:14px;box-shadow:none}
.fleet-admin-toolbar>div{display:grid;gap:3px}.fleet-admin-toolbar span{color:var(--muted);font-size:12px}
.driver-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.driver-admin-card{padding:17px;box-shadow:none;min-width:0}.driver-admin-card.is-inactive,.map-fleet-card.is-inactive{opacity:.62}
.driver-card-head{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px}
.driver-card-head h3{margin:2px 0 3px;font-size:17px}.driver-card-head small,.driver-card-head span{display:block;color:var(--muted);font-size:11px}
.driver-photo{width:58px;height:58px;border-radius:16px;background:var(--sand);overflow:hidden;display:grid;place-items:center;color:var(--green);font-weight:850}
.driver-photo img,.vehicle-photo-or-icon img{width:100%;height:100%;object-fit:cover;display:block}
.driver-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 16px;padding:15px 0}.driver-card-grid>div{display:grid;gap:4px;min-width:0}.driver-card-grid .full{grid-column:1/-1}
.driver-card-grid small{color:var(--muted);font-size:10px}.driver-card-grid b{font-size:12px;overflow-wrap:anywhere}.expiry.ok{color:#176147}.expiry.warning{color:#8a5f11}.expiry.critical{color:var(--danger)}.expiry.neutral{color:var(--muted)}
.full-button{width:100%}.vehicle-photo-or-icon{width:52px;height:56px;border-radius:13px;background:#f3f5f4;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.vehicle-photo-or-icon .vehicle-mini-car{width:40px;height:52px}
.inline-check{display:flex;align-items:center;gap:8px;color:var(--text);font-size:12px;margin-top:9px}.inline-check input{width:17px;height:17px;accent-color:var(--green)}
.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fafbfa}.checkbox-grid .inline-check{margin:0}
@media(max-width:1100px){.driver-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.fleet-admin-toolbar{align-items:flex-start;flex-direction:column}.fleet-admin-toolbar .btn{width:100%}.driver-admin-grid{grid-template-columns:1fr}.driver-card-head{grid-template-columns:54px minmax(0,1fr)}.driver-card-head>.badge{grid-column:1/-1;justify-self:start}.checkbox-grid{grid-template-columns:1fr}}


/* V21 — manutenção e documentos */
.technical-strip{display:flex;flex-direction:column;gap:3px;border-radius:12px;padding:10px 12px;margin:12px 0;background:#f4f7f5;border:1px solid var(--line)}
.technical-strip b{font-size:13px}.technical-strip span{font-size:12px;color:var(--muted)}
.technical-strip.warning{background:#fff8e8;border-color:#ecd69c}.technical-strip.critical{background:#fff0ee;border-color:#e9b4ad}.technical-strip.ok{background:#edf8f2;border-color:#b9dfca}
.vehicle-card-actions{margin-top:14px}.maintenance-kpis{margin-bottom:18px}.maintenance-vehicle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.maintenance-vehicle-card{padding:18px;border-top:4px solid #9ca8a2}.maintenance-vehicle-card.warning{border-top-color:#c99222}.maintenance-vehicle-card.critical{border-top-color:#c84a3f}.maintenance-vehicle-card.ok{border-top-color:#2e8b62}
.maintenance-vehicle-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.maintenance-vehicle-head h3{margin:3px 0}.maintenance-vehicle-head span,.maintenance-vehicle-head small{color:var(--muted)}
.technical-issues{display:flex;flex-direction:column;gap:6px;margin:14px 0}.technical-issues span{padding:8px 10px;border-radius:10px;background:#fff0ee;color:#8e2f28;font-size:13px}.technical-ok{margin:14px 0;padding:8px 10px;border-radius:10px;background:#edf8f2;color:#246c4c;font-size:13px}
.maintenance-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.maintenance-summary>div{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:4px}.maintenance-summary small{color:var(--muted)}.maintenance-actions{flex-wrap:wrap}.maintenance-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#eef1ef}.maintenance-status.warning{background:#fff1cc;color:#7b5512}.maintenance-status.critical{background:#fde2df;color:#8c2d27}.maintenance-status.normal{background:#e8f4ed;color:#256b4b}.table-link{font-weight:700;color:var(--primary)}
@media(max-width:1100px){.maintenance-vehicle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.maintenance-vehicle-grid{grid-template-columns:1fr}.maintenance-summary{grid-template-columns:1fr}.maintenance-actions .btn{width:100%}}

/* V22 — checklists, abastecimento e avarias */
.daily-fleet-kpis{margin-bottom:16px}.daily-vehicle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.daily-vehicle-card{padding:17px;box-shadow:none;min-width:0}.daily-vehicle-head{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding-bottom:13px;border-bottom:1px solid var(--line)}.daily-vehicle-head .vehicle-mini-car{width:42px;height:54px}.daily-vehicle-head h3{margin:2px 0}.daily-vehicle-head small,.daily-vehicle-head span{display:block;color:var(--muted);font-size:11px}.daily-check-status{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 0}.daily-check-status>div{display:grid;gap:4px;border:1px solid var(--line);border-radius:12px;padding:10px}.daily-check-status small,.daily-check-status span{font-size:10px;color:var(--muted)}.daily-state{font-size:13px}.daily-state.ok{color:#176147}.daily-state.warning{color:#8a5f11}.daily-state.critical{color:#a3342c}.daily-state.pending{color:var(--muted)}.daily-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.daily-summary>div{display:grid;gap:4px}.daily-summary small{font-size:10px;color:var(--muted)}.daily-summary b{font-size:13px}.issue-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}.issue-chip{padding:5px 8px;border-radius:999px;font-size:10px;font-weight:750;background:#eef1ef;color:#52615c}.issue-chip.atencao{background:#fff1cc;color:#7b5512}.issue-chip.critica{background:#fde2df;color:#8c2d27}.daily-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.daily-actions .btn:first-child{grid-column:1/-1}.checklist-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.checklist-form-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:#fafbfa}.checklist-form-row label{font-size:12px;font-weight:650}.checklist-form-row .select{min-width:0}.maintenance-status.ok{background:#e8f4ed;color:#256b4b}.maintenance-status.pending{background:#eef1ef;color:#5f6a65}
@media(max-width:1100px){.daily-vehicle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.daily-vehicle-grid{grid-template-columns:1fr}.daily-vehicle-head{grid-template-columns:44px minmax(0,1fr)}.daily-vehicle-head>.badge{grid-column:1/-1;justify-self:start}.daily-check-status,.daily-summary{grid-template-columns:1fr}.checklist-form-grid{grid-template-columns:1fr}.checklist-form-row{grid-template-columns:1fr}.daily-actions{grid-template-columns:1fr}.daily-actions .btn:first-child{grid-column:auto}}

/* V23 — relatórios e indicadores */
.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;margin-bottom:16px;box-shadow:none}.report-toolbar>div:first-child{display:grid;gap:3px}.report-toolbar span{font-size:12px;color:var(--muted)}.report-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.report-controls .select{width:auto;min-width:180px}.report-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.report-kpi.positive{border-top:3px solid #2e8b62}.report-kpi.negative{border-top:3px solid #c84a3f}.report-note{display:flex;gap:12px;align-items:flex-start;background:#f8f4ea;border:1px solid #e4d6b6;border-radius:14px;padding:13px 15px;color:#6a5329}.report-note b{white-space:nowrap}.report-note span{font-size:12px}.report-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.report-panel{padding:18px;box-shadow:none}.report-panel .section-head{margin:0 0 10px}.report-finance-lines{display:grid}.report-finance-lines>div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}.report-finance-lines>div:last-child{border-bottom:0}.report-finance-lines .total{font-size:17px;color:var(--green);padding-top:15px}.report-free-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.report-free-grid>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fafbfa}.report-free-grid small,.report-muted{color:var(--muted);font-size:11px}.report-muted{margin:13px 0 0}.report-vehicle-name{display:flex;align-items:center;gap:8px}.report-vehicle-name i{width:10px;height:10px;border-radius:50%;display:block}.report-positive{color:#176147}.report-negative{color:#a3342c}.report-rate{display:inline-block;width:72px;height:8px;border-radius:99px;background:#e5eae7;overflow:hidden;margin-right:8px;vertical-align:middle}.report-rate i{display:block;height:100%;background:var(--green2);border-radius:99px}.report-ranking{padding:8px 16px;box-shadow:none}.report-rank-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,220px);gap:18px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.report-rank-row:last-child{border-bottom:0}.report-rank-row>div:first-child{display:grid;gap:3px;min-width:0}.report-rank-row span{font-size:11px;color:var(--muted)}.report-rank-value{display:grid;gap:6px;text-align:right}.report-rank-value i{height:8px;background:#e8ecea;border-radius:99px;overflow:hidden}.report-rank-value i span{display:block;height:100%;background:var(--green2);border-radius:99px}
@media(max-width:1100px){.report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.report-toolbar{align-items:flex-start;flex-direction:column}.report-controls{width:100%}.report-controls .select{flex:1}}
@media(max-width:760px){.report-two-columns{grid-template-columns:1fr}.report-kpis{grid-template-columns:1fr 1fr}.report-controls{display:grid;grid-template-columns:1fr 1fr}.report-controls .map-filter-buttons,.report-controls .select{grid-column:1/-1;width:100%}.report-rank-row{grid-template-columns:1fr}.report-rank-value{text-align:left}.report-note{flex-direction:column}.report-note b{white-space:normal}}
@media print{.sidebar,.topbar,.mobilebar,.report-controls{display:none!important}.main{margin:0}.content{max-width:none;padding:0}.card{box-shadow:none}.report-note{break-inside:avoid}.table-wrap{overflow:visible}.table{font-size:10px}}

/* V24 — financeiro operacional */
.finance-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;margin-bottom:16px;box-shadow:none}.finance-toolbar>div:first-child{display:grid;gap:3px}.finance-toolbar span{font-size:12px;color:var(--muted)}.finance-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.finance-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 16px}.finance-tab{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:9px 14px;font-weight:750;cursor:pointer}.finance-tab:hover,.finance-tab.active{background:var(--green);border-color:var(--green);color:#fff}.finance-panel{min-width:0}.finance-partner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.finance-partner-card{padding:16px;display:grid;gap:14px;box-shadow:none}.finance-partner-card h3{margin:2px 0}.finance-partner-card small,.finance-partner-card span,.finance-muted{font-size:11px;color:var(--muted)}.finance-partner-values{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.finance-partner-values>div{display:grid;gap:4px;padding:9px;border:1px solid var(--line);border-radius:11px;background:#fafbfa}.finance-partner-values b{font-size:13px}.finance-close-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin-bottom:18px}.finance-close-card{padding:18px;box-shadow:none}.finance-close-card h2{margin:4px 0 14px}.finance-pending-list{display:grid}.finance-pending-list>div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}.finance-pending-list>div:last-child{border-bottom:0}.finance-pending-list span{font-size:12px;color:var(--muted)}.finance-pending-list b{font-size:13px}.finance-close-card .notice{margin-top:14px}.finance-close-card .full-button{margin-top:14px}.badge.emanalise,.badge.pagamentoemanalise{background:#fff1cc;color:#7b5512}.badge.reembolsada,.badge.devolvida{background:#e8f4ed;color:#256b4b}.badge.devolucaodevida{background:#fde2df;color:#8c2d27}.badge.liberada{background:#eaf0fb;color:#345a8a}.badge.paga{background:#e8f4ed;color:#256b4b}.badge.cancelada,.badge.rejeitado,.badge.reembolsado{background:#eef1ef;color:#59655f}
@media(max-width:1100px){.finance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-partner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.finance-close-layout{grid-template-columns:1fr}.finance-partner-grid{grid-template-columns:1fr}.finance-kpis{grid-template-columns:1fr 1fr}.finance-toolbar .report-controls{width:100%}.finance-toolbar .map-filter-buttons{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.finance-tab{flex:1}.finance-partner-values{grid-template-columns:1fr}.finance-panel .table-wrap{margin-left:-2px;margin-right:-2px}}
@media(max-width:480px){.finance-kpis{grid-template-columns:1fr}.finance-tabs{display:grid;grid-template-columns:1fr 1fr}.finance-tab{width:100%}}

/* V25 — Comunicação e notificações */
.communication-metrics{margin-bottom:18px}
.communication-filterbar{margin:0 0 14px;gap:8px;flex-wrap:wrap}
.communication-preview{max-width:360px;white-space:normal;line-height:1.45;color:var(--text);font-size:13px}
.communication-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.communication-template-card{display:flex;flex-direction:column;gap:14px;min-height:220px}
.communication-template-card.inactive{opacity:.62}
.communication-template-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.communication-template-card p{margin:0;color:var(--muted);line-height:1.55;white-space:pre-wrap;flex:1}
.communication-template-card .toolbar{margin-top:auto}
@media(max-width:900px){.communication-template-grid{grid-template-columns:1fr}.communication-preview{max-width:260px}}


/* V26 — Portal comercial e gestão de parceiros */
.partner-public-page{background:#edf2ef}.partner-public-main{width:min(1180px,calc(100% - 32px))}.partner-hero{background:linear-gradient(135deg,#153c31,#245846)}.partner-public-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.partner-public-kpis .metric-card{display:grid;gap:4px}.partner-public-kpis .metric-card small,.partner-public-kpis .metric-card span{font-size:11px;color:var(--muted)}.partner-public-kpis .viz-stat-value{font-size:24px}.partner-public-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.partner-public-tab{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:10px 16px;font-weight:750;cursor:pointer}.partner-public-tab.active,.partner-public-tab:hover{background:var(--green);border-color:var(--green);color:#fff}.partner-booking-card{padding:22px}.partner-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.partner-category-option{border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;gap:10px;align-items:flex-start;cursor:pointer;background:#fff}.partner-category-option:has(input:checked){border-color:var(--green);background:#f0f6f3}.partner-category-option input{margin-top:3px}.partner-category-option span{display:grid;gap:4px}.partner-category-option small{color:var(--muted)}.partner-price-preview{margin-top:16px;border:1px solid var(--line);border-radius:16px;padding:16px;background:#f8faf8;display:flex;align-items:center;justify-content:space-between;gap:18px}.partner-price-preview>div{display:grid;gap:3px}.partner-price-preview small,.partner-price-preview span{color:var(--muted);font-size:11px}.partner-price-preview strong{font-size:24px;color:var(--green)}.partner-success{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 16px;border-radius:14px;background:#e8f4ed;border:1px solid #c9e2d4;color:#245f46;margin-bottom:16px}.partner-success span{font-size:12px}.partner-admin-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.partner-admin-card{padding:18px;display:grid;gap:14px;box-shadow:none}.partner-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.partner-admin-head h3{margin:3px 0}.partner-admin-head small,.partner-admin-head span{font-size:11px;color:var(--muted)}.partner-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.partner-admin-grid>div{padding:10px;border:1px solid var(--line);border-radius:11px;background:#fafbfa;display:grid;gap:4px}.partner-admin-grid small{font-size:10px;color:var(--muted)}.partner-admin-grid b{font-size:12px}.partner-link-box{display:flex;gap:8px;align-items:center;border:1px solid var(--line);background:#f8faf8;border-radius:12px;padding:9px}.partner-link-box code{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.date-control{display:flex;width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 12px}.date-control input{display:block;width:100%;min-width:0;border:0;background:transparent;padding:0;font:inherit;color:inherit}.is-inactive{opacity:.65}
@media(max-width:900px){.partner-public-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-admin-list{grid-template-columns:1fr}.partner-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.partner-public-main{width:calc(100% - 22px);padding-top:18px}.partner-public-kpis{grid-template-columns:1fr 1fr}.partner-public-tabs{display:grid;grid-template-columns:1fr 1fr}.partner-public-tab{padding:10px}.partner-category-grid{grid-template-columns:1fr}.partner-price-preview{align-items:stretch;flex-direction:column}.partner-price-preview .btn{width:100%}.partner-success{align-items:flex-start;flex-direction:column}.partner-admin-grid{grid-template-columns:1fr 1fr}}


/* V27 — Reserva direta do cliente */
.booking-public-page{background:#eef3f0}.booking-public-main{width:min(1080px,calc(100% - 32px))}.booking-hero{background:linear-gradient(135deg,#123b30,#2d6451)}.direct-booking-card{margin-bottom:16px}.booking-success-card{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:flex-start;padding:28px}.booking-success-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#e4f3ea;color:#216545;font-size:28px;font-weight:850}.booking-success-card h2{margin:4px 0 8px}.booking-success-card p{color:var(--muted);max-width:680px}.booking-success-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.booking-prices-card{padding:22px;margin-top:16px}.booking-how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 32px}.booking-how>div{display:flex;gap:12px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}.booking-how>div>b{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;background:#edf5f1;color:var(--green)}.booking-how span{display:grid;gap:4px}.booking-how small{color:var(--muted)}
@media(max-width:760px){.booking-how{grid-template-columns:1fr}.booking-success-card{grid-template-columns:1fr}.booking-success-actions{display:grid}.booking-success-actions .btn{width:100%}}


/* V28 — Central de voos */
.flight-metrics{margin-bottom:16px}
.flight-filter-bar{display:flex;gap:8px;flex-wrap:wrap;padding:12px;margin-bottom:16px}
.flights-layout{display:grid;grid-template-columns:minmax(300px,390px) minmax(0,1fr);gap:16px;align-items:start}
.flight-list{padding:8px;display:grid;gap:6px}
.flight-list-item{display:grid;grid-template-columns:92px minmax(0,1fr) 112px auto;gap:12px;align-items:center;width:100%;text-align:left;border:1px solid transparent;border-radius:14px;background:transparent;padding:12px;color:var(--ink);cursor:pointer}
.flight-list-item:hover{background:var(--surface-soft)}
.flight-list-item.selected{border-color:var(--green);background:rgba(22,101,80,.07)}
.flight-number{display:grid;grid-template-columns:24px 1fr;align-items:center}
.flight-number span{grid-row:1/3;font-size:20px;color:var(--green)}
.flight-number b{font-size:15px}.flight-number small{grid-column:2;color:var(--muted)}
.flight-list-main{min-width:0;display:flex;flex-direction:column;gap:3px}.flight-list-main b,.flight-list-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flight-list-main small,.flight-list-main span{color:var(--muted);font-size:12px}
.flight-list-time{display:flex;flex-direction:column;text-align:right}.flight-list-time b{font-size:13px}.flight-list-time span{font-size:12px;color:var(--muted)}.flight-list-time em{font-style:normal;color:#a15c12;font-size:11px}
.flight-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700;white-space:nowrap;background:#edf1ef;color:#52615c}.flight-status.normal{background:#e8f4ee;color:#1f6d4f}.flight-status.attention{background:#fff3df;color:#9a5b13}.flight-status.critical{background:#fde9e7;color:#a33b32}.flight-status.large{padding:8px 12px;font-size:13px}
.flight-detail{padding:20px}.flight-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.flight-detail-head small,.flight-detail-head p{color:var(--muted)}.flight-detail-head h2{margin:4px 0}.flight-detail-head h2 span{font-size:15px;color:var(--muted);font-weight:500}
.flight-time-grid,.flight-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}.flight-time-grid>div,.flight-detail-grid>div{padding:12px;border-radius:12px;background:var(--surface-soft)}.flight-time-grid small,.flight-detail-grid small{display:block;color:var(--muted);margin-bottom:4px}
.flight-suggestion{display:grid;grid-template-columns:1fr auto 1fr auto;gap:14px;align-items:center;margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:16px}.flight-suggestion small,.flight-suggestion span{display:block;color:var(--muted)}.flight-arrow{font-size:22px;color:var(--green)}
.flight-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.flight-notes{margin-top:16px;padding:14px;border-left:3px solid var(--gold);background:var(--surface-soft);border-radius:0 12px 12px 0}.flight-notes small{color:var(--muted)}.flight-notes p{margin:4px 0 0;white-space:pre-line}
.flight-history{display:grid;gap:0}.flight-history>div{display:grid;grid-template-columns:18px 1fr;gap:10px;position:relative;padding-bottom:14px}.flight-history>div:not(:last-child):before{content:'';position:absolute;left:5px;top:12px;bottom:0;width:1px;background:var(--line)}.flight-history i{width:11px;height:11px;border-radius:50%;background:var(--green);margin-top:4px;z-index:1}.flight-history span{display:block}.flight-history small{display:block;color:var(--muted)}.flight-history p{margin:4px 0 0;color:var(--muted)}
.notice.warning{background:#fff8e8;border-color:#ead3a2;color:#7e561c}
@media(max-width:1100px){.flights-layout{grid-template-columns:1fr}.flight-list-item{grid-template-columns:90px minmax(0,1fr) 105px auto}}
@media(max-width:700px){.flight-list-item{grid-template-columns:78px minmax(0,1fr);align-items:start}.flight-list-time{grid-column:1/2;text-align:left}.flight-list-item>.flight-status{grid-column:2/3;justify-self:start}.flight-time-grid,.flight-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.flight-suggestion{grid-template-columns:1fr}.flight-arrow{transform:rotate(90deg);justify-self:center}.flight-detail-head{flex-direction:column}}


/* V29 — usuários, permissões e auditoria */
.user-toolbar,.audit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;margin:18px 0}.user-toolbar>div:first-child,.audit-toolbar>div:first-child{display:grid;gap:4px}.user-toolbar span,.audit-toolbar span{color:var(--muted);font-size:13px}.user-toolbar-controls,.audit-toolbar-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.user-toolbar-controls .input,.audit-toolbar-controls .input{min-width:260px}.user-toolbar-controls .select,.audit-toolbar-controls .select{min-width:190px}.user-name-cell{display:flex;align-items:center;gap:12px}.user-name-cell>span:last-child{display:grid;gap:3px}.user-name-cell small{color:var(--muted)}.user-avatar-small{width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:#f7f8f7;color:var(--green);font-weight:800;flex:none}.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.role-card{padding:18px}.role-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.role-card-head h3{margin:3px 0 0}.role-card p{color:var(--muted);min-height:42px}.role-page-list{display:flex;gap:6px;flex-wrap:wrap}.role-page-list span{font-size:12px;background:#f7f8f7;border:1px solid var(--line);padding:5px 8px;border-radius:999px}.audit-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.audit-detail-grid>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:14px}.audit-detail-grid small{color:var(--muted)}.audit-json{white-space:pre-wrap;word-break:break-word;background:#0f241f;color:#e8f2ef;border-radius:14px;padding:14px;max-height:260px;overflow:auto;font-size:12px}.metric-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;display:grid;gap:5px}.metric-card small,.metric-card span{color:var(--muted)}.viz-stat-value{font-size:28px;font-weight:800;color:var(--green)}
@media(max-width:1100px){.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-toolbar,.audit-toolbar{align-items:flex-start;flex-direction:column}.user-toolbar-controls,.audit-toolbar-controls{width:100%}.user-toolbar-controls .input,.audit-toolbar-controls .input{flex:1;min-width:180px}}
@media(max-width:720px){.role-grid{grid-template-columns:1fr}.user-toolbar-controls,.audit-toolbar-controls{display:grid;grid-template-columns:1fr;width:100%}.user-toolbar-controls .input,.audit-toolbar-controls .input,.user-toolbar-controls .select,.audit-toolbar-controls .select{min-width:0;width:100%}.audit-detail-grid{grid-template-columns:1fr}}


/* V30 — dados, backup e implantação */
.data-center-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:18px;align-items:start}.data-center-grid>section,.data-center-grid>aside{display:grid;gap:18px}.data-panel{padding:20px}.data-panel .section-head{margin:0 0 16px}.data-actions{display:flex;gap:10px;flex-wrap:wrap}.data-count-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.data-count{padding:12px;border:1px solid var(--line);border-radius:14px;background:#f7f8f7;display:grid;gap:3px}.data-count small{color:var(--muted)}.data-count b{font-size:20px}.health-list{display:grid;gap:9px}.health-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px}.health-row>span{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-weight:900}.health-row>div{display:grid;gap:3px}.health-row small{color:var(--muted)}.health-row em{font-style:normal;font-size:12px;font-weight:700}.health-row.ok>span{background:#dff3e7;color:#17663a}.health-row.warning>span{background:#fff0c9;color:#8a5d00}.health-row.error>span{background:#ffe0df;color:#9f2822}.health-row.running>span{background:#f7f8f7;color:var(--green)}.snapshot-list{display:grid;gap:10px}.snapshot-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px}.snapshot-row>div:first-child{display:grid;gap:3px}.snapshot-row small{color:var(--muted)}.snapshot-row>span{font-size:11px;padding:5px 8px;border-radius:999px;background:#f7f8f7}.snapshot-row>div:last-child{display:flex;gap:6px}.deployment-steps{display:grid;gap:12px;margin-bottom:16px}.deployment-steps>div{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:start}.deployment-steps>div>span{width:30px;height:30px;border-radius:10px;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800}.deployment-steps p{display:grid;gap:2px;margin:0}.deployment-steps small{color:var(--muted)}.notice.secure{border-color:#c8ddd6;background:#f2f8f6}.btn.full{width:100%;justify-content:center}.migration-progress{height:10px;border-radius:999px;background:#f7f8f7;overflow:hidden;margin-bottom:12px}.migration-progress span{display:block;height:100%;background:var(--green);border-radius:inherit}.migration-list{display:grid;gap:5px;max-height:540px;overflow:auto;padding-right:3px}.migration-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px;border:1px solid transparent;border-radius:12px;cursor:pointer}.migration-row:hover{background:#f7f8f7}.migration-row.done{border-color:#cbe1d9;background:#f4faf7}.migration-row>span{display:grid;gap:2px}.migration-row small{color:var(--muted)}.migration-row em{font-style:normal;font-size:11px;color:var(--muted)}.backup-import-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.backup-import-summary>div{padding:12px;border:1px solid var(--line);border-radius:14px;display:grid;gap:4px}.backup-import-summary small{color:var(--muted)}
@media(max-width:1050px){.data-center-grid{grid-template-columns:1fr}.data-count-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:720px){.data-count-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.snapshot-row{grid-template-columns:1fr}.snapshot-row>div:last-child{width:100%}.snapshot-row>div:last-child .btn{flex:1}.backup-import-summary{grid-template-columns:1fr}.data-actions{display:grid}.data-actions .btn{width:100%}}


/* V31 — qualidade, avaliações e portal público */
.quality-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin:16px 0}.quality-filterbar{margin:8px 0 14px}.review-stars{display:inline-flex;gap:2px;color:#c9c9c2;font-size:18px;white-space:nowrap}.review-stars .filled{color:#b49355}.quality-performance{margin-top:18px}.quality-performance-grid{display:grid;gap:10px}.quality-performance-card{padding:16px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center}.quality-performance-card h3{margin:3px 0}.quality-performance-card>span{color:var(--muted);font-size:13px}.reservation-review-card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:14px;align-items:center}.reservation-review-card>div{display:grid;gap:5px}.reservation-review-card small{color:var(--muted)}
.review-public-page{min-height:100vh;padding:24px 14px;background:#f5f3ed}.review-form-card,.review-thanks{max-width:720px;margin:0 auto;padding:26px}.public-brand{display:flex;gap:12px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}.public-brand>div{display:grid}.public-brand small{color:var(--muted)}.review-intro{padding:24px 0 12px}.review-intro h1{margin:4px 0 6px}.review-intro p{color:var(--muted)}.review-trip-team{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.review-trip-team span{padding:12px;border:1px solid var(--line);border-radius:14px;display:grid;gap:4px}.review-trip-team small{color:var(--muted)}.review-score,.review-nps,.review-tags{border:0;padding:18px 0;margin:0;border-top:1px solid var(--line)}.review-score legend,.review-nps legend,.review-tags legend{font-weight:700;padding:0 0 12px}.review-score>div{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.review-score label,.review-nps label{position:relative}.review-score input,.review-nps input{position:absolute;opacity:0;pointer-events:none}.review-score span,.review-nps span{display:grid;place-items:center;min-height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font-weight:700}.review-score input:checked+span,.review-nps input:checked+span{background:#173f35;color:#fff;border-color:#173f35}.review-nps>div{display:grid;grid-template-columns:repeat(11,1fr);gap:5px}.review-tags>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.review-comment{display:grid;gap:8px;padding:18px 0;border-top:1px solid var(--line);font-weight:700}.review-comment small,.review-tags small{color:var(--muted);font-weight:400}.review-consent{padding:12px;border-radius:12px;background:#f7f8f7;color:var(--muted);font-size:13px;margin-bottom:14px}.review-submit{width:100%;justify-content:center;min-height:48px}.review-thanks{text-align:center}.review-thanks-icon{width:58px;height:58px;margin:0 auto 16px;border-radius:50%;background:#dff3e7;color:#17663a;display:grid;place-items:center;font-size:28px;font-weight:900}.review-thanks .review-stars{font-size:28px;margin-top:14px}
@media(max-width:900px){.quality-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-review-card{grid-template-columns:1fr 1fr}.reservation-review-card .toolbar{grid-column:1/-1}.quality-performance{grid-template-columns:1fr}}
@media(max-width:600px){.review-form-card,.review-thanks{padding:18px}.review-trip-team{grid-template-columns:1fr}.review-score>div{grid-template-columns:1fr}.review-score span{min-height:42px}.review-nps>div{grid-template-columns:repeat(6,1fr)}.review-tags>div{grid-template-columns:1fr}.quality-metrics{grid-template-columns:1fr 1fr}.quality-performance-card{grid-template-columns:1fr auto}.quality-performance-card>span{grid-column:1/-1}.reservation-review-card{grid-template-columns:1fr}.reservation-review-card .toolbar{grid-column:auto}}

/* V31 layout refinements */
.quality-metrics{display:grid;gap:12px}.quality-filterbar .chip{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:9px 14px;font-weight:750;cursor:pointer}.quality-filterbar .chip.active,.quality-filterbar .chip:hover{background:var(--green);border-color:var(--green);color:#fff}


/* V32 — Inventário operacional */
.inventory-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;margin:18px 0}.inventory-tabs{display:flex;gap:6px;flex-wrap:wrap}.inventory-tabs button{border:0;background:transparent;padding:9px 13px;border-radius:10px;color:var(--muted);font:inherit;cursor:pointer}.inventory-tabs button.active{background:var(--green);color:#fff}.inventory-actions{display:flex;gap:8px;flex-wrap:wrap}.inventory-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.inventory-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}.inventory-table-wrap table{margin:0;min-width:1120px}.inventory-table-wrap th,.inventory-table-wrap td{padding:12px 11px;vertical-align:middle}.inventory-table-wrap th{white-space:nowrap}.inventory-item-name{display:flex;align-items:center;gap:10px}.inventory-item-name>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eff4f1;color:var(--green);font-weight:700}.inventory-item-name div{display:flex;flex-direction:column;min-width:180px}.inventory-item-name small,.inventory-table-wrap td small{display:block;color:var(--muted);margin-top:3px}.inventory-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.inventory-status.normal{background:#e7f5ec;color:#21633d}.inventory-status.attention{background:#fff4d8;color:#8a5a00}.inventory-status.critical{background:#fde8e7;color:#9b2c28}.inventory-status.inactive{background:#edf0ef;color:#68736f}.table-actions{display:flex;gap:6px}.inventory-vehicle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.inventory-vehicle-card{min-width:0}.inventory-vehicle-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line)}.inventory-vehicle-head>div:nth-child(2){display:flex;flex-direction:column;min-width:0}.inventory-allocation-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.inventory-allocation-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf0ef}.inventory-allocation-list span{display:flex;flex-direction:column}.inventory-allocation-list small{color:var(--muted)}.empty.small{padding:16px 0}
@media(max-width:980px){.inventory-vehicle-grid{grid-template-columns:1fr 1fr}.inventory-toolbar{align-items:flex-start;flex-direction:column}.inventory-actions{width:100%}.inventory-actions .btn{flex:1}}
@media(max-width:640px){.inventory-vehicle-grid{grid-template-columns:1fr}.inventory-tabs{width:100%;display:grid;grid-template-columns:1fr 1fr}.inventory-tabs button{width:100%}.inventory-actions{display:grid;grid-template-columns:1fr}.inventory-filter-row{overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.inventory-filter-row button{white-space:nowrap}}

/* V33 — Escalas e disponibilidade */
.schedule-toolbar,.schedule-actionbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;margin-bottom:16px}.schedule-toolbar>div:first-child{display:grid;gap:4px}.schedule-toolbar span,.schedule-actionbar small{color:var(--muted)}.schedule-kpis{margin-bottom:16px}.schedule-grid-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:18px;background:var(--card);margin-bottom:20px}.schedule-grid{display:grid;grid-template-columns:minmax(180px,1.25fr) repeat(7,minmax(128px,1fr));min-width:1080px}.schedule-grid>*{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.schedule-grid>*:nth-child(8n){border-right:0}.schedule-corner,.schedule-day-head,.schedule-driver-head{padding:13px 14px;background:#f7f8f7}.schedule-corner,.schedule-driver-head{position:sticky;left:0;z-index:2}.schedule-corner{z-index:3;display:grid;gap:3px}.schedule-corner small,.schedule-driver-head small,.schedule-cell small{color:var(--muted)}.schedule-day-head{text-align:center;text-transform:capitalize;line-height:1.25}.schedule-day-head.today{background:#e9f3ef;color:var(--green)}.schedule-driver-head{display:flex;align-items:center;gap:10px}.driver-photo.mini{width:34px;height:34px;min-width:34px;font-size:12px}.schedule-cell{appearance:none;border:0;border-radius:0;background:#fff;min-height:84px;padding:12px;display:grid;align-content:center;text-align:left;gap:5px;position:relative;color:var(--text);cursor:pointer}.schedule-cell:hover{box-shadow:inset 0 0 0 2px rgba(27,91,73,.28)}.schedule-cell.available{background:#fbfdfc}.schedule-cell.adjusted{background:#f4efe5}.schedule-cell.unavailable{background:#fff2ef}.schedule-cell.conflict{background:#fff5df}.schedule-cell.today{box-shadow:inset 0 3px 0 var(--green)}.schedule-cell span{font-weight:700}.schedule-cell em{font-style:normal;font-size:12px;color:#8a5a00}.schedule-cell strong{position:absolute;right:8px;top:8px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#b42318;color:#fff}.schedule-lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.schedule-list{display:grid;gap:0}.schedule-list>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.schedule-list>div:last-child{border-bottom:0}.schedule-list span{display:grid;gap:4px}.schedule-list small{color:var(--muted)}.schedule-conflict-box{margin:0 0 20px;padding:14px 16px;border-radius:14px;background:#fff1ed;border:1px solid #f2b8aa;display:grid;gap:7px;color:#8d2f20}.schedule-conflict-box span{font-size:14px}.schedule-actionbar{padding:0;margin:0 0 14px}.badge.folga,.badge.ausente,.badge.bloqueado{background:#fff0ed;color:#9f2f22}
@media(max-width:900px){.schedule-toolbar,.schedule-actionbar{align-items:flex-start;flex-direction:column}.schedule-lower-grid{grid-template-columns:1fr}.schedule-toolbar .toolbar,.schedule-actionbar .toolbar{width:100%;flex-wrap:wrap}.schedule-toolbar .btn,.schedule-actionbar .btn{flex:1}}

/* V34 — Eventos, interdições e bloqueios operacionais */
.disruption-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;margin:16px 0}.disruption-toolbar>div:first-child{display:grid;gap:4px}.disruption-toolbar span{color:var(--muted)}.disruption-layout{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:18px;align-items:start}.disruption-list{padding:8px;display:grid;gap:6px;max-height:680px;overflow:auto}.disruption-list-item{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:13px;border:1px solid transparent;border-radius:14px;background:transparent;text-align:left;color:var(--text);cursor:pointer}.disruption-list-item:hover{background:var(--surface-soft)}.disruption-list-item.selected{border-color:var(--green);background:rgba(22,101,80,.06)}.disruption-list-item>div{display:grid;gap:3px;min-width:0}.disruption-list-item small,.disruption-list-item span,.disruption-list-item em{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.disruption-list-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.disruption-list-item em{font-style:normal;color:#8a5a00}.disruption-severity{width:8px;height:52px;border-radius:999px;background:#9aa5a1}.disruption-severity.informativo{background:#6888a2}.disruption-severity.atencao{background:#d09326}.disruption-severity.critico{background:#bd4338}.disruption-detail{padding:20px;margin-bottom:16px}.disruption-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}.disruption-detail-head h3{margin:4px 0 0}.disruption-detail-head small{color:var(--muted)}.disruption-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.disruption-detail-grid>div{display:grid;gap:5px;padding:13px;border-radius:12px;background:var(--surface-soft)}.disruption-detail-grid small{color:var(--muted)}.disruption-detail-grid .full{grid-column:1/-1}.check-grid.compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;max-height:180px;overflow:auto;background:#fafbfa}.check-grid.compact .inline-check{margin:0;padding:6px 4px}.badge.ativo{background:#e4f4ea;color:#21623d}.badge.planejado{background:#edf2f0;color:#52615c}.badge.encerrado,.badge.cancelado{background:#eceeed;color:#68736f}
@media(max-width:980px){.disruption-layout{grid-template-columns:1fr}.disruption-list{max-height:none}.disruption-toolbar{align-items:flex-start;flex-direction:column}.disruption-toolbar .toolbar{width:100%;flex-wrap:wrap}.disruption-toolbar .select{flex:1}}
@media(max-width:620px){.disruption-detail-grid{grid-template-columns:1fr}.disruption-detail-grid .full{grid-column:auto}.check-grid.compact{grid-template-columns:1fr}.disruption-list-item{grid-template-columns:7px minmax(0,1fr)}.disruption-list-item>.badge{grid-column:2;justify-self:start}.disruption-detail-head{flex-direction:column}}


/* V35 — navegação consolidada e módulos internos */
.sidebar{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.24) transparent}
.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:999px}
.nav-item{position:relative;padding-left:15px;gap:0}
.nav-item::before{content:"";width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.34);margin-right:12px;flex:0 0 auto}
.nav-item.active::before{width:5px;height:22px;border-radius:999px;background:var(--sand);margin-right:11px}
.nav-item.active{font-weight:700}
.module-tabs{display:flex;gap:8px;align-items:stretch;overflow-x:auto;margin:0 0 20px;padding:6px;border:1px solid var(--line);border-radius:14px;background:#fff;scrollbar-width:none}
.module-tabs::-webkit-scrollbar{display:none}
.module-tab{min-width:max-content;display:grid;gap:2px;border:0;background:transparent;color:var(--muted);padding:10px 14px;border-radius:10px;text-align:left;cursor:pointer}
.module-tab span{font-weight:750;color:inherit}.module-tab small{font-size:10px;color:inherit;opacity:.78}
.module-tab:hover{background:#f3f6f4;color:var(--green)}
.module-tab.active{background:var(--green);color:#fff;box-shadow:0 5px 14px rgba(18,67,55,.16)}
@media(max-width:760px){.module-tabs{margin-bottom:14px}.module-tab{padding:9px 12px}.module-tab small{display:none}}


/* V36 — ícones restaurados no menu consolidado */
.nav-item{gap:11px;padding-left:12px}
.nav-item::before{content:none!important;display:none!important}
.nav-icon{width:22px;min-width:22px;height:22px;display:grid;place-items:center;text-align:center;font-size:16px;line-height:1;color:rgba(255,255,255,.78);transition:color .18s ease,transform .18s ease}
.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-item:hover .nav-icon,.nav-item.active .nav-icon{color:#fff}
.nav-item.active .nav-icon{transform:scale(1.04)}

.first-access-box{margin-top:16px;padding:14px;border:1px solid #e3d7b8;background:#fffaf0;border-radius:12px;display:grid;gap:10px}.first-access-box div{display:grid;gap:3px}.first-access-box small,.login-help span{color:var(--muted);font-size:12px}.login-help{margin-top:14px;padding:12px 14px;border-radius:11px;background:#f5f7f6;display:grid;gap:4px}.login-card code{background:#eef2f0;border-radius:5px;padding:2px 5px}


/* V47 — novo layout do Centro de Operações e busca de usuários estável */
.cockpit-full-map{width:100%}
.cockpit-full-map .live-map{height:440px}
.cockpit-middle-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr);gap:18px;align-items:start}
.cockpit-middle-grid>section{min-width:0}
.cockpit-middle-grid .operation-list,.cockpit-middle-grid .alert-list{min-height:100%}
.cockpit-fleet-section{width:100%}
@media(max-width:1100px){.cockpit-middle-grid{grid-template-columns:1fr}.cockpit-full-map .live-map{height:400px}}
@media(max-width:620px){.cockpit-full-map .live-map{height:350px}}

/* V50 — agenda com linha do tempo por veículo e calendário mensal */
.agenda-view-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:6px;margin-bottom:18px}.agenda-view-switch button{display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;border:0;background:transparent;color:var(--muted);padding:12px 14px;border-radius:11px;cursor:pointer}.agenda-view-switch button>span{grid-row:1/3;width:36px;height:36px;border-radius:10px;background:#eef2f0;display:grid;place-items:center;font-size:18px}.agenda-view-switch button>b{color:var(--text)}.agenda-view-switch button>small{font-size:11px}.agenda-view-switch button.active{background:var(--green);color:rgba(255,255,255,.76)}.agenda-view-switch button.active>b{color:#fff}.agenda-view-switch button.active>span{background:rgba(255,255,255,.15);color:#fff}
.agenda-fleet-timeline{overflow:hidden;padding:14px 16px 18px}.agenda-fleet-scale,.agenda-fleet-row{display:grid;grid-template-columns:190px minmax(0,1fr);gap:12px}.agenda-fleet-scale{align-items:end}.agenda-fleet-scale .agenda-hours{margin:0}.agenda-fleet-row{min-height:70px;align-items:stretch;border-top:1px solid var(--line)}.agenda-fleet-label{display:flex;align-items:center;gap:10px;padding:12px 4px}.agenda-fleet-label>i{width:11px;height:36px;border-radius:999px}.agenda-fleet-label>span{display:grid;gap:3px}.agenda-fleet-label small{font-size:11px;color:var(--muted)}.agenda-fleet-track{position:relative;min-height:70px;background:repeating-linear-gradient(to right,#fafbf9 0,#fafbf9 calc(7.142% - 1px),#e6ebe8 calc(7.142% - 1px),#e6ebe8 7.142%)}.agenda-fleet-bar{position:absolute;top:11px;height:47px;border:0;border-radius:9px;background:var(--agenda-vehicle-color,var(--green));color:#fff;padding:7px 9px;text-align:left;display:grid;align-content:center;gap:2px;overflow:hidden;cursor:pointer}.agenda-fleet-bar b,.agenda-fleet-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-fleet-bar b{font-size:11px}.agenda-fleet-bar span{font-size:10px;opacity:.9}.agenda-fleet-bar.conflict{background:var(--danger)}.agenda-row-empty{position:absolute;left:10px;top:25px;color:var(--muted);font-size:11px}
.agenda-calendar-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:14px 16px;margin-bottom:14px}.agenda-calendar-toolbar h3{margin:0 0 2px}.agenda-calendar-toolbar small{color:var(--muted)}.agenda-month-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.agenda-month-kpis .kpi strong{font-size:22px}.agenda-calendar-legend{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin:10px 2px 12px;color:var(--muted);font-size:12px}.agenda-calendar-legend span{display:flex;align-items:center;gap:6px}.agenda-calendar-legend i{width:10px;height:10px;border-radius:3px}.agenda-calendar-legend i.confirmed{background:#2d7a5e}.agenda-calendar-legend i.pending{background:#d79a2b}.agenda-calendar-legend i.review{background:#8061a8}.agenda-calendar-legend i.cancelled{background:#a8524b}
.agenda-calendar{overflow:hidden}.agenda-calendar-weekdays,.agenda-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.agenda-calendar-weekdays{background:#f5f7f6;border-bottom:1px solid var(--line)}.agenda-calendar-weekdays b{text-align:center;padding:10px 4px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.agenda-calendar-day{min-height:132px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.agenda-calendar-day:nth-child(7n){border-right:0}.agenda-calendar-day.outside{background:#f8faf9}.agenda-calendar-day.outside>*{opacity:.58}.agenda-calendar-day.selected{box-shadow:inset 0 0 0 2px var(--green);background:#f5faf7}.agenda-calendar-day.today .agenda-calendar-date>span{background:var(--green);color:#fff}.agenda-calendar-date{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;padding:0 1px 5px;cursor:pointer;color:var(--text)}.agenda-calendar-date>span{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-weight:750}.agenda-calendar-date>b{min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:#edf2ef;color:var(--green);font-size:10px;display:grid;place-items:center}.agenda-calendar-items{display:grid;gap:4px}.agenda-calendar-reservation,.agenda-calendar-more{width:100%;min-width:0;border:0;border-radius:6px;padding:5px 6px;text-align:left;display:flex;gap:5px;align-items:center;cursor:pointer;font-size:10px}.agenda-calendar-reservation b{flex:0 0 auto}.agenda-calendar-reservation span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-calendar-reservation.confirmed{background:#e3f2eb;color:#176147}.agenda-calendar-reservation.pending{background:#fff1d6;color:#8a5f11}.agenda-calendar-reservation.review{background:#eee8f5;color:#63458a}.agenda-calendar-reservation.cancelled{background:#f7e5e3;color:#99413b}.agenda-calendar-more{background:#f0f3f1;color:var(--muted);justify-content:center}
@media(max-width:1000px){.agenda-month-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.agenda-calendar-day{min-height:110px}.agenda-calendar-reservation span{display:none}.agenda-fleet-scale,.agenda-fleet-row{grid-template-columns:145px minmax(0,1fr)}}
@media(max-width:760px){.agenda-view-switch{grid-template-columns:1fr}.agenda-calendar-toolbar{grid-template-columns:1fr}.agenda-calendar-toolbar>.btn{width:100%}.agenda-month-kpis{grid-template-columns:1fr 1fr}.agenda-calendar-weekdays b{font-size:9px}.agenda-calendar-day{min-height:74px;padding:4px}.agenda-calendar-date>span{width:23px;height:23px}.agenda-calendar-reservation{padding:4px;justify-content:center}.agenda-calendar-reservation span{display:none}.agenda-calendar-items .agenda-calendar-reservation:nth-child(n+2){display:none}.agenda-calendar-more{font-size:9px;padding:3px}.agenda-fleet-timeline{overflow-x:auto}.agenda-fleet-scale,.agenda-fleet-row{min-width:760px;grid-template-columns:130px 1fr}}

/* V53 — vínculo fixo motorista/veículo */
.driver-fixed-vehicle{min-width:260px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f6f8f7}
.driver-fixed-vehicle span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.driver-fixed-vehicle b{display:block;color:var(--green);font-size:15px}
@media(max-width:760px){.driver-fixed-vehicle{min-width:0;width:100%}}
