/* =========================================================
   Frota · Centro de Operações
   Base: Blue-Grey #DBE2E9
   ========================================================= */
:root {
  --bg: #DBE2E9;
  --bg-2: #CFD8E1;
  --card: #F4F7F9;
  --card-2: #E8EDF2;
  --elev: #FFFFFF;
  --linha: #C3CEDA;
  --linha-2: #D5DDE5;
  --tinta: #14212D;
  --tinta-2: #475A6C;
  --tinta-3: #6F8294;

  --navy: #15212C;
  --navy-2: #1D2C3A;
  --navy-3: #2A3B4B;
  --sobre-navy: #E4EBF1;
  --sobre-navy-2: #8FA3B6;

  --acento: #3B6FE0;
  --acento-2: #D5E1FA;


  /* cores dos tipos de veículo */
  --tp-1: #3B6FE0; --tp-2: #0E95A3; --tp-3: #7A5AD6; --tp-4: #C0661A; --tp-5: #587188;
  --cat-sec: #587188; --cat-manut: #C0661A; --cat-reserva: #2E8B57; --cat-externo: #A0527A; --cat-especial: #A0527A;

  --glass: rgb(255 255 255 / .72);
  --tire: #1A242E;
  --rim: #B9C5D1;

  --raio: 18px;
  --sombra: 0 1px 0 rgb(255 255 255 / .6) inset, 0 1px 2px rgb(20 33 45 / .06), 0 8px 24px -12px rgb(20 33 45 / .18);
  --sombra-alta: 0 24px 60px -12px rgb(20 33 45 / .35), 0 2px 6px rgb(20 33 45 / .08);
  --topo-h: 64px;
  --perigo: #C2361B;

  --f-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --f-disp: "Space Grotesk", "Inter", system-ui, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  color-scheme: light;
}

:root[data-theme="dark"] {
  --bg: #0E151C;
  --bg-2: #131C25;
  --card: #16212B;
  --card-2: #1C2934;
  --elev: #1F2D39;
  --linha: #2A3A48;
  --linha-2: #22313D;
  --tinta: #E4EBF1;
  --tinta-2: #A5B5C5;
  --tinta-3: #7D90A2;
  --navy: #0A1016;
  --navy-2: #121B24;
  --navy-3: #1E2B37;
  --acento: #6C95F0;
  --acento-2: #1F3363;
  --tp-1: #6C95F0; --tp-2: #2EC4D2; --tp-3: #A58BF2; --tp-4: #F09A4E; --tp-5: #8FA6BC;
  --cat-sec: #8FA6BC; --cat-manut: #F09A4E; --cat-reserva: #5CC98A; --cat-externo: #E08BB4; --cat-especial: #E08BB4;
  --glass: rgb(10 16 22 / .55);
  --tire: #05090D;
  --rim: #5D7083;
  --sombra: 0 1px 0 rgb(255 255 255 / .03) inset, 0 8px 24px -12px rgb(0 0 0 / .6);
  --sombra-alta: 0 24px 60px -12px rgb(0 0 0 / .7);
  --perigo: #FF7A5C;
  color-scheme: dark;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--topo-h) + 80px); }
body {
  margin: 0; min-height: 100vh;
  background: var(--bg); color: var(--tinta);
  font: 15px/1.45 var(--f-ui);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
h1, h2, h3 { margin: 0; line-height: 1.15; font-family: var(--f-disp); letter-spacing: -.01em; }
p { margin: 0; }
button, input, select { font: inherit; color: inherit; }
button { -webkit-tap-highlight-color: transparent; }
.i { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--navy); color: #fff; padding: 8px 12px; border-radius: 8px; z-index: 200; }
.skip:focus { left: 8px; }
:focus-visible { outline: 2.5px solid var(--acento); outline-offset: 2px; }
kbd {
  font: 600 11px/1 var(--f-mono); padding: 3px 6px; border-radius: 6px;
  border: 1px solid var(--linha); border-bottom-width: 2px; background: var(--elev); color: var(--tinta-2);
}
.sobre { font: 600 11px/1.2 var(--f-ui); letter-spacing: .12em; text-transform: uppercase; color: var(--tinta-3); }

/* ---------- botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  min-height: 40px; padding: 0 14px; border-radius: 11px;
  border: 1px solid var(--linha); background: var(--elev); color: var(--tinta);
  font-weight: 500; cursor: pointer; white-space: nowrap;
  transition: background .15s, border-color .15s, transform .1s, box-shadow .15s;
}
.btn:hover { border-color: var(--tinta-3); }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: .45; cursor: default; }
.btn--ink { background: var(--navy); border-color: var(--navy); color: #fff; font-weight: 600; box-shadow: 0 6px 16px -8px rgb(20 33 45 / .7); }
.btn--ink:hover { background: var(--navy-3); border-color: var(--navy-3); }
:root[data-theme="dark"] .btn--ink { background: var(--acento); border-color: var(--acento); }
.btn--fantasma { background: transparent; border-color: transparent; }
.btn--fantasma:hover { background: var(--card-2); border-color: transparent; }
.btn--sm { min-height: 34px; padding: 0 11px; font-size: .88rem; border-radius: 10px; }
.btn--icone { width: 40px; padding: 0; }
.btn--icone.btn--sm { width: 34px; }
.btn--perigo, .perigo { color: var(--perigo) !important; }

/* ---------- topo ---------- */
.topo {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--bg) 82%, transparent);
  backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid color-mix(in srgb, var(--linha) 70%, transparent);
  padding-top: env(safe-area-inset-top);
}
.topo__in {
  max-width: 1480px; margin: 0 auto; height: var(--topo-h);
  padding: 0 max(20px, env(safe-area-inset-right)) 0 max(20px, env(safe-area-inset-left));
  display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: 20px;
}
/* páginas: Frota | Dashboard */
.telas { display: flex; gap: 2px; padding: 3px; border-radius: 12px; background: color-mix(in srgb, var(--card-2) 80%, transparent); border: 1px solid var(--linha-2); }
.telas__btn { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 12px; border-radius: 9px; color: var(--tinta-2); font-size: .88rem; font-weight: 600; text-decoration: none; transition: background .15s, color .15s, box-shadow .15s; }
.telas__btn:hover { color: var(--tinta); background: color-mix(in srgb, var(--elev) 60%, transparent); }
.telas__btn[aria-current="page"] { background: var(--elev); color: var(--tinta); box-shadow: 0 1px 2px rgb(20 33 45 / .12); }
.telas__btn .i { width: 16px; height: 16px; }
.marca { display: flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.marca__logo {
  width: 40px; height: 40px; border-radius: 12px; background: var(--navy); display: grid; place-items: center;
  --glass: rgb(219 226 233 / .35); --tire: #0A1016; --rim: #6C95F0;
  box-shadow: 0 6px 14px -6px rgb(20 33 45 / .6);
}
.marca__logo svg { width: 30px; height: 15px; color: #DBE2E9; }
.marca__txt { display: grid; line-height: 1.1; }
.marca__txt b { font: 700 1.05rem var(--f-disp); letter-spacing: -.02em; }
.marca__txt small { font-size: .72rem; color: var(--tinta-3); }

.cmd {
  justify-self: center; width: min(520px, 100%);
  display: flex; align-items: center; gap: 10px; height: 42px; padding: 0 8px 0 14px;
  border-radius: 12px; border: 1px solid var(--linha); background: color-mix(in srgb, var(--elev) 70%, transparent);
  color: var(--tinta-3); cursor: text; text-align: left;
  transition: border-color .15s, background .15s, box-shadow .15s;
}
.cmd:hover { border-color: var(--tinta-3); background: var(--elev); box-shadow: var(--sombra); }
.cmd__txt { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topo__acoes { display: flex; gap: 8px; align-items: center; }

/* ---------- menus ---------- */
.menu { position: relative; }
.menu__lista {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 60;
  width: 290px; max-width: calc(100vw - 24px); padding: 6px; border-radius: 14px;
  background: var(--elev); border: 1px solid var(--linha); box-shadow: var(--sombra-alta);
  display: none; transform-origin: top right;
}
.menu.aberto .menu__lista { display: block; animation: surge .16s ease-out; }
.menu__lista button {
  display: grid; width: 100%; text-align: left; gap: 1px;
  padding: 9px 12px; border: 0; border-radius: 9px; background: none; cursor: pointer;
}
.menu__lista button b { font-weight: 600; font-size: .92rem; }
.menu__lista button small { color: var(--tinta-3); font-size: .78rem; }
.menu__lista button:hover, .menu__lista button:focus-visible { background: var(--card-2); outline: none; }
.menu__lista hr { border: 0; border-top: 1px solid var(--linha-2); margin: 6px 4px; }
.menu__rotulo { padding: 8px 12px 6px; font: 600 11px var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-3); }
@keyframes surge { from { opacity: 0; transform: translateY(-4px) scale(.98); } }

/* =========================================================
   HERO — painel de comando
   ========================================================= */
main { max-width: 1480px; margin: 0 auto; padding: 18px max(20px, env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)); }

.hero {
  position: relative; overflow: hidden; isolation: isolate;
  background:
    radial-gradient(900px 380px at 12% -10%, rgb(59 111 224 / .35), transparent 60%),
    radial-gradient(700px 300px at 100% 120%, rgb(30 158 106 / .18), transparent 60%),
    linear-gradient(160deg, var(--navy-2), var(--navy));
  color: var(--sobre-navy); border-radius: 26px; box-shadow: var(--sombra-alta);
}
.hero__grade {
  position: absolute; inset: 0; z-index: -1; opacity: .5;
  background-image:
    linear-gradient(rgb(143 163 182 / .09) 1px, transparent 1px),
    linear-gradient(90deg, rgb(143 163 182 / .09) 1px, transparent 1px);
  background-size: 28px 28px;
  -webkit-mask-image: radial-gradient(ellipse at 30% 30%, #000 20%, transparent 75%);
  mask-image: radial-gradient(ellipse at 30% 30%, #000 20%, transparent 75%);
}
.hero .sobre { color: var(--sobre-navy-2); }
.hero__in { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 40px; padding: 30px 32px; }
.hero__total { display: flex; align-items: flex-end; gap: 16px; margin: 12px 0 22px; }
.numero {
  font: 700 clamp(64px, 9vw, 116px)/.82 var(--f-disp); letter-spacing: -.05em;
  font-variant-numeric: tabular-nums;
  background: linear-gradient(180deg, #fff 30%, #9FB5CB); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero__unid { font: 500 1.05rem/1.25 var(--f-disp); color: var(--sobre-navy); padding-bottom: 6px; }
.hero__unid small { font: 400 .85rem var(--f-ui); color: var(--sobre-navy-2); }

/* barra de saúde (situações) */
.saude { display: flex; height: 44px; gap: 3px; border-radius: 12px; overflow: hidden; background: rgb(255 255 255 / .05); }
.saude__seg {
  position: relative; border: 0; padding: 0 10px; min-width: 6px; cursor: pointer; flex: 0 0 0%;
  background: var(--c); color: #fff; display: flex; align-items: center;
  font: 700 .9rem var(--f-disp); overflow: hidden; white-space: nowrap;
  transition: flex-grow .7s cubic-bezier(.2,.8,.2,1), filter .15s, opacity .2s;
}
.saude__seg:hover { filter: brightness(1.12); }
.saude__seg.apagado { opacity: .3; }
.saude__seg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(255 255 255 / .2), transparent 55%); pointer-events: none; }
.saude__legenda { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 12px; }
.leg {
  display: inline-flex; align-items: center; gap: 7px; border: 0; background: none; padding: 2px 0; cursor: pointer;
  color: var(--sobre-navy-2); font-size: .84rem;
}
.leg b { color: var(--sobre-navy); font: 600 .9rem var(--f-disp); font-variant-numeric: tabular-nums; }
.leg i { width: 9px; height: 9px; border-radius: 3px; background: var(--c); }
.leg[aria-pressed="true"] { color: #fff; text-decoration: underline; text-underline-offset: 4px; }

/* ranking de secretarias */
.hero__meio { display: grid; gap: 12px; align-content: start; min-width: 0; }
.ranking { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.rank {
  display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 4px 10px; width: 100%;
  padding: 6px 8px; margin: 0 -8px; width: calc(100% + 16px); border: 0; border-radius: 10px; background: none;
  color: var(--sobre-navy); cursor: pointer; text-align: left;
}
.rank:hover { background: rgb(255 255 255 / .06); }
.rank[aria-pressed="true"] { background: rgb(59 111 224 / .25); }
.rank__pos { font: 700 .72rem var(--f-mono); color: var(--sobre-navy-2); }
.rank__nome { font-size: .86rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rank__n { font: 700 .95rem var(--f-disp); font-variant-numeric: tabular-nums; }
.rank__barra { grid-column: 2 / 4; display: flex; height: 5px; gap: 2px; border-radius: 3px; overflow: hidden; background: rgb(255 255 255 / .06); }
.rank__barra i { background: var(--c); }

.tipos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.tipo {
  --glass: rgb(21 33 44 / .55); --tire: #0A1016; --rim: #7F93A7;
  display: grid; justify-items: start; gap: 3px; padding: 10px 10px 9px; border-radius: 14px; cursor: pointer; text-align: left;
  background: rgb(255 255 255 / .05); border: 1px solid rgb(255 255 255 / .07); color: var(--sobre-navy);
  transition: background .15s, border-color .15s, transform .15s;
}
.tipo:hover { background: rgb(255 255 255 / .09); transform: translateY(-1px); }
.tipo[aria-pressed="true"] { background: rgb(59 111 224 / .28); border-color: rgb(108 149 240 / .7); }
/* com algum tipo/secretaria marcado, os não marcados ficam apagados (clique para somar à seleção) */
.tipo, .rank { transition: opacity .2s, background .2s, border-color .2s; }
.tipo.apagado, .rank.apagado { opacity: .45; }
.tipo.apagado:hover, .rank.apagado:hover { opacity: .8; }
.tipo svg { width: 100%; max-width: 74px; height: 34px; color: var(--c); }
.tipo__foto {
  width: 100%; height: 64px; object-fit: cover; border-radius: 10px; margin-bottom: 4px;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--c) 65%, transparent);
}
/* com alguma imagem no painel, o desenho ocupa a mesma altura para os números ficarem alinhados */
.tipos:has(.tipo__foto) .tipo svg { height: 64px; margin-bottom: 4px; }
.tipo i { display: inline-block; width: 9px; height: 9px; border-radius: 3px; background: var(--c); margin-right: 6px; }
.tipo b { font: 700 1.35rem/1 var(--f-disp); font-variant-numeric: tabular-nums; }
.tipo span { font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sobre-navy-2); }

.ranking__vazio { font-size: .85rem; color: var(--sobre-navy-2); }

/* =========================================================
   FILTROS
   ========================================================= */
.filtros {
  position: sticky; top: calc(var(--topo-h) + env(safe-area-inset-top)); z-index: 40;
  margin: 12px -8px 0; padding: 8px;
}
.filtros__in {
  position: relative; display: flex; align-items: center; gap: 8px; padding: 8px; border-radius: 16px;
  background: color-mix(in srgb, var(--card) 88%, transparent);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--linha-2); box-shadow: var(--sombra);
}
.filtro-txt { position: relative; display: flex; align-items: center; flex: 0 1 230px; min-width: 150px; }
.filtro-txt .i { position: absolute; left: 11px; color: var(--tinta-3); pointer-events: none; }
.filtro-txt input {
  width: 100%; height: 38px; padding: 0 10px 0 36px; border-radius: 10px;
  border: 1px solid var(--linha); background: var(--elev); font-size: 16px;
}
.filtro-txt input:focus { outline: none; border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-2); }
.pilulas { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; flex: 1; min-width: 0; padding: 2px; }
.pilulas::-webkit-scrollbar { display: none; }
.pilula {
  display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 10px 0 12px; flex: none;
  border-radius: 999px; border: 1px dashed var(--tinta-3); background: transparent; color: var(--tinta-2);
  cursor: pointer; font-size: .88rem; font-weight: 500; transition: background .15s, border-color .15s, color .15s;
}
.pilula .i { width: 15px; height: 15px; transition: transform .15s; }
.pilula:hover { border-color: var(--tinta-2); color: var(--tinta); background: var(--elev); }
.pilula[aria-expanded="true"] .i { transform: rotate(180deg); }
.pilula.ativa { border-style: solid; border-color: var(--navy); background: var(--navy); color: #fff; }
:root[data-theme="dark"] .pilula.ativa { border-color: var(--acento); background: var(--acento); }
.pilula__val { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.pilula__n { background: rgb(255 255 255 / .2); border-radius: 999px; padding: 1px 7px; font-size: .75rem; font-weight: 700; }
.limpar { flex: none; }
.limpar[hidden] { display: none; }

/* popover */
.pop {
  position: fixed; z-index: 70; width: 320px; max-height: min(460px, 70vh);
  display: flex; flex-direction: column; border-radius: 16px;
  background: var(--elev); border: 1px solid var(--linha); box-shadow: var(--sombra-alta);
  animation: surge .16s ease-out;
}
.pop[hidden] { display: none; }
.pop__topo { position: relative; display: flex; align-items: center; justify-content: space-between; padding: 10px 8px 4px 16px; }
.pop__topo b { font: 600 1rem var(--f-disp); }
.pop__busca { position: relative; display: flex; align-items: center; margin: 4px 12px 8px; }
.pop__busca .i { position: absolute; left: 10px; color: var(--tinta-3); width: 16px; height: 16px; }
.pop__busca input { width: 100%; height: 38px; padding: 0 10px 0 32px; border: 1px solid var(--linha); border-radius: 10px; background: var(--card); font-size: 16px; }
.pop__busca input:focus { outline: none; border-color: var(--acento); }
.pop__busca[hidden] { display: none; }
.pop__lista { overflow: auto; padding: 0 6px 6px; flex: 1; overscroll-behavior: contain; }
.opc {
  display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 10px;
  width: 100%; padding: 8px 10px; border: 0; border-radius: 9px; background: none; cursor: pointer; text-align: left; font-size: .9rem;
}
.opc:hover { background: var(--card-2); }
.opc__caixa { width: 18px; height: 18px; border-radius: 5px; border: 1.5px solid var(--tinta-3); display: grid; place-items: center; transition: background .12s, border-color .12s; }
.opc__caixa .i { width: 12px; height: 12px; stroke-width: 3; color: #fff; opacity: 0; }
.opc[aria-checked="true"] .opc__caixa { background: var(--navy); border-color: var(--navy); }
:root[data-theme="dark"] .opc[aria-checked="true"] .opc__caixa { background: var(--acento); border-color: var(--acento); }
.opc[aria-checked="true"] .opc__caixa .i { opacity: 1; }
.opc__nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: flex; align-items: center; gap: 8px; }
.opc__nome i { width: 9px; height: 9px; border-radius: 3px; background: var(--c); flex: none; }
.opc__n { font: 600 .8rem var(--f-mono); color: var(--tinta-3); }
.opc.zero { opacity: .45; }
.pop__rodape { display: flex; justify-content: space-between; padding: 8px 10px 10px; border-top: 1px solid var(--linha-2); }
.pop__vazio { padding: 16px; text-align: center; color: var(--tinta-3); font-size: .88rem; }
.veu { position: fixed; inset: 0; z-index: 65; background: rgb(14 21 28 / .4); }
.veu[hidden] { display: none; }

/* =========================================================
   CONTEÚDO
   ========================================================= */
.conteudo { outline: none; margin-top: 6px; }
.conteudo__barra { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 10px 0 14px; }
.conteudo__titulo h1 { font-size: 1.8rem; letter-spacing: -.03em; }
.conteudo__titulo p { color: var(--tinta-2); font-size: .9rem; margin-top: 2px; }
.conteudo__ctrl { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.seg { display: inline-flex; padding: 3px; border-radius: 12px; background: var(--bg-2); border: 1px solid var(--linha-2); }
.seg button {
  display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border: 0; border-radius: 9px;
  background: none; color: var(--tinta-2); cursor: pointer; font-weight: 500; font-size: .88rem;
}
.seg button .i { width: 16px; height: 16px; }
.seg button[aria-selected="true"] { background: var(--elev); color: var(--tinta); box-shadow: 0 1px 3px rgb(20 33 45 / .15); font-weight: 600; }
.sel {
  display: inline-flex; align-items: center; height: 40px; border-radius: 11px; border: 1px solid var(--linha);
  background: var(--elev); padding-left: 12px; font-size: .88rem; color: var(--tinta-3);
}
.sel[hidden] { display: none; }
.sel select { border: 0; background: transparent; height: 100%; padding: 0 10px 0 6px; font-weight: 600; color: var(--tinta); cursor: pointer; font-size: .88rem; }
.sel select:focus { outline: none; }
.sel:focus-within { border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-2); }
.dica-dnd { display: flex; align-items: center; gap: 8px; font-size: .84rem; color: var(--tinta-3); margin: -4px 0 14px; }

/* salvando no banco */
.sinc { font-size: .78rem; font-weight: 600; color: var(--tinta-3); white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.sinc::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cat-manut); animation: pisca 1s infinite; }
.sinc.ok { color: var(--cat-reserva); }
.sinc.ok::before { background: var(--cat-reserva); animation: none; }

/* dados antigos no navegador */
.faixa {
  display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; margin: 0 0 16px; padding: 12px 14px 12px 18px;
  border-radius: 14px; background: color-mix(in srgb, var(--acento) 10%, var(--elev)); border: 1px solid color-mix(in srgb, var(--acento) 35%, transparent);
  font-size: .9rem;
}
.faixa[hidden] { display: none; }
.faixa p { flex: 1 1 360px; }
.faixa__botoes { display: flex; gap: 6px; flex-wrap: wrap; }

/* leitor: só consulta */
body.somente-leitura #btnNovo, body.somente-leitura [data-editar], body.somente-leitura .dica-dnd,
body.somente-leitura [data-acao="importar"], body.somente-leitura [data-acao="modelo"],
body.somente-leitura [data-acao="lotacoes"], body.somente-leitura [data-acao="config"] { display: none !important; }
.dica-dnd .i { width: 16px; height: 16px; }
.dica-dnd[hidden] { display: none; }

/* ---------- placa Mercosul ---------- */
.placa {
  --h: 30px;
  display: inline-grid; grid-template-rows: calc(var(--h) * .3) 1fr; min-width: calc(var(--h) * 3.3);
  height: var(--h); border-radius: calc(var(--h) * .14); overflow: hidden; vertical-align: middle;
  background: #FAFBFC; color: #111; border: 1.5px solid #1A1A1A; box-shadow: 0 1px 2px rgb(0 0 0 / .15);
  flex: none;
}
.placa__faixa {
  background: linear-gradient(90deg, #0A3A9E, #1550C9); color: #fff; display: flex; align-items: center; justify-content: center;
  font: 700 calc(var(--h) * .18)/1 var(--f-ui); letter-spacing: .2em; position: relative;
}
.placa__faixa::before { /* bandeira */
  content: ""; position: absolute; right: calc(var(--h) * .1); top: 50%; transform: translateY(-50%);
  width: calc(var(--h) * .22); height: calc(var(--h) * .15); background: #1C9A45;
  box-shadow: inset 0 0 0 calc(var(--h) * .035) #FFD400; border-radius: 1px;
}
.placa__num {
  display: flex; align-items: center; justify-content: center; padding: 0 calc(var(--h) * .2);
  font: 700 calc(var(--h) * .5)/1 var(--f-mono); letter-spacing: .06em; white-space: nowrap;
}
.placa--g { --h: 62px; }

/* ---------- etiqueta de tipo ---------- */
.tag-tipo {
  display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 8px; border-radius: 999px;
  font-size: .78rem; font-weight: 600; background: color-mix(in srgb, var(--c) 16%, var(--elev)); color: var(--c); white-space: nowrap;
}
.tag-tipo::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 20%, transparent); }
.tag-tipo small { font-weight: 500; opacity: .85; }
.tag-cat {
  display: inline-flex; align-items: center; padding: 1px 8px; border-radius: 6px; vertical-align: middle;
  font: 600 .66rem/1.5 var(--f-ui); letter-spacing: .04em; text-transform: uppercase; white-space: nowrap;
  color: var(--c); background: color-mix(in srgb, var(--c) 14%, transparent); border: 1px solid color-mix(in srgb, var(--c) 35%, transparent);
}

/* =========================================================
   PÁTIO
   ========================================================= */
.patio { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)); gap: 16px; align-items: start; }

