*{box-sizing:border-box}
body{margin:0;font-family:Inter,Arial,sans-serif;background:#f5f7fb;color:#182230}
.hidden{display:none!important}.center{min-height:100vh;display:grid;place-items:center}
.card{background:#fff;border:1px solid #e4e7ec;border-radius:14px;padding:24px;box-shadow:0 8px 30px #10182812}
.login{width:min(420px,92vw)}
label,.field{display:grid;gap:6px;margin:14px 0;font-weight:600}
.field small{font-weight:400;color:#667085}
input,select,textarea{padding:11px 12px;border:1px solid #d0d5dd;border-radius:8px;width:100%;font:inherit;background:#fff}
input[readonly]{background:#f2f4f7;color:#667085}
textarea{min-height:90px;resize:vertical}
button{cursor:pointer;border:0;border-radius:8px;padding:10px 14px;background:#175cd3;color:#fff;font:inherit}
button:disabled{opacity:.55;cursor:not-allowed}
.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
aside{background:#101828;color:#fff;padding:20px;display:flex;flex-direction:column;gap:14px}
aside nav{display:grid;gap:7px}
aside nav button{background:#1d2939;text-align:left}
aside>#logout{margin-top:auto;background:#b42318}
main{padding:24px;min-width:0}
header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.kpi{background:white;padding:18px;border-radius:12px;border:1px solid #e4e7ec}
.kpi strong{font-size:28px;display:block;margin-top:8px}
.toolbar{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;align-items:end}
.toolbar .field{margin:0;min-width:180px}
.toolbar input{max-width:360px}
.tablewrap{overflow:auto;background:#fff;border:1px solid #e4e7ec;border-radius:12px}
table{border-collapse:collapse;width:100%;min-width:820px}
th,td{padding:10px;border-bottom:1px solid #eaecf0;text-align:left;font-size:14px;vertical-align:top}
th{background:#f9fafb}
.actions{display:flex;gap:6px;flex-wrap:wrap}.actions button{padding:6px 8px}
.danger{background:#b42318}.secondary{background:#475467}.success{background:#067647}
.error{color:#b42318;margin-top:10px}.muted{color:#667085}
dialog{width:50vw;max-width:50vw;min-width:50vw;border:0;border-radius:14px;padding:0;max-height:90vh}
dialog form{padding:0;overflow:auto;max-height:90vh}
#formFields{display:block;padding:0 22px}
.location-row{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(250px,1.3fr);gap:12px;align-items:start}
.location-row .field{margin:14px 0}
menu{position:sticky;bottom:0;z-index:25;display:flex;justify-content:flex-end;gap:8px;margin:22px 0 0;padding:14px 22px;background:#fff;border-top:1px solid #e4e7ec}
.suggestions{position:relative}
.suggestions-list{position:absolute;z-index:20;left:0;right:0;top:100%;background:#fff;border:1px solid #d0d5dd;border-radius:8px;max-height:220px;overflow:auto;box-shadow:0 8px 20px #10182822}
.suggestion{display:block;width:100%;border:0;border-radius:0;background:#fff;color:#182230;text-align:left;padding:10px 12px}
.suggestion:hover,.suggestion:focus{background:#f2f4f7}
.form-help{font-size:12px;color:#667085;font-weight:400}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;background:#fff;border:1px solid #e4e7ec;padding:16px;border-radius:12px}
#globalErrorBox{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:99999;max-width:760px;width:calc(100% - 40px);background:#fff0f0;border:1px solid #c62828;border-left:6px solid #c62828;padding:14px 16px;border-radius:6px;box-shadow:0 4px 18px rgba(0,0,0,.2);color:#7f0000}
#fleetMap{height:68vh;min-height:460px;border-radius:12px;border:1px solid #d8dee8;overflow:hidden;background:#eef2f7}
.location-toolbar{flex-wrap:wrap}.location-toolbar input{min-width:280px}.status{display:inline-block;padding:.2rem .5rem;border-radius:999px;font-size:.78rem;font-weight:700}
.status.online{background:#e5f7eb}.status.atrasada{background:#fff4ce}.status.sem_comunicacao{background:#fde7e9}
#locSummary{margin:.6rem 0 1rem}.leaflet-popup-content{line-height:1.45}
@media(max-width:760px){
  .shell{grid-template-columns:1fr}aside{position:static}aside nav{grid-template-columns:1fr 1fr}
  main{padding:14px}.location-row{grid-template-columns:1fr}
  header{align-items:flex-start;flex-direction:column}
}

.modal-head{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;padding:18px 22px;border-bottom:1px solid #e4e7ec}
.modal-close{background:transparent;color:#344054;font-size:28px;line-height:1;padding:4px 10px;min-width:40px;min-height:40px}
.modal-close:hover{background:#f2f4f7}
.tabs{display:flex;gap:8px;border-bottom:1px solid #e4e7ec;margin:18px 0}
.tabs button{background:transparent;color:#344054;border-radius:0;border-bottom:3px solid transparent}
.tabs button.active{border-bottom-color:#175cd3;color:#175cd3;font-weight:700}
.tab-panel{padding-top:4px}
.file-list{display:grid;gap:8px}.file-item{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid #e4e7ec;padding:10px;border-radius:8px}
.disabled-menu{opacity:.45!important;cursor:not-allowed!important}
@media(max-width:900px){dialog{width:90vw;max-width:90vw;min-width:90vw}}


.fuel-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid #d0d5dd;border-radius:8px;overflow:hidden;margin:10px 0}
.fuel-values>div{padding:10px;border-right:1px solid #d0d5dd}
.fuel-values>div:nth-child(3n){border-right:0}
.fuel-head{font-weight:600;background:#f8fafc;border-bottom:1px solid #d0d5dd}
.money-input{display:flex;align-items:center;gap:6px}
.money-input span{font-weight:600;white-space:nowrap}
.money-input input{min-width:0;width:100%}
.office-spec-list{max-height:184px;overflow-y:auto;margin-top:8px;border:1px solid #d0d5dd;border-radius:8px}
.office-spec-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border-bottom:1px solid #eaecf0}
.office-spec-row:last-child{border-bottom:0}
@media(max-width:700px){.fuel-values{grid-template-columns:1fr}.fuel-values>div{border-right:0}.fuel-head{display:none}}


.kpi-link{font:inherit;text-align:left;cursor:pointer;width:100%;border:1px solid var(--border,#d0d5dd);background:var(--surface,#fff)}
.kpi-link:hover{filter:brightness(.98)}
.kpi-link:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.kpi-link small{display:block;margin-top:4px;font-size:12px;font-weight:400;opacity:.75}


/* Autocomplete dentro de dialogs: lista no fluxo para não ser recortada pelo overflow do dialog. */
.suggestions-list{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  width:100%;
  max-height:220px;
  overflow-y:auto;
  margin-top:4px;
  z-index:60;
  background:#fff;
  border:1px solid #d0d5dd;
  border-radius:8px;
  box-sizing:border-box;
}
.suggestion{
  display:block;
  width:100%;
  text-align:left;
  white-space:normal;
}
.suggestion-empty{
  padding:10px 12px;
}
.recurrence-fields{
  border:1px solid #d0d5dd;
  border-radius:8px;
  padding:12px;
  margin:4px 0 12px;
}
