:root {
  /* Base igual ao Sistema GR (azul-marinho escuro), só que com laranja no
     lugar do azul como cor de marca — mesma "temperatura" visual dos dois
     sistemas, cada um com sua cor própria. */
  --bg:#06101f; --bg2:#0b1a30; --orange:#e8791f; --orange2:#c2560c; --accent:#ffb454;
  --text:#eef2ff; --sub:#8a9db8; --border:rgba(var(--tint-rgb),0.12);
  --card:rgba(var(--tint-rgb),0.055); --card2:rgba(var(--tint-rgb),0.09);
  --ok:#00d4a0; --danger:#ff4757; --tint-rgb:255,255,255; --pastel-blue:#6fa8f0; --pastel-green:#4fe0a0;
  /* --heading existe só pra viabilizar o tema claro sem retrabalho — no
     escuro vale o mesmo branco fixo de sempre (zero mudança visual no
     escuro), no claro passa a ter valor próprio. */
  --heading:#fff;
  color-scheme: dark; /* pede pro navegador desenhar select/date/etc no tema escuro nativo */
}

/* ── TEMA CLARO ── :root[data-theme="light"] tem mais especificidade
   que qualquer ":root{}" sozinho, então sempre ganha, não importa a
   ordem de carregamento dos arquivos. */
:root[data-theme="light"] {
  --bg:#eef1f6; --bg2:#ffffff; --orange:#b6560f; --orange2:#8f4409; --accent:#8a5a10;
  --text:#10192b; --sub:#414f61; --border:rgba(16,25,43,0.22);
  --card:rgba(16,25,43,0.06); --card2:rgba(16,25,43,0.09);
  --ok:#0a9b76; --danger:#dc2f3f; --tint-rgb:16,25,43; --pastel-blue:#1d4ed8; --pastel-green:#0e8f5f;
  --heading:#10192b;
  color-scheme: light;
}
* { box-sizing:border-box; margin:0; padding:0; }
/* font-synthesis:none evita que o navegador "invente" um negrito falso
   quando a fonte Sora (peso 800) demora ou falha pra carregar da rede —
   sem isso, o navegador tenta desenhar um negrito sintético duplicando o
   traço da letra, o que em textos pequenos (tipo os números do Dashboard)
   cria um efeito de "fantasma"/número borrado bem feio. Com isso desligado,
   se a fonte não chegar a tempo, o texto só aparece um pouco mais fino —
   nunca duplicado. */
body { font-family:'DM Sans',sans-serif; background:var(--bg); color:var(--text); min-height:100vh; overflow-x:hidden; font-synthesis:none; }