/* ---------- uma secretaria escolhida: pátio + ficha ---------- */
.patio--foco { grid-template-columns: minmax(0, 1fr) minmax(340px, 420px); gap: 20px; }
.patio__vagas { display: grid; gap: 16px; min-width: 0; }
.patio--foco .carros { grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); }

.avatar {
  --tam: 64px; width: var(--tam); height: var(--tam); border-radius: 50%; flex: none; object-fit: cover; display: grid; place-items: center;
  background: var(--card-2); box-shadow: 0 0 0 3px var(--card), 0 0 0 5px color-mix(in srgb, var(--c, var(--acento)) 70%, transparent);
}
.avatar--ini { font: 700 calc(var(--tam) * .36)/1 var(--f-disp); color: #fff; letter-spacing: -.02em;
  background: linear-gradient(145deg, color-mix(in srgb, var(--c, var(--acento)) 85%, #fff), color-mix(in srgb, var(--c, var(--acento)) 70%, #000)); }
.avatar--novo { background: transparent; border: 2px dashed color-mix(in srgb, var(--c, var(--acento)) 55%, transparent); color: var(--c, var(--acento)); box-shadow: none; font: 700 1.3rem var(--f-disp); }
.avatar--novo .i { width: 22px; height: 22px; }
.avatar--p { --tam: 30px; box-shadow: 0 0 0 2px var(--card), 0 0 0 3px color-mix(in srgb, var(--c, var(--acento)) 60%, transparent); }

.ficha {
  position: sticky; top: calc(var(--topo-h) + 16px); border-radius: var(--raio); overflow: hidden; background: var(--card);
  border: 1px solid var(--linha-2); box-shadow: var(--sombra); animation: ficha .45s cubic-bezier(.2,.8,.2,1) backwards;
  max-height: calc(100dvh - var(--topo-h) - 32px); display: flex; flex-direction: column;
}
@keyframes ficha { from { opacity: 0; transform: translateX(24px); } }
.ficha__topo {
  position: relative; isolation: isolate; padding: 18px 20px 16px; color: var(--sobre-navy);
  background:
    radial-gradient(320px 180px at 90% 0%, color-mix(in srgb, var(--c) 55%, transparent), transparent 70%),
    linear-gradient(160deg, var(--navy-2), var(--navy));
}
.ficha__grade {
  position: absolute; inset: 0; z-index: -1; opacity: .55;
  background-image: linear-gradient(rgb(143 163 182 / .09) 1px, transparent 1px), linear-gradient(90deg, rgb(143 163 182 / .09) 1px, transparent 1px);
  background-size: 22px 22px; -webkit-mask-image: linear-gradient(180deg, #000, transparent); mask-image: linear-gradient(180deg, #000, transparent);
}
.ficha__linha { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 34px; }
.ficha__linha .sobre { color: var(--sobre-navy-2); }
.ficha__editar { background: rgb(255 255 255 / .08); border-color: rgb(255 255 255 / .14); color: var(--sobre-navy); }
.ficha__editar:hover { background: rgb(255 255 255 / .14); border-color: rgb(255 255 255 / .3); }
.ficha__sigla { font: 700 clamp(1.9rem, 3.2vw, 2.6rem)/1 var(--f-disp); letter-spacing: -.03em; color: #fff; margin-top: 6px; overflow-wrap: anywhere; }
.ficha__extenso { font-size: .95rem; color: var(--sobre-navy); margin-top: 6px; line-height: 1.3; }
.ficha__add { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 0; border: 0; background: none; color: var(--sobre-navy-2); font-size: .85rem; cursor: pointer; }
.ficha__add:hover { color: #fff; }
.ficha__add .i { width: 14px; height: 14px; }
.ficha__num { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: 16px 0 12px; border-radius: 12px; overflow: hidden; background: rgb(255 255 255 / .08); }
.ficha__num div { background: rgb(12 19 26 / .45); padding: 8px 10px; }
.ficha__num dt { font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sobre-navy-2); }
.ficha__num dd { margin: 2px 0 0; font: 700 1.35rem/1.1 var(--f-disp); font-variant-numeric: tabular-nums; color: #fff; }
.ficha__num small { font-size: .8rem; opacity: .7; margin-left: 1px; }
.ficha__barra { display: flex; height: 6px; gap: 2px; border-radius: 3px; overflow: hidden; background: rgb(255 255 255 / .08); }
.ficha__barra i { background: var(--c); }
.ficha__corpo { padding: 16px 16px 18px; display: grid; gap: 10px; overflow: auto; }
.ficha__tit { font: 600 .7rem var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-3); margin: 4px 4px 0; }
.ficha__pessoas { display: grid; gap: 10px; }

.pessoa {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px 14px; align-items: center; padding: 14px; border-radius: 16px; text-align: left;
  background: var(--elev); border: 1px solid var(--linha-2); color: var(--tinta);
  animation: surge .4s cubic-bezier(.2,.8,.2,1) backwards; animation-delay: calc(120ms + var(--i, 0) * 90ms);
}
.pessoa__txt { display: grid; gap: 2px; min-width: 0; }
.pessoa__rot { font-size: .66rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--c, var(--acento)); }
.pessoa__nome { font: 700 1.08rem/1.2 var(--f-disp); letter-spacing: -.01em; overflow-wrap: anywhere; }
.pessoa__tel { font: 600 .92rem var(--f-mono); color: var(--tinta-2); text-decoration: none; width: fit-content; }
.pessoa__tel:hover { color: var(--acento); text-decoration: underline; }
.pessoa__semtel { color: var(--tinta-3); font-size: .8rem; }
.pessoa__acoes { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; padding-top: 10px; border-top: 1px dashed var(--linha); }
.acao {
  display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 11px; border-radius: 999px; cursor: pointer; text-decoration: none;
  font-size: .8rem; font-weight: 600; color: var(--tinta-2); background: var(--card-2); border: 1px solid transparent; transition: background .15s, color .15s, border-color .15s;
}
.acao .i { width: 15px; height: 15px; }
.acao:hover { color: var(--tinta); border-color: var(--linha); background: var(--elev); }
.acao--whats { color: #128C4A; background: color-mix(in srgb, #25D366 14%, var(--elev)); }
.acao--whats:hover { color: #0B6B37; border-color: color-mix(in srgb, #25D366 50%, transparent); }
:root[data-theme="dark"] .acao--whats { color: #5BE08F; }
.pessoa--vazia { border-style: dashed; background: transparent; cursor: default; }
button.pessoa--vazia { cursor: pointer; transition: border-color .15s, background .15s; }
button.pessoa--vazia:hover { border-color: var(--c, var(--acento)); background: color-mix(in srgb, var(--c, var(--acento)) 6%, transparent); }
.pessoa--vazia b { font: 700 1rem var(--f-disp); }
.pessoa--vazia small { color: var(--tinta-3); font-size: .8rem; }

.ficha__modelos { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.ficha__modelos li { position: relative; display: flex; justify-content: space-between; gap: 10px; padding: 7px 10px; border-radius: 9px; font-size: .82rem; overflow: hidden; isolation: isolate; }
.ficha__modelos li i { position: absolute; inset: 0 auto 0 0; width: var(--w); z-index: -1; background: color-mix(in srgb, var(--c) 13%, transparent); border-radius: 9px; }
.ficha__modelos span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--tinta-2); }
.ficha__modelos b { font-variant-numeric: tabular-nums; }
.ficha__mais { color: var(--tinta-3); font-size: .78rem !important; }

/* secretário no cartão da visão Secretarias e no painel do veículo */
.sec__extenso { font-size: .78rem; color: var(--tinta-3); margin-top: 2px; }
.sec__resp { display: flex; align-items: center; gap: 10px; margin-top: 2px; font-size: .85rem; font-weight: 600; --c: var(--acento); }
.sec__resp span { display: grid; min-width: 0; }
.sec__resp small { font-size: .64rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-3); }
.g__resp { display: flex !important; align-items: center; gap: 12px; }
.g__resp dd a { color: var(--acento); }

/* edição da ficha */
.resp { display: grid; gap: 14px; max-height: min(70vh, 720px); overflow: auto; }
.resp__pessoas { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.resp__pessoa { margin: 0; padding: 14px; border-radius: 16px; border: 1px solid var(--linha); background: var(--card-2); display: grid; gap: 12px; min-width: 0; }
.resp__pessoa legend { padding: 0 6px; font: 600 .72rem var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-2); }
.resp__foto { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.resp__foto small { color: var(--tinta-3); font-size: .78rem; }
.resp__avatar {
  position: relative; width: 84px; height: 84px; border-radius: 50%; border: 2px dashed var(--linha); background: var(--elev); padding: 0; overflow: hidden;
  cursor: pointer; display: grid; place-items: center; color: var(--tinta-3); flex: none;
}
.resp__avatar img { width: 100%; height: 100%; object-fit: cover; }
.resp__avatar span .i { width: 26px; height: 26px; }
.resp__avatar em { position: absolute; inset: auto 0 0; padding: 4px 0 6px; font: 600 .62rem var(--f-ui); font-style: normal; text-align: center; color: #fff; background: rgb(10 16 22 / .6); opacity: 0; transition: opacity .15s; }
.resp__avatar:hover em, .resp__avatar:focus-visible em { opacity: 1; }
.resp__avatar:has(img) { border-style: solid; border-color: var(--acento); }
.resp__campos { display: grid; gap: 10px; }
.resp__dica { font-size: .8rem; color: var(--tinta-3); }
.campo label small { font-weight: 500; color: var(--tinta-3); }
.vaga {
  display: block; width: 100%; min-width: 0;
  background: var(--card); border: 1px solid var(--linha-2); border-radius: var(--raio);
  box-shadow: var(--sombra); overflow: hidden; transition: border-color .15s, box-shadow .15s, transform .15s;
}
.vaga.alvo { border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-2), var(--sombra-alta); transform: scale(1.012); }
.vaga__topo { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px 10px; }
.vaga__nome { flex: 1; min-width: 0; }
.vaga__nome h2 { font-size: 1.1rem; overflow: hidden; white-space: nowrap; display: flex; align-items: center; gap: 8px; }
.vaga__nome h2 > span { overflow: hidden; text-overflow: ellipsis; }
.vaga__nome h2 .tag-cat { flex: none; }
.vaga__nome h2 i { width: 10px; height: 10px; border-radius: 3px; background: var(--c); flex: none; }
.vaga__nome p { font-size: .78rem; color: var(--tinta-3); margin-top: 3px; }
.vaga__n { font: 700 1.6rem/1 var(--f-disp); letter-spacing: -.03em; font-variant-numeric: tabular-nums; text-align: right; }
.vaga__n small { display: block; font: 500 .68rem var(--f-ui); color: var(--tinta-3); letter-spacing: .04em; margin-top: 3px; }
.mini { display: flex; height: 6px; border-radius: 3px; overflow: hidden; gap: 2px; margin: 0 16px 12px; background: var(--linha-2); }
.mini i { background: var(--c); }
.carros { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 6px; padding: 0 10px 12px; }
.carro {
  position: relative; display: grid; justify-items: center; align-content: center; gap: 5px; padding: 10px 6px 8px; border-radius: 12px;
  border: 1px solid transparent; background: var(--elev); cursor: pointer; min-width: 0; color: var(--tinta);
  transition: transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s, border-color .15s, opacity .15s;
  animation: estaciona .45s cubic-bezier(.2,.8,.2,1) backwards; animation-delay: calc(var(--d, 0) * 10ms);
}
.carro:hover { transform: translateY(-3px); box-shadow: 0 10px 22px -10px rgb(20 33 45 / .45); border-color: var(--linha); }
.carro:hover .carro__svg { transform: translateX(3px); }
.carro[draggable="true"] { cursor: grab; }
.carro.arrastando { opacity: .3; }
.carro__svg { width: 64px; height: 30px; color: var(--c); transition: transform .25s; filter: drop-shadow(0 3px 3px rgb(20 33 45 / .18)); }
.carro__foto {
  width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 8px; background: var(--card-2);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--c) 60%, transparent); transition: transform .25s;
}
.carro:hover .carro__foto { transform: scale(1.04); }
.carro__placa { font: 700 .74rem/1 var(--f-mono); letter-spacing: .04em; }
.carro__pend {
  position: absolute; top: 4px; right: 4px; width: 16px; height: 16px; border-radius: 50%; display: grid; place-items: center;
  font: 800 .66rem/1 var(--f-ui); color: #fff; background: var(--perigo); box-shadow: 0 0 0 2px var(--elev);
}
.carro__pend--dup { background: var(--cat-manut); }
.carro__mod { font-size: .66rem; color: var(--tinta-3); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.carro.destaque { border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-2); animation: estaciona .45s cubic-bezier(.2,.8,.2,1) backwards, brilho 1.6s ease-out 2; }
@keyframes estaciona { from { opacity: 0; transform: translateX(-18px); } }
@keyframes pisca { 50% { opacity: .3; } }
@keyframes brilho { 50% { box-shadow: 0 0 0 7px var(--acento-2); } }

/* =========================================================
   LISTA
   ========================================================= */
.lista:not([hidden]), .secs:not([hidden]) { animation: surge .25s ease-out; }
.tabela-wrap { background: var(--card); border: 1px solid var(--linha-2); border-radius: var(--raio); box-shadow: var(--sombra); overflow: auto; }
.tabela { width: 100%; border-collapse: collapse; font-size: .9rem; }
.tabela th, .tabela td { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--linha-2); white-space: nowrap; }
.tabela th {
  position: sticky; top: 0; z-index: 1; background: var(--card-2); color: var(--tinta-3);
  font: 600 .72rem var(--f-ui); letter-spacing: .08em; text-transform: uppercase; user-select: none;
}
.tabela th[data-sort] { cursor: pointer; }
.tabela th[data-sort]:hover { color: var(--tinta); }
.tabela th[aria-sort="ascending"]::after { content: " ↑"; }
.tabela th[aria-sort="descending"]::after { content: " ↓"; }
.tabela tbody tr { cursor: pointer; transition: background .1s; }
.tabela tbody tr:hover { background: var(--elev); }
.tabela tbody tr:last-child td { border-bottom: 0; }
.cel-veic { display: flex; align-items: center; gap: 12px; }
.cel-veic svg { width: 46px; height: 22px; color: var(--c); flex: none; }
.cel-foto { width: 46px; height: 30px; object-fit: cover; border-radius: 6px; flex: none; box-shadow: 0 0 0 2px color-mix(in srgb, var(--c) 60%, transparent); }
.cel-veic b { display: block; font-weight: 600; }
.cel-veic small { color: var(--tinta-3); font-size: .78rem; }
.pends { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.tag-pend { font-size: .6rem; }
.g__pend { border: 1px solid color-mix(in srgb, var(--perigo) 35%, transparent); background: color-mix(in srgb, var(--perigo) 7%, var(--elev)); border-radius: 14px; padding: 12px 14px; }
.g__pend h3 { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; font: 600 .72rem var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--perigo); }
.g__pend h3 .i { width: 14px; height: 14px; }
.g__pend ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.g__pend li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: .84rem; }
.g__pend li span:not(.tag-cat) { flex: 1 1 200px; color: var(--tinta-2); }
.g__pend p { margin: 10px 0 0; font-size: .8rem; color: var(--tinta-3); }
.col-acoes { width: 1%; }
.acoes { display: flex; gap: 2px; justify-content: flex-end; opacity: .5; transition: opacity .15s; }
tr:hover .acoes, .acoes:focus-within { opacity: 1; }
mark { background: #FFE27A; color: #111; border-radius: 3px; padding: 0 1px; }
.paginacao { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 14px 2px 0; flex-wrap: wrap; font-size: .88rem; color: var(--tinta-2); }
.paginacao:empty { display: none; }
.paginacao__btns { display: flex; gap: 4px; flex-wrap: wrap; align-items: center; }
.paginacao .btn[aria-current="page"] { background: var(--navy); color: #fff; border-color: var(--navy); }
.paginacao select { height: 34px; border-radius: 10px; border: 1px solid var(--linha); background: var(--elev); padding: 0 8px; }

/* =========================================================
   SECRETARIAS
   ========================================================= */
.secs { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 14px; }
.secs[hidden] { display: none; }
.sec {
  display: grid; gap: 12px; text-align: left; padding: 18px; border-radius: var(--raio); cursor: pointer; color: inherit;
  background: var(--card); border: 1px solid var(--linha-2); box-shadow: var(--sombra); position: relative; overflow: hidden;
  transition: transform .18s, box-shadow .18s, border-color .15s;
  animation: estaciona .45s cubic-bezier(.2,.8,.2,1) backwards; animation-delay: calc(var(--d, 0) * 25ms);
}
.sec:hover { transform: translateY(-3px); box-shadow: var(--sombra-alta); border-color: var(--linha); }
.sec__topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.sec__rank { font: 700 .72rem var(--f-mono); color: var(--tinta-3); }
.sec__nome { font: 700 1.25rem/1.1 var(--f-disp); letter-spacing: -.02em; margin-top: 4px; }
.sec__n { font: 700 2.6rem/.9 var(--f-disp); letter-spacing: -.05em; font-variant-numeric: tabular-nums; text-align: right; }
.sec__pct { font-size: .75rem; color: var(--tinta-3); text-align: right; margin-top: 4px; }
.sec__barra { display: flex; height: 10px; border-radius: 5px; overflow: hidden; gap: 2px; background: var(--linha-2); }
.sec__barra i { background: var(--c); }
.sec__leg { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .78rem; color: var(--tinta-2); }
.sec__leg span { display: inline-flex; align-items: center; gap: 5px; }
.sec__leg i { width: 8px; height: 8px; border-radius: 2px; background: var(--c); }
.sec__frota { display: flex; flex-wrap: wrap; gap: 2px 3px; }
.sec__frota svg { width: 26px; height: 12px; color: var(--c); }
.sec__mod { font-size: .78rem; color: var(--tinta-3); border-top: 1px dashed var(--linha); padding-top: 10px; }
.sec__mod b { color: var(--tinta-2); font-weight: 600; }

.vazio { text-align: center; padding: 56px 16px; color: var(--tinta-2); display: grid; justify-items: center; gap: 6px; }
.vazio[hidden] { display: none; }
.vazio__car { width: 120px; height: 56px; color: var(--linha); margin-bottom: 8px; }
.vazio .btn { margin-top: 10px; }


/* =========================================================
   GAVETA (detalhe)
   ========================================================= */
.gaveta {
  margin: 0 0 0 auto; height: 100dvh; max-height: 100dvh; width: min(560px, 100vw); max-width: 100vw;
  border: 0; padding: 0; background: var(--card); color: var(--tinta); box-shadow: var(--sombra-alta);
  border-radius: 24px 0 0 24px; overflow: hidden;
}
.gaveta[open] { display: flex; flex-direction: column; animation: gaveta .3s cubic-bezier(.2,.8,.2,1); }
.g__rolagem { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; }
.g__rolagem > .g__palco { flex: none; }
/* conteúdo com ao menos a altura da gaveta: dá para subir a foto em qualquer aba */
.g__rolagem > .g__corpo { min-height: calc(100dvh - 47px); }
.gaveta::backdrop { background: rgb(14 21 28 / .45); backdrop-filter: blur(2px); }
@keyframes gaveta { from { transform: translateX(40px); opacity: 0; } }
.g__palco {
  position: relative; padding: calc(16px + env(safe-area-inset-top)) 20px 20px; color: var(--sobre-navy);
  background:
    radial-gradient(420px 220px at 75% 10%, color-mix(in srgb, var(--c) 45%, transparent), transparent 70%),
    linear-gradient(160deg, var(--navy-2), var(--navy));
  --glass: rgb(21 33 44 / .5); --tire: #05090D; --rim: #8FA3B6;
}
.g__palco .sobre { color: var(--sobre-navy-2); }
.g__barra { display: flex; justify-content: space-between; align-items: center; }
.g__barra .btn { color: var(--sobre-navy); }
.g__barra .btn:hover { background: rgb(255 255 255 / .08); }
.g__car { display: block; width: 78%; max-width: 300px; height: auto; aspect-ratio: 64 / 30; margin: 10px auto 0; color: var(--c); filter: drop-shadow(0 16px 14px rgb(0 0 0 / .45)); animation: entra .7s cubic-bezier(.2,.8,.2,1); }
@keyframes entra { from { transform: translateX(-80px); opacity: 0; } }
.g__foto {
  display: block; width: 100%; aspect-ratio: 16 / 10; max-height: 34dvh; object-fit: cover; margin: 12px 0 16px; border-radius: 16px;
  background: rgb(0 0 0 / .25); box-shadow: 0 18px 30px -14px rgb(0 0 0 / .7), 0 0 0 2px color-mix(in srgb, var(--c) 55%, transparent);
  animation: surge .35s ease-out;
}
.g__chao { height: 12px; margin: -4px auto 16px; width: 70%; border-radius: 50%; background: radial-gradient(closest-side, rgb(0 0 0 / .55), transparent); }
.g__id { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.g__id h2 { font-size: 1.35rem; color: #fff; margin-top: 4px; }
.g__id p { font-size: .85rem; color: var(--sobre-navy-2); margin-top: 3px; }
.g__corpo { flex: 1 0 auto; padding: 18px 20px calc(20px + env(safe-area-inset-bottom)); display: grid; gap: 22px; align-content: start; grid-auto-rows: max-content; }
.g__dados { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0; background: var(--linha-2); border-radius: 14px; overflow: hidden; border: 1px solid var(--linha-2); }
.g__dados div { background: var(--elev); padding: 10px 12px; min-width: 0; }
.g__dados dt { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-3); }
.g__dados dd { margin: 3px 0 0; font-weight: 600; overflow-wrap: anywhere; }
.g__sec h3 { font: 600 .72rem var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-3); margin-bottom: 8px; }
.g__acao { display: flex; gap: 8px; flex-wrap: wrap; }
.g__acao select { flex: 1 1 180px; min-width: 0; height: 40px; border-radius: 11px; border: 1px solid var(--linha); background: var(--elev); padding: 0 10px; font-size: 16px; }
.g__botoes { display: flex; gap: 8px; flex-wrap: wrap; }
.linha-tempo { list-style: none; margin: 0; padding: 0 0 0 16px; border-left: 2px solid var(--linha); display: grid; gap: 14px; }
.linha-tempo li { position: relative; font-size: .88rem; }
.linha-tempo li::before { content: ""; position: absolute; left: -22px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--c, var(--tinta-3)); box-shadow: 0 0 0 3px var(--card); }
.linha-tempo small { display: block; color: var(--tinta-3); font-size: .76rem; }
.g__vazio { font-size: .86rem; color: var(--tinta-3); }
.g__dica { font-size: .8rem; color: var(--tinta-3); margin-top: 8px; }

/* =========================================================
   PALETA DE COMANDOS
   ========================================================= */
.paleta {
  margin: 12vh auto auto; width: min(640px, calc(100vw - 24px)); max-height: 70vh; padding: 0; border: 1px solid var(--linha);
  border-radius: 18px; background: var(--elev); color: var(--tinta); box-shadow: var(--sombra-alta); overflow: hidden;
}
.paleta[open] { display: flex; flex-direction: column; animation: surge .16s ease-out; }
.paleta::backdrop { background: rgb(14 21 28 / .45); backdrop-filter: blur(3px); }
.paleta__busca { display: flex; align-items: center; gap: 10px; padding: 0 14px; border-bottom: 1px solid var(--linha-2); }
.paleta__busca .i { color: var(--tinta-3); }
.paleta__busca input { flex: 1; height: 56px; border: 0; background: none; font-size: 17px; outline: none; min-width: 0; }
.paleta__lista { overflow: auto; padding: 6px; flex: 1; overscroll-behavior: contain; }
.paleta__grupo { padding: 10px 10px 4px; font: 600 11px var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-3); }
.p-item {
  display: flex; align-items: center; gap: 12px; width: 100%; padding: 8px 10px; border: 0; border-radius: 10px;
  background: none; cursor: pointer; text-align: left; min-height: 48px;
}
.p-item[aria-selected="true"] { background: var(--card-2); box-shadow: inset 3px 0 0 var(--acento); }
.p-item__ic { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: var(--card-2); color: var(--tinta-2); flex: none; }
.p-item__txt { flex: 1; min-width: 0; }
.p-item__txt b { display: block; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.p-item__txt small { color: var(--tinta-3); font-size: .8rem; }
.p-item__car { width: 48px; height: 22px; color: var(--c); flex: none; }
.p-item__foto { width: 48px; height: 32px; object-fit: cover; border-radius: 6px; flex: none; }
.p-item .placa { --h: 26px; }
.paleta__rodape { display: flex; gap: 16px; padding: 10px 14px; border-top: 1px solid var(--linha-2); font-size: .78rem; color: var(--tinta-3); }
.paleta__vazio { padding: 28px; text-align: center; color: var(--tinta-3); }

/* =========================================================
   MODAIS
   ========================================================= */
.modal {
  border: 0; padding: 0; border-radius: 22px; width: min(560px, calc(100vw - 24px));
  background: var(--card); color: var(--tinta); box-shadow: var(--sombra-alta);
}
.modal[open] { animation: surge .2s ease-out; }
.modal--p { width: min(440px, calc(100vw - 24px)); }
.modal::backdrop { background: rgb(14 21 28 / .5); backdrop-filter: blur(3px); }
.modal__topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 20px 16px 8px 22px; }
.modal__topo h2 { font-size: 1.35rem; margin-top: 4px; }
.modal__previa {
  margin: 8px 22px 4px; padding: 14px 16px; border-radius: 16px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  background: linear-gradient(160deg, var(--navy-2), var(--navy)); color: var(--sobre-navy);
  --glass: rgb(21 33 44 / .5); --tire: #05090D; --rim: #8FA3B6;
}
.modal__previa svg { width: 104px; height: 49px; color: var(--c, #9CB0C3); transition: color .3s; }
.modal__previa .tag-tipo { margin-left: auto; }
.modal__foto { width: 104px; height: 65px; object-fit: cover; border-radius: 10px; box-shadow: 0 0 0 2px color-mix(in srgb, var(--c, #9CB0C3) 60%, transparent); }
.foto-campo { display: flex; gap: 6px; }
.config__tit { font: 600 .72rem var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-3); }
.config__desc { font-size: .86rem; color: var(--tinta-2); margin: 6px 0 12px; }
.config__tipos { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.config__tipo { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 14px; border: 1px solid var(--linha-2); background: var(--elev); }
.config__img {
  width: 96px; height: 60px; flex: none; border-radius: 10px; overflow: hidden; display: grid; place-items: center;
  background: linear-gradient(160deg, var(--navy-2), var(--navy)); box-shadow: 0 0 0 2px color-mix(in srgb, var(--c) 60%, transparent);
  --glass: rgb(21 33 44 / .55); --tire: #0A1016; --rim: #7F93A7;
}
.config__img svg { width: 70px; height: 33px; color: var(--c); }
.config__img img { width: 100%; height: 100%; object-fit: cover; }
.config__nome { flex: 1; min-width: 0; }
.config__nome b { display: block; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.config__nome small { color: var(--tinta-3); font-size: .78rem; }
.config__acoes { display: flex; gap: 4px; flex: none; }
.config .erro { margin-top: 10px; }
.config__tit--sep { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--linha-2); }
.modal--g { width: min(720px, calc(100vw - 24px)); }
.lot { display: grid; gap: 12px; max-height: min(64vh, 640px); overflow: auto; }
.lot .config__desc { margin: 0; }
.lot__resumo { display: grid; gap: 10px; }
.lot__cats { display: flex; flex-wrap: wrap; gap: 6px; }
.lot__chip { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border-radius: 999px; border: 1px solid transparent; font: 500 .82rem var(--f-ui); color: var(--tinta-2); background: var(--card-2); cursor: pointer; transition: border-color .15s, background .15s; }
.lot__chip:hover { border-color: var(--linha); background: var(--elev); }
.lot__chip i { width: 9px; height: 9px; border-radius: 3px; background: var(--c); }
.lot__chip b { color: var(--tinta); }
.lot__chip-ic { width: 13px; height: 13px; color: var(--tinta-3); }
.lot__chip--sel { border-color: var(--acento); background: var(--elev); box-shadow: 0 0 0 3px var(--acento-2); }
.lot__chip--novo { color: var(--acento); font-weight: 600; background: none; border: 1px dashed color-mix(in srgb, var(--acento) 55%, transparent); }
.lot__chip--novo .lot__chip-ic { color: var(--acento); }
.lot__catform { display: grid; gap: 10px; padding: 14px; border-radius: 14px; background: var(--elev); border: 1px solid var(--linha-2); box-shadow: inset 3px 0 0 var(--c); animation: surge .16s ease-out; }
.lot__catform-tit { font: 600 .72rem var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-3); }
.lot__catform-linha { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.lot__catform input { flex: 1 1 220px; min-width: 0; height: 40px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--linha); background: var(--elev); font-size: 16px; font-weight: 600; }
.lot__catform input:focus, .lot__catform select:focus { outline: none; border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-2); }
.lot__cores { display: flex; gap: 6px; }
.lot__cor { width: 26px; height: 26px; border-radius: 8px; border: 2px solid var(--elev); background: var(--c); box-shadow: 0 0 0 1px var(--linha); cursor: pointer; }
.lot__cor[aria-checked="true"] { box-shadow: 0 0 0 2px var(--c); }
.lot__catform-bts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.lot__catform-esp { flex: 1; }
.lot__catform-dica { font-size: .78rem; color: var(--tinta-3); }
.lot__catform .erro:empty { display: none; }
.lot__catexcluir { display: grid; gap: 8px; padding: 10px 12px; border-radius: 10px; background: color-mix(in srgb, var(--perigo) 7%, transparent); font-size: .86rem; }
.lot__catexcluir select { height: 38px; border-radius: 10px; border: 1px solid var(--linha); background: var(--elev); padding: 0 8px; font-size: 15px; }
.lot__busca { width: 100%; height: 40px; padding: 0 12px; border-radius: 11px; border: 1px solid var(--linha); background: var(--elev); font-size: 16px; }
.lot__busca:focus, .lot__nome:focus, .lot__cat:focus { outline: none; border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-2); }
.lot__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.lot__item {
  display: grid; grid-template-columns: minmax(0, 1fr) 150px 88px; gap: 8px; align-items: center; padding: 6px 6px 6px 10px;
  border-radius: 12px; background: var(--elev); border: 1px solid var(--linha-2); box-shadow: inset 3px 0 0 var(--c);
}
.lot__nome, .lot__cat { height: 38px; min-width: 0; border-radius: 9px; border: 1px solid transparent; background: transparent; font-size: 15px; }
.lot__nome { padding: 0 8px; font-weight: 600; }
.lot__nome:hover, .lot__cat:hover { border-color: var(--linha); }
.lot__cat { padding: 0 6px; color: var(--c); font-weight: 600; background: color-mix(in srgb, var(--c) 10%, transparent); }
.lot__n { text-align: right; font: 700 1rem var(--f-disp); font-variant-numeric: tabular-nums; padding-right: 6px; }
.lot__n small { font: 500 .72rem var(--f-ui); color: var(--tinta-3); }
.lot__vazio { color: var(--tinta-3); font-size: .9rem; padding: 8px 2px; }
.foto-campo .btn:first-of-type { flex: 1; min-height: 44px; }
.foto-campo .btn--icone { min-height: 44px; width: 44px; }
.modal__corpo { padding: 14px 22px; }
#txtConfirmar { white-space: pre-line; }
.modal__rodape { display: flex; gap: 8px; padding: 10px 22px 22px; justify-content: flex-end; flex-wrap: wrap; }
.grade2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.span2 { grid-column: 1 / -1; }
.campo { display: grid; gap: 6px; min-width: 0; }
.campo label { font-size: .8rem; font-weight: 600; color: var(--tinta-2); }
.campo input, .campo select { width: 100%; height: 44px; padding: 0 12px; border-radius: 11px; border: 1px solid var(--linha); background: var(--elev); font-size: 16px; }
.campo select:focus { outline: none; border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-2); }
.campo .dica { font-size: .78rem; color: var(--tinta-3); }
.pilha { display: grid; gap: 14px; }
.aviso { padding: 10px 12px; border-radius: 11px; font-size: .88rem; background: color-mix(in srgb, var(--cat-manut) 14%, var(--elev)); border: 1px solid color-mix(in srgb, var(--cat-manut) 40%, transparent); }
.marcar { display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; cursor: pointer; }
.marcar input { width: 18px; height: 18px; accent-color: var(--acento); }
.marcar--linha { display: flex; align-items: flex-start; gap: 12px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--linha-2); background: var(--elev); }
.marcar--linha input { margin-top: 2px; flex: none; }
.marcar--linha span { display: grid; }
.marcar--linha small { color: var(--tinta-3); font-size: .8rem; }
.marcar--linha:has(input:disabled) { opacity: .65; cursor: default; }
.config__qr { display: grid; gap: 6px; }

/* =========================================================
   PAINEL DO VEÍCULO: ABAS
   ========================================================= */
.g__foto { cursor: zoom-in; }
.g__abas {
  display: flex; gap: 2px; padding: 0 12px; overflow-x: auto; scrollbar-width: none; flex: none;
  background: var(--card); border-bottom: 1px solid var(--linha-2); position: sticky; top: 0; z-index: 3;
}
.g__abas::-webkit-scrollbar { display: none; }
.g__aba {
  position: relative; flex: none; display: inline-flex; align-items: center; gap: 6px; height: 46px; padding: 0 12px; border: 0; background: none;
  font-size: .88rem; font-weight: 600; color: var(--tinta-3); cursor: pointer; white-space: nowrap;
}
.g__aba small { font-size: .7rem; padding: 1px 6px; border-radius: 999px; background: var(--card-2); color: var(--tinta-2); font-variant-numeric: tabular-nums; }
.g__aba:hover { color: var(--tinta); }
.g__aba[aria-selected="true"] { color: var(--tinta); }
.g__aba[aria-selected="true"]::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--acento); }
.g__aba[aria-selected="true"] small { background: var(--acento-2); color: var(--acento); }
.g__tit { font: 600 .72rem var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-3); }
.g__tit-linha { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 34px; }
.g__nada { color: var(--tinta-3); font-weight: 400; }
.g__botoes--fim { justify-content: flex-end; }
.g__form { display: grid; gap: 14px; padding: 16px; border-radius: 16px; background: var(--card-2); border: 1px solid var(--linha); }
.g__form textarea { width: 100%; padding: 10px 12px; border-radius: 11px; border: 1px solid var(--linha); background: var(--elev); font: inherit; font-size: 16px; resize: vertical; }
.g__form textarea:focus { outline: none; border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-2); }
.mono { font-family: var(--f-mono); letter-spacing: .02em; }
.g__carregando { display: flex; gap: 6px; justify-content: center; padding: 24px 0; }
.g__carregando span { width: 8px; height: 8px; border-radius: 50%; background: var(--tinta-3); animation: pisca 1s infinite; }
.g__carregando span:nth-child(2) { animation-delay: .15s; }
.g__carregando span:nth-child(3) { animation-delay: .3s; }

/* números do veículo */
.kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
.kpi {
  position: relative; display: grid; gap: 2px; padding: 12px 12px 11px; border-radius: 14px; background: var(--elev); border: 1px solid var(--linha-2);
  overflow: hidden; min-width: 0;
}
.kpi__ic { position: absolute; right: 10px; top: 10px; width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; color: var(--acento); background: var(--acento-2); }
.kpi__ic .i { width: 16px; height: 16px; }
.kpi dt { font-size: .66rem; letter-spacing: .09em; text-transform: uppercase; color: var(--tinta-3); padding-right: 36px; }
.kpi dd { margin: 0; font: 700 1.35rem/1.15 var(--f-disp); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.kpi dd small { font: 600 .75rem var(--f-ui); color: var(--tinta-3); letter-spacing: 0; }
.kpi > small { font-size: .72rem; color: var(--tinta-3); }

/* custos */
.graf { margin: 0; padding: 14px 14px 10px; border-radius: 16px; background: var(--elev); border: 1px solid var(--linha-2); }
.graf figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; font: 600 .72rem var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-3); }
.graf figcaption small { display: flex; gap: 10px; flex-wrap: wrap; letter-spacing: 0; text-transform: none; font-weight: 500; font-size: .72rem; }
.graf figcaption small span { display: inline-flex; align-items: center; gap: 4px; }
.graf figcaption small i { width: 8px; height: 8px; border-radius: 2px; background: var(--c); }
.graf__barras { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; height: 130px; margin-top: 10px; align-items: end; }
.graf__col { display: grid; grid-template-rows: auto 1fr auto; height: 100%; text-align: center; gap: 4px; min-width: 0; }
.graf__v { font-size: .66rem; font-weight: 600; color: var(--tinta-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.graf__pilha { align-self: end; display: flex; flex-direction: column-reverse; min-height: 2px; border-radius: 6px 6px 3px 3px; overflow: hidden; gap: 1px; animation: sobe-barra .6s cubic-bezier(.2,.8,.2,1) backwards; transform-origin: bottom; }
.graf__pilha i { background: var(--c); }
@keyframes sobe-barra { from { transform: scaleY(0); } }
.graf__m { font-size: .7rem; color: var(--tinta-3); text-transform: capitalize; }
.lanc__novos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.lanc__novo {
  display: grid; justify-items: center; gap: 4px; padding: 10px 4px; border-radius: 12px; cursor: pointer; font-size: .74rem; font-weight: 600;
  color: var(--c); background: color-mix(in srgb, var(--c) 9%, var(--elev)); border: 1px solid color-mix(in srgb, var(--c) 25%, transparent);
  transition: background .15s, transform .1s;
}
.lanc__novo:hover { background: color-mix(in srgb, var(--c) 16%, var(--elev)); }
.lanc__novo:active { transform: translateY(1px); }
.lanc__novo[aria-pressed="true"] { background: var(--c); color: #fff; }
.lanc__novo .i { width: 20px; height: 20px; }
.lanc__form { border-left: 4px solid var(--c); }
.lancs { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.lanc {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 4px 12px; padding: 10px 12px;
  border-radius: 12px; background: var(--elev); border: 1px solid var(--linha-2);
}
.lanc__ic { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: var(--c); background: color-mix(in srgb, var(--c) 13%, transparent); }
.lanc__ic .i { width: 17px; height: 17px; }
.lanc__txt { min-width: 0; }
.lanc__txt b { display: block; font-weight: 600; font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lanc__txt b span { font-weight: 400; color: var(--tinta-2); }
.lanc__txt small { color: var(--tinta-3); font-size: .74rem; }
.lanc__valor { font: 700 .95rem var(--f-disp); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.lanc__consumo { grid-column: 2; grid-row: 2; justify-self: start; font-size: .7rem; font-weight: 700; padding: 1px 8px; border-radius: 999px; color: var(--cat-reserva); background: color-mix(in srgb, var(--cat-reserva) 13%, transparent); }
.lanc__acoes { display: flex; gap: 2px; grid-column: 4; }
.lanc__acoes button { width: 30px; height: 30px; border: 0; border-radius: 8px; background: none; color: var(--tinta-3); cursor: pointer; display: grid; place-items: center; }
.lanc__acoes button:hover { background: var(--card-2); color: var(--tinta); }
.lanc__acoes .i { width: 15px; height: 15px; }
.campo .dica { font-size: .74rem; color: var(--tinta-3); min-height: 1em; }

/* galeria */
.galeria { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.galeria__item { position: relative; margin: 0; border-radius: 12px; overflow: hidden; background: var(--card-2); aspect-ratio: 4 / 3; }
.galeria__item.capa { grid-column: span 2; grid-row: span 2; }
.galeria__img { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.galeria__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.galeria__img:hover img { transform: scale(1.04); }
.galeria__item figcaption { position: absolute; left: 8px; top: 8px; padding: 2px 8px; border-radius: 999px; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: rgb(10 16 22 / .6); backdrop-filter: blur(4px); }
.galeria__acoes { position: absolute; right: 6px; bottom: 6px; display: flex; gap: 4px; opacity: 0; transition: opacity .15s; }
.galeria__item:hover .galeria__acoes, .galeria__item:focus-within .galeria__acoes { opacity: 1; }
.galeria__acoes button { width: 30px; height: 30px; border: 0; border-radius: 8px; display: grid; place-items: center; cursor: pointer; color: #fff; background: rgb(10 16 22 / .65); backdrop-filter: blur(4px); }
.galeria__acoes button:hover { background: rgb(10 16 22 / .85); }
.galeria__acoes .i { width: 15px; height: 15px; }
@media (hover: none) { .galeria__acoes { opacity: 1; } }

/* QR code */
.qr { display: grid; gap: 14px; justify-items: center; text-align: center; }
.qr__cartao {
  display: grid; justify-items: center; gap: 10px; padding: 18px 18px 14px; border-radius: 20px; background: #fff; color: #14212D;
  box-shadow: 0 18px 40px -18px rgb(20 33 45 / .45), 0 0 0 1px var(--linha-2);
}
.qr__img { width: min(260px, 70vw); height: auto; display: block; }
.qr__rotulo { display: grid; justify-items: center; gap: 4px; }
.qr__rotulo span { font-size: .8rem; color: #475A6C; font-weight: 600; }
.qr__dica { font-size: .84rem; color: var(--tinta-2); max-width: 420px; }
.qr__link { display: flex; gap: 6px; width: 100%; }
.qr__link input { flex: 1; min-width: 0; height: 36px; padding: 0 10px; border-radius: 10px; border: 1px solid var(--linha); background: var(--card-2); font: 500 .8rem var(--f-mono); color: var(--tinta-2); }
.qr .g__botoes { justify-content: center; }
.qr__novo { color: var(--tinta-3); }

/* fotos em tela cheia */
.visor { width: 100vw; height: 100dvh; max-width: 100vw; max-height: 100dvh; margin: 0; padding: 0; border: 0; background: rgb(6 10 14 / .94); }
.visor[open] { display: grid; place-items: center; animation: surge .2s ease-out; }
.visor::backdrop { background: transparent; }
.visor img { max-width: min(94vw, 1600px); max-height: 86dvh; object-fit: contain; border-radius: 10px; box-shadow: 0 30px 80px -20px #000; }
.visor__passo { position: absolute; top: 50%; right: 16px; width: 48px; height: 48px; margin-top: -24px; border: 0; border-radius: 50%; display: grid; place-items: center; cursor: pointer; color: #fff; background: rgb(255 255 255 / .12); }
.visor__passo:hover { background: rgb(255 255 255 / .22); }
.visor__passo--ant { right: auto; left: 16px; transform: scaleX(-1); }
.visor__passo[hidden] { display: none; }
.visor__n { position: absolute; bottom: calc(18px + env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); color: #cfd8e1; font-size: .85rem; font-weight: 600; }
.visor__fechar { position: absolute; top: calc(14px + env(safe-area-inset-top)); right: 14px; color: #fff; background: rgb(255 255 255 / .12); border: 0; }

/* =========================================================
   PÁGINA DO QR CODE (sem login)
   ========================================================= */
body.modo-publico .entrada { display: none; }
.publico { min-height: 100dvh; padding: 0 0 calc(24px + env(safe-area-inset-bottom)); background: var(--bg); }
.publico[hidden] { display: none; }
.pub { width: min(640px, 100%); margin: 0 auto; display: grid; gap: 18px; padding: 0 16px; }
.pub--carregando { padding-top: 30vh; }
.pub--erro { padding-top: 18vh; justify-items: center; text-align: center; }
.pub--erro h1 { font: 700 1.5rem var(--f-disp); }
.pub--erro p { color: var(--tinta-2); max-width: 420px; }
.pub__capa {
  position: relative; margin: 0 -16px; min-height: 180px; display: grid; place-items: center; overflow: hidden; isolation: isolate;
  background: radial-gradient(420px 220px at 75% 10%, color-mix(in srgb, var(--c) 45%, transparent), transparent 70%), linear-gradient(160deg, var(--navy-2), var(--navy));
  --glass: rgb(21 33 44 / .5); --tire: #05090D; --rim: #8FA3B6;
}
.pub__marca { position: absolute; top: calc(12px + env(safe-area-inset-top)); left: 16px; z-index: 2; display: flex; align-items: center; gap: 10px; color: #fff; }
.pub__marca > span:last-child { display: grid; line-height: 1.1; }
.pub__marca b { font: 700 1rem var(--f-disp); }
.pub__marca small { font-size: .72rem; color: var(--sobre-navy-2); }
.pub__foto { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.pub__foto img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.pub__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(6 10 14 / .55), transparent 35%); pointer-events: none; }
.pub__desenho { padding: 70px 0 30px; }
.pub__car { width: min(300px, 70vw); height: auto; aspect-ratio: 64 / 30; color: var(--c); filter: drop-shadow(0 16px 14px rgb(0 0 0 / .45)); }
.pub__id { display: grid; justify-items: start; gap: 8px; margin-top: -4px; }
.pub__id h1 { font: 700 clamp(1.5rem, 6vw, 2rem)/1.1 var(--f-disp); letter-spacing: -.02em; }
.pub__id p { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.pub__sec { display: grid; gap: 10px; }
.pub__sec h2 { font: 600 .72rem var(--f-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-3); }
.pub__galeria { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; }
.pub__galeria button { flex: none; width: 128px; aspect-ratio: 4 / 3; padding: 0; border: 0; border-radius: 12px; overflow: hidden; scroll-snap-align: start; cursor: zoom-in; background: var(--card-2); }
.pub__galeria img { width: 100%; height: 100%; object-fit: cover; }
.pub__lot { display: grid; gap: 2px; padding: 14px; border-radius: 14px; background: var(--elev); border: 1px solid var(--linha-2); }
.pub__lot b { font: 700 1.1rem var(--f-disp); }
.pub__lot span { color: var(--tinta-2); font-size: .9rem; }
.pub__lot small { color: var(--tinta-3); font-size: .82rem; margin-top: 4px; }
.pub__vazio { font-weight: 500; font-style: italic; color: var(--tinta-3); }
.pub__nada { padding: 14px; border-radius: 14px; border: 1px dashed var(--linha); color: var(--tinta-3); font-size: .9rem; text-align: center; }
.kpi--vazio dd { font: italic 500 .95rem/1.6 var(--f-ui); letter-spacing: 0; color: var(--tinta-3); }
.pessoa--semnome .pessoa__foto { color: var(--tinta-3); }
.lanc__txt small.lanc__conferir { display: block; margin-top: 2px; color: var(--tp-4, #b45309); font-weight: 600; }
.lanc--conferir { border-color: color-mix(in srgb, #d97706 45%, var(--linha-2)); }
.lanc__fotos { display: flex; gap: 6px; margin-top: 8px; }
.lanc__fotos button { position: relative; width: 64px; height: 48px; padding: 0; border: 1px solid var(--linha-2); border-radius: 8px; overflow: hidden; cursor: zoom-in; background: var(--card-2); }
.lanc__fotos img { width: 100%; height: 100%; object-fit: cover; }
.lanc__fotos span { position: absolute; inset: auto 0 0; font-size: .6rem; font-weight: 600; color: #fff; background: rgb(10 16 22 / .6); text-align: center; }

/* página do QR: registrar abastecimento */
.qa { --r: 20px; width: min(560px, 100%); margin: 0 auto; display: grid; gap: 14px; padding: 0 16px calc(104px + env(safe-area-inset-bottom)); }
.qa__hero {
  position: relative; margin: 0 -16px; min-height: 360px; display: grid; align-content: space-between; overflow: hidden; isolation: isolate; color: #fff;
  background: radial-gradient(460px 260px at 80% 0%, color-mix(in srgb, var(--c) 55%, transparent), transparent 70%), linear-gradient(160deg, var(--navy-2), var(--navy));
  --glass: rgb(21 33 44 / .5); --tire: #05090D; --rim: #8FA3B6;
}
.qa__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; animation: qa-zoom 14s ease-out both; }
@keyframes qa-zoom { from { transform: scale(1.12); } }
.qa__hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(6 10 14 / .55) 0%, transparent 28%, transparent 42%, rgb(6 10 14 / .92) 100%); }
.qa__hero--sem::after { background: linear-gradient(180deg, transparent 50%, rgb(6 10 14 / .6)); }
.qa__desenho { position: absolute; inset: 64px 0 auto; display: grid; place-items: center; z-index: -1; }
.qa__car { width: min(300px, 72vw); height: auto; aspect-ratio: 64 / 30; color: var(--c); filter: drop-shadow(0 18px 16px rgb(0 0 0 / .5)); animation: entra .8s cubic-bezier(.2,.8,.2,1); }
.qa__topo { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: calc(12px + env(safe-area-inset-top)) 16px 0; }
.qa__marca { display: flex; align-items: center; gap: 10px; }
.qa__marca > span:last-child { display: grid; line-height: 1.1; }
.qa__marca b { font: 700 1rem var(--f-disp); }
.qa__marca small { font-size: .72rem; color: rgb(255 255 255 / .7); }
.qa__hora { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 99px; font: 600 .85rem var(--f-mono); background: rgb(255 255 255 / .14); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgb(255 255 255 / .18); }
.qa__hora .i { width: 15px; height: 15px; }
.qa__id { display: grid; justify-items: start; gap: 8px; padding: 0 16px 18px; animation: surge .5s .1s ease-out backwards; }
.qa__id h1 { font: 700 clamp(1.5rem, 7vw, 2.1rem)/1.05 var(--f-disp); letter-spacing: -.02em; text-shadow: 0 2px 18px rgb(0 0 0 / .45); }
.qa__resp { display: flex; align-items: center; gap: 10px; margin-top: 4px; padding: 6px 14px 6px 6px; border-radius: 99px; background: rgb(255 255 255 / .14); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgb(255 255 255 / .2); max-width: 100%; }
.qa__resp .qa__av { --tam: 38px; flex: none; box-shadow: 0 0 0 2px rgb(255 255 255 / .85); }
.qa__resp > span { display: grid; line-height: 1.15; min-width: 0; }
.qa__resp small { font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; color: rgb(255 255 255 / .72); }
.qa__resp b { font: 700 .98rem var(--f-disp); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.qa__passos { position: sticky; top: 0; z-index: 5; margin: 0 -16px; padding: 10px 16px 0; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.qa__passos ol { display: grid; grid-template-columns: repeat(var(--n, 3), 1fr); gap: 6px; list-style: none; margin: 0; padding: 0; }
.qa__passos li { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: .8rem; font-weight: 600; color: var(--tinta-3); transition: color .2s; }
.qa__passos li span { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: .72rem; border: 1.5px solid currentColor; transition: background .2s, border-color .2s, color .2s; }
.qa__passos li.feito { color: #15803d; }
.qa__passos li.feito span { background: #16a34a; border-color: #16a34a; color: #fff; font-size: 0; }
.qa__passos li.feito span::before { content: "✓"; font-size: .78rem; }
.qa__progresso { height: 4px; margin: 10px -16px 0; background: var(--linha-2); }
.qa__progresso i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--c), #16a34a); transition: width .5s cubic-bezier(.2,.8,.2,1); border-radius: 0 4px 4px 0; }

.qa__form { display: grid; gap: 12px; }
.qa__card { position: relative; border-radius: var(--r); background: var(--elev); border: 1px solid var(--linha-2); box-shadow: 0 12px 30px -22px rgb(0 0 0 / .45); overflow: hidden; isolation: isolate; transition: border-color .2s, box-shadow .2s; }
.qa__num { position: absolute; top: 14px; right: 14px; z-index: 2; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font: 700 .8rem var(--f-disp); color: var(--tinta-3); background: var(--card-2, var(--bg)); border: 1px solid var(--linha-2); }
.qa__num .i { width: 15px; height: 15px; }
.qa__txt { display: grid; gap: 2px; }
.qa__txt b { font: 700 1.08rem var(--f-disp); letter-spacing: -.01em; }
.qa__txt small { font-size: .8rem; color: var(--tinta-3); line-height: 1.35; }
.qa--alerta { animation: qa-treme .45s; border-color: var(--perigo, #dc2626); box-shadow: 0 0 0 3px color-mix(in srgb, var(--perigo, #dc2626) 20%, transparent); }
@keyframes qa-treme { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }

/* litros: o "tanque" enche conforme o número */
.qa__litros { display: grid; gap: 10px; padding: 16px; --nivel: 0; }
.qa__liquido { position: absolute; inset: auto 0 0; z-index: -1; height: calc(8px + var(--nivel) * 100%); background: color-mix(in srgb, var(--c) 16%, transparent); transition: height .7s cubic-bezier(.2,.8,.2,1); }
.qa__liquido svg { position: absolute; left: 0; bottom: 100%; width: 200%; height: 14px; fill: color-mix(in srgb, var(--c) 16%, transparent); animation: qa-onda 3.2s linear infinite; }
@keyframes qa-onda { to { transform: translateX(-50%); } }
.qa__litros--ok { border-color: color-mix(in srgb, #16a34a 45%, var(--linha-2)); }
.qa__litros--ok .qa__num { background: #16a34a; border-color: #16a34a; color: #fff; font-size: 0; }
.qa__litros--ok .qa__num::before { content: "✓"; font-size: .85rem; }
/* valor pelo contrato, calculado enquanto digita os litros */
.qa__litros { grid-template-columns: minmax(0, 1fr); } /* o número grande não empurra o cartão para os lados */
.qa__preco { display: flex; align-items: center; gap: 8px; min-height: 0; font-size: .85rem; color: var(--tinta-2); }
.qa__preco:empty { display: none; }
.qa__preco .i { width: 16px; height: 16px; color: var(--c); }
.qa__preco b { color: var(--tinta); font-variant-numeric: tabular-nums; }
.qa__campo { display: flex; align-items: baseline; gap: 10px; padding: 4px 4px 0; border-bottom: 2px solid var(--linha); transition: border-color .2s; }
.qa__campo:focus-within { border-color: var(--c); }
.qa__campo input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; color: var(--tinta); padding: 0; font: 800 clamp(2.8rem, 15vw, 3.6rem)/1.05 var(--f-disp); letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.qa__campo input::placeholder { color: color-mix(in srgb, var(--tinta-3) 45%, transparent); }
.qa__campo em { font-style: normal; font: 600 1rem var(--f-ui); color: var(--tinta-3); }

/* fotos */
.qa__tirar { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px; width: 100%; min-height: 112px; padding: 16px; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.qa__ilustra { position: relative; width: 64px; height: 64px; border-radius: 18px; display: grid; place-items: center; color: var(--c); background: color-mix(in srgb, var(--c) 12%, transparent); }
.qa__ilustra .i { width: 30px; height: 30px; }
.qa__ilustra i { position: absolute; inset: -5px; border-radius: 22px; border: 2px dashed color-mix(in srgb, var(--c) 40%, transparent); animation: qa-gira 18s linear infinite; }
@keyframes qa-gira { to { transform: rotate(360deg); } }
.qa__cam { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px; border-radius: 14px; font-weight: 700; font-size: .95rem; color: #fff; background: var(--navy); }
.qa__cam .i { width: 18px; height: 18px; }
.qa__foto--lendo { opacity: .6; pointer-events: none; }
.qa__foto--ok { border-color: color-mix(in srgb, #16a34a 50%, var(--linha-2)); }
.qa__foto--ok .qa__tirar { min-height: 200px; align-items: end; grid-template-columns: 1fr; color: #fff; }
.qa__foto--ok img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; }
.qa__foto--ok .qa__tirar::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 40%, rgb(6 10 14 / .82)); }
.qa__foto--ok .qa__num { background: #16a34a; border-color: #16a34a; color: #fff; }
.qa__foto--ok .qa__txt small { color: rgb(255 255 255 / .8); }
.qa__foto--chegou { animation: qa-chega .5s cubic-bezier(.2,.8,.2,1); }
@keyframes qa-chega { from { transform: scale(.96); opacity: .4; } }
.qa__erro { text-align: center; }
.qa__erro:empty { display: none; }

/* botão fixo embaixo, com a barra de envio dentro */
.qa__barra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 6; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--bg) 92%, transparent) 30%); }
.qa__enviar {
  position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; width: min(528px, 100%); min-height: 60px; margin: 0 auto; padding: 0 20px;
  border: 0; border-radius: 18px; overflow: hidden; isolation: isolate; cursor: pointer; font: 700 1.05rem var(--f-ui); color: var(--tinta-2);
  background: var(--card-2, var(--elev)); box-shadow: inset 0 0 0 1px var(--linha-2); transition: background .25s, color .25s, box-shadow .25s, transform .1s; --carga: 0;
}
.qa__enviar:active { transform: scale(.985); }
.qa__enviar .i { width: 20px; height: 20px; }
.qa__enviar.pronto, .qa__enviar.enviando { color: #fff; background: #16a34a; box-shadow: 0 14px 30px -12px rgb(22 163 74 / .7); }
.qa__enviar.pronto:not(.enviando)::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, transparent 30%, rgb(255 255 255 / .28) 50%, transparent 70%); background-size: 250% 100%; animation: qa-brilho 2.4s ease-in-out infinite; }
@keyframes qa-brilho { from { background-position: 150% 0; } to { background-position: -100% 0; } }
.qa__enviar.enviando { background: #15803d; cursor: progress; }
.qa__carga { position: absolute; inset: 0 auto 0 0; z-index: -1; width: calc(var(--carga) * 100%); background: #22c55e; transition: width .3s ease-out; }

/* depois de registrar */
.qa--feito { justify-items: center; text-align: center; gap: 12px; padding-top: calc(8vh + env(safe-area-inset-top)); padding-bottom: 32px; position: relative; overflow: hidden; }
.qa__ok { width: 96px; height: 96px; }
.qa__ok circle { fill: #16a34a; stroke: none; transform-origin: center; animation: qa-pop .5s cubic-bezier(.2,1.4,.4,1) both; }
.qa__ok path { fill: none; stroke: #fff; stroke-width: 4.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; animation: qa-risca .45s .35s ease-out forwards; }
@keyframes qa-pop { from { transform: scale(0); } }
@keyframes qa-risca { to { stroke-dashoffset: 0; } }
.qa__festa { position: absolute; inset: 0; pointer-events: none; }
.qa__festa i { position: absolute; left: 50%; top: calc(8vh + 48px); width: 8px; height: 14px; border-radius: 2px; opacity: 0;
  background: hsl(calc(var(--i) * 47deg) 80% 55%); animation: qa-confete 1.3s calc(.25s + var(--i) * 12ms) cubic-bezier(.15,.7,.3,1) forwards; }
@keyframes qa-confete {
  0% { opacity: 1; transform: translate(-50%, 0) rotate(0); }
  100% { opacity: 0; transform: translate(calc(-50% + (var(--i) - 8.5) * 22px), calc(120px + var(--i) * 11px)) rotate(calc(var(--i) * 97deg)); }
}
.qa--feito h1 { font: 700 1.55rem var(--f-disp); letter-spacing: -.02em; animation: surge .4s .3s ease-out backwards; }
.qa__total { display: flex; align-items: baseline; gap: 8px; margin: -4px 0 4px; }
.qa__total b { font: 800 4rem/1 var(--f-disp); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.qa__total span { font-weight: 600; color: var(--tinta-3); }
.qa__recibo {
  width: 100%; display: grid; gap: 14px; padding: 16px 16px 22px; text-align: left; border-radius: 18px 18px 6px 6px; background: var(--elev);
  border: 1px solid var(--linha-2); box-shadow: 0 16px 36px -24px rgb(0 0 0 / .5); animation: surge .5s .45s ease-out backwards;
  -webkit-mask: radial-gradient(7px at 50% 100%, #0000 98%, #000) 50% 100% / 18px 100% repeat-x; mask: radial-gradient(7px at 50% 100%, #0000 98%, #000) 50% 100% / 18px 100% repeat-x;
}
.qa__recibo-topo { display: flex; align-items: center; gap: 12px; padding-bottom: 12px; border-bottom: 1px dashed var(--linha); }
.qa__recibo-topo > span { display: grid; min-width: 0; }
.qa__recibo-topo b { font: 700 .98rem var(--f-disp); }
.qa__recibo-topo small { font-size: .8rem; color: var(--tinta-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qa__recibo dl { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; margin: 0; }
.qa__recibo dt { font-size: .66rem; letter-spacing: .09em; text-transform: uppercase; color: var(--tinta-3); }
.qa__recibo dd { margin: 2px 0 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.qa__recibo-fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.qa__recibo-fotos figure { position: relative; margin: 0; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; }
.qa__recibo-fotos img { width: 100%; height: 100%; object-fit: cover; }
.qa__recibo-fotos figcaption { position: absolute; left: 6px; bottom: 6px; display: flex; align-items: center; gap: 4px; padding: 3px 8px 3px 6px; border-radius: 99px; font-size: .72rem; font-weight: 700; color: #fff; background: rgb(22 163 74 / .9); }
.qa__recibo-fotos figcaption .i { width: 12px; height: 12px; }
.qa__obrigado { max-width: 360px; font-size: .92rem; color: var(--tinta-2); animation: surge .5s .6s ease-out backwards; }
.qa__obrigado b { display: block; margin-top: 4px; color: var(--tinta); }
@media (prefers-reduced-motion: reduce) {
  .qa__bg, .qa__liquido svg, .qa__ilustra i, .qa__enviar::after, .qa__festa { animation: none !important; }
  .qa__festa { display: none; }
}
.pub__rodape { display: grid; justify-items: center; gap: 10px; text-align: center; padding: 18px 0 8px; border-top: 1px solid var(--linha); font-size: .8rem; color: var(--tinta-3); }

/* etiquetas (só aparecem na impressão) */
.etiquetas { display: none; }

/* =========================================================
   LOGIN
   ========================================================= */
/* nada do sistema aparece antes do login */
body:not(.logado) > .topo, body:not(.logado) > main { display: none; }
body.logado .entrada { display: none; }
.entrada {
  position: fixed; inset: 0; z-index: 100; overflow: auto; display: grid; place-items: center;
  padding: max(20px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));
  background: #dbe2e9; color: #192a40; color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
.entrada ::selection { background: #9ce5d5; color: #102138; }
.entrada :focus-visible { outline: 3px solid #72cbbb; outline-offset: 3px; }
.lg-shell {
  width: min(100%, 1540px); height: calc(100svh - 40px); max-height: 900px; min-height: 0;
  display: grid; grid-template-columns: minmax(0, 54%) minmax(0, 46%);
  overflow: hidden; border-radius: 24px; background: #f8fafc;
  box-shadow: 0 30px 80px rgba(27, 45, 65, .12), 0 2px 8px rgba(27, 45, 65, .05);
}
.lg-hero {
  position: relative; min-height: 0; padding: clamp(28px, 5.5vh, 52px) 58px clamp(24px, 4.5vh, 40px); overflow: hidden;
  background:
    radial-gradient(ellipse 53% 46% at 76% 57%, rgba(96, 183, 180, .13), transparent 80%),
    linear-gradient(140deg, #132740 0%, #101f34 59%, #0b1a2d 100%);
  color: #f7fafc; isolation: isolate; display: flex; flex-direction: column;
}
.lg-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .27;
  background-image: linear-gradient(rgba(149, 197, 210, .10) 1px, transparent 1px), linear-gradient(90deg, rgba(149, 197, 210, .10) 1px, transparent 1px);
  background-size: 54px 54px;
  -webkit-mask-image: linear-gradient(100deg, transparent 15%, #000 78%);
  mask-image: linear-gradient(100deg, transparent 15%, #000 78%);
}
.lg-hero::after {
  content: ""; position: absolute; width: 540px; height: 540px; border: 1px solid rgba(176, 224, 223, .08); border-radius: 50%;
  right: -182px; top: 244px; box-shadow: 0 0 0 90px rgba(176,224,223,.025), 0 0 0 180px rgba(176,224,223,.018); pointer-events: none;
}
.lg-brand { display: inline-flex; align-items: center; gap: 13px; width: max-content; }
.lg-brand-mark { display: block; width: 43px; height: 43px; flex: none; }
.lg-brand-name { display: block; font-size: 22px; line-height: 1; letter-spacing: -.8px; font-weight: 720; }
.lg-brand-caption { display: block; font-size: 8.5px; font-weight: 720; letter-spacing: 2.55px; color: #a8b9c8; margin-top: 7px; }
.lg-hero-copy { position: relative; z-index: 2; margin-top: clamp(28px, 9vh, 108px); max-width: 610px; }
.lg-eyebrow { display: inline-flex; align-items: center; gap: 10px; color: #a8e5d6; font-size: 11px; letter-spacing: 2.3px; font-weight: 740; }
.lg-eyebrow::before { content: ""; width: 19px; height: 1px; background: currentColor; }
.lg-hero .lg-h1 { font-size: clamp(32px, min(4.2vw, 6.6vh), 68px); line-height: 1.095; letter-spacing: -.066em; font-weight: 670; margin: clamp(14px, 2.6vh, 25px) 0 clamp(12px, 2.3vh, 22px); color: #f7fafc; max-width: none; }
.lg-h1 em { font-style: normal; color: #a8e5d6; }
.lg-hero-copy > p:not(.lg-h1) { color: #adbecd; font-size: clamp(13px, 1.75vh, 15px); line-height: 1.65; max-width: 400px; margin: 0; }
.lg-visual { position: relative; z-index: 1; flex: 1; min-height: 0; margin-top: clamp(10px, 2.2vh, 20px); }
/* quando falta altura, os quadros diminuem juntos (a escala --esc vem do app.js) */
.lg-orbit { position: absolute; width: min(690px, 110%); height: auto; right: -96px; top: -84px; opacity: .9; pointer-events: none; transform: scale(var(--esc, 1)); transform-origin: right top; }
.lg-insight-card {
  position: absolute; left: 0; bottom: 12px; width: min(424px, 77%); min-height: 187px; padding: 23px 25px;
  border: 1px solid rgba(187, 231, 230, .18); border-radius: 18px;
  background: linear-gradient(140deg, rgba(49,77,99,.78), rgba(28,53,77,.87));
  box-shadow: 0 22px 55px rgba(3,14,27,.18), inset 0 1px 0 rgba(255,255,255,.05);
  -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
  transform: scale(var(--esc, 1)); transform-origin: left bottom;
}
.lg-card-top { display: flex; justify-content: space-between; align-items: center; color: #bed0dd; font-size: 10px; font-weight: 740; letter-spacing: 1.7px; }
.lg-dots { display: flex; gap: 5px; }
.lg-dots i { width: 4px; height: 4px; border-radius: 50%; background: #9bb7c6; }
.lg-card-data { display: flex; gap: 24px; align-items: flex-end; justify-content: space-between; margin-top: 23px; }
.lg-card-data strong { display: block; color: #fff; font-size: 44px; letter-spacing: -2.5px; line-height: .95; font-weight: 620; }
.lg-card-data small { display: block; color: #b8c9d5; font-size: 11px; margin-top: 9px; }
.lg-delta { display: inline-flex; align-items: center; gap: 4px; color: #a4e2d1; border-radius: 7px; background: rgba(157,225,208,.1); padding: 7px 8px; font-size: 10px; font-weight: 720; white-space: nowrap; }
.lg-sparkline { display: block; width: 100%; height: 48px; margin-top: 19px; }
.lg-signal-card {
  position: absolute; right: -4px; top: 17px; width: 197px; padding: 15px 17px;
  border: 1px solid rgba(191,227,225,.24); border-radius: 14px;
  background: rgba(39,67,88,.72); box-shadow: 0 18px 40px rgba(3,14,27,.17);
  -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); transform: rotate(3deg) scale(var(--esc, 1)); transform-origin: right top;
}
.lg-signal-header { display: flex; gap: 9px; align-items: center; }
.lg-signal-icon { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 9px; background: rgba(157,225,208,.16); color: #ace9db; }
.lg-signal-header b { display: block; color: #f8fbfc; font-size: 11px; }
.lg-signal-header small { color: #adbfcc; font-size: 9px; }
.lg-signal-track { display: flex; gap: 5px; align-items: center; margin-top: 17px; }
.lg-signal-track span { height: 5px; border-radius: 3px; background: #8bd9c7; flex: 1; }
.lg-signal-track span:last-child { background: rgba(169,216,217,.24); flex: .45; }
.lg-signal-foot { color: #b3c7d1; font-size: 9px; margin-top: 9px; }

.lg-login { position: relative; min-width: 0; min-height: 0; overflow-y: auto; padding: clamp(28px, 5.5vh, 53px) clamp(42px, 5.7vw, 102px) clamp(24px, 4vh, 34px); display: flex; flex-direction: column; background: #f9fbfc; }
.lg-login::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background: linear-gradient(90deg, transparent, rgba(112,184,172,.1), transparent); }
.lg-login-top { display: flex; justify-content: flex-end; align-items: center; gap: 9px; color: #77889a; font-size: 10px; font-weight: 760; letter-spacing: 1.45px; white-space: nowrap; }
.lg-secure-dot { width: 7px; height: 7px; background: #58b99e; border-radius: 50%; box-shadow: 0 0 0 4px rgba(88,185,158,.11); }
.lg-login-inner { width: 100%; max-width: 428px; margin: auto; padding: 23px 0; }
.lg-kicker { display: flex; align-items: center; gap: 9px; color: #477f79; font-size: 10px; font-weight: 800; letter-spacing: 2px; }
.lg-kicker::before { content: ""; display: block; width: 25px; height: 2px; background: #79cbb8; }
.lg-login h1 { font-family: inherit; font-size: clamp(30px, min(3.65vw, 5.4vh), 51px); line-height: 1.12; font-weight: 690; letter-spacing: -.065em; color: #192940; margin: 18px 0 12px; }
.lg-lead { color: #728195; font-size: 14px; line-height: 1.65; margin: 0 0 clamp(18px, 3.4vh, 32px); }
.lg-field { margin-bottom: 17px; }
.lg-label { display: block; color: #26384b; font-size: 12px; font-weight: 740; margin-bottom: 9px; }
.lg-input { position: relative; }
.lg-icon { position: absolute; top: 50%; left: 17px; transform: translateY(-50%); display: flex; color: #8292a2; pointer-events: none; }
.lg-input input {
  display: block; width: 100%; height: 56px; padding: 0 49px 0 48px;
  border: 1px solid #d8e1e9; border-radius: 11px; outline: none;
  background: #fff; color: #1c2d41; font-size: 14px; letter-spacing: .05px;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.lg-input input::placeholder { color: #9aa8b5; opacity: 1; }
.lg-input input:hover { border-color: #bdcbd4; }
.lg-input input:focus { border-color: #5fbba6; box-shadow: 0 0 0 4px rgba(102,196,171,.13); }
.lg-input:focus-within .lg-icon { color: #458e80; }
.lg-input-action { position: absolute; top: 50%; right: 11px; transform: translateY(-50%); width: 35px; height: 35px; border: 0; background: transparent; border-radius: 7px; color: #8292a2; display: grid; place-items: center; cursor: pointer; }
.lg-input-action:hover { background: #f1f5f7; color: #26384b; }
.lg-options { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin: 21px 0 23px; }
.lg-remember { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; color: #536478; cursor: pointer; }
.lg-remember input { margin: 0; width: 17px; height: 17px; accent-color: #214c52; cursor: pointer; }
.lg-text-button { padding: 0; background: none; border: 0; color: #286e6a; font-size: 12px; font-weight: 730; cursor: pointer; }
.lg-text-button:hover { text-decoration: underline; }
.lg-submit {
  width: 100%; height: 57px; border: 1px solid #0f2a3a; border-radius: 11px; background: #142c43; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; padding: 0 19px 0 22px;
  color: #fff; font-weight: 710; font-size: 14px; box-shadow: 0 11px 22px rgba(24,49,68,.13);
  transition: transform .2s, background .2s, box-shadow .2s, opacity .2s;
}
.lg-submit:hover:not(:disabled) { transform: translateY(-2px); background: #1b3e52; box-shadow: 0 15px 27px rgba(24,49,68,.18); }
.lg-submit:active { transform: translateY(0); }
.lg-submit:disabled { opacity: .6; cursor: not-allowed; }
.lg-submit.carregando { cursor: progress; opacity: .85; }
.lg-submit.carregando .lg-submit-txt::after { content: "…"; }
.lg-submit.carregando .lg-submit-arrow { animation: pisca 1s infinite; }
.lg-submit-arrow { display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid rgba(255,255,255,.22); border-radius: 8px; color: #b8e8db; }
.entrada__erro { min-height: 21px; margin: 13px 0 0; color: #b4412f; font-size: 12px; line-height: 1.5; }

.lg-dialog { border: 1px solid #dbe6eb; padding: 27px; border-radius: 16px; width: min(400px, calc(100% - 34px)); background: #fff; box-shadow: 0 20px 70px #0d243649; color: #192a40; }
.lg-dialog::backdrop { background: #0f213a99; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.lg-dialog h3 { margin: 0 0 9px; font-family: inherit; font-size: 21px; letter-spacing: -.035em; }
.lg-dialog p { color: #667789; font-size: 13px; line-height: 1.6; margin: 0 0 23px; }
.lg-dialog button { border: 0; border-radius: 8px; background: #142c43; color: #fff; padding: 11px 16px; font-size: 12px; font-weight: 700; cursor: pointer; }

/* enquanto confere a sessão salva, não mostra o formulário */
.entrada__conectando { display: none; color: #728195; font-size: 14px; padding: 18px 0 8px; }
body.verificando .entrada__conectando { display: block; }
body.verificando .lg-login-inner > :not(.entrada__conectando) { display: none; }

@media (max-height: 660px) and (min-width: 651px) {
  .lg-login h1 br { display: none; }
  .lg-field { margin-bottom: 12px; }
  .lg-input input { height: 48px; }
  .lg-options { margin: 14px 0 16px; }
  .lg-submit { height: 50px; }
}
@media (max-width: 1100px) {
  .lg-hero { padding: 40px 38px 33px; }
  .lg-hero .lg-h1 { font-size: clamp(32px, min(5vw, 6.4vh), 58px); }
  .lg-login { padding-inline: clamp(35px, 5vw, 70px); }
  .lg-signal-card { right: -15px; }
}
@media (max-width: 800px) {
  .entrada { padding: 12px; }
  .lg-shell { grid-template-columns: 45% 55%; height: calc(100svh - 24px); }
  .lg-hero { padding: 32px 28px; }
  .lg-brand-name { font-size: 18px; }
  .lg-brand-caption { font-size: 7px; }
  .lg-hero .lg-h1 { font-size: clamp(30px, min(5.1vw, 6vh), 47px); }
  .lg-hero-copy > p:not(.lg-h1) { font-size: 13px; }
  .lg-insight-card { width: 96%; }
  .lg-signal-card { display: none; }
  .lg-login { padding-inline: 30px; }
  .lg-login h1 { font-size: 36px; }
}
@media (max-width: 650px) {
  .entrada { display: block; padding: 0; }
  .lg-shell { height: 100svh; max-height: none; display: flex; flex-direction: column; border-radius: 0; box-shadow: none; }
  .lg-hero { flex: none; padding: calc(clamp(18px, 3svh, 25px) + env(safe-area-inset-top)) 26px 18px; }
  .lg-hero::after { width: 320px; height: 320px; right: -170px; top: -100px; }
  .lg-brand-mark { width: 38px; height: 38px; }
  .lg-brand-name { font-size: 19px; }
  .lg-brand-caption { font-size: 7px; letter-spacing: 2px; }
  .lg-hero-copy { margin-top: clamp(14px, 3.5svh, 30px); }
  .lg-eyebrow { font-size: 9px; letter-spacing: 1.5px; }
  .lg-hero .lg-h1 { font-size: clamp(21px, 3.6svh, 26px); letter-spacing: -.045em; line-height: 1.15; margin: 9px 0 0; }
  .lg-h1 br { display: none; }
  .lg-hero-copy > p:not(.lg-h1), .lg-visual { display: none; }
  .lg-login { padding: 0 26px calc(22px + env(safe-area-inset-bottom)); flex: 1; }
  .lg-login-top { display: none; }
  .lg-login-inner { max-width: 480px; margin: auto; padding: 16px 0; }
  .lg-kicker { font-size: 9px; }
  .lg-login h1 { font-size: clamp(26px, 4.2svh, 34px); margin: clamp(6px, 1.3svh, 11px) 0 5px; }
  .lg-lead { font-size: 12px; margin-bottom: clamp(12px, 2.8svh, 24px); }
  .lg-field { margin-bottom: clamp(10px, 1.8svh, 15px); }
  .lg-input input { height: clamp(44px, 6svh, 51px); font-size: 16px; }
  .lg-options { margin: clamp(10px, 2.2svh, 19px) 0 clamp(12px, 2.5svh, 21px); }
  .lg-submit { height: 53px; }
      }
@media (max-width: 650px) and (max-height: 720px) {
  .lg-login h1 br { display: none; }
}
@media (max-width: 650px) and (max-height: 600px) {
  .lg-eyebrow, .lg-lead { display: none; }
  .lg-hero-copy { margin-top: 10px; }
  .lg-login h1 { margin-bottom: 14px; }
}
@media (max-width: 375px) {
  .lg-hero { padding-inline: 21px; }
  .lg-login { padding: 0 21px 18px; }
}
.senha { position: relative; }
.senha input { padding-right: 46px; }
.senha__ver { position: absolute; right: 4px; top: 4px; width: 36px; height: 36px; border: 0; border-radius: 8px; background: none; color: var(--tinta-3); cursor: pointer; display: grid; place-items: center; }
.senha__ver:hover { background: var(--card-2); color: var(--tinta); }

/* conta no topo */
.usuario {
  width: 40px; height: 40px; border-radius: 50%; border: 0; cursor: pointer; display: grid; place-items: center; flex: none;
  font: 700 .85rem var(--f-disp); color: #fff; background: linear-gradient(150deg, var(--acento), var(--tp-3));
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 3px color-mix(in srgb, var(--acento) 50%, transparent);
}
.usuario--p { width: 36px; height: 36px; font-size: .78rem; box-shadow: none; cursor: default; }
.menu__conta { display: grid; gap: 2px; padding: 10px 12px 8px; justify-items: start; }
.menu__conta b { font-weight: 600; }
.menu__conta small { color: var(--tinta-3); font-size: .8rem; margin-bottom: 4px; overflow-wrap: anywhere; }

/* usuários */
.usu { display: grid; gap: 14px; max-height: min(66vh, 680px); overflow: auto; }
.usu__topo { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.usu__topo .config__desc { margin: 0; flex: 1 1 280px; }
.usu__form { display: grid; gap: 12px; padding: 14px; border-radius: 14px; border: 1px solid var(--linha); background: var(--card-2); }
.usu__form[hidden] { display: none; }
.usu__botoes { display: flex; gap: 8px; justify-content: flex-end; }
.usu__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.usu__item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 12px; background: var(--elev); border: 1px solid var(--linha-2); }
.usu__item.inativo { opacity: .6; }
.usu__txt b { display: block; font-weight: 600; }
.usu__txt small { color: var(--tinta-3); font-size: .8rem; overflow-wrap: anywhere; }
.usu__meta { display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; justify-content: flex-end; max-width: 280px; }
.usu__meta small { width: 100%; text-align: right; color: var(--tinta-3); font-size: .74rem; }
.campo input:focus { outline: none; border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-2); }
.campo input[aria-invalid="true"] { border-color: var(--perigo); }
#vPlaca { font-family: var(--f-mono); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.erro { color: var(--perigo); font-size: .8rem; }
.erro:empty { display: none; }
.dica { font-size: .76rem; color: var(--tinta-3); }
.atalhos { display: grid; grid-template-columns: auto 1fr; gap: 10px 18px; margin: 0; align-items: center; }
.atalhos dd { margin: 0; color: var(--tinta-2); }

/* toast */
.toast {
  position: fixed; left: 50%; bottom: calc(22px + env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 90;
  display: flex; align-items: center; gap: 14px; padding: 8px 8px 8px 16px; min-height: 48px; border-radius: 14px;
  background: var(--navy); color: #fff; box-shadow: var(--sombra-alta); max-width: calc(100vw - 24px); font-size: .9rem;
  animation: toast .25s cubic-bezier(.2,.8,.2,1);
}
:root[data-theme="dark"] .toast { background: #E4EBF1; color: #14212D; }
.toast[hidden] { display: none; }
.toast .btn { min-height: 32px; background: rgb(255 255 255 / .12); border-color: transparent; color: inherit; }
:root[data-theme="dark"] .toast .btn { background: rgb(0 0 0 / .08); }
@keyframes toast { from { transform: translate(-50%, 20px); opacity: 0; } }

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width: 1180px) {
  .hero__in { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
}
@media (max-width: 1100px) {
  .patio--foco { grid-template-columns: minmax(0, 1fr); }
  .patio--foco .ficha { position: static; order: -1; max-height: none; }
}
@media (max-width: 900px) {
  .topo__in { gap: 10px; }
  .telas__btn span { display: none; }
  .telas__btn { padding: 0 10px; }
  .topo__acoes .btn span { display: none; }
  .topo__acoes .btn { width: 40px; padding: 0; }
  .cmd__kbd { display: none; }
  .hero__in { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 24px 20px; }
  .conteudo__ctrl { width: 100%; }
  .conteudo__ctrl .seg { flex: 1 1 100%; }
  .conteudo__ctrl .seg button { flex: 1; justify-content: center; }
  .conteudo__ctrl .sel { flex: 1; min-width: 0; }
  .conteudo__ctrl .sel select { flex: 1; min-width: 0; }
}
@media (max-width: 640px) {
  :root { --topo-h: 58px; }
  body { font-size: 14px; }
  main { padding: 12px max(12px, env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
  .topo__in { padding: 0 12px; }
  .marca__txt { display: none; }
  .menu__lista { position: fixed; left: 12px; right: 12px; width: auto; max-width: none; top: calc(var(--topo-h) + env(safe-area-inset-top) + 4px); max-height: calc(100dvh - var(--topo-h) - 24px); overflow: auto; }
  .cmd { height: 40px; padding: 0 12px; }
  .hero { border-radius: 20px; }
  .hero__in { padding: 20px 16px; gap: 20px; }
  .hero__total { margin: 8px 0 16px; gap: 12px; }
  .saude { height: 34px; }
  .saude__seg { font-size: .76rem; padding: 0 6px; }
  .tipos { gap: 6px; }
  .tipo { padding: 8px; }
  .tipo__foto, .tipos:has(.tipo__foto) .tipo svg { height: 48px; }
  .config__img { width: 72px; height: 46px; }
  .lot__item { grid-template-columns: minmax(0, 1fr) auto; }
  .resp__pessoas { grid-template-columns: minmax(0, 1fr); }
  .acao span { display: none; }
  .acao { width: 38px; height: 38px; padding: 0; justify-content: center; }
  .usu__item { grid-template-columns: auto minmax(0, 1fr) auto; }
  .usu__meta { grid-column: 1 / -1; justify-content: flex-start; max-width: none; }
  .usu__meta small { text-align: left; }
  .lot__nome { grid-column: 1 / -1; }
  .config__img svg { width: 56px; height: 26px; }
  .tipo svg { height: 26px; }
  .tipo b { font-size: 1.15rem; }
  .tipo span { font-size: .58rem; letter-spacing: .04em; }
  .filtros { position: static; margin: 12px 0 0; padding: 0; }
  .filtros__in { flex-wrap: wrap; padding: 6px; border-radius: 14px; }
  .filtro-txt { flex: 1 1 100%; }
  .filtros__in:has(.limpar:not([hidden])) .filtro-txt { flex-basis: calc(100% - 96px); }
  .pilulas { flex: 1 1 100%; margin: 0 -6px; padding: 2px 6px; order: 3; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .limpar { order: 2; }
  .conteudo__titulo h1 { font-size: 1.45rem; }
  .sel span { display: none; }
  .sel { padding-left: 4px; }
  .dica-dnd { display: none; }
  .carros { grid-template-columns: repeat(auto-fill, minmax(82px, 1fr)); }
  .carro__svg { width: 56px; height: 26px; }

  /* lista vira cartões */
  .tabela-wrap { background: none; border: 0; box-shadow: none; overflow: visible; }
  .tabela thead { display: none; }
  .tabela, .tabela tbody { display: grid; gap: 8px; }
  .tabela tr {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px 12px; align-items: center; padding: 12px;
    background: var(--card); border: 1px solid var(--linha-2); border-radius: 16px; box-shadow: var(--sombra);
  }
  .tabela td { display: block; padding: 0; border: 0; white-space: normal; min-width: 0; }
  .tabela td[data-col="placa"] { grid-column: 1; grid-row: 1; }
  .tabela td[data-col="modelo"] { grid-column: 2 / 4; grid-row: 1; }
  .tabela td[data-col="modelo"] svg { display: none; }
  .tabela td[data-col="tipo"] { grid-column: 1 / 3; grid-row: 2; }
  .tabela td[data-col="acoes"] { grid-column: 3; grid-row: 2; }
  .tabela td[data-col="secretaria"] { grid-column: 1 / -1; grid-row: 3; font-size: .82rem; color: var(--tinta-2); }
  .tabela td[data-col="secretaria"]::before { content: "Secretaria · "; color: var(--tinta-3); }
  .tabela td[data-col="qtd"] { display: none; }
  .acoes { opacity: 1; }
  .paginacao { justify-content: center; }

  .secs { grid-template-columns: minmax(0, 1fr); }

  .pop {
    left: 0 !important; right: 0; top: auto !important; bottom: 0; width: 100%; max-height: 78dvh;
    border-radius: 22px 22px 0 0; padding-bottom: env(safe-area-inset-bottom);
    animation: sobe .25s cubic-bezier(.2,.8,.2,1);
  }
  .pop__topo::before { content: ""; position: absolute; left: 50%; top: 6px; width: 40px; height: 4px; border-radius: 2px; background: var(--linha); transform: translateX(-50%); }
  .pop__topo { padding-top: 16px; }
  .opc { padding: 11px 10px; }

  .gaveta { width: 100vw; height: auto; max-height: 94dvh; margin: auto 0 0; border-radius: 24px 24px 0 0; }
  .gaveta[open] { animation: sobe .3s cubic-bezier(.2,.8,.2,1); }
  .g__palco { padding-top: 14px; }
  .g__rolagem > .g__corpo { min-height: calc(94dvh - 47px); }
  .paleta { margin-top: calc(10px + env(safe-area-inset-top)); max-height: 80dvh; }
  .paleta__rodape { display: none; }
  .modal { width: 100vw; max-width: 100vw; max-height: 96dvh; margin: auto 0 0; border-radius: 22px 22px 0 0; }
  .modal[open] { animation: sobe .25s cubic-bezier(.2,.8,.2,1); }
  .modal__rodape { padding-bottom: calc(18px + env(safe-area-inset-bottom)); }
  .modal__rodape .btn { flex: 1; }
  .grade2 { grid-template-columns: minmax(0, 1fr); }
  .toast { left: 12px; right: 12px; transform: none; justify-content: space-between; animation-name: toastMob; }
}
@keyframes toastMob { from { transform: translateY(20px); opacity: 0; } }
@keyframes sobe { from { transform: translateY(100%); } }
@media (max-width: 370px) {
  .marca__txt { display: none; }
}
@media (hover: none) { .cmd__kbd { display: none; } .acoes { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* =========================================================
   IMPRESSÃO
   ========================================================= */
@media print {
  body.imprimindo-etiquetas > :not(.etiquetas) { display: none !important; }
  body.imprimindo-etiquetas .etiquetas { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 6mm; }
  body.imprimindo-etiquetas { background: #fff; }
  .etiqueta {
    break-inside: avoid; display: grid; justify-items: center; gap: 2mm; padding: 4mm 4mm 3mm; border: .3mm dashed #9aa7b4; border-radius: 3mm;
    color: #14212D; font-family: var(--f-ui); text-align: center;
  }
  .etiqueta header { width: 100%; display: flex; justify-content: space-between; gap: 2mm; font-size: 7pt; color: #475A6C; font-weight: 600; }
  .etiqueta__marca { display: inline-flex; align-items: center; gap: 1mm; }
  .etiqueta__marca .i { width: 3mm; height: 3mm; }
  .etiqueta__qr { width: 44mm; height: 44mm; }
  .etiqueta__placa .placa { --h: 9mm; }
  .etiqueta__modelo { font-size: 8pt; font-weight: 700; }
  .etiqueta__dica { font-size: 6.5pt; color: #6F8294; }

  @page { size: A4 landscape; margin: 12mm; }
  :root { --bg: #fff; --card: #fff; --card-2: #eef2f5; --elev: #fff; --sombra: none; }
  body { background: #fff; font-size: 10.5px; }
  .topo, .hero, .filtros, .conteudo__ctrl, .dica-dnd, .paginacao, .toast, #vPatio, #vSecretarias, .col-acoes, td[data-col="acoes"], .skip { display: none !important; }
  main { padding: 0; }
  #vLista { display: block !important; }
  .tabela-wrap { border: 0; box-shadow: none; overflow: visible; }
  .tabela th { position: static; }
  .tabela th, .tabela td { padding: 4px 6px; }
  .tabela tr { break-inside: avoid; }
  .conteudo__titulo h1::before { content: "Frota de Veículos — "; }
  .placa { --h: 20px; }
  .cel-veic svg, .cel-foto { display: none; }
}

/* =========================================================
   CARREGANDO (ao abrir/atualizar com sessão salva e ao entrar)
   ========================================================= */
.splash {
  position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; overflow: hidden;
  background:
    radial-gradient(ellipse 60% 50% at 50% 46%, rgba(96, 183, 180, .16), transparent 75%),
    linear-gradient(140deg, #132740 0%, #101f34 59%, #0b1a2d 100%);
  color: #f7fafc; font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased; isolation: isolate;
  opacity: 0; visibility: hidden; pointer-events: none; transform: scale(1.06); filter: blur(6px);
  transition: opacity .55s ease, transform .7s cubic-bezier(.2,.7,.2,1), filter .55s ease, visibility 0s .7s;
}
html.com-sessao body:not(.logado):not(.modo-publico) .splash,
body.verificando .splash { opacity: 1; visibility: visible; pointer-events: auto; transform: none; filter: none; transition: none; }
/* por baixo do carregamento, o login não aparece */
html.com-sessao body:not(.logado):not(.modo-publico) .entrada { visibility: hidden; }
.splash__grade {
  position: absolute; inset: -54px; z-index: -1; opacity: .35;
  background-image: linear-gradient(rgba(149, 197, 210, .10) 1px, transparent 1px), linear-gradient(90deg, rgba(149, 197, 210, .10) 1px, transparent 1px);
  background-size: 54px 54px;
  -webkit-mask-image: radial-gradient(ellipse 55% 50% at 50% 50%, #000 20%, transparent 75%);
  mask-image: radial-gradient(ellipse 55% 50% at 50% 50%, #000 20%, transparent 75%);
  animation: splashGrade 6s linear infinite;
}
.splash__centro { display: grid; justify-items: center; text-align: center; padding: 24px; animation: splashSurge .7s cubic-bezier(.2,.7,.2,1) both; }
.splash__marca { position: relative; width: 200px; height: 200px; display: grid; place-items: center; margin-bottom: 18px; }
.splash__onda {
  position: absolute; inset: 64px; border-radius: 26px; border: 1.5px solid rgba(168, 229, 214, .55);
  animation: splashOnda 2.4s cubic-bezier(.2,.6,.3,1) infinite; opacity: 0;
}
.splash__onda:nth-child(2) { animation-delay: .8s; }
.splash__onda:nth-child(3) { animation-delay: 1.6s; }
.splash__orbita { position: absolute; inset: 0; width: 100%; height: 100%; animation: splashGira 3.2s linear infinite; }
.splash__logo {
  position: relative; width: 72px; height: 72px;
  filter: drop-shadow(0 0 22px rgba(168, 229, 214, .35)) drop-shadow(0 14px 28px rgba(3, 14, 27, .45));
  animation: splashRespira 2.4s ease-in-out infinite;
}
.splash__g { stroke-dasharray: 100; stroke-dashoffset: 100; animation: splashTraco 2.4s cubic-bezier(.6,0,.3,1) infinite; }
.splash__ponto { transform-origin: 31.7px 13.7px; animation: splashPonto 2.4s ease-in-out infinite; }
.splash__nome { margin: 0; font-size: 26px; font-weight: 720; letter-spacing: -.9px; line-height: 1; }
.splash__legenda { margin: 9px 0 0; font-size: 9px; font-weight: 720; letter-spacing: 2.7px; color: #a8b9c8; }
.splash__barra { position: relative; width: 220px; height: 3px; margin-top: 30px; border-radius: 3px; background: rgba(169, 216, 217, .14); overflow: hidden; }
.splash__barra span {
  position: absolute; inset: 0 auto 0 0; width: 40%; border-radius: inherit;
  background: linear-gradient(90deg, transparent, #a8e5d6 40%, #ddfcf1);
  box-shadow: 0 0 12px rgba(168, 229, 214, .6);
  animation: splashBarra 1.3s cubic-bezier(.45,0,.2,1) infinite;
}
.splash__status { position: relative; height: 18px; width: 260px; margin: 14px 0 0; font-size: 12px; color: #adbecd; letter-spacing: .2px; }
.splash__status span { position: absolute; inset: 0; opacity: 0; animation: splashFrase 4.2s ease-in-out infinite; }
.splash__status span:nth-child(2) { animation-delay: 1.4s; }
.splash__status span:nth-child(3) { animation-delay: 2.8s; }
.splash__status .splash__pronto { animation: none; color: #a8e5d6; font-weight: 650; }

/* fim: a barra completa, o G fecha e tudo se abre para o sistema */
html.splash-fim .splash__barra span { animation: none; width: 100%; background: #a8e5d6; transition: width .3s ease; }
html.splash-fim .splash__g { animation: none; stroke-dashoffset: 0; transition: stroke-dashoffset .3s ease; }
html.splash-fim .splash__status span { animation: none; opacity: 0; }
html.splash-fim .splash__status .splash__pronto { opacity: 1; transform: none; transition: opacity .2s; }
html.splash-fim .splash__onda { animation: splashEstouro .6s cubic-bezier(.2,.6,.3,1) forwards; }

@keyframes splashSurge { from { opacity: 0; transform: translateY(10px) scale(.97); } }
@keyframes splashGira { to { transform: rotate(360deg); } }
@keyframes splashGrade { to { background-position: 54px 54px; } }
@keyframes splashOnda { 0% { transform: scale(.85); opacity: .7; } 100% { transform: scale(2.3); opacity: 0; } }
@keyframes splashEstouro { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(3); opacity: 0; } }
@keyframes splashRespira { 50% { transform: scale(1.05); } }
@keyframes splashTraco { 0% { stroke-dashoffset: 100; } 45%, 70% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -100; } }
@keyframes splashPonto { 0%, 30% { transform: scale(0); } 45%, 80% { transform: scale(1); } 100% { transform: scale(0); } }
@keyframes splashBarra { 0% { transform: translateX(-100%); } 100% { transform: translateX(250%); } }
@keyframes splashFrase { 0% { opacity: 0; transform: translateY(6px); } 8%, 30% { opacity: 1; transform: none; } 38%, 100% { opacity: 0; transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) {
  .splash *, .splash { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .splash__g { stroke-dashoffset: 0; }
  .splash__status span:first-child { opacity: 1; }
}
@media (max-width: 420px) {
  .splash__marca { width: 170px; height: 170px; }
  .splash__onda { inset: 52px; }
  .splash__nome { font-size: 23px; }
}

/* =========================================================
   DASHBOARD DE CUSTOS
   ========================================================= */
:root {
  /* trio categórico validado (CVD e contraste) — abastecimento, manutenção, despesa */
  --dv-1: #2a78d6; --dv-2: #eb6834; --dv-3: #1baf7a;
  --dv-neutro: #587188; --dv-grade: #E6ECF1;
}
:root[data-theme="dark"] { --dv-1: #3987e5; --dv-2: #d95926; --dv-3: #199e70; --dv-neutro: #8FA6BC; --dv-grade: #2A3A48; }
body.tela-dash main > :not(#dash):not(.faixa) { display: none !important; }
body:not(.tela-dash) #dash { display: none; }
.dash { display: grid; gap: 16px; transition: opacity .25s; }
.dash--atualizando .dash__hero, .dash--atualizando .dash__kpis, .dash--atualizando .dash__grade { opacity: .6; }
.dash__cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: 4px; }
.dash__cab h1 { font: 700 clamp(1.6rem, 3vw, 2.1rem)/1.1 var(--f-disp); letter-spacing: -.03em; margin-top: 4px; }

/* filtros: uma linha, acima de tudo que filtram */
.dash__filtros { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.dv-seg { display: inline-flex; gap: 2px; padding: 3px; border-radius: 12px; background: var(--card); border: 1px solid var(--linha-2); max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.dv-seg::-webkit-scrollbar { display: none; }
.dv-seg button { flex: none; height: 32px; padding: 0 12px; border: 0; border-radius: 9px; background: none; color: var(--tinta-2); font-size: .85rem; font-weight: 600; cursor: pointer; transition: background .15s, color .15s; }
.dv-seg button:hover { color: var(--tinta); background: var(--card-2); }
.dv-seg button[aria-pressed="true"] { background: var(--navy); color: #fff; }
:root[data-theme="dark"] .dv-seg button[aria-pressed="true"] { background: var(--acento); }
.dv-select { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 6px 0 12px; border-radius: 12px; background: var(--card); border: 1px solid var(--linha-2); font-size: .85rem; color: var(--tinta-3); }
.dv-select select { border: 0; background: none; font: 600 .88rem var(--f-ui); color: var(--tinta); padding: 4px; max-width: 180px; cursor: pointer; }
.dv-limpar { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 10px; border: 0; border-radius: 9px; background: none; color: var(--tinta-2); font-weight: 600; font-size: .85rem; cursor: pointer; }
.dv-limpar:hover { background: var(--card-2); color: var(--tinta); }
.dv-limpar .i { width: 15px; height: 15px; }
.dash__atual { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; color: var(--tinta-3); }

/* herói: número principal, comparação, tendência e composição */
.dash__hero {
  position: relative; overflow: hidden; isolation: isolate; border-radius: 26px; color: var(--sobre-navy); box-shadow: var(--sombra-alta);
  background:
    radial-gradient(800px 360px at 10% -20%, rgb(59 111 224 / .38), transparent 60%),
    radial-gradient(600px 300px at 100% 130%, rgb(27 175 122 / .22), transparent 60%),
    linear-gradient(160deg, var(--navy-2), var(--navy));
}
.dash__hero-in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 28px 40px; padding: 28px 30px; align-items: center; }
.dash__hero .sobre { color: var(--sobre-navy-2); }
.dash__total { margin: 10px 0 6px; font: 700 clamp(2.6rem, 5.4vw, 4.4rem)/1 var(--f-ui); letter-spacing: -.045em; color: #fff; overflow-wrap: anywhere; }
.dash__delta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: .92rem; color: var(--sobre-navy-2); }
.dash__delta b { color: #fff; }
.dash__delta span { opacity: .8; }
.dash__delta-ic { width: 16px; height: 16px; padding: 3px; box-sizing: content-box; border-radius: 7px; }
.dash__delta--sobe .dash__delta-ic { transform: rotate(-90deg); color: #FFB199; background: rgb(255 122 92 / .18); }
.dash__delta--desce .dash__delta-ic { transform: rotate(90deg); color: #7FE0B0; background: rgb(92 201 138 / .18); }
.dash__meta { margin-top: 14px; font-size: .86rem; color: var(--sobre-navy-2); }
.dash__hero-lado { display: grid; gap: 14px; min-width: 0; }
.dash__spark { width: 100%; height: 86px; overflow: visible; }
.dash__spark-linha { fill: none; stroke: #A8E5D6; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.dash__spark-ponto { fill: #DDFCF1; stroke: var(--navy); stroke-width: 2; }
.dash__spark.dv-anim .dash__spark-linha { stroke-dasharray: 1; stroke-dashoffset: 1; animation: dvTraco 1.2s .15s cubic-bezier(.4,0,.2,1) forwards; }
.dash__comp { display: flex; gap: 2px; height: 34px; border-radius: 10px; overflow: hidden; }
.dash__comp i { display: flex; align-items: center; padding: 0 10px; min-width: 3px; font: 700 .8rem var(--f-ui); font-style: normal; color: #fff; cursor: default; transition: filter .15s; }
.dash__comp i:hover, .dash__comp i.dv-foco { filter: brightness(1.15); }
.dash__comp i.dv-1 { background: var(--dv-1); } .dash__comp i.dv-2 { background: var(--dv-2); color: #2A1206; } .dash__comp i.dv-3 { background: var(--dv-3); color: #062519; }
.dash__comp-leg { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.dash__comp-leg li { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 7px; font-size: .78rem; color: var(--sobre-navy-2); }
.dash__comp-leg b { grid-column: 2; color: #fff; font-size: .95rem; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* indicadores */
.dash__kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.dv-kpi { position: relative; padding: 16px 18px; border-radius: 18px; background: var(--elev); border: 1px solid var(--linha-2); box-shadow: var(--sombra); }
.dv-kpi__ic { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: var(--acento); background: var(--acento-2); }
.dv-kpi__rot { font-size: .78rem; font-weight: 600; color: var(--tinta-3); padding-right: 40px; }
.dv-kpi__val { margin: 6px 0 4px; font: 700 1.55rem/1.1 var(--f-ui); letter-spacing: -.03em; color: var(--tinta); overflow-wrap: anywhere; }
.dv-kpi { min-width: 0; }
.dv-kpi__val small { display: inline-block; font-size: .85rem; font-weight: 600; color: var(--tinta-3); margin-left: 2px; letter-spacing: 0; }
.dv-kpi__sub { font-size: .78rem; color: var(--tinta-3); line-height: 1.35; }
.dv-kpi__editar { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 5px; height: 32px; padding: 0 10px; border: 0; border-radius: 10px; background: var(--acento-2); color: var(--acento); font: 600 .78rem var(--f-ui); cursor: pointer; transition: filter .15s; }
.dv-kpi__editar:hover { filter: brightness(.95); }
.dv-kpi__editar .i { width: 14px; height: 14px; }
.dv-kpi--precos .dv-kpi__rot { padding-right: 76px; }
.dv-precos { list-style: none; margin: 8px 0 4px; padding: 0; display: grid; gap: 3px; }
.dv-precos li { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: .84rem; color: var(--tinta-2); }
.dv-precos b { font: 700 1.02rem var(--f-ui); color: var(--tinta); letter-spacing: -.01em; white-space: nowrap; }

/* grade de cartões */
.dash__grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.dv-card { grid-column: span 6; min-width: 0; padding: 18px 20px 20px; border-radius: 20px; background: var(--elev); border: 1px solid var(--linha-2); box-shadow: var(--sombra); display: flex; flex-direction: column; gap: 12px; }
.dv-card--tempo { grid-column: span 8; }
.dv-card--tipo { grid-column: span 4; }
.dv-card--sec { grid-column: span 7; }
.dv-card--veic { grid-column: span 5; }
.dash__grade--postos .dv-card--preco { grid-column: span 12; }
.dv-card__topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.dv-card__topo h3 { font: 700 1.05rem var(--f-disp); letter-spacing: -.01em; }
.dv-card__topo p { font-size: .8rem; color: var(--tinta-3); margin-top: 2px; }
.dv-card__corpo { min-width: 0; }
.dv-alterna { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border-radius: 9px; border: 1px solid var(--linha-2); background: var(--card); color: var(--tinta-2); font-size: .78rem; font-weight: 600; cursor: pointer; }
.dv-alterna:hover { color: var(--tinta); border-color: var(--linha); }
.dv-alterna .i { width: 14px; height: 14px; }
.dv-legenda { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; margin: 0; padding: 0; font-size: .8rem; color: var(--tinta-2); }
.dv-legenda li { display: inline-flex; align-items: center; gap: 7px; }
.dv-chave { display: inline-block; flex: none; width: 12px; height: 3px; border-radius: 2px; }
.dv-chave--caixa { width: 11px; height: 11px; border-radius: 3px; }
.dv-chave.dv-1 { background: var(--dv-1); } .dv-chave.dv-2 { background: var(--dv-2); } .dv-chave.dv-3 { background: var(--dv-3); } .dv-chave.dv-neutro { background: var(--dv-neutro); }

/* gráficos SVG */
.dv-grafico { width: 100%; min-height: 200px; }
.dv-svg { display: block; width: 100%; height: auto; overflow: visible; }
.dv-svg .dv-1 { fill: var(--dv-1); } .dv-svg .dv-2 { fill: var(--dv-2); } .dv-svg .dv-3 { fill: var(--dv-3); }
.dv-grade { stroke: var(--dv-grade); stroke-width: 1; }
.dv-base { stroke: var(--linha); stroke-width: 1; }
.dv-eixo { font: 500 11px var(--f-ui); fill: var(--tinta-3); font-variant-numeric: tabular-nums; }
.dv-rotulo { font: 700 12px var(--f-ui); fill: var(--tinta); }
.dv-alvo { fill: transparent; cursor: crosshair; outline: none; }
.dv-col { transition: opacity .15s; }
.dv-com-foco:has(.dv-alvo.dv-foco) .dv-col { opacity: .45; }
.dv-anim .dv-col { transform-box: view-box; transform-origin: 0 var(--base); animation: dvSobe .7s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--d) * 22ms); }
.dv-linha .dv-traco { fill: none; stroke: var(--dv-1); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.dv-linha .dv-area { fill: var(--dv-1); fill-opacity: .1; stroke: none; }
.dv-linha.dv-anim .dv-traco { stroke-dasharray: 1; stroke-dashoffset: 1; animation: dvTraco 1.1s cubic-bezier(.4,0,.2,1) forwards; }
.dv-linha.dv-anim .dv-area { animation: dvSurge .8s .5s both; }
.dv-ponto { stroke: var(--elev); stroke-width: 2; }
.dv-mira { stroke: var(--tinta-3); stroke-width: 1; }
@keyframes dvSobe { from { transform: scaleY(0); } }
@keyframes dvTraco { to { stroke-dashoffset: 0; } }
@keyframes dvSurge { from { opacity: 0; } }

/* barras horizontais (HTML) */
.dv-barras { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.dv-barra { width: 100%; display: grid; grid-template-columns: minmax(90px, 30%) minmax(0, 1fr) 76px; grid-template-rows: auto auto; align-items: center; column-gap: 12px; padding: 7px 8px; border: 0; border-radius: 10px; background: none; color: inherit; font: inherit; text-align: left; transition: background .15s; }
button.dv-barra:not([aria-disabled]) { cursor: pointer; }
.dv-barra:hover, .dv-barra.dv-foco, .dv-barra[aria-pressed="true"] { background: var(--card); }
.dv-barra[aria-pressed="true"] { box-shadow: inset 0 0 0 1.5px var(--acento); }
.dv-barra__rot { min-width: 0; display: grid; font-size: .86rem; font-weight: 600; color: var(--tinta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dv-barra__rot small { font-size: .74rem; font-weight: 500; color: var(--tinta-3); overflow: hidden; text-overflow: ellipsis; }
.dv-barra__trilho { height: 14px; display: flex; align-items: center; }
.dv-barra__fill { height: 100%; display: flex; gap: 2px; border-radius: 0 4px 4px 0; overflow: hidden; transform-origin: left; }
.dash--anim .dv-barras .dv-barra__fill { animation: dvCresce .7s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--d, 0) * 40ms); }
.dv-barra__fill i { min-width: 2px; height: 100%; }
.dv-barra__fill i.dv-1 { background: var(--dv-1); } .dv-barra__fill i.dv-2 { background: var(--dv-2); } .dv-barra__fill i.dv-3 { background: var(--dv-3); } .dv-barra__fill i.dv-neutro { background: var(--dv-neutro); }
.dv-barra__val { text-align: right; font-size: .86rem; font-weight: 700; color: var(--tinta); font-variant-numeric: tabular-nums; white-space: nowrap; }
.dv-barra__nota { grid-column: 1; font-size: .72rem; color: var(--tinta-3); margin-top: -2px; }
.dv-barra { --d: 0; }
@keyframes dvCresce { from { transform: scaleX(0); } }
.dv-placa { font: 700 .82rem var(--f-mono); letter-spacing: .04em; color: var(--tinta); }

/* tabela (a versão sem gráfico de cada cartão) */
.dv-tabela { overflow: auto; max-height: 420px; border: 1px solid var(--linha-2); border-radius: 12px; }
.dv-tabela table { width: 100%; border-collapse: collapse; font-size: .84rem; }
.dv-tabela th { position: sticky; top: 0; background: var(--card-2); text-align: left; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-3); padding: 9px 12px; }
.dv-tabela td { padding: 8px 12px; border-top: 1px solid var(--linha-2); }
.dv-tabela .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* estados */
.dv-estado { grid-column: 1 / -1; align-items: center; text-align: center; gap: 14px; padding: 40px 20px; color: var(--tinta-2); }
.dv-estado > .i { width: 34px; height: 34px; color: var(--tinta-3); }
.dv-estado p { max-width: 520px; line-height: 1.5; }
.dv-vazio { display: flex; align-items: center; gap: 10px; padding: 24px 4px; font-size: .86rem; color: var(--tinta-3); }

/* dica flutuante */
.dv-dica { position: fixed; z-index: 400; pointer-events: none; min-width: 170px; max-width: 280px; padding: 10px 12px; border-radius: 12px; background: var(--navy); color: var(--sobre-navy); box-shadow: 0 14px 34px -10px rgb(0 0 0 / .5); font-size: .8rem; }
.dv-dica[hidden] { display: none; }
.dv-dica__tit { font-weight: 600; color: var(--sobre-navy-2); margin-bottom: 6px; }
.dv-dica__linha { display: flex; align-items: center; gap: 8px; margin-top: 3px; }
.dv-dica__linha b { color: #fff; font-variant-numeric: tabular-nums; }
.dv-dica__linha span { color: var(--sobre-navy-2); }
.dv-dica__rodape { margin-top: 8px; padding-top: 7px; border-top: 1px solid rgb(255 255 255 / .12); color: var(--sobre-navy-2); }
.dv-dica .dv-chave { width: 12px; height: 3px; }

@media (max-width: 1100px) {
  .dash__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dv-card, .dv-card--tempo, .dv-card--tipo, .dv-card--sec, .dv-card--veic, .dash__grade--postos .dv-card--preco { grid-column: span 12; }
}
@media (max-width: 800px) {
  .dash__hero-in { grid-template-columns: minmax(0, 1fr); padding: 22px 20px; }
  .dash__atual { margin-left: 0; }
}
@media (max-width: 640px) {
  .dash { gap: 12px; }
  .dash__kpis { gap: 8px; }
  .dv-kpi { padding: 12px 14px; }
  .dv-kpi__val { font-size: 1.25rem; }
  .dv-kpi__ic { display: none; }
  .dv-kpi__rot { padding-right: 0; }
  .dv-kpi--precos .dv-kpi__rot { padding-right: 40px; }
  .dv-kpi__editar span { display: none; }
  .dv-kpi__editar { padding: 0 9px; top: 8px; right: 8px; }
  .dv-card { padding: 14px 14px 16px; border-radius: 16px; }
  .dv-barra { grid-template-columns: minmax(0, 1fr) 72px; }
  .dv-barra__rot { grid-column: 1 / -1; }
  .dv-barra__trilho { grid-column: 1; }
  .dv-barra__nota { grid-column: 1 / -1; }
  .dash__comp-leg b { font-size: .85rem; }
  .dv-select { width: 100%; } .dv-select select { max-width: none; flex: 1; }
  .dv-seg { width: 100%; }
  .dv-seg button { flex: 1 0 auto; padding: 0 8px; font-size: .8rem; }
  .dash__total { font-size: clamp(1.7rem, 9vw, 2.8rem); white-space: nowrap; }
  .dash__comp-leg { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .dash__comp-leg li { grid-template-columns: auto minmax(0, 1fr) auto; }
  .dash__comp-leg b { grid-column: 3; }
}
@media (prefers-reduced-motion: reduce) {
  .dash *, .dash__spark * { animation: none !important; }
  .dv-linha .dv-traco, .dash__spark-linha { stroke-dashoffset: 0 !important; }
}

/* =========================================================
   PREÇO DO COMBUSTÍVEL (contratos)
   ========================================================= */
.pc { display: grid; gap: 14px; }
.pc__intro { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: var(--acento-2); color: var(--tinta); margin: 0; }
.pc__intro .i { flex: none; color: var(--acento); margin-top: 1px; }
.pc__cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.pc__card { display: grid; gap: 4px; align-content: start; padding: 14px; border-radius: 14px; background: var(--elev); border: 1px solid var(--linha-2); transition: border-color .15s, box-shadow .15s; }
.pc__card--sel { border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-2); }
.pc__card--vazio .pc__preco { color: var(--tinta-3); font-size: 1.05rem; }
.pc__card-topo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 6px; }
.pc__card-topo b { font: 700 .95rem var(--f-disp); }
.pc__card-topo small { font-size: .72rem; color: var(--tinta-3); white-space: nowrap; }
.pc__preco { font: 700 1.2rem/1.2 var(--f-ui); letter-spacing: -.02em; margin-top: 4px; white-space: nowrap; }
.pc__preco small { font-size: .78rem; font-weight: 600; color: var(--tinta-3); margin-left: 2px; }
.pc__sub { font-size: .76rem; color: var(--tinta-3); line-height: 1.35; min-height: 2.1em; }
.pc__futuro { display: flex; align-items: center; gap: 4px; font-size: .76rem; font-weight: 600; color: var(--acento); }
.pc__futuro .i { width: 13px; height: 13px; }
.pc__card .btn { justify-self: start; margin-top: 6px; }
.pc__form { display: grid; gap: 12px; padding: 16px; border-radius: 16px; background: var(--card-2); border: 1px solid var(--linha); }
.pc__campos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pc__contrato { grid-column: 1 / -1; }
.pc__form .erro:empty { display: none; }
.pc__form-fim { display: flex; justify-content: flex-end; }
.pc__regras { display: grid; gap: 8px; }
.pc__regra { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 12px; background: var(--elev); border: 1px solid var(--linha-2); font-size: .88rem; }
.pc__regra span { display: grid; }
.pc__regra small { font-size: .74rem; color: var(--tinta-3); }
.pc__regra select { flex: none; height: 38px; border-radius: 10px; border: 1px solid var(--linha); background: var(--elev); padding: 0 8px; font-size: 15px; max-width: 55%; }
.pc__pendente { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; border: 1px solid color-mix(in srgb, var(--cat-manut) 45%, var(--linha-2)); background: color-mix(in srgb, var(--cat-manut) 8%, var(--elev)); font-size: .86rem; }
.pc__pendente > .i { flex: none; color: var(--cat-manut); }
.pc__pendente p { flex: 1; line-height: 1.4; }
.pc__hist { list-style: none; margin: 0; padding: 0; display: grid; }
.pc__hist li { display: grid; grid-template-columns: 76px 92px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 4px; border-bottom: 1px solid var(--linha-2); font-size: .86rem; }
.pc__hist li:last-child { border-bottom: 0; }
.pc__hist-comb { font-weight: 600; color: var(--tinta-2); }
.pc__hist b { font-variant-numeric: tabular-nums; }
.pc__hist-quando { display: grid; color: var(--tinta-2); min-width: 0; }
.pc__hist-quando em { font-style: normal; color: var(--acento); font-weight: 600; }
.pc__hist-quando small { font-size: .72rem; color: var(--tinta-3); }
@media (max-width: 640px) {
  .pc__campos { grid-template-columns: minmax(0, 1fr); }
  .pc__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pc__regra { flex-direction: column; align-items: stretch; }
  .pc__regra select { max-width: none; }
  .pc__hist li { grid-template-columns: minmax(0, 1fr) auto auto; }
  .pc__hist-quando { grid-column: 1 / -1; grid-row: 2; }
  .pc__pendente { flex-wrap: wrap; }
}
#modalPrecos { width: min(720px, calc(100vw - 24px)); }

/* ---------- tempo real ---------- */
.aovivo { display: inline-flex; align-items: center; gap: 7px; height: 30px; padding: 0 10px; border-radius: 999px; font-size: .76rem; font-weight: 700; letter-spacing: .02em; color: #15803d; background: color-mix(in srgb, #16a34a 12%, transparent); white-space: nowrap; }
.aovivo[hidden] { display: none; }
.aovivo i { position: relative; width: 8px; height: 8px; border-radius: 50%; background: #16a34a; }
.aovivo i::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #16a34a; animation: aovivo 1.8s ease-out infinite; }
.aovivo--off { color: var(--tinta-3); background: var(--card-2); }
.aovivo--off i, .aovivo--off i::after { background: var(--tinta-3); animation: none; }
:root[data-theme="dark"] .aovivo:not(.aovivo--off) { color: #5CC98A; }
@keyframes aovivo { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(3); opacity: 0; } }
.dash__hero--pulso { animation: dashPulso 1.4s ease-out; }
@keyframes dashPulso { 0% { box-shadow: 0 0 0 0 rgb(92 201 138 / .55), var(--sombra-alta); } 100% { box-shadow: 0 0 0 18px rgb(92 201 138 / 0), var(--sombra-alta); } }
@media (max-width: 900px) { .aovivo span { display: none; } .aovivo { padding: 0 9px; } }
@media (prefers-reduced-motion: reduce) { .aovivo i::after, .dash__hero--pulso { animation: none; } }

/* =========================================================
   QR CODE · escolha do posto (primeira etapa)
   ========================================================= */
.qa--sem-posto .qa__resto, .qa--sem-posto .qa__barra { display: none; }
.qa--liberou .qa__resto { animation: qpLibera .55s cubic-bezier(.2,.8,.2,1) both; }
.qa--liberou .qa__resto:nth-of-type(3) { animation-delay: .08s; }
.qa--liberou .qa__resto:nth-of-type(4) { animation-delay: .16s; }
.qa--liberou .qa__barra { animation: qpLibera .5s .2s cubic-bezier(.2,.8,.2,1) both; }
@keyframes qpLibera { from { opacity: 0; transform: translateY(18px) scale(.98); } }

.qa__postos { padding: 16px; display: grid; gap: 12px; }
.qp__cab { display: grid; padding-right: 36px; }
.qp__geo { justify-self: start; display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--c) 45%, var(--linha)); background: color-mix(in srgb, var(--c) 8%, var(--elev)); color: var(--tinta); font: 600 .86rem var(--f-ui); cursor: pointer; }
.qp__geo .i { width: 16px; height: 16px; color: var(--c); }
.qp__geo:disabled { opacity: .7; cursor: progress; }
.qp__geo:disabled .i { animation: pisca 1s infinite; }
.qp__geo--ok { border-color: transparent; background: none; padding: 0; height: auto; color: var(--tinta-3); font-size: .8rem; cursor: default; }
.qp__aviso { font-size: .8rem; color: var(--tinta-3); }

/* "você está aqui": o posto mais próximo, a até 400 m */
.qp__aqui {
  position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 14px; align-items: center; padding: 16px; border-radius: 18px; color: #fff; overflow: hidden; isolation: isolate;
  background: radial-gradient(260px 160px at 12% 20%, color-mix(in srgb, var(--c) 55%, transparent), transparent 70%), linear-gradient(150deg, var(--navy-2), var(--navy));
  box-shadow: 0 16px 34px -18px color-mix(in srgb, var(--c) 80%, #000);
  animation: qpSurge .5s cubic-bezier(.2,1.2,.3,1) both;
}
.qp__radar { position: relative; width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--c) 35%, transparent); color: #fff; grid-row: span 2; }
.qp__radar .i { width: 24px; height: 24px; position: relative; z-index: 1; }
.qp__radar i { position: absolute; inset: 0; border-radius: 50%; border: 2px solid color-mix(in srgb, var(--c) 70%, #fff); animation: qpRadar 2s ease-out infinite; }
.qp__radar i + i { animation-delay: 1s; }
.qp__aqui p { display: grid; min-width: 0; }
.qp__aqui small { font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; color: rgb(255 255 255 / .7); }
.qp__aqui b { font: 700 1.2rem/1.2 var(--f-disp); overflow-wrap: anywhere; }
.qp__aqui span { font-size: .84rem; color: rgb(255 255 255 / .8); }
.qp__sim { grid-column: 1 / -1; margin-top: 10px; height: 50px; border: 0; border-radius: 14px; display: flex; align-items: center; justify-content: center; gap: 8px; background: #fff; color: var(--navy); font: 700 1rem var(--f-ui); cursor: pointer; transition: transform .15s; }
.qp__sim:active { transform: scale(.98); }
.qp__sim .i { width: 18px; height: 18px; color: #16a34a; }
@keyframes qpRadar { from { transform: scale(1); opacity: .9; } to { transform: scale(2.1); opacity: 0; } }
@keyframes qpSurge { from { opacity: 0; transform: translateY(8px) scale(.96); } }

.qp__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.qp__lista li { animation: qpLista .4s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--i) * 45ms); }
@keyframes qpLista { from { opacity: 0; transform: translateY(8px); } }
.qp__posto { width: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px; border-radius: 16px; border: 1px solid var(--linha-2); background: var(--card); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s, transform .15s; }
.qp__posto:hover { border-color: color-mix(in srgb, var(--c) 55%, var(--linha)); background: var(--elev); }
.qp__posto:active { transform: scale(.99); }
.qp__ic { width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; flex: none; color: var(--c); background: color-mix(in srgb, var(--c) 14%, transparent); }
.qp__ic .i { width: 22px; height: 22px; }
.qp__txt { display: grid; min-width: 0; }
.qp__txt b { font: 700 1rem/1.25 var(--f-disp); overflow-wrap: anywhere; }
.qp__txt small { font-size: .78rem; color: var(--tinta-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qp__txt em { font-style: normal; font-size: .78rem; color: var(--tinta-2); }
.qp__lado { display: grid; justify-items: end; gap: 1px; }
.qp__lado b { font: 700 .98rem var(--f-ui); white-space: nowrap; }
.qp__lado small { font-size: .7rem; color: var(--tinta-3); white-space: nowrap; }
.qp__lado em { margin-top: 3px; font-style: normal; font-size: .72rem; font-weight: 700; padding: 1px 7px; border-radius: 999px; color: var(--c); background: color-mix(in srgb, var(--c) 12%, transparent); }

/* depois de escolher: vira uma faixa compacta */
.qp__escolhido { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; animation: qpSurge .35s ease-out both; }
.qp__escolhido .qp__ok { position: static; order: 3; display: none; }
.qa__postos:has(.qp__escolhido) { padding: 12px 14px; border-color: color-mix(in srgb, #16a34a 45%, var(--linha-2)); }
.qa__postos:has(.qp__escolhido) .qp__ic { color: #fff; background: #16a34a; }
.qp__trocar { height: 34px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--linha); background: var(--card); color: var(--tinta-2); font: 600 .82rem var(--f-ui); cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .qp__radar i, .qp__lista li, .qp__aqui, .qa--liberou .qa__resto, .qa--liberou .qa__barra { animation: none; } }

/* postos credenciados (tela de preços) */
.pc__tit-dica { font-size: .72rem; letter-spacing: 0; text-transform: none; font-weight: 500; color: var(--tinta-3); margin-left: 6px; }
.pc__postos { list-style: none; margin: 8px 0 10px; padding: 0; display: grid; gap: 8px; }
.pc__posto { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px; border-radius: 14px; background: var(--elev); border: 1px solid var(--linha-2); }
.pc__posto--off { opacity: .6; }
.pc__posto-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; color: var(--acento); background: var(--acento-2); }
.pc__posto-txt { display: grid; gap: 2px; min-width: 0; }
.pc__posto-txt b { font: 700 .95rem var(--f-disp); }
.pc__posto-txt b em { font: 600 .7rem var(--f-ui); font-style: normal; color: var(--tinta-3); margin-left: 6px; }
.pc__posto-txt small { font-size: .76rem; color: var(--tinta-3); }
.pc__posto-bts { display: flex; gap: 4px; }
.pc__postoform { display: grid; gap: 12px; padding: 16px; border-radius: 16px; background: var(--card-2); border: 1px solid var(--linha); margin-top: 8px; }
.pc__postoform .erro:empty { display: none; }
.pc__local { display: flex; gap: 8px; }
.pc__local input { flex: 1; min-width: 0; }
.pc__local .btn { flex: none; min-height: 44px; }
.pc__ativo { display: inline-flex; align-items: center; gap: 8px; font-size: .88rem; }
.pc__hist-comb small { display: block; font-size: .7rem; font-weight: 500; color: var(--acento); }
@media (max-width: 640px) {
  .pc__posto { grid-template-columns: auto minmax(0, 1fr); }
  .pc__posto-bts { grid-column: 1 / -1; justify-content: flex-end; }
  .pc__local { flex-direction: column; }
}

/* =========================================================
   ADICIONAR / ATUALIZAR PELA PLANILHA (prévia)
   ========================================================= */
.imp { display: grid; gap: 12px; max-height: min(66vh, 680px); overflow: auto; }
.imp__arq { display: flex; gap: 10px; align-items: flex-start; font-size: .88rem; color: var(--tinta-2); line-height: 1.45; }
.imp__arq > .i { flex: none; color: var(--acento); margin-top: 2px; }
.imp__kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.imp__kpi { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 8px; padding: 12px; border-radius: 14px; background: var(--elev); border: 1px solid var(--linha-2); --c: var(--tinta-3); }
.imp__kpi .i { grid-row: span 2; width: 30px; height: 30px; padding: 7px; border-radius: 9px; color: var(--c); background: color-mix(in srgb, var(--c) 13%, transparent); box-sizing: border-box; }
.imp__kpi b { font: 700 1.35rem/1 var(--f-ui); }
.imp__kpi span { font-size: .76rem; color: var(--tinta-3); }
.imp__kpi--novo { --c: #16a34a; } .imp__kpi--muda { --c: var(--acento); } .imp__kpi--aviso { --c: var(--cat-manut); }
.imp__extra { font-size: .84rem; color: var(--tinta-2); padding: 8px 12px; border-radius: 10px; background: var(--card-2); }
.imp__sec { border: 1px solid var(--linha-2); border-radius: 14px; background: var(--elev); overflow: hidden; }
.imp__sec summary { display: flex; align-items: center; gap: 8px; padding: 12px 14px; cursor: pointer; list-style: none; font-size: .92rem; }
.imp__sec summary::-webkit-details-marker { display: none; }
.imp__n { font: 700 .75rem var(--f-ui); padding: 1px 8px; border-radius: 999px; background: var(--card-2); color: var(--tinta-2); }
.imp__chev { margin-left: auto; width: 16px; height: 16px; color: var(--tinta-3); transition: transform .2s; }
.imp__sec[open] .imp__chev { transform: rotate(180deg); }
.imp__lista { display: grid; border-top: 1px solid var(--linha-2); max-height: 320px; overflow: auto; }
.imp__item { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 10px; align-items: baseline; padding: 8px 14px; border-bottom: 1px solid var(--linha-2); font-size: .84rem; }
.imp__item:last-child { border-bottom: 0; }
.imp__placa { font: 700 .82rem var(--f-mono); letter-spacing: .03em; }
.imp__meta { color: var(--tinta-2); overflow-wrap: anywhere; }
.imp__difs { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.imp__dif { display: inline-flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.imp__dif small { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-3); }
.imp__dif s { color: var(--tinta-3); }
.imp__dif .i { width: 12px; height: 12px; color: var(--tinta-3); }
.imp__dif b { color: var(--acento); }
.imp__aviso { display: flex; gap: 8px; align-items: flex-start; padding: 8px 14px; border-bottom: 1px solid var(--linha-2); font-size: .82rem; color: var(--tinta-2); }
.imp__aviso .i { flex: none; width: 15px; height: 15px; margin-top: 2px; color: var(--cat-manut); }
.imp__aviso--erro .i { color: var(--perigo); }
@media (max-width: 640px) {
  .imp__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .imp__item { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}