.orb { position:fixed; border-radius:50%; filter:blur(120px); pointer-events:none; z-index:0; }
.orb1 { width:720px; height:720px; background:radial-gradient(circle,#c2560c 0%,transparent 65%); top:-300px; left:-200px; opacity:.35; }
.orb2 { width:500px; height:500px; background:radial-gradient(circle,#1a2f52 0%,transparent 65%); bottom:-200px; right:-150px; opacity:.5; }
:root[data-theme="light"] .orb1,:root[data-theme="light"] .orb2{opacity:.08}
.bg-grid { position:fixed; inset:0; pointer-events:none; z-index:0; background-image:linear-gradient(rgba(232,121,31,0.045) 1px,transparent 1px),linear-gradient(90deg,rgba(232,121,31,0.045) 1px,transparent 1px); background-size:48px 48px; }

.page { position:relative; z-index:1; max-width:1200px; margin:0 auto; padding:32px 28px 80px; }

header { display:flex; align-items:center; justify-content:space-between; margin-bottom:32px; padding-bottom:20px; border-bottom:1px solid var(--border); flex-wrap:wrap; gap:14px; }
.logo-wrap { display:flex; align-items:center; gap:14px; }
.logo-badge { width:48px; height:48px; background:var(--orange); border-radius:13px; display:flex; align-items:center; justify-content:center; font-size:22px; box-shadow:0 0 26px rgba(232,121,31,.5); }
.logo-text { font-family:'Sora',sans-serif; font-weight:800; font-size:18px; color:var(--heading); }
.logo-sub { font-size:12px; color:var(--sub); margin-top:2px; }
.btnVoltar { font-size:13px; color:var(--sub); text-decoration:none; border:1px solid var(--border); padding:8px 14px; border-radius:10px; background:var(--card); transition:.15s; }
.btnVoltar:hover { color:var(--accent); border-color:rgba(232,121,31,.4); }

.abas { display:flex; gap:8px; margin-bottom:28px; flex-wrap:wrap; }
.aba { background:var(--card); border:1px solid var(--border); color:var(--sub); font-family:'DM Sans',sans-serif; font-size:13px; font-weight:500; padding:10px 18px; border-radius:11px; cursor:pointer; transition:.15s; }
.aba:hover { color:var(--text); }
.aba.ativo { background:rgba(232,121,31,.15); color:var(--accent); border-color:rgba(232,121,31,.4); }

.hero { margin-bottom:28px; }
.hero-label { font-family:'Sora',sans-serif; font-weight:700; font-size:12px; letter-spacing:2px; color:var(--orange); text-transform:uppercase; }
.hero h1 { font-family:'Sora',sans-serif; font-weight:800; font-size:30px; color:var(--heading); margin-top:10px; }
.hero-sub { font-size:14px; color:var(--sub); margin-top:8px; max-width:560px; line-height:1.55; }

/* Formulário */
.form-card { background:var(--card); border:1px solid var(--border); border-radius:20px; padding:28px; }

.grupo-tipo { margin-bottom:4px; }
.lbl-grupo { display:block; font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--sub); margin-bottom:10px; font-weight:600; }
.tipo-toggle { display:flex; gap:10px; flex-wrap:wrap; }
.tipo-btn { flex:1 1 160px; background:var(--card2); border:1px solid var(--border); color:var(--sub); font-family:'DM Sans',sans-serif; font-size:13.5px; font-weight:600; padding:12px; border-radius:12px; cursor:pointer; transition:.15s; }
.tipo-btn:hover { color:var(--text); }
.tipo-btn.ativo { background:rgba(232,121,31,.18); color:var(--accent); border-color:var(--orange); box-shadow:0 0 20px rgba(232,121,31,.2); }

.secao-combustivel { background:var(--card2); border:1px solid var(--border); border-radius:16px; padding:20px; }
.secao-combustivel .lbl-grupo { margin-bottom:14px; }

.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.grid > * { min-width: 0; } /* mesma proteção contra vazamento de grid explicada mais abaixo */
.campo { display:flex; flex-direction:column; }
.campo-full { margin-top:16px; }
.campo-uf { max-width:120px; }
label { font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--sub); margin-bottom:6px; font-weight:600; }
input, textarea, select {
  background:var(--card2); border:1px solid var(--border); color:var(--text); padding:11px 13px;
  border-radius:11px; font-size:14px; font-family:'DM Sans',sans-serif; outline:none; transition:.15s; width:100%;
}
input:focus, textarea:focus { border-color:var(--orange); background:rgba(232,121,31,.06); }
input[type=file] { padding:9px 12px; cursor:pointer; }
input[type=file]::file-selector-button { background:var(--orange); color:#fff; border:none; padding:7px 13px; border-radius:8px; font-family:inherit; font-size:12px; margin-right:10px; cursor:pointer; }
textarea { resize:vertical; }
.dica { font-size:11px; color:var(--sub); margin-top:5px; }

/* Autocomplete */
.ac-wrap { position:relative; }
.ac-lista { position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--bg2); border:1px solid var(--border); border-radius:11px; overflow:hidden; z-index:20; display:none; max-height:220px; overflow-y:auto; box-shadow:0 12px 30px rgba(0,0,0,.5); }
.ac-lista.aberta { display:block; }
.ac-item { padding:10px 13px; font-size:13.5px; cursor:pointer; transition:.1s; border-bottom:1px solid rgba(var(--tint-rgb),.04); }
.ac-item:last-child { border-bottom:none; }
.ac-item:hover, .ac-item.sel { background:rgba(232,121,31,.18); color:var(--accent); }

.comprovante-atual { margin-top:10px; }
.comprovante-atual a { color:var(--accent); font-size:13px; text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.comprovante-atual .rm { color:var(--danger); cursor:pointer; font-size:12px; margin-left:10px; }

.msg { font-size:13px; font-weight:600; margin-top:16px; min-height:18px; }
.msg.ok { color:var(--ok); }
.msg.erro { color:var(--danger); }

.form-acoes { display:flex; gap:12px; margin-top:20px; flex-wrap:wrap; }
.btn-primary { background:var(--orange); color:#fff; border:none; font-family:'Sora',sans-serif; font-weight:800; font-size:14px; padding:13px 26px; border-radius:12px; cursor:pointer; transition:.15s; }
.btn-primary:hover:not(:disabled) { filter:brightness(1.12); }
.btn-primary:disabled { opacity:.6; cursor:not-allowed; }
.btn-ghost { background:var(--card2); color:var(--sub); border:1px solid var(--border); font-family:'DM Sans',sans-serif; font-weight:600; font-size:13px; padding:13px 20px; border-radius:12px; cursor:pointer; transition:.15s; }
.btn-ghost:hover { color:var(--text); }

/* Filtros histórico */
.filtros-painel {
  background:var(--card); border:1px solid var(--border); border-radius:18px;
  padding:22px 24px; margin-bottom:22px; display:flex; flex-direction:column; gap:18px;
}
.filtros-linha { display:flex; gap:16px; flex-wrap:wrap; align-items:flex-end; }
.filtro-campo { display:flex; flex-direction:column; gap:6px; }
.filtro-campo label { font-size:10.5px; text-transform:uppercase; letter-spacing:.8px; color:var(--sub); font-weight:600; }
.filtros-linha .filtro-campo input, .filtros-linha .filtro-campo select { min-width:170px; }
.filtros-linha-periodo .filtro-campo input { min-width:150px; }
.filtros-divisor { font-size:12px; color:var(--sub); padding-bottom:11px; }
.btn-limpar-filtros { margin-left:auto; align-self:flex-end; }
/* color-scheme:dark (lá em cima) ajuda em parte, mas nem todo navegador
   escurece a lista de opções sozinho — força aqui pra garantir: fundo
   escuro (do tema) com texto claro, em vez de depender só do navegador. */
select option { background:var(--bg2); color:var(--text); }
select option:checked, select option:hover { background:var(--orange); color:#fff; }

.hist-resumo { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:18px; }
.resumo-card { background:var(--card); border:1px solid var(--border); border-radius:14px; padding:14px 16px; flex:1 1 150px; min-width:0; }
/* Números vão crescer com o tempo — nunca corta/esconde o valor (nada de
   ellipsis aqui, isso já causou um bug de valor sumindo). Se não couber
   numa linha só, quebra pra 2 linhas normalmente; o line-height/min-height
   deixam isso com uma cara arrumada em vez de "shift" estranho no layout. */
.resumo-card .v { font-family:'Sora',sans-serif; font-weight:800; font-size:20px; line-height:1.15; color:var(--accent); word-break:break-word; min-height:24px; display:flex; align-items:center; }
.resumo-card .l { font-size:11px; color:var(--sub); text-transform:uppercase; letter-spacing:1px; margin-top:4px; }
.resumo-card.destaque { background:rgba(232,121,31,.12); border-color:rgba(232,121,31,.4); }
.resumo-card.destaque .v { color:var(--heading); }

.btn-sm { font-size:12px; padding:7px 13px; border-radius:9px; border:1px solid var(--border); background:var(--card2); color:var(--sub); cursor:pointer; transition:.15s; font-family:inherit; text-decoration:none; display:inline-flex; align-items:center; gap:5px; }
.btn-sm:hover { color:var(--text); }
.btn-sm.ver { color:var(--accent); border-color:rgba(232,121,31,.3); }
.btn-sm.del { color:var(--danger); border-color:rgba(255,107,61,.3); }

.vazio { text-align:center; padding:50px 20px; color:var(--sub); }
.vazio .ico { font-size:40px; margin-bottom:12px; }
.segmented { display:inline-flex; background:var(--card2); border:1px solid var(--border); border-radius:12px; padding:4px; gap:3px; flex-wrap:wrap; }
.segmented-btn { background:transparent; border:none; color:var(--sub); font-family:'DM Sans',sans-serif; font-size:12.5px; font-weight:700; padding:8px 15px; border-radius:9px; cursor:pointer; transition:.15s; white-space:nowrap; }
.segmented-btn:hover { color:var(--text); }
.segmented-btn.ativo { background:var(--card); color:var(--heading); box-shadow:0 2px 10px rgba(0,0,0,.35); }
.segmented-btn.tipo-frigorifico.ativo { color:var(--pastel-blue); }
.segmented-btn.tipo-sider.ativo { color:var(--accent); }

/* ══════════════════════════════════════════════════════════════
   ANÁLISE DE ROTA
   ══════════════════════════════════════════════════════════════ */
.page.page-larga { max-width:1560px; }
.ar-layout { display:grid; grid-template-columns:340px 1fr; gap:18px; align-items:start; }
@media (max-width:980px) { .ar-layout { grid-template-columns:1fr; } }
.ar-lateral { display:flex; flex-direction:column; gap:14px; }
.ar-lateral .form-card { padding:18px; border-radius:16px; }
.ar-campo { display:flex; flex-direction:column; gap:6px; margin-bottom:12px; position:relative; }
.ar-campo:last-child { margin-bottom:0; }
.ar-campo-linha { display:flex; gap:6px; }
.ar-campo-linha input { flex:1; min-width:0; }
.ar-btn-mapa { flex-shrink:0; width:40px; border-radius:10px; border:1px solid var(--border); background:var(--card2); color:var(--sub); cursor:pointer; font-size:15px; }
.ar-btn-mapa:hover, .ar-btn-mapa.ativo { color:var(--accent); border-color:rgba(232,121,31,.5); background:rgba(232,121,31,.12); }
.ar-ponto-dot { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; vertical-align:0; }
.ar-ponto-dot.origem { background:#16a34a; } .ar-ponto-dot.destino { background:#dc2626; }
.ar-opcoes { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ar-acoes { display:flex; gap:8px; flex-wrap:wrap; }
.ar-acoes .btn-primary { flex:1; padding:12px 16px; }
.ar-acoes .btn-ghost { padding:10px 14px; font-size:12.5px; }
.ar-titulo-secao { font-family:'Sora',sans-serif; font-weight:700; font-size:13px; color:var(--heading); margin-bottom:10px; display:flex; justify-content:space-between; align-items:center; gap:8px; }
.ar-passagens { display:flex; flex-direction:column; gap:6px; }
.ar-passagem { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--sub); background:var(--card2); border-radius:9px; padding:6px 8px; }
.ar-passagem .num { width:20px; height:20px; border-radius:50%; background:#fff; color:#1e3a8a; border:2px solid #2563eb; font-weight:700; font-size:10.5px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ar-passagem .txt { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-family:'DM Mono',monospace; font-size:11px; }
.ar-passagem button { background:none; border:none; color:var(--danger); cursor:pointer; font-size:13px; }
.ar-salvas { display:flex; flex-direction:column; gap:6px; max-height:320px; overflow-y:auto; }
.ar-salva { display:flex; align-items:center; gap:8px; padding:9px 10px; border-radius:10px; border:1px solid var(--border); background:var(--card2); cursor:pointer; transition:.12s; }
.ar-salva:hover, .ar-salva.ativa { border-color:rgba(232,121,31,.5); background:rgba(232,121,31,.08); }
.ar-salva .info { flex:1; min-width:0; }
.ar-salva .nome { font-size:13px; font-weight:600; color:var(--heading); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ar-salva .meta { font-size:11px; color:var(--sub); }
.ar-salva button { background:none; border:none; color:var(--sub); cursor:pointer; font-size:13px; padding:4px; border-radius:6px; }
.ar-salva button:hover { color:var(--danger); }

.ar-principal { display:flex; flex-direction:column; gap:14px; min-width:0; }
.ar-mapa-wrap { position:relative; border-radius:16px; overflow:hidden; border:1px solid var(--border); }
#ar-mapa { height:62vh; min-height:440px; background:#dfe6ee; }
.ar-mapa-dica { position:absolute; left:12px; bottom:12px; z-index:500; background:rgba(11,26,48,.88); color:#e6edf7; font-size:11.5px; line-height:1.5; padding:8px 11px; border-radius:10px; max-width:430px; pointer-events:none; }
.ar-mapa-carregando { position:absolute; inset:0; z-index:600; display:none; align-items:center; justify-content:center; background:rgba(6,16,31,.35); color:#fff; font-weight:600; font-size:14px; }
.ar-mapa-carregando.ativo { display:flex; }
.ar-mapa-carregando span { background:rgba(11,26,48,.92); padding:10px 16px; border-radius:12px; }
.ar-modo-escolha #ar-mapa { cursor:crosshair; }

.ar-resumo { display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px; }
@media (max-width:1100px) { .ar-resumo { grid-template-columns:repeat(3, minmax(0,1fr)); } }
.ar-resumo .resumo-card .v { font-size:18px; }
.ar-provedor { font-size:11px; color:var(--sub); }

.ar-tabela-wrap { background:var(--card); border:1px solid var(--border); border-radius:16px; overflow-x:auto; }
table.ar-tabela { width:100%; border-collapse:collapse; font-size:13px; font-variant-numeric:tabular-nums; }
.ar-tabela th { text-align:left; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--text); background:var(--card2); padding:11px 10px; border-bottom:2px solid var(--border); white-space:nowrap; }
.ar-tabela td { padding:9px 10px; border-bottom:1px solid var(--border); vertical-align:middle; }
.ar-tabela tr:last-child td { border-bottom:none; }
.ar-tabela tbody tr { cursor:pointer; }
.ar-tabela tbody tr:hover td { background:rgba(232,121,31,.06); }
.ar-tabela .num { text-align:right; white-space:nowrap; }
.ar-km { font-family:'DM Mono',monospace; font-size:12px; color:var(--sub); white-space:nowrap; }
.ar-posto-nome { font-weight:600; color:var(--heading); }
.ar-posto-local { font-size:11.5px; color:var(--sub); }
.ar-preco { display:inline-block; min-width:62px; text-align:right; font-weight:800; font-size:14px; padding:3px 9px; border-radius:8px; }
.ar-preco.faixa-1 { background:rgba(34,197,94,.16); color:#16a34a; border:1px solid rgba(34,197,94,.4); }
.ar-preco.faixa-2 { background:rgba(234,179,8,.14); color:#b7791f; border:1px solid rgba(234,179,8,.4); }
.ar-preco.faixa-3 { background:rgba(239,68,68,.12); color:var(--danger); border:1px solid rgba(239,68,68,.35); }
.ar-origem { font-size:11.5px; color:var(--sub); white-space:nowrap; }
.ar-tag { display:inline-block; font-size:10px; font-weight:700; padding:2px 7px; border-radius:20px; margin-left:4px; vertical-align:1px; }
.ar-tag.top { background:rgba(34,197,94,.16); color:#16a34a; }
.ar-tag.neg { background:rgba(139,92,246,.15); color:#8b5cf6; }
.ar-tag.alerta { background:rgba(239,68,68,.12); color:var(--danger); }
.ar-aviso { font-size:12px; color:var(--sub); padding:10px 14px; border-radius:12px; background:var(--card); border:1px dashed var(--border); }

/* Marcadores do mapa */
.ar-mk-ponto { width:26px; height:26px; border-radius:50%; color:#fff; font-weight:800; font-size:12px; display:flex; align-items:center; justify-content:center; border:3px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.35); font-family:'Sora',sans-serif; }
.ar-mk-ponto.origem { background:#16a34a; } .ar-mk-ponto.destino { background:#dc2626; }
.ar-mk-passagem { width:16px; height:16px; border-radius:50%; background:#fff; border:3px solid #2563eb; box-shadow:0 1px 5px rgba(0,0,0,.35); }
.ar-mk-posto { transform:translate(-50%,-100%); display:inline-block; white-space:nowrap; font-family:'DM Sans',sans-serif; font-weight:800; font-size:11.5px; padding:3px 7px; border-radius:7px; color:#fff; box-shadow:0 2px 6px rgba(0,0,0,.3); border:2px solid #fff; position:relative; }
.ar-mk-posto::after { content:''; position:absolute; left:50%; bottom:-7px; transform:translateX(-50%); border:5px solid transparent; border-top-color:#fff; }
.ar-mk-posto.faixa-1 { background:#16a34a; } .ar-mk-posto.faixa-2 { background:#d97706; } .ar-mk-posto.faixa-3 { background:#dc2626; }
.ar-mk-posto.destaque { outline:3px solid #facc15; }
.leaflet-div-icon.ar-sem-fundo { background:none; border:none; }

/* ── Fase 2: plano de abastecimento ── */
.ar-plano { background:var(--card); border:1px solid var(--border); border-radius:16px; padding:18px 20px; }
.ar-plano-topo { display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.ar-plano-titulo { font-family:'Sora',sans-serif; font-weight:800; font-size:16px; color:var(--heading); }
.ar-plano-sub { font-size:12px; color:var(--sub); }
.ar-plano-kpis { display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px; margin-bottom:16px; }
@media (max-width:1100px) { .ar-plano-kpis { grid-template-columns:repeat(3, minmax(0,1fr)); } }
.ar-plano-kpi { background:var(--card2); border-radius:12px; padding:10px 12px; }
.ar-plano-kpi .v { font-family:'Sora',sans-serif; font-weight:800; font-size:17px; color:var(--heading); font-variant-numeric:tabular-nums; }
.ar-plano-kpi .v.verde { color:#16a34a; }
.ar-plano-kpi .l { font-size:10.5px; text-transform:uppercase; letter-spacing:.8px; color:var(--sub); margin-top:3px; }
.ar-paradas { position:relative; display:flex; flex-direction:column; gap:0; }
.ar-parada { display:grid; grid-template-columns:34px 1fr auto; gap:12px; align-items:center; padding:10px 0; position:relative; }
.ar-parada:not(:last-child)::after { content:''; position:absolute; left:16px; top:40px; bottom:-10px; width:2px; background:var(--border); }
.ar-parada .bola { width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; font-family:'Sora',sans-serif; font-size:13px; color:#fff; background:var(--orange); position:relative; z-index:1; }
.ar-parada .bola.ponta { background:#16a34a; } .ar-parada .bola.fim { background:#dc2626; }
.ar-parada .nome { font-weight:700; color:var(--heading); font-size:13.5px; }
.ar-parada .det { font-size:12px; color:var(--sub); margin-top:2px; }
.ar-parada .direita { text-align:right; font-variant-numeric:tabular-nums; }
.ar-parada .litros { font-weight:800; font-size:15px; color:var(--heading); }
.ar-parada .custo { font-size:12px; color:var(--sub); }
.ar-plano-erro { padding:12px 14px; border-radius:12px; background:rgba(239,68,68,.1); border:1px solid rgba(239,68,68,.35); color:var(--danger); font-size:13px; font-weight:600; }
.ar-plano-vazio { font-size:12.5px; color:var(--sub); }
.ar-tag.plano { background:rgba(232,121,31,.16); color:var(--orange); }
.ar-mk-posto.parada { outline:3px solid #2563eb; outline-offset:1px; }
.ar-mk-posto .n { display:inline-block; background:#2563eb; color:#fff; border-radius:50%; width:15px; height:15px; line-height:15px; text-align:center; font-size:10px; margin-right:4px; }

/* ── Fase 3: gerenciadora de risco ── */
.ar-check { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--text); text-transform:none; letter-spacing:0; font-weight:500; margin:6px 0; cursor:pointer; }
.ar-check input { width:16px; height:16px; accent-color:var(--orange); }
.ar-tag.homol { background:rgba(34,197,94,.14); color:#16a34a; }
.ar-tag.bloq { background:rgba(239,68,68,.14); color:var(--danger); }
.ar-tag.semhomol { background:rgba(var(--tint-rgb),.08); color:var(--sub); }
.ar-tag.risco { background:rgba(220,38,38,.9); color:#fff; }
.ar-tabela tr.ar-linha-bloq td { opacity:.55; }
.ar-tabela tr.ar-linha-bloq .ar-preco { text-decoration:line-through; }
.ar-mk-posto.bloqueado { background:#6b7280 !important; }
.ar-mk-posto .ok { margin-left:3px; }
.ar-riscos { background:var(--card); border:1px solid rgba(220,38,38,.35); border-radius:16px; padding:16px 20px; }
.ar-riscos-titulo { font-family:'Sora',sans-serif; font-weight:800; font-size:15px; color:var(--danger); margin-bottom:10px; }
.ar-risco { display:grid; grid-template-columns:110px 1fr; gap:12px; padding:9px 0; border-top:1px solid var(--border); font-size:13px; }
.ar-risco:first-of-type { border-top:none; }
.ar-risco .km { font-family:'DM Mono',monospace; font-weight:600; color:var(--danger); }
.ar-risco .nome { font-weight:700; color:var(--heading); }
.ar-risco .det { font-size:12px; color:var(--sub); margin-top:2px; }
.ar-plano-fora { font-size:12px; color:var(--sub); margin-top:12px; padding-top:10px; border-top:1px dashed var(--border); }
.ar-plano-topo .btn-sm { margin-left:8px; }
.ar-ac-det { font-size:11px; color:var(--sub); margin-left:4px; }
.ar-regioes { display:flex; flex-wrap:wrap; gap:5px; }
.ar-regioes button { font-size:11.5px; font-weight:600; padding:5px 10px; border-radius:20px; border:1px solid var(--border); background:var(--card2); color:var(--sub); cursor:pointer; font-family:inherit; }
.ar-regioes button.ativo { background:rgba(232,121,31,.16); border-color:rgba(232,121,31,.55); color:var(--orange); }
.ar-tag.cheio { background:rgba(37,99,235,.14); color:#2563eb; }
.ar-tag.parcial { background:rgba(234,179,8,.16); color:#a16207; }
.ar-homol-lista { margin-top:10px; max-height:420px; overflow-y:auto; border-top:1px solid var(--border); }
.ar-homol-item { display:grid; grid-template-columns:70px 1fr auto; gap:10px; padding:7px 0; border-bottom:1px solid var(--border); font-size:12.5px; align-items:center; cursor:pointer; }
.ar-homol-item:hover { background:rgba(232,121,31,.05); }
.ar-homol-item .km { font-family:'DM Mono',monospace; color:var(--sub); font-size:11.5px; }
.ar-homol-item .nome { font-weight:600; color:var(--heading); }
.ar-homol-item .det { font-size:11.5px; color:var(--sub); }
.ar-homol-item .preco { font-weight:800; color:#16a34a; white-space:nowrap; }
.ar-homol-filtro { margin-top:10px; }
.ar-homol-filtro input { width:100%; }
.ar-homol-info { font-size:12px; color:var(--sub); padding:8px 0 4px; }
/* Busca de cidade no canto do mapa */
.ar-busca-mapa { position:relative; width:260px; }
.ar-busca-mapa input { width:100%; padding:9px 12px; border-radius:10px; border:1px solid rgba(0,0,0,.2); background:#fff; color:#111827; font-size:13px; box-shadow:0 2px 8px rgba(0,0,0,.2); outline:none; font-family:inherit; }
.ar-busca-mapa .ac-lista { position:absolute; top:100%; left:0; right:0; margin-top:4px; max-height:280px; overflow-y:auto; background:#fff; color:#111827; border-radius:10px; box-shadow:0 6px 18px rgba(0,0,0,.25); z-index:1000; }
.ar-busca-mapa .ac-item { color:#111827; }
.ar-busca-mapa .ar-ac-det { color:#6b7280; }
.ar-mk-cidade { font-size:26px; line-height:1; filter:drop-shadow(0 2px 3px rgba(0,0,0,.4)); }
.ar-popup-acoes { display:flex; gap:6px; margin-top:10px; flex-wrap:wrap; }
.ar-popup-acoes button, .ar-popup-acoes a { font-size:12px; font-weight:600; padding:6px 10px; border-radius:8px; border:1px solid #d1d5db; background:#f9fafb; color:#111827 !important; text-decoration:none; cursor:pointer; font-family:inherit; }
.ar-popup-acoes a[href^="https://wa.me"] { background:#dcfce7; border-color:#86efac; }

/* ── Seletor de veículo por categoria (Plano de abastecimento) ── */
.ar-vsel { position:relative; }
.ar-vsel-botao { width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px; text-align:left; padding:10px 12px; border-radius:10px; border:1px solid var(--border); background:var(--bg2); color:var(--text); font-family:inherit; font-size:13px; cursor:pointer; }
.ar-vsel-botao:hover { border-color:rgba(232,121,31,.5); }
.ar-vsel-mot { color:var(--sub); font-size:12px; }
.ar-vsel-seta { color:var(--sub); }
.ar-vsel-painel { display:none; position:absolute; z-index:900; top:calc(100% + 4px); left:0; width:max(100%, 360px); max-height:420px; overflow-y:auto; background:var(--bg2); border:1px solid var(--border); border-radius:12px; box-shadow:0 14px 34px rgba(0,0,0,.35); padding:8px; }
.ar-vsel-painel.aberto { display:block; }
.ar-vsel-painel input { width:100%; margin-bottom:6px; }
.ar-vsel-grupo { border-top:1px solid var(--border); }
.ar-vsel-cab { width:100%; display:flex; align-items:center; gap:8px; padding:9px 6px; background:none; border:none; color:var(--heading); font-weight:700; font-size:12.5px; cursor:pointer; font-family:inherit; text-align:left; }
.ar-vsel-cab:hover { color:var(--orange); }
.ar-vsel-seta2 { width:12px; color:var(--sub); }
.ar-vsel-qtd { margin-left:auto; font-size:11px; font-weight:600; color:var(--sub); background:rgba(var(--tint-rgb),.06); padding:1px 8px; border-radius:20px; }
.ar-vsel-itens { padding:0 0 6px 18px; }
.ar-vsel-item { width:100%; display:grid; grid-template-columns:78px 1fr; grid-template-rows:auto auto; column-gap:8px; text-align:left; padding:7px 8px; border-radius:8px; border:none; background:none; color:var(--text); cursor:pointer; font-family:inherit; font-size:12.5px; }
.ar-vsel-item:hover, .ar-vsel-item.sel { background:rgba(232,121,31,.12); }
.ar-vsel-item .placa { font-family:'DM Mono',monospace; font-weight:700; grid-row:span 2; align-self:center; }
.ar-vsel-item .mot { font-weight:600; }
.ar-vsel-item .mot i { color:var(--sub); font-weight:400; }
.ar-vsel-item .info { font-size:11px; color:var(--sub); }
.ar-vsel-item.limpar { display:block; color:var(--sub); margin-bottom:4px; }
