
.bg-véu[data-v-23fedad5] { position: fixed; inset: 0; z-index: 3500; background: rgba(23, 28, 36, 0.42); display: flex; align-items: flex-start; justify-content: center; padding-top: 10vh;
}
.bg-caixa[data-v-23fedad5] { width: 680px; max-width: calc(100vw - 32px); background: var(--bg-surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: 0 20px 50px rgba(23, 28, 36, 0.28); overflow: hidden;
}
.bg-topo[data-v-23fedad5] { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--border-soft);
}
.bg-ico[data-v-23fedad5] { width: 24px; height: 24px; color: var(--muted); flex-shrink: 0;
}
.bg-input[data-v-23fedad5] { flex: 1; border: none; outline: none; background: transparent; font: 500 20px var(--font-body); color: var(--text-primary);
}
.bg-input[data-v-23fedad5]::placeholder { color: var(--muted);
}
.bg-esc[data-v-23fedad5] { font-size: 12px; color: var(--muted); border: 1px solid var(--border); border-radius: 5px; padding: 3px 7px; font-family: var(--font-body);
}
.bg-resultados[data-v-23fedad5] { max-height: 420px; overflow: auto; padding: 10px;
}
.bg-dica[data-v-23fedad5] { margin: 0; padding: 26px 14px; text-align: center; color: var(--text-tertiary); font-size: 15px;
}
.bg-dica kbd[data-v-23fedad5] { font-size: 12px; border: 1px solid var(--border); border-radius: 4px; padding: 1px 6px;
}
.bg-grupo-hdr[data-v-23fedad5] { display: flex; align-items: center; gap: 8px; padding: 14px 10px 6px;
}
.bg-grupo-hdr[data-v-23fedad5]:not(:first-child) { margin-top: 4px; border-top: 1px solid var(--border-soft);
}
.bg-tag[data-v-23fedad5] { font: 700 11px var(--font-body); text-transform: uppercase; letter-spacing: 0.04em; padding: 3px 8px; border-radius: 999px; flex-shrink: 0;
}
.bg-tag--motorista[data-v-23fedad5] { background: var(--primary-soft); color: var(--primary-dark);
}
.bg-tag--veiculo[data-v-23fedad5] { background: var(--warn-soft); color: var(--warn);
}
.bg-nome[data-v-23fedad5] { font-weight: 700; font-size: 15px; color: var(--text-primary);
}
.bg-sub[data-v-23fedad5] { font-size: 13px; color: var(--text-tertiary);
}
.bg-item[data-v-23fedad5] {
  width: 100%; display: block; text-align: left; padding: 9px 14px 9px 34px;
  border: none; background: transparent; border-radius: 8px; cursor: pointer;
  font: 600 14.5px var(--font-body); color: var(--primary-deep);
}
.bg-item--ativo[data-v-23fedad5], .bg-item[data-v-23fedad5]:hover, .bg-item[data-v-23fedad5]:focus-visible, .bg-item[data-v-23fedad5]:active { background: var(--bg-soft) !important; box-shadow: none !important; transform: none !important;
}
@media (max-width: 480px) {
.bg-véu[data-v-23fedad5] { padding-top: 6vh;
}
.bg-input[data-v-23fedad5] { font-size: 17px;
}
}

/* Névoa 2.0 (27/08/2026): trilho com ícones de traço numa coluna fixa,
   tudo alinhado à esquerda, ativo em azul tonal, seções em rótulo pequeno. */
.shell[data-v-2750d599] { min-height: 100vh; background: var(--bg-primary); display: flex; flex-direction: column;
}

/* ── Topo ── */
.topo[data-v-2750d599] {
  position: relative; z-index: 1000;
  background: var(--bg-surface); border-bottom: 1px solid var(--border);
  display: flex; align-items: center; gap: 12px; padding: 10px 18px; flex-shrink: 0; min-width: 300px;
}
.topo__burger[data-v-2750d599] { display: none; border: 1px solid var(--border); background: transparent; border-radius: 8px; padding: 6px 10px; font-size: 18px; cursor: pointer; color: var(--text-primary);
}
.topo__burger[data-v-2750d599]:hover, .topo__burger[data-v-2750d599]:focus-visible, .topo__burger[data-v-2750d599]:active { background: var(--bg-soft) !important; box-shadow: none !important;
}
/* Botão "logo/marca": não é uma ação primária — sem isso, herda o hover/active
   azul escuro do reset global de <button> (theme.css) e o texto fica ilegível. */
.topo__brand[data-v-2750d599] { display: flex; align-items: center; gap: 10px; background: none; border: none; cursor: pointer; padding: 4px 6px; border-radius: 8px;
}
.topo__brand[data-v-2750d599]:hover, .topo__brand[data-v-2750d599]:focus-visible, .topo__brand[data-v-2750d599]:active { background: var(--bg-soft) !important; box-shadow: none !important; transform: none !important;
}
.topo__logo[data-v-2750d599] {
  width: 34px; height: 34px; border-radius: 9px;
  background: var(--primary-soft); color: var(--primary-dark); border: 1px solid var(--primary-line);
  display: grid; place-items: center;
}
.topo__logo svg[data-v-2750d599] { width: 20px; height: 20px;
}
.topo__nome[data-v-2750d599] {
  font-family: var(--font-heading); font-weight: 600; font-size: 17px; letter-spacing: -0.01em; color: var(--text-primary);
  display: flex; flex-direction: column; line-height: 1.1; text-align: left; white-space: nowrap;
}
.topo__nome small[data-v-2750d599] { font: 500 15px var(--font-body); color: var(--text-tertiary);
}
.topo__direita[data-v-2750d599] { margin-left: auto; display: flex; align-items: center; gap: 10px;
}
.topo__papel[data-v-2750d599] { font-size: 15px; font-weight: 700; color: var(--warn); background: var(--warn-soft); padding: 5px 10px; border-radius: 999px;
}
.topo__quem[data-v-2750d599] { font-size: 15px; font-weight: 700; color: var(--text-primary); background: none; border: 1px solid transparent; border-radius: 8px; padding: 7px 10px; cursor: pointer; font-family: var(--font-body);
}
.topo__quem[data-v-2750d599]:hover, .topo__quem[data-v-2750d599]:active:not(:disabled) { background: var(--primary-soft); color: var(--primary-dark);
}

/* ── Busca global ── */
.topo__busca[data-v-2750d599] { display: flex; align-items: center; gap: 7px; height: 36px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--border); background: transparent; color: var(--text-tertiary); cursor: pointer; font: 600 14px var(--font-body);
}
.topo__busca[data-v-2750d599]:hover, .topo__busca[data-v-2750d599]:active:not(:disabled) { background: var(--primary-soft); color: var(--primary-dark); border-color: var(--primary-line);
}
.topo__busca svg[data-v-2750d599] { width: 17px; height: 17px; flex-shrink: 0;
}
.topo__busca kbd[data-v-2750d599] { font-size: 11px; color: var(--muted); border: 1px solid var(--border); border-radius: 4px; padding: 1px 5px;
}
@media (max-width: 640px) {
.topo__busca span[data-v-2750d599], .topo__busca kbd[data-v-2750d599] { display: none;
}
}

/* ── Sino ── */
.sino[data-v-2750d599] { position: relative;
}
.sino__btn[data-v-2750d599] { position: relative; width: 36px; height: 36px; border-radius: 8px; border: 1px solid var(--border); background: transparent; color: var(--text-tertiary); cursor: pointer; display: grid; place-items: center;
}
.sino__btn[data-v-2750d599]:hover, .sino__btn[data-v-2750d599]:focus-visible, .sino__btn[data-v-2750d599]:active { background: var(--primary-soft) !important; color: var(--primary-dark); border-color: var(--primary-line); box-shadow: none !important; transform: none !important;
}
.sino__btn svg[data-v-2750d599] { width: 20px; height: 20px;
}
.sino__contador[data-v-2750d599] { position: absolute; top: -6px; right: -6px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--risk); color: #fff; font-size: 12px; font-weight: 700; display: grid; place-items: center;
}
.sino__painel[data-v-2750d599] { position: absolute; right: 0; top: 44px; width: 360px; max-width: calc(100vw - 32px); height: auto; max-height: 70vh; overflow: auto; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; box-shadow: 0 12px 32px rgba(23, 28, 36, 0.14); z-index: 1200; display: flex; flex-direction: column; text-align: left;
}
.sino__hdr[data-v-2750d599] { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--border-soft); font-family: var(--font-heading); font-weight: 600; font-size: 16px; color: var(--text-primary);
}
.sino__lidos[data-v-2750d599] { background: none; border: none; color: var(--primary-deep); font: 700 15px var(--font-body); cursor: pointer; padding: 0;
}
.sino__lidos[data-v-2750d599]:hover, .sino__lidos[data-v-2750d599]:focus-visible, .sino__lidos[data-v-2750d599]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.sino__vazio[data-v-2750d599] { margin: 0; padding: 18px 14px; color: var(--text-tertiary); font-size: 15px;
}
.sino__item[data-v-2750d599] { display: block; width: 100%; height: auto; min-height: 0; text-align: left; padding: 12px 14px; border: none; border-bottom: 1px solid var(--border-soft); background: transparent; cursor: pointer; font-family: var(--font-body); line-height: 1.4; white-space: normal; overflow: visible;
}
.sino__item b[data-v-2750d599], .sino__item span[data-v-2750d599], .sino__item small[data-v-2750d599] { display: block;
}
.sino__item[data-v-2750d599]:last-child { border-bottom: none;
}
.sino__item[data-v-2750d599]:hover, .sino__item[data-v-2750d599]:focus-visible, .sino__item[data-v-2750d599]:active { background: var(--bg-soft) !important; box-shadow: none !important; transform: none !important;
}
.sino__item--novo[data-v-2750d599] { background: var(--primary-soft);
}
.sino__item b[data-v-2750d599] { font-size: 15px; color: var(--text-primary);
}
.sino__item span[data-v-2750d599] { font-size: 15px; color: var(--text-tertiary);
}
.sino__item small[data-v-2750d599] { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em;
}
.topo__sair[data-v-2750d599] {
  padding: 7px 14px; border-radius: 8px; border: 1px solid var(--border); background: transparent;
  cursor: pointer; font: 700 15px var(--font-body); color: var(--text-tertiary);
}
.topo__sair[data-v-2750d599]:hover, .topo__sair[data-v-2750d599]:active:not(:disabled) { background: var(--primary-soft); color: var(--primary-dark); border-color: var(--primary-line);
}

/* ── Corpo ── */
.shell__corpo[data-v-2750d599] { display: flex; flex: 1; min-height: 0;
}

/* ── Trilho ── */
.rail[data-v-2750d599] {
  width: 64px; background: var(--bg-surface); border-right: 1px solid var(--border);
  display: flex; flex-direction: column; padding: 12px 10px; gap: 2px; flex-shrink: 0;
  transition: width 0.18s ease; overflow: visible;   /* visible: o tooltip do menu recolhido sai do trilho (28/08) */
}
.rail--exp[data-v-2750d599] { width: 240px;
}
.rail__item[data-v-2750d599] { overflow: hidden;
}                     /* o texto é cortado no item, não no trilho */
.rail__item[data-v-2750d599]:hover { overflow: visible;
}              /* …menos no hover, para o tooltip aparecer */
.rail__itens[data-v-2750d599] { display: flex; flex-direction: column; gap: 1px; flex: 1;
}
.rail__sec[data-v-2750d599] {
  font-size: 12px; color: var(--muted); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em;
  padding: 14px 10px 6px; white-space: nowrap; opacity: 0; height: 0; padding-top: 0; padding-bottom: 0; overflow: hidden;
  transition: opacity 0.15s;
}
.rail__sec[data-v-2750d599]:first-child { padding-top: 0;
}
.rail--exp .rail__sec[data-v-2750d599] { opacity: 1; height: auto; padding: 14px 10px 6px;
}
.rail--exp .rail__sec[data-v-2750d599]:first-child { padding-top: 2px;
}
/* Cor por categoria (19/09/2026, opção "chip colorido" aprovada pelo dono):
 * cada seção do menu carrega a cor da sua categoria (mesmos tokens de
 * theme.css usados em botões contextuais — JButton `category` / classe
 * `btn-cat-*`). O selo (chip) do ícone já nasce colorido, mesmo parado. */
.cat-visao[data-v-2750d599] { --cat-soft: var(--cat-visao-soft); --cat-base: var(--cat-visao-base); --cat-deep: var(--cat-visao-deep);
}
.cat-prog[data-v-2750d599]  { --cat-soft: var(--cat-prog-soft);  --cat-base: var(--cat-prog-base);  --cat-deep: var(--cat-prog-deep);
}
.cat-jorn[data-v-2750d599]  { --cat-soft: var(--cat-jorn-soft);  --cat-base: var(--cat-jorn-base);  --cat-deep: var(--cat-jorn-deep);
}
.cat-moto[data-v-2750d599]  { --cat-soft: var(--cat-moto-soft);  --cat-base: var(--cat-moto-base);  --cat-deep: var(--cat-moto-deep);
}
.cat-tele[data-v-2750d599]  { --cat-soft: var(--cat-tele-soft);  --cat-base: var(--cat-tele-base);  --cat-deep: var(--cat-tele-deep);
}
.cat-conf[data-v-2750d599]  { --cat-soft: var(--cat-conf-soft);  --cat-base: var(--cat-conf-base);  --cat-deep: var(--cat-conf-deep);
}
.rail__item[data-v-2750d599] {
  display: flex; align-items: center; justify-content: flex-start; gap: 12px;
  border: none; background: transparent; border-radius: 10px;
  padding: 6px 10px 6px 6px; font-weight: 600; font-size: 15px; font-family: var(--font-body);
  color: var(--text-tertiary); white-space: nowrap; width: 100%; text-align: left; cursor: pointer; position: relative;
  transition: background 0.1s, color 0.1s;
}
.rail__item[data-v-2750d599]:hover { color: var(--text-primary);
}
/* Sem isso, o :active genérico do <button> global (theme.css) escurecia o
 * fundo pra grafite quase preto no instante do clique — como o texto do
 * item continua escuro, ficava ilegível bem no momento de navegar (19/09/2026). */
.rail__item[data-v-2750d599]:active:not(:disabled) { background: var(--cat-soft);
}
.rail__item--ativo[data-v-2750d599] { background: var(--cat-soft); color: var(--cat-deep); font-weight: 700;
}
.rail__item--ativo[data-v-2750d599]::before {
  content: ""; position: absolute; left: -6px; top: 8px; bottom: 8px; width: 3px; border-radius: 3px; background: var(--cat-base);
}
.rail__item[data-v-2750d599]:focus-visible { outline: 2px solid var(--cat-base); outline-offset: 2px;
}
/* Chip: o selo do ícone já sai tingido pela categoria em repouso; no hover
 * ou ativo ele "acende" pra cor sólida — reconhece a área sem ler o texto. */
.rail__chip[data-v-2750d599] {
  width: 32px; height: 32px; border-radius: 9px; flex-shrink: 0;
  background: var(--cat-soft); color: var(--cat-deep);
  display: grid; place-items: center;
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.rail__item:hover .rail__chip[data-v-2750d599] { background: var(--cat-base); color: #fff; transform: scale(1.08); box-shadow: 0 3px 8px rgba(23, 28, 36, 0.18);
}
.rail__item--ativo .rail__chip[data-v-2750d599] { background: var(--cat-base); color: #fff;
}
.rail__ico[data-v-2750d599] { width: 18px; height: 18px; flex-shrink: 0;
}
.rail__tx[data-v-2750d599] { opacity: 0; transition: opacity 0.15s; overflow: hidden; text-overflow: ellipsis;
}
.rail:not(.rail--exp) .rail__tx[data-v-2750d599] { width: 0;
}      /* recolhido: o rótulo não vaza para fora do trilho */
.rail--exp .rail__tx[data-v-2750d599] { opacity: 1;
}
.rail__badge[data-v-2750d599] {
  min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px;
  background: var(--risk); color: #fff; font-size: 12px; font-weight: 700;
  display: grid; place-items: center; flex-shrink: 0;
}
.rail--exp .rail__badge[data-v-2750d599] { margin-left: auto;
}
/* recolhido: o badge vira bolinha sobre o ícone, no canto do item */
.rail:not(.rail--exp) .rail__badge[data-v-2750d599] {
  position: absolute; top: 2px; right: 4px;
  min-width: 16px; height: 16px; padding: 0 4px; font-size: 11px;
}
.rail__badge--drawer[data-v-2750d599] { margin-left: auto;
}
/* Tooltip-cartão (19/09/2026): não repete o rótulo — explica o destino.
 * Aparece recolhido OU expandido (a descrição é informação nova mesmo
 * quando o texto do link já está visível). */
.rail__tooltip[data-v-2750d599] {
  position: absolute; left: calc(100% + 10px); top: 50%; transform: translate(0, -50%);
  opacity: 0; visibility: hidden; transition: opacity 0.15s ease, transform 0.15s ease;
  background: var(--text-primary); color: #fff; padding: 10px 12px; border-radius: 10px; width: 230px;
  box-shadow: 0 12px 28px rgba(23, 28, 36, 0.28); z-index: 2000; pointer-events: none;
}
.rail__tooltip b[data-v-2750d599] { display: block; font: 700 13.5px var(--font-heading); margin-bottom: 3px;
}
.rail__tooltip span[data-v-2750d599] { display: block; font: 500 12.5px var(--font-body); line-height: 1.45; color: #C8CFDB; white-space: normal;
}
.rail__tooltip[data-v-2750d599]::before {
  content: ""; position: absolute; right: 100%; top: 50%; transform: translateY(-50%); border: 6px solid transparent; border-right-color: var(--text-primary);
}
.rail__item:hover .rail__tooltip[data-v-2750d599] { opacity: 1; visibility: visible; transform: translate(4px, -50%);
}
.rail__pin[data-v-2750d599] {
  display: flex; align-items: center; gap: 8px; border: none; background: transparent; padding: 8px 10px;
  color: var(--muted); font-size: 15px; cursor: pointer; font-family: var(--font-body); white-space: nowrap; opacity: 0;
}
.rail--exp .rail__pin[data-v-2750d599] { opacity: 1;
}
.rail__pin input[data-v-2750d599] { accent-color: var(--primary); cursor: pointer;
}
.rail__toggle[data-v-2750d599] {
  border: 1px solid var(--border); background: transparent; border-radius: 8px; padding: 8px;
  color: var(--text-tertiary); font-weight: 700; display: flex; align-items: center; gap: 10px; justify-content: center;
  white-space: nowrap; cursor: pointer; font-size: 15px; font-family: var(--font-body);
}
.rail__toggle[data-v-2750d599]:hover { background: var(--bg-soft);
}
.rail__toggle-tx[data-v-2750d599] { display: none;
}
.rail--exp .rail__toggle-tx[data-v-2750d599] { display: inline;
}
.rail__toggle > span[data-v-2750d599]:first-child { width: 20px;
}

/* ── Gaveta mobile ── */
.drawer[data-v-2750d599] { position: absolute; inset: 0; background: rgba(23, 28, 36, 0.42); display: none; z-index: 8;
}
.drawer.open[data-v-2750d599] { display: block;
}
.drawer__pane[data-v-2750d599] { width: 280px; height: 100%; background: var(--bg-surface); padding: 12px 10px; display: flex; flex-direction: column; gap: 1px; box-shadow: 0 10px 30px rgba(23, 28, 36, 0.15);
}
.drawer__sec[data-v-2750d599] { font-size: 12px; color: var(--muted); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 14px 10px 6px;
}
.drawer__item[data-v-2750d599] {
  display: flex; align-items: center; gap: 10px; width: 100%; border: none; background: transparent; border-radius: 10px;
  padding: 8px 10px; font-weight: 600; color: var(--text-tertiary); text-align: left; cursor: pointer; font-size: 15px; font-family: var(--font-body);
}
.drawer__item[data-v-2750d599]:hover { background: var(--bg-soft); color: var(--text-primary);
}
.drawer__item[data-v-2750d599]:active:not(:disabled) { background: var(--cat-soft);
}
.drawer__item--ativo[data-v-2750d599] { background: var(--cat-soft); color: var(--cat-deep); font-weight: 700;
}
.drawer__item:hover .rail__chip[data-v-2750d599] { background: var(--cat-base); color: #fff;
}
.drawer__item--ativo .rail__chip[data-v-2750d599] { background: var(--cat-base); color: #fff;
}

/* ── Main ── */
.shell__main[data-v-2750d599] { flex: 1; min-width: 0;
}
@media (max-width: 768px) {
.rail[data-v-2750d599] { display: none;
}
.topo__burger[data-v-2750d599] { display: block;
}
.drawer[data-v-2750d599] { position: fixed;
}
.drawer__pane[data-v-2750d599] { position: absolute; left: 0; top: 0; z-index: 10;
}
}

/* Névoa 2.0: superfície branca, hairline, raio 12, sem "pulo" no hover. */
.j-card[data-v-307e3dec] {
  background-color: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 20px 22px;
  box-shadow: 0 1px 2px rgba(23, 28, 36, 0.04);
}
.j-card__hdr[data-v-307e3dec] {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
  margin-bottom: 16px; transition: margin-bottom 0.2s ease;
}
.j-card--fechado .j-card__hdr[data-v-307e3dec] { margin-bottom: 0;
}
.j-card__hdr-text[data-v-307e3dec] { min-width: 0;
}
.j-card__title[data-v-307e3dec] {
  margin: 0; font-family: var(--font-heading); font-size: 17px; font-weight: 600;
  letter-spacing: -0.01em; color: var(--text-primary); line-height: 1.3;
}
.j-card__subtitle[data-v-307e3dec] { margin: 2px 0 0; font-size: 15px; color: var(--text-tertiary); line-height: 1.45;
}
.j-card__hdr-actions[data-v-307e3dec] { flex-shrink: 0; display: flex; gap: 8px; align-items: center;
}

/* Acordeão (12/09/2026): cabeçalho clicável quando collapsible (default).
 * O reset global de `button` (theme.css) escurece o fundo e deixa o texto
 * branco no hover — sem isto aqui o cabeçalho inteiro ficava ilegível ao
 * passar o mouse. Precisa de :hover/:focus-visible próprios pra vencer. */
.j-card__hdr-toggle[data-v-307e3dec] {
  flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px;
  background: none; border: none; padding: 6px 8px; margin: -6px -8px; border-radius: 8px;
  text-align: left; cursor: pointer; font: inherit; color: inherit;
}
/* !important de propósito: o reset global (theme.css) tem :hover/:active
 * mais específicos que qualquer seletor de classe daqui e ganhava sempre. */
.j-card__hdr-toggle[data-v-307e3dec]:hover { background: var(--bg-soft) !important; box-shadow: none !important; color: inherit !important;
}
.j-card__hdr-toggle[data-v-307e3dec]:focus-visible { outline: none; box-shadow: var(--shadow-focus) !important;
}
.j-card__hdr-toggle[data-v-307e3dec]:active { transform: none !important; background: var(--bg-soft) !important; color: inherit !important;
}
.j-card__badge[data-v-307e3dec] {
  flex-shrink: 0; font: 800 12px var(--font-body); padding: 3px 9px; border-radius: 999px;
  background: var(--bg-soft); color: var(--text-tertiary); white-space: nowrap;
}
.j-card__badge--ok[data-v-307e3dec] { background: var(--ok-soft); color: var(--ok);
}
.j-card__badge--warn[data-v-307e3dec] { background: var(--warn-soft); color: var(--warn);
}
.j-card__badge--risk[data-v-307e3dec] { background: var(--risk-soft); color: var(--risk);
}
.j-card__chevron[data-v-307e3dec] {
  flex-shrink: 0; color: var(--muted); font-size: 13px; transition: transform 0.18s ease;
}
.j-card__chevron--aberto[data-v-307e3dec] { transform: rotate(180deg);
}
.j-card__body-wrap[data-v-307e3dec] {
  display: grid; grid-template-rows: 1fr; transition: grid-template-rows 0.2s ease;
}
.j-card__body-wrap--fechado[data-v-307e3dec] { grid-template-rows: 0fr;
}
.j-card__body-inner[data-v-307e3dec] { overflow: hidden; min-height: 0;
}
.j-card--alert[data-v-307e3dec] { border-left: 3px solid currentColor;
}
.j-card--alert-success[data-v-307e3dec] { color: var(--ok);
}
.j-card--alert-warning[data-v-307e3dec] { color: var(--warn);
}
.j-card--alert-error[data-v-307e3dec] { color: var(--risk);
}
.j-card--alert-info[data-v-307e3dec] { color: var(--primary);
}

.j-input[data-v-406434a5] { display: block;
}
.j-input__label[data-v-406434a5] {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 6px;
}
.j-input__required[data-v-406434a5] { color: var(--risk); margin-left: 2px;
}
.j-input__field[data-v-406434a5] {
  width: 100%;
  padding: 10px 14px;
  font-size: 15px;
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 12px);
  background: var(--bg-surface, #fff);
  color: var(--text-primary);
  transition: all var(--transition-fast, 0.2s ease);
  min-height: var(--button-height, 48px);
}
.j-input__field[data-v-406434a5]:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--primary-soft);
}
.j-input__field[data-v-406434a5]::placeholder { color: var(--text-faint);
}
.j-input__field--error[data-v-406434a5] { border-color: var(--risk);
}
.j-input__error[data-v-406434a5] {
  display: block;
  color: var(--risk);
  font-size: 15px;
  margin-top: 4px;
  font-weight: 600;
}

.j-button[data-v-689e34dd] {
  font-family: var(--font-family-body);
  font-weight: var(--font-weight-semibold);
  border: 1px solid;
  border-radius: var(--radius-lg, 12px);
  cursor: pointer;
  transition: background-color var(--transition-fast),
              color var(--transition-fast),
              border-color var(--transition-fast),
              box-shadow var(--transition-fast),
              transform var(--transition-fast);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  white-space: nowrap;
  user-select: none;
}

/* Redesenho "mais clicável" (19/09/2026): sobe 1px + sombra no hover, em
 * todos os variants — mesmo princípio do <button> global (theme.css) e do
 * trilho lateral (JornadaShell.vue). */
.j-button[data-v-689e34dd]:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(23, 28, 36, 0.14);
}
.j-button[data-v-689e34dd]:active:not(:disabled) {
  transform: scale(0.98) translateY(0);
  box-shadow: none;
}
.j-button[data-v-689e34dd]:focus-visible {
  outline: 2px solid var(--primary, #5B6472);
  outline-offset: 2px;
}
.j-button[data-v-689e34dd]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  box-shadow: none;
}

/* Size variants */
.j-button--sm[data-v-689e34dd] {
  font-size: 13.5px;
  padding: 8px 14px;
}
.j-button--md[data-v-689e34dd] {
  font-size: 14px;
  padding: 10px 16px;
}
.j-button--lg[data-v-689e34dd] {
  font-size: 16px;
  padding: 12px 20px;
}

/* Color variants */
.j-button--primary[data-v-689e34dd] {
  background-color: var(--primary-soft);
  color: var(--primary-deep);
  border-color: var(--primary-line);
}
.j-button--primary[data-v-689e34dd]:hover:not(:disabled) {
  background-color: #D5E8F3;
  border-color: #B5CEE0;
  box-shadow: 0 6px 14px rgba(94, 134, 184, 0.3);
}

/* Sem isso, o :active genérico do <button> global (theme.css) escurece o
 * fundo pra grafite quase preto no clique — como cada variant tem texto
 * escuro (não branco), ficava texto escuro em fundo escuro (19/09/2026). */
.j-button--primary[data-v-689e34dd]:active:not(:disabled) {
  background-color: #D5E8F3;
}
.j-button--secondary[data-v-689e34dd] {
  background-color: var(--bg-card);
  color: var(--text-tertiary);
  border-color: var(--border-primary);
}
.j-button--secondary[data-v-689e34dd]:hover:not(:disabled) {
  background-color: var(--bg-light);
  border-color: var(--primary-line);
}
.j-button--secondary[data-v-689e34dd]:active:not(:disabled) {
  background-color: var(--bg-light);
}
.j-button--alert[data-v-689e34dd] {
  background-color: var(--warn-soft);
  color: var(--warn);
  border-color: var(--warn-soft);
}
.j-button--alert[data-v-689e34dd]:hover:not(:disabled) {
  background-color: #EFE4D0;
  border-color: #D4BFAA;
  box-shadow: 0 6px 14px rgba(138, 107, 59, 0.25);
}
.j-button--alert[data-v-689e34dd]:active:not(:disabled) {
  background-color: #EFE4D0;
}
/* ghost: ação discreta dentro de um card (link em botão) */
.j-button--ghost[data-v-689e34dd] {
  background-color: transparent;
  color: var(--primary-deep);
  border-color: transparent;
}
.j-button--ghost[data-v-689e34dd]:hover:not(:disabled) {
  background-color: var(--primary-soft);
}
.j-button--ghost[data-v-689e34dd]:active:not(:disabled) {
  background-color: var(--primary-soft);
}
/* danger: tonal terroso — nunca vermelho cheio */
.j-button--danger[data-v-689e34dd] {
  background-color: var(--risk-soft);
  color: var(--risk);
  border-color: transparent;
}
.j-button--danger[data-v-689e34dd]:hover:not(:disabled) {
  background-color: #EFD5D0;
  box-shadow: 0 6px 14px rgba(140, 59, 51, 0.22);
}
.j-button--danger[data-v-689e34dd]:active:not(:disabled) {
  background-color: #EFD5D0;
}

/* Contextual por categoria (19/09/2026): mesma cor da seção do trilho
 * lateral — usado quando a ação pertence claramente a uma área (ex.: um
 * botão "Registrar ocorrência" dentro de Jornadas). Ver [[jornada_design_links_botoes]]. */
.j-button--cat[data-v-689e34dd] {
  background-color: var(--cat-soft);
  color: var(--cat-deep);
  border-color: transparent;
}
.j-button--cat[data-v-689e34dd]:hover:not(:disabled) {
  background-color: var(--cat-base);
  color: #fff;
  box-shadow: 0 6px 14px rgba(23, 28, 36, 0.18);
}
.j-button--cat[data-v-689e34dd]:active:not(:disabled) {
  background-color: var(--cat-base);
  color: #fff;
}
.j-button--cat-visao[data-v-689e34dd] { --cat-soft: var(--cat-visao-soft); --cat-base: var(--cat-visao-base); --cat-deep: var(--cat-visao-deep);
}
.j-button--cat-prog[data-v-689e34dd]  { --cat-soft: var(--cat-prog-soft);  --cat-base: var(--cat-prog-base);  --cat-deep: var(--cat-prog-deep);
}
.j-button--cat-jorn[data-v-689e34dd]  { --cat-soft: var(--cat-jorn-soft);  --cat-base: var(--cat-jorn-base);  --cat-deep: var(--cat-jorn-deep);
}
.j-button--cat-moto[data-v-689e34dd]  { --cat-soft: var(--cat-moto-soft);  --cat-base: var(--cat-moto-base);  --cat-deep: var(--cat-moto-deep);
}
.j-button--cat-tele[data-v-689e34dd]  { --cat-soft: var(--cat-tele-soft);  --cat-base: var(--cat-tele-base);  --cat-deep: var(--cat-tele-deep);
}
.j-button--cat-conf[data-v-689e34dd]  { --cat-soft: var(--cat-conf-soft);  --cat-base: var(--cat-conf-base);  --cat-deep: var(--cat-conf-deep);
}

.j-select[data-v-ca74469d] { display: block;
}
.j-select__label[data-v-ca74469d] {
  display: block; font-size: 15px; font-weight: 700;
  color: var(--text-primary); margin-bottom: 6px;
}
.j-select__required[data-v-ca74469d] { color: var(--risk); margin-left: 2px;
}
.j-select__field[data-v-ca74469d] {
  width: 100%; padding: 10px 14px; font-size: 15px;
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 12px);
  background: var(--bg-surface, #fff);
  color: var(--text-primary);
  min-height: var(--button-height, 48px);
  cursor: pointer;
}
.j-select__field[data-v-ca74469d]:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--primary-soft);
}
.j-select__field--error[data-v-ca74469d] { border-color: var(--risk);
}
.j-select__error[data-v-ca74469d] {
  display: block; color: var(--risk);
  font-size: 15px; margin-top: 4px; font-weight: 600;
}

.j-empty[data-v-8920b03c] {
  padding: 40px 20px;
  text-align: center;
  color: var(--text-tertiary);
  background: var(--bg-surface, #fff);
  border: 1px dashed var(--border);
  border-radius: var(--radius-md, 14px);
  font-size: 15px;
}
.j-empty__icon[data-v-8920b03c] { font-size: 40px; margin-bottom: 10px;
}
.j-empty__msg[data-v-8920b03c] { font-weight: 500;
}
.j-empty__action[data-v-8920b03c] { margin-top: 14px;
}
.j-empty--error[data-v-8920b03c] {
  color: var(--risk);
  border-color: rgba(169, 121, 123, 0.4);
  background: var(--risk-soft);
}
.j-empty--loading[data-v-8920b03c] {
  color: var(--primary-deep);
  border-style: solid;
}

.v30[data-v-a981bee7] { display: flex; flex-direction: column; gap: 14px;
}
.v30-kpis[data-v-a981bee7] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
}
.v30-kpi[data-v-a981bee7] { background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: 12px; padding: 14px 16px;
}
.v30-kpi__v[data-v-a981bee7] { font-family: var(--font-heading); font-weight: 700; font-size: 26px; letter-spacing: -0.02em; color: var(--text-primary);
}
.v30-kpi__total[data-v-a981bee7] { font-size: 14px; color: var(--muted); font-weight: 600;
}
.v30-kpi__l[data-v-a981bee7] { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-top: 2px;
}
.v30-kpi__aviso[data-v-a981bee7] { font-size: 12.5px; color: var(--warn); font-weight: 700; margin-top: 4px;
}
.v30-row[data-v-a981bee7] { display: grid; grid-template-columns: 1.3fr 1fr; gap: 14px;
}
.v30-card[data-v-a981bee7] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 18px 20px;
}
.v30-card__hdr[data-v-a981bee7] { font: 700 11px var(--font-body); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin-bottom: 12px;
}
.v30-chart[data-v-a981bee7] { width: 100%; height: auto; display: block;
}
.v30-nota[data-v-a981bee7] { font-size: 13.5px; color: var(--text-tertiary); margin: 8px 0 0;
}
.v30-vazio[data-v-a981bee7] { font-size: 14px; color: var(--muted); margin: 0;
}
.v30-big[data-v-a981bee7] { font-family: var(--font-heading); font-weight: 700; font-size: 32px; letter-spacing: -0.02em; color: var(--text-primary);
}
.v30-sub[data-v-a981bee7] { font-size: 13.5px; color: var(--text-tertiary); margin: 2px 0 14px;
}
.v30-linha[data-v-a981bee7] { display: flex; justify-content: space-between; font-size: 14px; padding: 8px 0; border-top: 1px solid var(--border-soft);
}
.v30-linha[data-v-a981bee7]:first-of-type { border-top: none;
}
.v30-bars[data-v-a981bee7] { display: grid; gap: 9px;
}
.v30-bar[data-v-a981bee7] { display: grid; grid-template-columns: 130px 1fr 34px; gap: 10px; align-items: center;
}
.v30-bar__l[data-v-a981bee7] { font-size: 13.5px; color: var(--text-primary);
}
.v30-bar__track[data-v-a981bee7] { height: 8px; background: var(--bg-soft); border-radius: 999px; overflow: hidden;
}
.v30-bar__fill[data-v-a981bee7] { height: 100%; background: var(--warn); opacity: 0.85;
}
.v30-bar__n[data-v-a981bee7] { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; font-size: 13.5px;
}
.v30-pend[data-v-a981bee7] { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; text-align: left; background: none; border: none; border-top: 1px solid var(--border-soft); padding: 12px 0; cursor: pointer; font-family: var(--font-body);
}
.v30-pend[data-v-a981bee7]:first-child { border-top: none; padding-top: 0;
}
.v30-pend[data-v-a981bee7]:hover, .v30-pend[data-v-a981bee7]:focus-visible, .v30-pend[data-v-a981bee7]:active { background: var(--bg-soft) !important; box-shadow: none !important; transform: none !important;
}
.v30-pend__t[data-v-a981bee7] { font-weight: 700; font-size: 14.5px; color: var(--text-primary);
}
.v30-pend__s[data-v-a981bee7] { font-size: 12.5px; color: var(--muted); margin-top: 2px;
}
.v30-pend__go[data-v-a981bee7] { font-size: 12.5px; font-weight: 700; color: var(--primary-deep); flex-shrink: 0;
}
@media (max-width: 900px) {
.v30-kpis[data-v-a981bee7] { grid-template-columns: 1fr 1fr;
}
.v30-row[data-v-a981bee7] { grid-template-columns: 1fr;
}
}

.dm[data-v-7ac5cd88] { display: grid; grid-template-columns: 260px 300px 1fr; gap: 0; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; min-height: 420px;
}
.dm-col[data-v-7ac5cd88] { border-right: 1px solid var(--border-soft); padding: 14px; overflow: auto;
}
.dm-col[data-v-7ac5cd88]:last-child { border-right: none;
}
.dm-col__hdr[data-v-7ac5cd88] { font: 700 11px var(--font-body); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px;
}
.dm-busca[data-v-7ac5cd88] .j-input { margin-bottom: 10px;
}
.dm-lista[data-v-7ac5cd88] { display: flex; flex-direction: column; gap: 4px;
}
.dm-vazio[data-v-7ac5cd88] { font-size: 14px; color: var(--muted); padding: 8px 2px; margin: 0;
}
.dm-item[data-v-7ac5cd88] { display: block; width: 100%; text-align: left; border: 1px solid transparent; background: none; border-radius: 8px; padding: 10px 12px; cursor: pointer; font-family: var(--font-body);
}
.dm-item[data-v-7ac5cd88]:hover, .dm-item[data-v-7ac5cd88]:focus-visible, .dm-item[data-v-7ac5cd88]:active { background: var(--bg-soft) !important; box-shadow: none !important; transform: none !important;
}
.dm-item--ativo[data-v-7ac5cd88] { background: var(--primary-soft) !important; border-color: var(--primary-line);
}
.dm-item__nome[data-v-7ac5cd88] { font-weight: 700; font-size: 14.5px; color: var(--text-primary);
}
.dm-item__meta[data-v-7ac5cd88] { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-tertiary); margin-top: 2px;
}
.dm-item__sub[data-v-7ac5cd88] { font-size: 12px; color: var(--muted); margin-top: 1px;
}
.dm-dot[data-v-7ac5cd88] { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex-shrink: 0;
}
.dm-dot--em_andamento[data-v-7ac5cd88] { background: var(--risk);
}
.dm-dot--fechada[data-v-7ac5cd88] { background: var(--warn);
}
.dm-dot--auditada[data-v-7ac5cd88] { background: var(--ok);
}
.dm-dot--alerta[data-v-7ac5cd88] { background: var(--warn); margin-top: 6px;
}
.dm-detalhe__titulo[data-v-7ac5cd88] { font-family: var(--font-heading); font-weight: 700; font-size: 18px; color: var(--text-primary); margin-bottom: 16px;
}
.dm-kpis[data-v-7ac5cd88] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
}
.dm-mini[data-v-7ac5cd88] { background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: 10px; padding: 10px 12px;
}
.dm-mini__k[data-v-7ac5cd88] { font: 700 10.5px var(--font-body); letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted);
}
.dm-mini__v[data-v-7ac5cd88] { font-family: var(--font-mono, monospace); font-weight: 700; font-size: 17px; margin-top: 4px; color: var(--text-primary);
}
.dm-mini__v--warn[data-v-7ac5cd88] { color: var(--warn);
}
.dm-viols[data-v-7ac5cd88] { display: grid; gap: 8px;
}
.dm-viol[data-v-7ac5cd88] { display: flex; align-items: flex-start; gap: 8px; padding: 9px 12px; background: var(--warn-soft); border-radius: 8px; font-size: 14px; color: var(--text-primary);
}
.dm-acoes[data-v-7ac5cd88] { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px;
}
.dm-acao[data-v-7ac5cd88] { padding: 9px 14px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-tertiary); font: 700 13.5px var(--font-body); cursor: pointer;
}
.dm-acao[data-v-7ac5cd88]:hover, .dm-acao[data-v-7ac5cd88]:focus-visible, .dm-acao[data-v-7ac5cd88]:active { background: var(--bg-soft) !important; box-shadow: none !important; transform: none !important;
}
.dm-acao--primaria[data-v-7ac5cd88] { background: var(--primary-soft); border-color: var(--primary-line); color: var(--primary-dark);
}
.dm-acao--primaria[data-v-7ac5cd88]:hover, .dm-acao--primaria[data-v-7ac5cd88]:focus-visible, .dm-acao--primaria[data-v-7ac5cd88]:active { background: var(--primary-soft) !important;
}
@media (max-width: 900px) {
.dm[data-v-7ac5cd88] { grid-template-columns: 1fr;
}
.dm-col[data-v-7ac5cd88] { border-right: none; border-bottom: 1px solid var(--border-soft); max-height: 280px;
}
}

.po-abas[data-v-bf21f3ec] { display: inline-flex; gap: 2px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; padding: 3px; margin-bottom: 16px;
}
.po-aba[data-v-bf21f3ec] { border: none; background: transparent; border-radius: 8px; padding: 7px 14px; font: 700 14.5px var(--font-body); color: var(--text-tertiary); cursor: pointer;
}
.po-aba[data-v-bf21f3ec]:hover, .po-aba[data-v-bf21f3ec]:focus-visible, .po-aba[data-v-bf21f3ec]:active { background: none !important; box-shadow: none !important; transform: none !important;
}
.po-aba--ativa[data-v-bf21f3ec] { background: var(--bg-surface); color: var(--primary-dark); box-shadow: 0 1px 3px rgba(23, 28, 36, 0.10);
}

.page[data-v-ea966d88] { max-width: none; padding: 28px 28px 40px;
}
.page-hdr[data-v-ea966d88] { margin-bottom: 16px;
}
.page-hdr__crumb[data-v-ea966d88] { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--primary-deep); font-weight: 700; margin-bottom: 6px;
}
.page-hdr__title[data-v-ea966d88] { font-family: var(--font-heading); font-size: 28px; font-weight: 600; letter-spacing: -0.02em; margin: 0; color: var(--text-primary); display: flex; align-items: center; gap: 10px;
}
.page-hdr__ia[data-v-ea966d88] { display: inline-flex; align-items: center; font: 700 12px var(--font-body); color: var(--primary-dark); background: var(--primary-soft); padding: 3px 10px; border-radius: 999px; letter-spacing: 0.04em;
}
.page-hdr__sub[data-v-ea966d88] { color: var(--text-tertiary); font-size: 15px; margin: 6px 0 0; max-width: 72ch;
}

/* ── Mesa do dia ── */
.mesa[data-v-ea966d88] { margin-bottom: 16px;
}
.mesa__aviso[data-v-ea966d88] { margin: 0; color: var(--text-tertiary); font-size: 15px;
}
.mesa__tiles[data-v-ea966d88] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px;
}
.mesa__tile[data-v-ea966d88] { border-radius: 10px; padding: 12px 14px; background: var(--bg-soft); border: 1px solid var(--border-soft);
}
.mesa__tile-valor[data-v-ea966d88] { font-family: var(--font-heading); font-size: 24px; font-weight: 600; line-height: 1;
}
.mesa__tile-rotulo[data-v-ea966d88] { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); margin-top: 4px;
}
.mesa__tile--ok[data-v-ea966d88] { background: var(--ok-soft);
}
.mesa__tile--ok .mesa__tile-valor[data-v-ea966d88] { color: var(--ok);
}
.mesa__tile--andamento[data-v-ea966d88] { background: var(--primary-soft);
}
.mesa__tile--andamento .mesa__tile-valor[data-v-ea966d88] { color: var(--primary-dark);
}
.mesa__tile--erro[data-v-ea966d88] { background: var(--risk-soft);
}
.mesa__tile--erro .mesa__tile-valor[data-v-ea966d88] { color: var(--risk);
}
@media (max-width: 640px) {
.mesa__tiles[data-v-ea966d88] { grid-template-columns: 1fr;
}
}
.mesa__scroll[data-v-ea966d88] { overflow-x: auto;
}
.mesa__tbl[data-v-ea966d88] { width: 100%; border-collapse: collapse; font-size: 15px;
}
.mesa__tbl th[data-v-ea966d88] { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); font-weight: 700; padding: 6px 10px; border-bottom: 1px solid var(--border); white-space: nowrap;
}
.mesa__tbl td[data-v-ea966d88] { padding: 7px 10px; border-bottom: 1px solid var(--border-soft); white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--text-primary);
}
.mesa__tbl tr:last-child td[data-v-ea966d88] { border-bottom: none;
}
.mesa__tbl .num[data-v-ea966d88] { text-align: right;
}
.mesa__linha--warn td[data-v-ea966d88]:first-child { box-shadow: inset 3px 0 0 var(--warn);
}
.mesa__linha--risk td[data-v-ea966d88]:first-child { box-shadow: inset 3px 0 0 var(--risk);
}
.mesa__linha--andamento td[data-v-ea966d88]:first-child { box-shadow: inset 3px 0 0 var(--primary);
}
.mesa__acao[data-v-ea966d88] { text-align: right;
}
.pill[data-v-ea966d88] { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 13px; font-weight: 700; white-space: nowrap;
}
.pill--ok[data-v-ea966d88] { background: var(--ok-soft); color: var(--ok);
}
.pill--warn[data-v-ea966d88] { background: var(--warn-soft); color: var(--warn);
}
.pill--andamento[data-v-ea966d88] { background: var(--primary-soft); color: var(--primary-dark);
}
.link[data-v-ea966d88] { background: none; border: none; padding: 0; cursor: pointer; color: var(--primary-deep); font: 700 15px var(--font-body);
}
.link[data-v-ea966d88]:hover, .link[data-v-ea966d88]:focus-visible, .link[data-v-ea966d88]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.link--muted[data-v-ea966d88] { color: var(--muted); font-weight: 600;
}

/* ── controles: 2 linhas — filtros (período+tipo) e ações (busca+export) ── */
.controles[data-v-ea966d88] { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px;
}
.controles__filtros[data-v-ea966d88] { display: flex; gap: 18px; align-items: center; flex-wrap: wrap;
}
.controles__acoes[data-v-ea966d88] { display: flex; gap: 10px; align-items: center; justify-content: flex-end; flex-wrap: wrap;
}
.grupo__rotulo[data-v-ea966d88] { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); margin-right: 2px;
}
.periodo-grupo[data-v-ea966d88] { display: inline-flex; align-items: center; gap: 8px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 10px; padding: 6px 10px; flex-wrap: wrap;
}
.periodo-grupo__div[data-v-ea966d88] { width: 1px; align-self: stretch; background: var(--border); margin: 0 2px;
}
.periodo__ate[data-v-ea966d88] { font-size: 13px; color: var(--text-tertiary);
}
.periodo__data[data-v-ea966d88] { border: 1px solid var(--border); border-radius: 6px; padding: 4px 6px; font: 600 14px var(--font-body); color: var(--text-primary); background: var(--bg-surface);
}
.tipo-grupo[data-v-ea966d88] { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.chip[data-v-ea966d88] { padding: 7px 13px; font-size: 13px; font-weight: 700; font-family: var(--font-body); border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-tertiary); border-radius: 999px; cursor: pointer;
}
.chip[data-v-ea966d88]:hover { border-color: var(--primary-line); color: var(--primary-deep);
}
.chip--ativo[data-v-ea966d88] { background: var(--primary-soft); border-color: var(--primary-line); color: var(--primary-dark);
}
.chip--ghost[data-v-ea966d88] { background: transparent; border-style: dashed;
}

/* ── Visões salvas (18/09/2026) ── */
.visoes[data-v-ea966d88] { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: -2px;
}
.chip--visao[data-v-ea966d88] { display: inline-flex; align-items: center; gap: 6px;
}
.chip__x[data-v-ea966d88] { font-weight: 900; opacity: 0.6; padding: 0 2px;
}
.chip__x[data-v-ea966d88]:hover { opacity: 1; color: var(--risk);
}
.visoes__input[data-v-ea966d88] { border: 1px solid var(--primary-line); border-radius: 999px; padding: 7px 13px; font: 700 13px var(--font-body); color: var(--text-primary); background: var(--bg-surface); min-width: 200px;
}
.busca[data-v-ea966d88] { flex: 0 1 280px;
}
.busca[data-v-ea966d88] .input-field { margin-bottom: 0;
}

/* ── Alertas IA (era "violações CLT") — lista ordenada por gravidade,
   não mais texto corrido do mesmo peso visual. ── */
.alertas-ia[data-v-ea966d88] { margin-bottom: 14px;
}
.alertas-ia__badge[data-v-ea966d88] { display: inline-flex; align-items: center; font: 700 11px var(--font-body); color: var(--primary-dark); background: var(--primary-soft); padding: 3px 9px; border-radius: 999px;
}
.alertas-ia__lista[data-v-ea966d88] { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 2px 20px; margin-bottom: 14px;
}
.alertas-ia__linha[data-v-ea966d88] { display: flex; align-items: baseline; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--border-soft);
}
.alertas-ia__contagem[data-v-ea966d88] { font-family: var(--font-heading); font-size: 16px; font-weight: 700; color: var(--risk); font-variant-numeric: tabular-nums; min-width: 20px; text-align: right;
}
.alertas-ia__titulo[data-v-ea966d88] { font-size: 14px; color: var(--text-primary);
}
.alertas-ia__acao[data-v-ea966d88] { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap;
}
.alertas-ia__select[data-v-ea966d88] { min-width: 220px;
}
.alertas-ia__select[data-v-ea966d88] .j-select__label { display: none;
}
.alertas-ia__nota[data-v-ea966d88] { font-size: 12.5px; color: var(--muted); margin: 10px 0 0;
}
.col-tipo[data-v-ea966d88] { text-align: center; font-size: 12px; color: var(--text-tertiary); padding: 0 8px !important; white-space: nowrap;
}

/* ── a grade ── */
.estado[data-v-ea966d88] { padding: 40px 20px; text-align: center; color: var(--text-tertiary); background: var(--bg-surface); border: 1px dashed var(--border); border-radius: 12px; font-size: 15px;
}
.estado--erro[data-v-ea966d88] { color: var(--risk); background: var(--risk-soft); border-color: transparent;
}
.grade-scroll[data-v-ea966d88] { overflow-x: auto; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-surface);
}
.grade[data-v-ea966d88] { border-collapse: separate; border-spacing: 0; font-variant-numeric: tabular-nums; font-size: 15px; width: 100%;
}
.grade thead th[data-v-ea966d88] {
  position: sticky; top: 0; z-index: 2;
  background: var(--bg-soft); color: var(--text-tertiary);
  font: 700 12px var(--font-body); letter-spacing: 0.04em;
  padding: 8px 6px; text-align: center; white-space: nowrap;
  border-bottom: 1px solid var(--border);
}
.grade thead th.col-dia--dom[data-v-ea966d88] { background: var(--primary-soft); color: var(--primary-dark);
}
.grade thead th.col-mot[data-v-ea966d88] { text-align: left; padding-left: 12px;
}
.grade tbody td[data-v-ea966d88] { height: 34px; padding: 0 6px; border-bottom: 1px solid var(--border-soft); white-space: nowrap; text-align: center; color: var(--text-primary);
}
.grade tbody tr:last-child td[data-v-ea966d88] { border-bottom: none;
}

/* 1ª coluna fixa (o nome não some ao rolar os 31 dias) */
.col-mot[data-v-ea966d88] {
  position: sticky; left: 0; z-index: 1;
  background: var(--bg-surface); text-align: left !important;
  min-width: 180px; max-width: 240px; padding-left: 12px !important;
  border-right: 1px solid var(--border);
}
.grade thead th.col-mot[data-v-ea966d88] { z-index: 3; background: var(--bg-soft);
}
.mot-link[data-v-ea966d88] { background: none; border: none; padding: 0; cursor: pointer; color: var(--text-primary); font: 700 15px var(--font-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 220px;
}
.mot-link[data-v-ea966d88]:hover { color: var(--primary-deep); text-decoration: underline;
}
/* O tema global trata todo button pressionado como ação primária azul. Aqui o
   botão é só o nome na célula fixa: manter o fundo claro evita o texto escuro
   ficar ilegível durante o clique/toque. */
.mot-link[data-v-ea966d88]:active:not(:disabled) { background: transparent; color: var(--primary-deep); transform: none; box-shadow: none;
}
.mot-link[data-v-ea966d88]:focus-visible { outline: 2px solid var(--primary-line); outline-offset: 2px; box-shadow: none;
}

/* células do dia — a cor conta a história */
.cel[data-v-ea966d88] { min-width: 44px; font-size: 14px;
}
.cel--vazia[data-v-ea966d88] { background: var(--bg-soft); color: var(--muted); cursor: default;
}
.cel--ok[data-v-ea966d88] { background: var(--ok-soft); color: var(--ok); cursor: pointer; font-weight: 700;
}
.cel--warn[data-v-ea966d88] { background: var(--warn-soft); color: var(--warn); cursor: pointer; font-weight: 700;
}
.cel--risk[data-v-ea966d88] { background: var(--risk-soft); color: var(--risk); cursor: pointer; font-weight: 700;
}
.cel--andamento[data-v-ea966d88] { background: var(--primary-soft); color: var(--primary-dark); cursor: pointer; font-weight: 700;
}
.cel--ok[data-v-ea966d88]:hover, .cel--warn[data-v-ea966d88]:hover, .cel--risk[data-v-ea966d88]:hover, .cel--andamento[data-v-ea966d88]:hover { filter: brightness(0.96); box-shadow: inset 0 0 0 1px var(--primary-line);
}
.cel--dom.cel--vazia[data-v-ea966d88] { background: var(--nv-50);
}
.cel__marca[data-v-ea966d88] { color: var(--primary-deep); font-weight: 900; margin-left: 2px; cursor: help;
}

/* totais */
.col-tot[data-v-ea966d88] { font-weight: 700; text-align: right !important; padding-right: 10px !important; min-width: 56px; background: var(--bg-surface);
}
.grade thead th.col-tot[data-v-ea966d88] { text-align: right; box-shadow: inset 0 2px 0 var(--primary-line); color: var(--primary-dark);
}
.tot--neg[data-v-ea966d88] { color: var(--risk);
}

/* legenda */
.legenda[data-v-ea966d88] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 15px; color: var(--text-tertiary); margin-top: 12px;
}
.leg[data-v-ea966d88] { display: inline-block; width: 20px; height: 13px; border-radius: 4px; border: 1px solid var(--border-soft);
}
.leg--ok[data-v-ea966d88] { background: var(--ok-soft);
}
.leg--warn[data-v-ea966d88] { background: var(--warn-soft);
}
.leg--risk[data-v-ea966d88] { background: var(--risk-soft);
}
.leg--andamento[data-v-ea966d88] { background: var(--primary-soft);
}
.leg--vazia[data-v-ea966d88] { background: var(--bg-soft);
}

/* Névoa 2.0 (27/08/2026): grafite legível, "/" visível, a página atual em tinta
   forte; sem caixa alta nem tracking (era isso que apagava o breadcrumb). */
.breadcrumb[data-v-5e2543c8] {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--border);
}
.breadcrumb__back[data-v-5e2543c8] {
  background: none; border: 1px solid var(--border); color: var(--text-tertiary);
  font-family: var(--font-body); font-size: 15px; font-weight: 700; cursor: pointer;
  padding: 5px 10px; border-radius: 8px; white-space: nowrap;
}
.breadcrumb__back[data-v-5e2543c8]:hover { background: var(--primary-soft); color: var(--primary-dark); border-color: var(--primary-line);
}
.breadcrumb__crumbs[data-v-5e2543c8] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 15px; font-weight: 600; color: var(--text-tertiary);
}
.breadcrumb__item[data-v-5e2543c8] { display: flex; align-items: center; gap: 8px;
}
.breadcrumb__item--atual[data-v-5e2543c8] { color: var(--text-primary); font-weight: 700;
}
/* !important: mesmo caso do JCard — o reset global de <button> tem :hover
 * mais específico e deixava o link do breadcrumb ilegível ao passar o mouse. */
.breadcrumb__link[data-v-5e2543c8] {
  background: none; border: none; padding: 0; margin: 0; font: inherit; color: inherit;
  cursor: pointer; text-decoration: none;
}
.breadcrumb__link[data-v-5e2543c8]:hover { background: none !important; color: var(--primary-deep) !important; text-decoration: underline; box-shadow: none !important;
}
.breadcrumb__link[data-v-5e2543c8]:focus-visible { outline: none; box-shadow: var(--shadow-focus) !important; border-radius: 4px;
}
.breadcrumb__sep[data-v-5e2543c8] { color: var(--muted); font-weight: 400;
}

.j-stat[data-v-d3000d76] {
  background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: 10px;
  padding: 14px 16px; min-width: 0;
}
.j-stat__label[data-v-d3000d76] {
  font-size: 12px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--muted); white-space: nowrap;
}
.j-stat__value[data-v-d3000d76] {
  font-family: var(--font-heading); font-size: 26px; font-weight: 600; letter-spacing: -0.02em;
  margin-top: 6px; color: var(--text-primary); line-height: 1.15; font-variant-numeric: tabular-nums;
}
.j-stat__value--brand[data-v-d3000d76] { color: var(--primary-dark);
}
.j-stat__value--ok[data-v-d3000d76]    { color: var(--ok);
}
.j-stat__value--warn[data-v-d3000d76]  { color: var(--warn);
}
.j-stat__value--bad[data-v-d3000d76]   { color: var(--risk);
}
.j-stat__delta[data-v-d3000d76] { font-size: 15px; font-weight: 700; margin-top: 4px;
}
.j-stat__delta--up[data-v-d3000d76]   { color: var(--risk);
}
.j-stat__delta--down[data-v-d3000d76] { color: var(--ok);
}
.j-stat__delta--neutral[data-v-d3000d76] { color: var(--text-tertiary);
}
.j-stat__sub[data-v-d3000d76] { font-size: 15px; color: var(--text-tertiary); margin-top: 2px;
}

.j-avatar[data-v-af9a779e] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: var(--primary-soft);
  color: var(--primary-deep);
  font-family: 'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-weight: 700;
  font-size: 18px;
  flex-shrink: 0;
  overflow: hidden;
}
.j-avatar__image[data-v-af9a779e] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.j-avatar__initials[data-v-af9a779e] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.j-kpi[data-v-1fd73909] {
  display: flex; flex-direction: column; gap: 6px;
  padding: 14px 16px; border-radius: 10px;
  background: var(--bg-soft); border: 1px solid var(--border-soft);
  min-width: 0;
}
.j-kpi__label[data-v-1fd73909] {
  font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--muted); font-family: var(--font-body); white-space: nowrap;
}
.j-kpi__value[data-v-1fd73909] {
  font-family: var(--font-heading); font-weight: 600; font-size: 26px; line-height: 1.15;
  letter-spacing: -0.02em; color: var(--text-primary); font-variant-numeric: tabular-nums;
}
.j-kpi__sub[data-v-1fd73909] { font-size: 15px; color: var(--text-tertiary); font-family: var(--font-body);
}
.j-kpi--success[data-v-1fd73909] { background: var(--ok-soft); border-color: transparent;
}
.j-kpi--success .j-kpi__value[data-v-1fd73909] { color: var(--ok);
}
.j-kpi--warning[data-v-1fd73909] { background: var(--warn-soft); border-color: transparent;
}
.j-kpi--warning .j-kpi__value[data-v-1fd73909] { color: var(--warn);
}
.j-kpi--error[data-v-1fd73909] { background: var(--risk-soft); border-color: transparent;
}
.j-kpi--error .j-kpi__value[data-v-1fd73909] { color: var(--risk);
}

.j-pill[data-v-1f0dec2b] {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border-radius: 999px; padding: 7px 14px;
  font-weight: 700; font-size: 15px; line-height: 1.2; font-family: var(--font-body);
  white-space: nowrap; user-select: none; border: 1px solid transparent;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.j-pill--neutral[data-v-1f0dec2b] { background: var(--bg-surface); color: var(--text-tertiary); border-color: var(--border);
}
.j-pill--neutral[data-v-1f0dec2b]:hover { border-color: var(--primary-line); color: var(--primary-deep);
}
.j-pill--info[data-v-1f0dec2b]    { background: var(--primary-soft); color: var(--primary-dark); border-color: var(--primary-line);
}
.j-pill--success[data-v-1f0dec2b] { background: var(--ok-soft); color: var(--ok); border-color: transparent;
}
.j-pill--alert[data-v-1f0dec2b]   { background: var(--warn-soft); color: var(--warn); border-color: transparent;
}
.j-pill--error[data-v-1f0dec2b]   { background: var(--risk-soft); color: var(--risk); border-color: transparent;
}

.j-alert-box[data-v-de78ee98] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--spacing-lg);
  border-left: 4px solid currentColor;
  padding: 18px 22px;
  background-color: var(--bg-card);
  border-radius: var(--radius-md);
  font-family: var(--font-family-body);
}
.j-alert-box__content[data-v-de78ee98] {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-lg);
  flex: 1;
}
.j-alert-box__icon[data-v-de78ee98] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  flex-shrink: 0;
  font-weight: 700;
  font-size: 16px;
}
.j-alert-box__text[data-v-de78ee98] {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
}
.j-alert-box__title[data-v-de78ee98] {
  font-weight: var(--font-weight-semibold);
  font-size: 14px;
  line-height: var(--line-height-tight);
}
.j-alert-box__description[data-v-de78ee98] {
  font-size: 13px;
  line-height: var(--line-height-normal);
  color: var(--text-secondary);
}
.j-alert-box__actions[data-v-de78ee98] {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  flex-shrink: 0;
}

/* Variants */
.j-alert-box--success[data-v-de78ee98] {
  color: var(--ok);
  border-left-color: var(--ok);
}
.j-alert-box--success .j-alert-box__icon[data-v-de78ee98] {
  background-color: var(--ok-soft);
  color: var(--ok);
}
.j-alert-box--warning[data-v-de78ee98] {
  color: var(--warn);
  border-left-color: var(--warn);
}
.j-alert-box--warning .j-alert-box__icon[data-v-de78ee98] {
  background-color: var(--warn-soft);
  color: var(--warn);
}
.j-alert-box--error[data-v-de78ee98] {
  color: var(--risk);
  border-left-color: var(--risk);
}
.j-alert-box--error .j-alert-box__icon[data-v-de78ee98] {
  background-color: #FEE2E2;
  color: var(--risk);
}
.j-alert-box--info[data-v-de78ee98] {
  color: var(--primary);
  border-left-color: var(--primary);
}
.j-alert-box--info .j-alert-box__icon[data-v-de78ee98] {
  background-color: #DBEAFE;
  color: var(--primary);
}

.confirma-tela[data-v-040146fe] { max-width: 640px; margin: 0 auto; padding: 32px 20px;
}
.confirma-tela__card[data-v-040146fe] {
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg, 18px);
  padding: 32px;
  display: flex; flex-direction: column; gap: 14px;
  box-shadow: 0 12px 40px rgba(30, 41, 59, 0.08);
}
.confirma-tela__icone[data-v-040146fe] { font-size: 40px;
}
.confirma-tela__titulo[data-v-040146fe] {
  font-family: var(--font-heading);
  font-size: 26px; margin: 0;
  color: var(--text-primary);
}
.confirma-tela__sub[data-v-040146fe] { margin: -6px 0 0; font-size: 15px; color: var(--text-tertiary);
}
.confirma-tela__itens[data-v-040146fe] { margin: 8px 0 0; display: grid; gap: 8px;
}
.confirma-tela__item[data-v-040146fe] {
  display: grid; grid-template-columns: 160px 1fr; gap: 12px;
  padding: 10px 14px;
  background: var(--bg-primary);
  border-radius: var(--radius-sm, 12px);
  align-items: center;
}
.confirma-tela__item dt[data-v-040146fe] {
  font-size: 15px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.05em; color: var(--text-tertiary);
}
.confirma-tela__item dd[data-v-040146fe] { margin: 0; font-size: 16px; font-weight: 700; color: var(--text-primary);
}
.confirma-tela__aviso[data-v-040146fe] {
  background: var(--warn-soft); color: var(--warn);
  border-radius: var(--radius-sm, 12px);
  padding: 12px 14px; font-size: 15px; font-weight: 700;
}
.confirma-tela__acoes[data-v-040146fe] {
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; margin-top: 10px;
}
@media (max-width: 560px) {
.confirma-tela__acoes[data-v-040146fe] { grid-template-columns: 1fr;
}
.confirma-tela__item[data-v-040146fe] { grid-template-columns: 1fr; gap: 2px;
}
}

.page[data-v-91a92e7c] { max-width: none; padding: 28px 28px 40px;
}
.voltar[data-v-91a92e7c] {
  background: none; border: none; cursor: pointer;
  font-family: var(--font-body);
  font-size: 15px; font-weight: 700;
  color: var(--primary-deep);
  padding: 0 0 12px;
}
.page-hdr[data-v-91a92e7c] { margin-bottom: 20px;
}
.page-hdr__crumb[data-v-91a92e7c] { font-size: 15px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--primary-deep); font-weight: 800; margin-bottom: 4px;
}
.page-hdr__title[data-v-91a92e7c] { font-family: var(--font-heading); font-size: 28px; margin: 0;
}

/* dash (resumo da operação) — Névoa 2.0 */
.dash-filtros[data-v-91a92e7c] { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; align-items: flex-end;
}
.filtro-nome[data-v-91a92e7c] { flex: 1 1 auto; min-width: 250px; max-width: 420px;
}
.filtro-datas[data-v-91a92e7c] { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end;
}
.filtro-datas[data-v-91a92e7c] .input-field { flex: 1; min-width: 140px;
}
.dash-filtros[data-v-91a92e7c] .input-field { margin-bottom: 0;
}
.dash-kpis[data-v-91a92e7c] { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin-bottom: 16px;
}
.dash-lista[data-v-91a92e7c] { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px;
}
.dash-item[data-v-91a92e7c] {
  display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center;
  padding: 12px 14px; border: 1px solid var(--border-soft); border-radius: 10px; cursor: pointer; background: var(--bg-soft);
}
.dash-item[data-v-91a92e7c]:hover { border-color: var(--primary-line); background: var(--primary-soft);
}
.dash-item__farol[data-v-91a92e7c] { width: 10px; height: 10px; border-radius: 50%; background: var(--border);
}
.dash-item__farol--on[data-v-91a92e7c] { background: var(--ok); box-shadow: 0 0 0 4px var(--ok-soft);
}
.dash-item__info b[data-v-91a92e7c] { display: block; font-size: 15px; color: var(--text-primary);
}
.dash-item__info span[data-v-91a92e7c] { font-size: 15px; color: var(--text-tertiary); font-variant-numeric: tabular-nums;
}
.dash-item__ir[data-v-91a92e7c] { color: var(--primary-deep); font-weight: 700; font-size: 15px;
}
.dash-item__horas[data-v-91a92e7c] { font-family: var(--font-heading); font-weight: 600; color: var(--primary-dark); font-variant-numeric: tabular-nums; font-size: 16px;
}
/* Cards × Tabela (05/09/2026) */
.vista-toggle[data-v-91a92e7c] { display: inline-flex; gap: 2px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; padding: 3px; margin-bottom: 12px;
}
.vista-btn[data-v-91a92e7c] { border: none; background: transparent; border-radius: 8px; padding: 6px 12px; font: 700 15px var(--font-body); color: var(--text-tertiary); cursor: pointer;
}
.vista-btn--on[data-v-91a92e7c] { background: var(--bg-surface); color: var(--primary-dark); box-shadow: 0 1px 3px rgba(23, 28, 36, 0.10);
}
.vt-scroll[data-v-91a92e7c] { overflow-x: auto; border: 1px solid var(--border); border-radius: 10px;
}
.vt[data-v-91a92e7c] { width: 100%; border-collapse: collapse; font-size: 15px; background: var(--bg-surface);
}
.vt__th[data-v-91a92e7c] { position: sticky; top: 0; z-index: 1; background: var(--bg-soft); text-align: left; font: 700 12px var(--font-body); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-tertiary); padding: 9px 12px; border-bottom: 1px solid var(--border); cursor: pointer; white-space: nowrap; user-select: none;
}
.vt__th[data-v-91a92e7c]:hover { color: var(--primary-deep);
}
.vt__th--num[data-v-91a92e7c], .vt__num[data-v-91a92e7c] { text-align: right; font-variant-numeric: tabular-nums;
}
.vt tbody td[data-v-91a92e7c] { padding: 7px 12px; border-bottom: 1px solid var(--border-soft); white-space: nowrap; color: var(--text-primary);
}
.vt tbody tr:last-child td[data-v-91a92e7c] { border-bottom: none;
}
.vt__linha[data-v-91a92e7c] { cursor: pointer;
}
.vt__linha:hover td[data-v-91a92e7c] { background: var(--primary-soft);
}
.vt__muted[data-v-91a92e7c] { color: var(--muted);
}
.vt__ir[data-v-91a92e7c] { color: var(--primary-deep); font-weight: 700; text-align: right;
}
.motorista-grid[data-v-91a92e7c] { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px;
}
.motorista-card[data-v-91a92e7c] {
  background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 14px; cursor: pointer;
  display: flex; flex-direction: column; gap: 10px;
}
.motorista-card[data-v-91a92e7c]:hover { border-color: var(--primary-line); background: var(--bg-soft);
}
.motorista-card__header[data-v-91a92e7c] { display: flex; gap: 12px; align-items: center;
}
.motorista-card__avatar[data-v-91a92e7c] {
  width: 44px; height: 44px; border-radius: 10px; background: var(--primary-soft); color: var(--primary-dark);
  display: flex; align-items: center; justify-content: center; font-family: var(--font-heading); font-weight: 600; font-size: 16px;
  flex-shrink: 0; position: relative;
}
.motorista-card__farol[data-v-91a92e7c] { position: absolute; right: -4px; bottom: -4px; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--bg-surface); background: var(--ok);
}
.motorista-card__farol.farol--ok[data-v-91a92e7c] { background: var(--ok);
}
.motorista-card__farol.farol--warn[data-v-91a92e7c] { background: var(--warn);
}
.motorista-card__farol.farol--risk[data-v-91a92e7c] { background: var(--risk);
}
.motorista-card__info[data-v-91a92e7c] { flex: 1; min-width: 0;
}
.motorista-card__nome[data-v-91a92e7c] { font-weight: 700; font-size: 15px; line-height: 1.3; color: var(--text-primary); word-break: break-word; margin-bottom: 2px;
}
.motorista-card__meta[data-v-91a92e7c] { font-size: 15px; color: var(--text-tertiary); display: flex; gap: 6px; align-items: center;
}
.motorista-card__status-dot[data-v-91a92e7c] { width: 6px; height: 6px; border-radius: 50%; background: var(--ok); flex-shrink: 0;
}
.motorista-card__stats[data-v-91a92e7c] { display: flex; justify-content: space-between; font-size: 15px; padding-top: 8px; border-top: 1px solid var(--border-soft);
}
.stat[data-v-91a92e7c] { text-align: left;
}
.stat__value[data-v-91a92e7c] { font-family: var(--font-heading); font-weight: 600; color: var(--text-primary); font-size: 17px; font-variant-numeric: tabular-nums;
}
.stat__label[data-v-91a92e7c] { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; margin-top: 1px;
}

/* ── Névoa 2.0 (27/08/2026): tonal em vez de azul cheio, hairlines, números
   em Instrument Sans tabular. O dono achou a tela feia — esta é a referência. */
.alert-section[data-v-91a92e7c] { margin-bottom: 16px;
}
.empty-actions[data-v-91a92e7c] { margin-top: 16px;
}
.spreadsheet-section[data-v-91a92e7c] { margin-bottom: 32px;
}

/* cockpit */
.cockpit-section[data-v-91a92e7c] { margin-bottom: 16px;
}
.cockpit-layout[data-v-91a92e7c] { display: flex; flex-direction: column; gap: 20px;
}
.cockpit-identity[data-v-91a92e7c] { display: flex; gap: 16px; align-items: center;
}
.cockpit-text[data-v-91a92e7c] { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.cockpit-title[data-v-91a92e7c] {
  margin: 0; font-family: var(--font-heading); font-size: 24px; font-weight: 600;
  line-height: 1.2; letter-spacing: -0.02em; color: var(--text-primary);
  text-transform: none;
}
.cockpit-subtitle[data-v-91a92e7c] { margin: 0; font-size: 15px; color: var(--text-tertiary); font-family: var(--font-body); font-variant-numeric: tabular-nums;
}
.cockpit-kpis[data-v-91a92e7c] { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; width: 100%;
}
.cockpit-loading[data-v-91a92e7c] { min-height: 96px; display: flex; align-items: center; justify-content: center;
}

/* controles: uma linha só, sem caixa cinza */
.controls-section[data-v-91a92e7c] {
  display: flex; gap: 12px; align-items: center; flex-wrap: wrap;
  margin: 0 0 14px; padding: 0 4px;
}
.controls-month[data-v-91a92e7c] {
  display: inline-flex; align-items: center; gap: 2px;
  background: var(--bg-surface); border: 1px solid var(--border); border-radius: 10px; padding: 3px;
}
.btn-month-nav[data-v-91a92e7c] {
  display: flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 8px; border: none; background: transparent;
  font-family: var(--font-body); font-size: 18px; font-weight: 700; color: var(--primary-deep); cursor: pointer;
}
.btn-month-nav[data-v-91a92e7c]:hover { background: var(--primary-soft);
}
.month-label[data-v-91a92e7c] {
  font-family: var(--font-heading); font-size: 16px; font-weight: 600; color: var(--text-primary);
  min-width: 84px; text-align: center; padding: 0 4px;
}
.controls-filters[data-v-91a92e7c] { display: flex; gap: 6px; flex-wrap: wrap; flex: 1; align-items: center;
}
.filter-pill[data-v-91a92e7c] { cursor: pointer;
}
.btn-new-journey[data-v-91a92e7c] { flex-shrink: 0; margin-left: auto;
}

/* planilha */
.tbl-scroll[data-v-91a92e7c] { overflow-x: auto; border: 1px solid var(--border); border-radius: 10px;
}
.planilha[data-v-91a92e7c] { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 1140px; background: var(--bg-surface);
}
.planilha thead th[data-v-91a92e7c] {
  position: sticky; top: 0; z-index: 2;
  background: var(--bg-soft); color: var(--text-tertiary);
  font-family: var(--font-body); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 11px 10px; text-align: right; white-space: nowrap;
  border-bottom: 1px solid var(--border);
}
.planilha thead th.th-dia[data-v-91a92e7c], .planilha thead th[data-v-91a92e7c]:nth-child(2), .planilha thead th[data-v-91a92e7c]:nth-child(3) { text-align: left;
}
.planilha thead th.clt[data-v-91a92e7c] { color: var(--primary-dark); box-shadow: inset 0 2px 0 var(--primary-line);
}
.planilha tbody td[data-v-91a92e7c] {
  padding: 10px 10px; border-bottom: 1px solid var(--border-soft);
  white-space: nowrap; font-variant-numeric: tabular-nums; font-size: 15px; color: var(--text-primary);
  text-align: right;
}
.planilha tbody td[data-v-91a92e7c]:nth-child(1), .planilha tbody td[data-v-91a92e7c]:nth-child(2), .planilha tbody td[data-v-91a92e7c]:nth-child(3) { text-align: left;
}
.planilha tbody td:first-child b[data-v-91a92e7c] { font-weight: 700;
}
.planilha tbody td[data-v-91a92e7c]:first-child { color: var(--text-tertiary);
}
.planilha tbody td:first-child b[data-v-91a92e7c] { color: var(--text-primary); margin-right: 4px;
}
.planilha tbody tr:last-child td[data-v-91a92e7c] { border-bottom: none;
}
.planilha tr.dia[data-v-91a92e7c] { cursor: pointer;
}
.planilha tr.dia:hover td[data-v-91a92e7c] { background: var(--primary-soft);
}
.planilha tr.folga td[data-v-91a92e7c] { color: var(--muted);
}
.folga-label[data-v-91a92e7c] { font-style: italic; font-weight: 500; text-align: left !important;
}
.folga-label--feriado[data-v-91a92e7c] { color: var(--warn); font-weight: 700; font-style: normal;
}
.feriado-tag[data-v-91a92e7c] { margin-left: 4px; cursor: help;
}
.planilha tr.aberta-agora td[data-v-91a92e7c]:first-child { box-shadow: inset 3px 0 0 var(--ok);
}

/* selos de célula: tonal com hairline, nunca fundo cheio */
.cel-warn[data-v-91a92e7c], .cel-risk[data-v-91a92e7c], .cel-ok[data-v-91a92e7c] {
  display: inline-block; padding: 3px 9px; border-radius: 999px; font-weight: 700; font-size: 15px; line-height: 1.2;
  border: 1px solid transparent;
}
.cel-warn[data-v-91a92e7c] { background: var(--warn-soft); color: var(--warn);
}
.cel-risk[data-v-91a92e7c] { background: var(--risk-soft); color: var(--risk);
}
.cel-ok[data-v-91a92e7c]   { background: var(--ok-soft); color: var(--ok);
}
.neg[data-v-91a92e7c] { color: var(--risk); font-weight: 700;
}
.linha-2[data-v-91a92e7c] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.erro-boletim[data-v-91a92e7c] { color: var(--risk); font-size: 13.5px;
}
.form-card[data-v-91a92e7c] {
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg, 18px);
  padding: 28px; max-width: 520px;
  display: grid; gap: 14px;
}

.j-badge[data-v-84d9af4e] {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 10px; border-radius: var(--radius-full, 999px);
  font-family: var(--font-body);
  font-size: 15px; font-weight: 700; letter-spacing: 0.01em;
  white-space: nowrap;
}
.j-badge__dot[data-v-84d9af4e] {
  width: 6px; height: 6px; border-radius: 50%; background: currentColor;
}
.j-badge--ok[data-v-84d9af4e]      { background: var(--ok-soft); color: var(--ok);
}
.j-badge--warn[data-v-84d9af4e]    { background: var(--warn-soft); color: var(--warn);
}
.j-badge--bad[data-v-84d9af4e]     { background: var(--risk-soft); color: var(--risk);
}
.j-badge--info[data-v-84d9af4e]    { background: var(--primary-soft); color: var(--primary-deep);
}
.j-badge--brand[data-v-84d9af4e]   { background: var(--primary-soft); color: var(--primary-deep); font-weight: 800;
}
.j-badge--neutral[data-v-84d9af4e] { background: var(--bg-soft); color: var(--text-tertiary); border: 1px solid var(--border);
}

.timeline[data-v-b6fe9946] { display: flex; flex-direction: column; gap: 8px;
}
.timeline__track[data-v-b6fe9946] {
  position: relative; height: 32px;
  background: var(--bg-primary);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 12px);
  overflow: hidden;
}
.tl-block[data-v-b6fe9946] {
  position: absolute; top: 0; bottom: 0;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 15px; font-weight: 700;
  overflow: hidden; padding: 0 4px;
}
.tl-block--dir[data-v-b6fe9946]  { background: var(--primary);
}
.tl-block--meal[data-v-b6fe9946] { background: var(--ok);
}
.tl-block--wait[data-v-b6fe9946] { background: var(--muted);
}
.tl-block--rest[data-v-b6fe9946] { background: var(--primary);
}
.tl-block--stop[data-v-b6fe9946] { background: #64748b;
}
.tl-block--pni[data-v-b6fe9946]  { background: repeating-linear-gradient(45deg, var(--risk), var(--risk) 6px, #7a3d40 6px, #7a3d40 12px);
}
.tl-block__fonte[data-v-b6fe9946] { position: absolute; top: 1px; left: 2px; font-size: 10px; line-height: 1; filter: drop-shadow(0 0 1px rgba(0,0,0,.6));
}
.tl-now[data-v-b6fe9946] {
  position: absolute; top: -6px; bottom: -6px;
  width: 2px; background: var(--text-primary); z-index: 2;
}
.tl-now__label[data-v-b6fe9946] {
  position: absolute; top: -18px; left: 50%; transform: translateX(-50%);
  background: var(--text-primary); color: #fff;
  padding: 2px 6px; border-radius: 4px;
  font-family: var(--font-mono, monospace); font-size: 15px; font-weight: 800;
  white-space: nowrap;
}
.timeline__ruler[data-v-b6fe9946] {
  position: relative; height: 16px;
}
.timeline__ruler span[data-v-b6fe9946] {
  position: absolute; top: 0; transform: translateX(-50%);
  font-family: var(--font-mono, monospace); font-size: 15px;
  color: var(--text-tertiary);
}
.timeline__legend[data-v-b6fe9946] {
  display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px;
  font-size: 15px; color: var(--text-tertiary);
}
.lg[data-v-b6fe9946] { display: inline-flex; align-items: center; gap: 4px;
}
.dot[data-v-b6fe9946] { width: 10px; height: 10px; border-radius: 2px; display: inline-block;
}

.sr-periodo[data-v-ec62b82c] { display: flex; gap: 6px; margin-bottom: 14px;
}
.sr-periodo__btn[data-v-ec62b82c] { font-family: var(--font-body); font-weight: 700; font-size: 12.5px; padding: 6px 12px; border-radius: 9px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-secondary); cursor: pointer;
}
.sr-periodo__btn.on[data-v-ec62b82c] { background: var(--primary-soft); border-color: var(--primary-line); color: var(--primary-deep);
}
.sr-kpis[data-v-ec62b82c] { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; margin-bottom: 16px;
}
.sr-inf[data-v-ec62b82c] { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-top: 1px solid var(--border-soft);
}
.sr-inf[data-v-ec62b82c]:first-of-type { border-top: none;
}
.sr-inf__ic[data-v-ec62b82c] { font-size: 18px; width: 32px; height: 32px; border-radius: 9px; background: var(--bg-soft); display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.sr-inf__body[data-v-ec62b82c] { flex: 1; min-width: 0;
}
.sr-inf__topo[data-v-ec62b82c] { display: flex; justify-content: space-between; gap: 10px; font-size: 14px;
}
.sr-inf__quando[data-v-ec62b82c] { color: var(--text-tertiary); font-weight: 600; font-size: 12.5px; font-variant-numeric: tabular-nums;
}
.sr-inf__meta[data-v-ec62b82c] { font-size: 12.5px; color: var(--text-secondary); margin-top: 2px; font-variant-numeric: tabular-nums;
}
.sr-inf__video[data-v-ec62b82c] { flex-shrink: 0; font-size: 12.5px; font-weight: 700; color: var(--primary-deep); background: var(--primary-soft); border: 1px solid var(--primary-line); padding: 5px 11px; border-radius: 9px; text-decoration: none; white-space: nowrap;
}
.sr-vazio[data-v-ec62b82c], .sr-vazio-sec[data-v-ec62b82c], .sr-ok[data-v-ec62b82c] { font-size: 13.5px; color: var(--text-tertiary); padding: 8px 0;
}

/* Névoa 2.0 (27/08/2026): tonal, hairlines, Instrument Sans tabular nos números,
   sem gradiente, sem monoespaçada, sem emoji como ícone. */
.page[data-v-253a3161] { max-width: none; padding: 28px 28px 40px;
}
.voltar[data-v-253a3161] { background: transparent; border: none; color: var(--primary-deep); font-family: var(--font-body); font-size: 15px; font-weight: 700; cursor: pointer; padding: 4px 0 12px;
}
.voltar[data-v-253a3161]:hover { color: var(--primary);
}
.page-hdr[data-v-253a3161] { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 24px; flex-wrap: wrap; gap: 16px;
}
.page-hdr__crumb[data-v-253a3161] { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--primary-deep); font-weight: 700; margin-bottom: 6px;
}
.page-hdr__title[data-v-253a3161] { font-family: var(--font-heading); font-size: 24px; font-weight: 600; letter-spacing: -0.02em; margin: 0; color: var(--text-primary);
}
.page-hdr__sub[data-v-253a3161] { color: var(--text-tertiary); font-size: 15px; margin: 6px 0 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; line-height: 1.5;
}
.page-hdr__actions[data-v-253a3161] { display: flex; gap: 10px;
}

/* cabeçalho da jornada */
.header-card[data-v-253a3161] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 20px 22px; margin-bottom: 16px;
}
.header-card__content[data-v-253a3161] { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap;
}
.header-card__meta[data-v-253a3161] { flex: 1; min-width: 260px;
}
.header-card__header[data-v-253a3161] { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; flex-wrap: wrap;
}
.header-card__title[data-v-253a3161] { font-family: var(--font-heading); font-size: 24px; font-weight: 600; margin: 0; color: var(--text-primary); letter-spacing: -0.02em; font-variant-numeric: tabular-nums;
}
.header-card__duração[data-v-253a3161] { font-size: 15px; color: var(--text-tertiary);
}
.header-card__auditoria[data-v-253a3161] { font-size: 13px; color: var(--ok); font-weight: 600;
}
.entrega[data-v-253a3161] { margin-top: 10px; padding: 10px 14px; border-radius: 10px; background: var(--primary-soft); border: 1px solid var(--primary-line); font-size: 15px; color: var(--text-primary); display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
}
.entrega__rotulo[data-v-253a3161] { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--primary-dark); margin-right: 4px;
}
.entrega__obs[data-v-253a3161] { color: var(--text-tertiary);
}
.header-card__links[data-v-253a3161] { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 10px;
}
.link[data-v-253a3161] {
  background: none; border: none; cursor: pointer; padding: 0;
  font: 700 15px var(--font-body); color: var(--primary-deep);
}
.link[data-v-253a3161]:hover, .link[data-v-253a3161]:focus-visible, .link[data-v-253a3161]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.header-card__actions[data-v-253a3161] { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end;
}

/* violações abertas: faixa areia tonal */
.alert-section[data-v-253a3161] { background: var(--warn-soft); border: 1px solid var(--warn-soft); border-radius: 10px; padding: 12px 16px; margin-bottom: 16px; display: grid; gap: 2px;
}
.alert-header[data-v-253a3161] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.alert-count[data-v-253a3161] { background: var(--warn); color: #fff; min-width: 26px; height: 26px; padding: 0 9px; border-radius: 999px; font-weight: 700; font-size: 15px; display: inline-flex; align-items: center; justify-content: center; font-variant-numeric: tabular-nums;
}
.alert-title[data-v-253a3161] { font-weight: 700; color: var(--warn); font-size: 15px;
}
.alert-summary[data-v-253a3161] { font-size: 15px; color: var(--text-tertiary); padding-left: 36px;
}

/* totais */
.editor-e-telemetria[data-v-253a3161] { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; margin-bottom: 16px;
}
@media (max-width: 1024px) {
.editor-e-telemetria[data-v-253a3161] { grid-template-columns: 1fr;
}
}
.totais-row[data-v-253a3161] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px;
}
@media (max-width: 1024px) {
.totais-row[data-v-253a3161] { grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 560px) {
.totais-row[data-v-253a3161] { grid-template-columns: 1fr;
}
}

/* checklist */
.check-grid[data-v-253a3161] { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px;
}
.check[data-v-253a3161] { border: 1px solid var(--border-soft); border-radius: 10px; padding: 14px; display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: flex-start; background: var(--bg-soft);
}
.check--clickable[data-v-253a3161] { cursor: pointer;
}
.check--clickable[data-v-253a3161]:hover { border-color: var(--primary-line); background: var(--primary-soft);
}
.check__ic[data-v-253a3161] { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; font-size: 18px; background: var(--bg-surface); border: 1px solid var(--border); flex-shrink: 0;
}
.check b[data-v-253a3161] { display: block; font-size: 15px; font-weight: 700; color: var(--text-primary); margin-bottom: 2px;
}
.check__quem[data-v-253a3161] { font-size: 15px; font-weight: 600; color: var(--text-tertiary);
}
.check--motorista .check__quem[data-v-253a3161] { color: var(--primary-dark);
}
.check--sistema .check__quem[data-v-253a3161] { color: var(--warn);
}
.check--faltou[data-v-253a3161] { background: var(--risk-soft); border-color: transparent;
}
.check--faltou .check__quem[data-v-253a3161] { color: var(--risk);
}
.check__corrigido[data-v-253a3161] { display: inline-block; margin-left: 6px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; background: var(--warn-soft); color: var(--warn); padding: 2px 7px; border-radius: 999px;
}
.check__hora[data-v-253a3161] { color: var(--text-tertiary); font-size: 15px; font-variant-numeric: tabular-nums; margin-top: 2px;
}

/* violações */
.viol-lista[data-v-253a3161] { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px;
}
.viol[data-v-253a3161] { display: grid; gap: 12px; padding: 14px 16px; border-radius: 10px; border: 1px solid var(--border); background: var(--bg-surface);
}
.viol--alta[data-v-253a3161] { background: var(--risk-soft); border-color: transparent;
}
.viol--alta .viol__info b[data-v-253a3161] { color: var(--risk);
}
.viol--media[data-v-253a3161] { background: var(--warn-soft); border-color: transparent;
}
.viol--media .viol__info b[data-v-253a3161] { color: var(--warn);
}
.viol--fechada[data-v-253a3161] { opacity: 0.6; background: var(--bg-soft); border-style: dashed; border-color: var(--border);
}
.viol--fechada .viol__info b[data-v-253a3161] { color: var(--text-tertiary);
}
.viol__header[data-v-253a3161] { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px;
}
.viol__info b[data-v-253a3161] { display: block; font-size: 15px; font-weight: 700; color: var(--text-primary); margin-bottom: 2px;
}
.viol__medida[data-v-253a3161] { font-size: 15px; color: var(--text-tertiary); font-variant-numeric: tabular-nums; display: block;
}
.viol__status[data-v-253a3161] { font-weight: 700; font-size: 12px; color: var(--text-tertiary); text-transform: uppercase; letter-spacing: 0.06em; white-space: nowrap;
}
.viol__acoes[data-v-253a3161] { display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
}

/* passo a passo (timeline vertical) */
.tl[data-v-253a3161] { list-style: none; padding: 0; margin: 0;
}
.tl__passo[data-v-253a3161] { display: grid; grid-template-columns: 44px 1fr; gap: 14px; margin-bottom: 6px;
}
.tl__trilho[data-v-253a3161] { display: flex; flex-direction: column; align-items: center;
}
.tl__no[data-v-253a3161] { width: 40px; height: 40px; border-radius: 50%; flex: 0 0 auto; display: grid; place-items: center; font-size: 17px; background: var(--bg-soft); border: 1px solid var(--border); z-index: 1;
}
.tl__no--meal[data-v-253a3161] { background: var(--ok-soft); border-color: transparent;
}
.tl__no--rest[data-v-253a3161] { background: var(--primary-soft); border-color: transparent;
}
.tl__no--wait[data-v-253a3161] { background: var(--warn-soft); border-color: transparent;
}
.tl__no--stop[data-v-253a3161] { background: var(--bg-soft);
}
.tl__no--pni[data-v-253a3161] { background: var(--risk-soft); border-color: transparent;
}
.tl__no--brand[data-v-253a3161] { background: var(--primary-soft); border-color: var(--primary-line);
}
.tl__linha[data-v-253a3161] { width: 2px; flex: 1; min-height: 16px; background: var(--border);
}
.tl__cartao[data-v-253a3161] { background: var(--bg-surface); border-radius: 10px; padding: 12px 14px; margin-bottom: 10px; border: 1px solid var(--border-soft);
}
.tl__topo[data-v-253a3161] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.tl__hora[data-v-253a3161] { font-variant-numeric: tabular-nums; font-weight: 600; font-size: 15px; font-family: var(--font-heading); color: var(--primary-dark); min-width: 48px;
}
.tl__tipo[data-v-253a3161] { font-size: 15px; color: var(--text-primary); flex: 1; font-weight: 700;
}
.tl__local[data-v-253a3161] {
  font-size: 15px; font-weight: 700; white-space: nowrap;
  background: var(--bg-soft); border: 1px solid var(--border-soft);
  color: var(--text-tertiary); border-radius: 999px; padding: 2px 10px;
}
.tl__meta[data-v-253a3161] { font-size: 15px; color: var(--text-tertiary); margin-top: 4px; font-variant-numeric: tabular-nums;
}
.aberto[data-v-253a3161] { color: var(--ok); font-weight: 700;
}
.tl__corrigido[data-v-253a3161] { font-size: 15px; color: var(--warn); background: var(--warn-soft); border-radius: 8px; padding: 8px 12px; margin-top: 8px;
}
.tl__acoes[data-v-253a3161] { margin-top: 6px;
}

/* tabela de diárias */
.tbl[data-v-253a3161] { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15px;
}
.tbl th[data-v-253a3161], .tbl td[data-v-253a3161] { padding: 10px 12px; text-align: right; border-bottom: 1px solid var(--border-soft); font-variant-numeric: tabular-nums;
}
.tbl th[data-v-253a3161]:first-child, .tbl td[data-v-253a3161]:first-child { text-align: left;
}
.tbl th[data-v-253a3161] { background: var(--bg-soft); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-tertiary); font-weight: 700; border-bottom: 1px solid var(--border);
}
.tbl tr:last-child td[data-v-253a3161] { border-bottom: none;
}
.tbl__total[data-v-253a3161] { font-weight: 700; color: var(--primary-dark);
}

/* formulários */
.dica[data-v-253a3161] { font-size: 15px; color: var(--text-tertiary); margin: -4px 0 0;
}
.j-label[data-v-253a3161] { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-tertiary); margin-bottom: 6px; display: block;
}
.j-textarea[data-v-253a3161] { width: 100%; padding: 12px 14px; font-size: 15px; font-family: var(--font-body); border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface); color: var(--text-primary); min-height: 100px; resize: vertical;
}
.j-textarea[data-v-253a3161]:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft);
}
.j-input[data-v-253a3161] { width: 100%; padding: 12px 14px; font-size: 15px; font-family: var(--font-body); border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface); color: var(--text-primary);
}
.j-input[data-v-253a3161]:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft);
}
.form-card[data-v-253a3161] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 24px; max-width: 560px; display: grid; gap: 14px;
}
.evento-info[data-v-253a3161] { display: grid; gap: 6px; padding-bottom: 12px; border-bottom: 1px solid var(--border-soft);
}
.info-row[data-v-253a3161] { display: flex; justify-content: space-between; gap: 12px; font-size: 15px;
}
.info-row .label[data-v-253a3161] { color: var(--text-tertiary);
}
.info-row .value[data-v-253a3161] { color: var(--text-primary); font-weight: 700;
}
.badge-admin[data-v-253a3161] { background: var(--warn-soft); color: var(--warn); padding: 2px 8px; border-radius: 999px; font-size: 15px;
}
.macro-review[data-v-253a3161] { background: var(--primary-soft); border: 1px solid var(--primary-line); border-radius: 10px; padding: 14px 16px;
}
.review-item[data-v-253a3161] { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: 15px;
}
.review-label[data-v-253a3161] { color: var(--text-tertiary); font-weight: 600;
}
.review-value[data-v-253a3161] { color: var(--text-primary); font-weight: 700;
}
.hora[data-v-253a3161] { font: inherit; padding: 4px 8px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface); color: var(--text-primary);
}
.review-note[data-v-253a3161] { margin: 10px 0 0; padding-top: 10px; border-top: 1px solid var(--primary-line); font-size: 15px; color: var(--text-tertiary); line-height: 1.5;
}
.form-actions[data-v-253a3161] { display: grid; grid-template-columns: 1fr 1.4fr; gap: 12px; margin-top: 8px;
}
@media (max-width: 560px) {
.form-actions[data-v-253a3161] { grid-template-columns: 1fr;
}
}
@media (max-width: 720px) {
.page-hdr[data-v-253a3161] { flex-direction: column; align-items: flex-start;
}
.header-card__content[data-v-253a3161] { flex-direction: column; align-items: flex-start;
}
.header-card__actions[data-v-253a3161] { justify-content: flex-start;
}
.check-grid[data-v-253a3161] { grid-template-columns: 1fr;
}
.viol__header[data-v-253a3161] { flex-direction: column;
}
}

.mapa-overlay[data-v-8d537891] { position: fixed; inset: 0; background: rgba(20,22,40,.55); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 16px;
}
.mapa-box[data-v-8d537891] { background: var(--bg-surface); border-radius: 16px; width: min(960px,100%); max-height: 92vh; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.35);
}
.mapa-head[data-v-8d537891] { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 18px 20px 8px;
}
.mapa-head h3[data-v-8d537891] { font-family: var(--font-heading); font-size: 19px; font-weight: 800; color: var(--text-primary); margin: 0;
}
.mapa-head p[data-v-8d537891] { font-size: 15px; color: var(--text-tertiary); margin: 2px 0 0;
}
.mapa-x[data-v-8d537891] { background: none; border: none; font-size: 20px; cursor: pointer; color: var(--text-tertiary); line-height: 1; padding: 4px;
}
.dia[data-v-8d537891] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 4px 20px 10px;
}
.dia__btn[data-v-8d537891] { width: 32px; height: 32px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--primary-deep); font-size: 18px; font-weight: 700; cursor: pointer;
}
.dia__btn[data-v-8d537891]:disabled { opacity: .4; cursor: default;
}
.dia__input[data-v-8d537891] { font: inherit; font-size: 15px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 8px; color: var(--text-primary); background: var(--bg-surface);
}
.dia__hoje[data-v-8d537891] { border: 1px solid var(--border); background: var(--bg-surface); border-radius: 8px; padding: 6px 10px; font: 700 14px var(--font-body); color: var(--primary-deep); cursor: pointer;
}
.dia__resumo[data-v-8d537891] { font-size: 15px; color: var(--text-tertiary);
}
.dia__chips[data-v-8d537891] { display: flex; gap: 6px; flex-wrap: wrap; width: 100%;
}
.chip[data-v-8d537891] { border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-tertiary); border-radius: 999px; padding: 4px 10px; font: 700 13px var(--font-body); cursor: pointer;
}
.chip small[data-v-8d537891] { font-weight: 600; color: var(--muted);
}
.chip--on[data-v-8d537891] { background: var(--primary-soft); border-color: var(--primary-line); color: var(--primary-deep);
}
.corpo[data-v-8d537891] { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 12px; padding: 0 20px; min-height: 360px;
}
.mapa-col[data-v-8d537891] { display: flex; min-height: 360px;
}
.mapa-canvas[data-v-8d537891], .mapa-status[data-v-8d537891] { flex: 1; min-height: 360px; border-radius: 10px; overflow: hidden;
}
.mapa-status[data-v-8d537891] { display: flex; align-items: center; justify-content: center; color: var(--text-tertiary); text-align: center; padding: 20px;
}
.mapa-status--erro[data-v-8d537891] { color: var(--risk);
}
.lista[data-v-8d537891] { list-style: none; margin: 0; padding: 0; overflow: auto; max-height: 420px; border: 1px solid var(--border-soft); border-radius: 10px;
}
.ponto[data-v-8d537891] { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-bottom: 1px solid var(--border-soft); cursor: pointer; font-size: 15px;
}
.ponto[data-v-8d537891]:hover, .ponto--on[data-v-8d537891] { background: var(--primary-soft);
}
.ponto__n[data-v-8d537891] { width: 24px; height: 24px; border-radius: 50%; background: var(--primary-deep); color: #fff; font: 700 12px var(--font-body); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.ponto__txt[data-v-8d537891] { flex: 1; color: var(--text-primary);
}
.ponto__txt small[data-v-8d537891] { color: var(--text-tertiary);
}
.ponto__link[data-v-8d537891] { color: var(--primary-deep); text-decoration: none; font-weight: 700;
}
.lista__vazio[data-v-8d537891] { padding: 14px; color: var(--text-tertiary); font-size: 15px;
}
.mapa-legenda[data-v-8d537891] { display: flex; gap: 14px; flex-wrap: wrap; padding: 10px 20px 0; font-size: 13px; color: var(--text-tertiary);
}
.mapa-legenda span[data-v-8d537891] { display: inline-flex; align-items: center; gap: 5px;
}
.mapa-legenda__dica[data-v-8d537891] { color: var(--muted);
}
.pin[data-v-8d537891] { width: 11px; height: 11px; border-radius: 50%; display: inline-block; border: 1.5px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.15);
}
.pin--atual[data-v-8d537891] { background: #0f9c62;
}
.pin--dia[data-v-8d537891] { background: #46679A;
}
.mapa-acoes[data-v-8d537891] { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 20px 18px;
}
.mapa-btn[data-v-8d537891] { padding: 11px 18px; border-radius: 10px; font-family: var(--font-heading); font-weight: 700; font-size: 15px; cursor: pointer; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary);
}
@media (max-width: 760px) {
.corpo[data-v-8d537891] { grid-template-columns: 1fr;
}
.lista[data-v-8d537891] { max-height: 200px;
}
}

/* ── localização na lista (29/08/2026) ── */
.loc-filtros[data-v-89956883] { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; padding: 4px 0 14px; border-bottom: 1px solid var(--border-soft); margin-bottom: 14px;
}
.filtro[data-v-89956883] { display: flex; flex-direction: column; gap: 4px;
}
.filtro__rotulo[data-v-89956883] { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted);
}
.campo[data-v-89956883] { font: inherit; font-size: 15px; color: var(--text-primary); background: var(--bg-surface); border: 1px solid var(--border); border-radius: 8px; padding: 8px 11px; min-width: 240px;
}
.campo--curto[data-v-89956883] { min-width: 200px;
}
.linha[data-v-89956883] { display: flex; gap: 6px; flex-wrap: wrap;
}
.raio[data-v-89956883] { width: 220px; accent-color: var(--primary-deep);
}
.chips[data-v-89956883] { display: flex; flex-wrap: wrap; gap: 6px;
}
.chip--alerta.chip--on[data-v-89956883] { background: var(--warn-soft); border-color: #E4D6BC; color: var(--warn);
}
.chip small[data-v-89956883] { color: var(--muted); font-weight: 600;
}
.dot[data-v-89956883] { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; vertical-align: 1px;
}
.dot--dirigindo[data-v-89956883] { background: var(--primary-dark);
}
.dot--parado[data-v-89956883] { background: #b8790a;
}
.dot--livre[data-v-89956883] { background: #0f9c62;
}
.dot--semgps[data-v-89956883] { background: var(--nv-400);
}
.loc-dica[data-v-89956883] { color: var(--muted); font-size: 13px; align-self: center;
}
.lote[data-v-89956883] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: -4px 0 12px; padding: 10px 14px; background: var(--primary-soft); border: 1px solid var(--primary-line); border-radius: 10px; font-size: 15px;
}
.loc[data-v-89956883] { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; border-top: 1px solid var(--border-soft); margin-top: 8px; cursor: default;
}
.loc__sel input[data-v-89956883] { width: 16px; height: 16px; accent-color: var(--primary-deep); margin-top: 3px;
}
.loc__txt[data-v-89956883] { flex: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; color: var(--text-secondary);
}
.loc__pos--muted[data-v-89956883] { color: var(--muted);
}
.loc__alerta[data-v-89956883] { width: 100%; color: var(--risk); font-weight: 700;
}
.loc__acoes[data-v-89956883] { display: flex; flex-direction: column; gap: 2px; align-items: flex-end;
}
.link[data-v-89956883] { background: none; border: none; color: var(--primary-deep); font: 700 14px var(--font-body); cursor: pointer; padding: 0;
}
.link[data-v-89956883]:hover, .link[data-v-89956883]:focus-visible, .link[data-v-89956883]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.pill[data-v-89956883] { display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 999px; font-size: 13px; font-weight: 700; white-space: nowrap;
}
.pill--mini[data-v-89956883] { font-size: 12px; padding: 2px 8px;
}
.pill--dirigindo[data-v-89956883] { background: var(--primary-soft); color: var(--primary-dark);
}
.pill--parado[data-v-89956883] { background: var(--warn-soft); color: var(--warn);
}
.pill--livre[data-v-89956883] { background: var(--ok-soft); color: var(--ok);
}
.pill--semgps[data-v-89956883] { background: var(--border-soft); color: var(--text-tertiary);
}
.pill--ok[data-v-89956883] { background: var(--ok-soft); color: var(--ok);
}
.pill--warn[data-v-89956883] { background: var(--warn-soft); color: var(--warn);
}
.pill--risk[data-v-89956883] { background: var(--risk-soft); color: var(--risk);
}
.feedback[data-v-89956883] { margin: 12px 0 0; padding: 10px 14px; border-radius: 8px; font-size: 15px; font-weight: 600;
}
.feedback--ok[data-v-89956883] { background: var(--ok-soft); color: var(--ok);
}
.feedback--erro[data-v-89956883] { background: var(--risk-soft); color: var(--risk);
}
.tx-risk[data-v-89956883] { color: var(--risk); margin: 0; font-weight: 600;
}
.modal[data-v-89956883] { position: fixed; inset: 0; background: rgba(20,22,40,.55); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 16px;
}
.modal__box[data-v-89956883] { background: var(--bg-surface); border-radius: 14px; width: min(440px, 100%); padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 12px;
}
.modal__t[data-v-89956883] { font-family: var(--font-heading); font-size: 17px; font-weight: 600; margin: 0;
}
.modal__box .campo[data-v-89956883] { min-width: 0; width: 100%;
}
.modal__acoes[data-v-89956883] { display: flex; gap: 8px; justify-content: flex-end;
}

/* Névoa 2.0 (27/08/2026) */
.motoristas-view[data-v-89956883] { max-width: none; padding: 28px 28px 40px;
}
.page-hdr[data-v-89956883] { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 20px; flex-wrap: wrap; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--border);
}
.page-hdr__crumb[data-v-89956883] { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--primary-deep); font-weight: 700; margin-bottom: 6px;
}
.page-hdr__title[data-v-89956883] { font-family: var(--font-heading); font-size: 28px; font-weight: 600; letter-spacing: -0.02em; margin: 0; color: var(--text-primary);
}
.page-hdr__sub[data-v-89956883] { color: var(--text-tertiary); font-size: 15px; margin: 6px 0 0; line-height: 1.5;
}
.page-hdr__actions[data-v-89956883] { display: flex; gap: 8px; align-items: flex-end;
}
.voltar[data-v-89956883] { background: none; border: none; cursor: pointer; font-family: var(--font-body); font-size: 15px; font-weight: 700; color: var(--primary-deep); padding: 0 0 12px;
}
.chip[data-v-89956883] { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-tertiary); font-family: var(--font-body); font-size: 15px; font-weight: 700; cursor: pointer;
}
.chip[data-v-89956883]:hover { border-color: var(--primary-line); color: var(--primary-deep);
}
.chip--active[data-v-89956883] { background: var(--primary-soft); color: var(--primary-dark); border-color: var(--primary-line);
}
.loading-state[data-v-89956883], .empty-state[data-v-89956883], .error-state[data-v-89956883] { padding: 40px 20px; text-align: center; color: var(--text-tertiary); background: var(--bg-surface); border: 1px dashed var(--border); border-radius: 12px; font-size: 15px;
}
.error-state[data-v-89956883] { color: var(--risk); background: var(--risk-soft); border-color: transparent;
}
.form-card[data-v-89956883] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 24px; max-width: 560px; display: grid; gap: 14px;
}
.form-card__row-2[data-v-89956883] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
/* Ficha em modo visualização (18/09/2026) */
.ficha-resumo[data-v-89956883] { gap: 10px;
}
.ficha-resumo__item[data-v-89956883] { display: flex; justify-content: space-between; align-items: baseline; padding: 9px 0; border-top: 1px solid var(--border-soft); font-size: 15px;
}
.ficha-resumo__item[data-v-89956883]:first-child { border-top: none; padding-top: 0;
}
.ficha-resumo__label[data-v-89956883] { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted);
}
/* edição: ficha à esquerda, acompanhamento à direita (28/08/2026) */
.edicao[data-v-89956883] { display: grid; grid-template-columns: minmax(360px, 560px) minmax(0, 1fr); gap: 18px; align-items: start;
}
.edicao--nova[data-v-89956883] { grid-template-columns: minmax(360px, 560px);
}
/* Acordeão (12/09/2026): pilha vertical de verdade — antes era um grid que
 * auto-preenchia 2+ colunas em tela larga, then a leitura ficava fora de
 * ordem (Jornadas do lado de Programações, Advertências do lado de
 * Violações…) e escondia o efeito do acordeão. */
.lado[data-v-89956883] { display: flex; flex-direction: column; gap: 10px; max-width: 560px;
}
.acesso[data-v-89956883] { display: grid; gap: 12px;
}
.acesso__msg[data-v-89956883] { margin: 0; font-size: 15px; font-weight: 600; color: var(--ok);
}
.acesso__msg--erro[data-v-89956883] { color: var(--risk);
}
.lado__vazio[data-v-89956883], .lado__muted[data-v-89956883] { margin: 0; color: var(--text-tertiary); font-size: 15px;
}
.lado__destaque[data-v-89956883] { margin: 0 0 8px; font-size: 16px; font-weight: 700; color: var(--ok);
}
.lado__linha[data-v-89956883] { margin: 0 0 6px; font-size: 15px; color: var(--text-secondary);
}
.lado__link[data-v-89956883] { color: var(--primary-deep); font-weight: 700; font-size: 15px; text-decoration: none;
}
.lado__link[data-v-89956883]:hover { text-decoration: underline;
}
.lado__link--btn[data-v-89956883] { background: none; border: none; padding: 0; margin-top: 8px; cursor: pointer; font-family: var(--font-body);
}
.lista[data-v-89956883] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column;
}
.msg-lista[data-v-89956883] { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 8px; max-height: 260px; overflow-y: auto;
}
.msg[data-v-89956883] { max-width: 85%; padding: 8px 12px; border-radius: 12px; font-size: 14px;
}
.msg--recebida[data-v-89956883] { background: var(--bg-soft); align-self: flex-start; border-bottom-left-radius: 2px;
}
.msg--enviada[data-v-89956883] { background: var(--primary-soft); align-self: flex-end; border-bottom-right-radius: 2px;
}
.msg__texto[data-v-89956883] { display: block; color: var(--text-primary);
}
.msg__quando[data-v-89956883] { display: block; margin-top: 2px; font-size: 11px; color: var(--text-tertiary);
}
.msg-form[data-v-89956883] { display: flex; gap: 8px;
}
.msg-form__input[data-v-89956883] { flex: 1; padding: 9px 12px; border: 1px solid var(--border); border-radius: 10px; font-family: var(--font-body); font-size: 14px; background: var(--bg-surface); color: var(--text-primary);
}
.lista__item[data-v-89956883] { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 9px 0; border-top: 1px solid var(--border-soft); font-size: 15px;
}
.lista__item[data-v-89956883]:first-child { border-top: none; padding-top: 0;
}
.lista__item b[data-v-89956883] { display: block; color: var(--text-primary);
}
.lista__meta[data-v-89956883] { display: block; color: var(--text-tertiary); font-size: 14px;
}
.lista__texto[data-v-89956883] { display: block; color: var(--text-secondary); font-size: 14px; margin-top: 2px;
}
.pill[data-v-89956883] { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 13px; font-weight: 700; white-space: nowrap;
}
.pill--ok[data-v-89956883] { background: var(--ok-soft); color: var(--ok);
}
.pill--warn[data-v-89956883] { background: var(--warn-soft); color: var(--warn);
}
.pill--risk[data-v-89956883] { background: var(--risk-soft); color: var(--risk);
}
@media (max-width: 1100px) {
.edicao[data-v-89956883] { grid-template-columns: 1fr;
}
}
.j-label[data-v-89956883] { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-tertiary); margin-bottom: -6px; display: block;
}
.j-textarea[data-v-89956883] { width: 100%; padding: 12px 14px; font-size: 15px; font-family: var(--font-body); border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface); color: var(--text-primary); min-height: 96px; resize: vertical;
}
.j-textarea[data-v-89956883]:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft);
}
.dica[data-v-89956883] { font-size: 15px; color: var(--text-tertiary); margin: -4px 0 0;
}
.dica--duplicado[data-v-89956883] { color: var(--warn); font-weight: 600;
}
.motorista-card__nome .pill--warn[data-v-89956883], .vt tbody td .pill--warn[data-v-89956883] { margin-left: 6px; vertical-align: 1px;
}

/* ── Cards × Tabela (05/09/2026) ── */
.vista-toggle[data-v-89956883] { display: inline-flex; gap: 2px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; padding: 3px; margin-bottom: 12px;
}
.vista-btn[data-v-89956883] { border: none; background: transparent; border-radius: 8px; padding: 6px 12px; font: 700 15px var(--font-body); color: var(--text-tertiary); cursor: pointer;
}
.vista-btn--on[data-v-89956883] { background: var(--bg-surface); color: var(--primary-dark); box-shadow: 0 1px 3px rgba(23, 28, 36, 0.10);
}
.vt-scroll[data-v-89956883] { overflow-x: auto; border: 1px solid var(--border); border-radius: 10px;
}
.vt[data-v-89956883] { width: 100%; border-collapse: collapse; font-size: 15px; background: var(--bg-surface);
}
.vt__th[data-v-89956883] { position: sticky; top: 0; z-index: 1; background: var(--bg-soft); text-align: left; font: 700 12px var(--font-body); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-tertiary); padding: 9px 12px; border-bottom: 1px solid var(--border); cursor: pointer; white-space: nowrap; user-select: none;
}
.vt__th[data-v-89956883]:hover { color: var(--primary-deep);
}
.vt__th--num[data-v-89956883], .vt__num[data-v-89956883] { text-align: right; font-variant-numeric: tabular-nums;
}
.vt tbody td[data-v-89956883] { padding: 7px 12px; border-bottom: 1px solid var(--border-soft); white-space: nowrap; color: var(--text-primary);
}
.vt tbody tr:last-child td[data-v-89956883] { border-bottom: none;
}
.vt__linha[data-v-89956883] { cursor: pointer;
}
.vt__linha:hover td[data-v-89956883] { background: var(--primary-soft);
}
.vt__muted[data-v-89956883] { color: var(--muted);
}
.vt__risk[data-v-89956883] { color: var(--risk); font-weight: 700;
}
/* Cor da jornada ao vivo (23/09/2026) — mesma régua da Frota ao Vivo: verde
   dentro do padrão, laranja em hora extra, vermelho passou do teto. Borda na
   1ª célula pra não competir com o farol de conformidade (violações do mês,
   farol-tab) nem com o pill de situação (Agora). */
.vt__linha--tempo-verde td[data-v-89956883]:first-child { box-shadow: inset 3px 0 0 var(--ok);
}
.vt__linha--tempo-laranja td[data-v-89956883]:first-child { box-shadow: inset 3px 0 0 var(--warn);
}
.vt__linha--tempo-vermelho td[data-v-89956883]:first-child { box-shadow: inset 3px 0 0 var(--risk);
}
.farol-tab[data-v-89956883] { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 8px; background: var(--ok); vertical-align: 1px;
}
.farol-tab.farol--warn[data-v-89956883] { background: var(--warn);
}
.farol-tab.farol--risk[data-v-89956883] { background: var(--risk);
}

/* ── Colar do Excel (05/09/2026) ── */
.import-card[data-v-89956883] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 24px; display: grid; gap: 14px; max-width: 980px;
}
.import-area[data-v-89956883] { font-variant-numeric: tabular-nums; white-space: pre; overflow-x: auto;
}
.import-prev[data-v-89956883] { overflow-x: auto; border: 1px solid var(--border-soft); border-radius: 10px;
}
.import-linha--erro td[data-v-89956883] { background: var(--risk-soft);
}
.import-acoes[data-v-89956883] { display: flex; justify-content: flex-end; gap: 8px;
}
.pill--ok-suave[data-v-89956883] { background: var(--bg-soft); color: var(--text-tertiary);
}
.filters[data-v-89956883] { display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px;
}
.search-row[data-v-89956883] { width: 100%; max-width: 480px;
}
.filter-group[data-v-89956883] { display: flex; gap: 6px; flex-wrap: wrap; align-items: center;
}
.filter-label[data-v-89956883] { font-size: 12px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; min-width: 104px;
}
.motorista-grid[data-v-89956883] { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px;
}
.motorista-card[data-v-89956883] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 16px; cursor: pointer; display: flex; flex-direction: column; gap: 12px;
}
.motorista-card[data-v-89956883]:hover { border-color: var(--primary-line); background: var(--bg-soft);
}
.motorista-card__header[data-v-89956883] { display: flex; gap: 12px; align-items: center;
}
.motorista-card__avatar[data-v-89956883] { width: 44px; height: 44px; border-radius: 10px; background: var(--primary-soft); color: var(--primary-dark); display: flex; align-items: center; justify-content: center; font-family: var(--font-heading); font-weight: 600; font-size: 16px; flex-shrink: 0; position: relative;
}
.motorista-card__farol[data-v-89956883] { position: absolute; right: -4px; bottom: -4px; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--bg-surface); background: var(--ok);
}
.motorista-card__farol.farol--ok[data-v-89956883] { background: var(--ok);
}
.motorista-card__farol.farol--warn[data-v-89956883] { background: var(--warn);
}
.motorista-card__farol.farol--risk[data-v-89956883] { background: var(--risk);
}
.motorista-card__info[data-v-89956883] { flex: 1; min-width: 0;
}
.motorista-card__nome[data-v-89956883] { font-weight: 700; font-size: 15px; line-height: 1.3; color: var(--text-primary); word-break: break-word;
}
.motorista-card__meta[data-v-89956883] { font-size: 15px; color: var(--text-tertiary); margin-top: 2px;
}
.motorista-card__stats[data-v-89956883] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding-top: 10px; border-top: 1px solid var(--border-soft);
}
.stat[data-v-89956883] { text-align: left;
}
.stat__value[data-v-89956883] { font-family: var(--font-heading); font-weight: 600; font-size: 18px; color: var(--text-primary); font-variant-numeric: tabular-nums; letter-spacing: -0.01em;
}
.stat__label[data-v-89956883] { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; margin-top: 1px;
}

/* Névoa 2.0 (27/08/2026) */
.oc-view[data-v-4234f841] { max-width: none; padding: 28px 28px 40px;
}
.page-hdr[data-v-4234f841] { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 20px; flex-wrap: wrap; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--border);
}
.page-hdr__crumb[data-v-4234f841] { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--primary-deep); font-weight: 700; margin-bottom: 6px;
}
.page-hdr__title[data-v-4234f841] { font-family: var(--font-heading); font-size: 28px; font-weight: 600; letter-spacing: -0.02em; margin: 0; color: var(--text-primary);
}
.page-hdr__sub[data-v-4234f841] { color: var(--text-tertiary); font-size: 15px; margin: 6px 0 0; line-height: 1.5;
}
.page-hdr__actions[data-v-4234f841] { display: flex; gap: 8px; align-items: flex-end;
}
.voltar[data-v-4234f841] { background: none; border: none; cursor: pointer; font-family: var(--font-body); font-size: 15px; font-weight: 700; color: var(--primary-deep); padding: 0 0 12px;
}
.chip[data-v-4234f841] { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-tertiary); font-family: var(--font-body); font-size: 15px; font-weight: 700; cursor: pointer;
}
.chip[data-v-4234f841]:hover { border-color: var(--primary-line); color: var(--primary-deep);
}
.chip--active[data-v-4234f841] { background: var(--primary-soft); color: var(--primary-dark); border-color: var(--primary-line);
}
.loading-state[data-v-4234f841], .empty-state[data-v-4234f841], .error-state[data-v-4234f841] { padding: 40px 20px; text-align: center; color: var(--text-tertiary); background: var(--bg-surface); border: 1px dashed var(--border); border-radius: 12px; font-size: 15px;
}
.error-state[data-v-4234f841] { color: var(--risk); background: var(--risk-soft); border-color: transparent;
}
.form-card[data-v-4234f841] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 24px; max-width: 560px; display: grid; gap: 14px;
}
.form-card__row-2[data-v-4234f841] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.j-label[data-v-4234f841] { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-tertiary); margin-bottom: -6px; display: block;
}
.j-textarea[data-v-4234f841] { width: 100%; padding: 12px 14px; font-size: 15px; font-family: var(--font-body); border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface); color: var(--text-primary); min-height: 96px; resize: vertical;
}
.j-textarea[data-v-4234f841]:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft);
}
.dica[data-v-4234f841] { font-size: 15px; color: var(--text-tertiary); margin: -4px 0 0;
}
.filter-row[data-v-4234f841] { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 16px;
}
.mes-nav[data-v-4234f841] { display: inline-flex; align-items: center; gap: 2px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 10px; padding: 3px;
}
.mes-nav__btn[data-v-4234f841] { width: 32px; height: 32px; border: none; background: none; font-size: 18px; cursor: pointer; color: var(--primary-deep); border-radius: 8px;
}
.mes-nav__btn[data-v-4234f841]:hover { background: var(--primary-soft);
}
.mes-nav__label[data-v-4234f841] { min-width: 150px; text-align: center; font-family: var(--font-heading); font-weight: 600; font-size: 16px; color: var(--text-primary);
}
.j-select-wrap[data-v-4234f841] { display: block; min-width: 240px;
}
.j-select[data-v-4234f841] { width: 100%; padding: 9px 12px; font-size: 15px; font-family: var(--font-body); border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface); color: var(--text-primary); min-height: 40px;
}
.j-select[data-v-4234f841]:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft);
}
.filter-chips[data-v-4234f841] { display: flex; gap: 6px; flex-wrap: wrap;
}
.card-grid[data-v-4234f841] { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px;
}
.card-item[data-v-4234f841] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 12px;
}
.card-item__header[data-v-4234f841] { display: flex; gap: 12px; align-items: center;
}
.card-item__avatar[data-v-4234f841] { width: 44px; height: 44px; border-radius: 10px; background: var(--bg-soft); border: 1px solid var(--border-soft); display: grid; place-items: center; font-size: 20px; flex-shrink: 0;
}
.card-item__avatar--acidente[data-v-4234f841], .card-item__avatar--emergencia[data-v-4234f841] { background: var(--risk-soft); border-color: transparent;
}
.card-item__avatar--quebra[data-v-4234f841] { background: var(--warn-soft); border-color: transparent;
}
.card-item__avatar--multa[data-v-4234f841] { background: var(--primary-soft); border-color: transparent;
}
.card-item__info[data-v-4234f841] { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0;
}
.card-item__badge[data-v-4234f841] { width: fit-content;
}
.card-item__date[data-v-4234f841] { font-size: 15px; color: var(--text-tertiary); font-variant-numeric: tabular-nums;
}
.card-item__description[data-v-4234f841] { font-size: 15px; color: var(--text-primary); line-height: 1.5; margin: 0; word-break: break-word;
}
.card-item__stats[data-v-4234f841] { display: grid; gap: 4px; padding-top: 10px; border-top: 1px solid var(--border-soft);
}
.stat[data-v-4234f841] { display: flex; gap: 10px; align-items: baseline; font-size: 15px;
}
.stat__rotulo[data-v-4234f841] { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; min-width: 76px;
}
.stat__value[data-v-4234f841] { color: var(--text-primary); font-weight: 600; word-break: break-word;
}
.stat__link[data-v-4234f841] { background: none; border: none; padding: 0; font: inherit; font-weight: 700; color: var(--primary-deep); cursor: pointer;
}
.stat__link[data-v-4234f841]:hover { text-decoration: underline;
}
.tipos[data-v-4234f841] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
}
.tipo[data-v-4234f841] { border: 1px solid var(--border); background: var(--bg-surface); border-radius: 10px; padding: 18px 8px; min-height: 92px; cursor: pointer; display: grid; gap: 8px; justify-items: center; align-content: center; font-family: var(--font-body);
}
.tipo[data-v-4234f841]:hover { border-color: var(--primary-line); background: var(--bg-soft);
}
.tipo--ativo[data-v-4234f841] { border-color: var(--primary-line); background: var(--primary-soft);
}
.tipo__icone[data-v-4234f841] { font-size: 30px;
}
.tipo__label[data-v-4234f841] { font-size: 15px; font-weight: 700; color: var(--text-primary);
}
.j-textarea-wrap[data-v-4234f841] { display: block;
}
.j-textarea-wrap__label[data-v-4234f841] { display: block; font-size: 15px; font-weight: 700; color: var(--text-primary); margin-bottom: 6px;
}
.j-textarea-wrap__erro[data-v-4234f841] { display: block; margin-top: 4px; font-size: 15px; color: var(--risk);
}
@media (max-width: 560px) {
.tipos[data-v-4234f841] { grid-template-columns: repeat(2, 1fr);
}
}

/* Névoa 2.0 (27/08/2026) */
.page[data-v-08eb13ef] { max-width: none; padding: 28px 28px 40px;
}
.page-hdr[data-v-08eb13ef] { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 20px; flex-wrap: wrap; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--border);
}
.page-hdr__crumb[data-v-08eb13ef] { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--primary-deep); font-weight: 700; margin-bottom: 6px;
}
.page-hdr__title[data-v-08eb13ef] { font-family: var(--font-heading); font-size: 28px; font-weight: 600; letter-spacing: -0.02em; margin: 0; color: var(--text-primary);
}
.page-hdr__sub[data-v-08eb13ef] { color: var(--text-tertiary); font-size: 15px; margin: 6px 0 0; line-height: 1.5;
}
.page-hdr__actions[data-v-08eb13ef] { display: flex; gap: 8px; align-items: flex-end;
}
.voltar[data-v-08eb13ef] { background: none; border: none; cursor: pointer; font-family: var(--font-body); font-size: 15px; font-weight: 700; color: var(--primary-deep); padding: 0 0 12px;
}
.chip[data-v-08eb13ef] { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-tertiary); font-family: var(--font-body); font-size: 15px; font-weight: 700; cursor: pointer;
}
.chip[data-v-08eb13ef]:hover { border-color: var(--primary-line); color: var(--primary-deep);
}
.chip--active[data-v-08eb13ef] { background: var(--primary-soft); color: var(--primary-dark); border-color: var(--primary-line);
}
.loading-state[data-v-08eb13ef], .empty-state[data-v-08eb13ef], .error-state[data-v-08eb13ef] { padding: 40px 20px; text-align: center; color: var(--text-tertiary); background: var(--bg-surface); border: 1px dashed var(--border); border-radius: 12px; font-size: 15px;
}
.error-state[data-v-08eb13ef] { color: var(--risk); background: var(--risk-soft); border-color: transparent;
}
.form-card[data-v-08eb13ef] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 24px; max-width: 560px; display: grid; gap: 14px;
}
.form-card__row-2[data-v-08eb13ef] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.j-label[data-v-08eb13ef] { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-tertiary); margin-bottom: -6px; display: block;
}
.j-textarea[data-v-08eb13ef] { width: 100%; padding: 12px 14px; font-size: 15px; font-family: var(--font-body); border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface); color: var(--text-primary); min-height: 96px; resize: vertical;
}
.j-textarea[data-v-08eb13ef]:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft);
}
.dica[data-v-08eb13ef] { font-size: 15px; color: var(--text-tertiary); margin: -4px 0 0;
}
.page-hdr__title[data-v-08eb13ef] { font-size: 26px;
}
.kpis[data-v-08eb13ef] { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-bottom: 16px;
}
.feedback[data-v-08eb13ef] { border-radius: 10px; padding: 10px 14px; font-size: 15px; font-weight: 700; margin: 0 0 12px;
}
.feedback--ok[data-v-08eb13ef] { background: var(--ok-soft); color: var(--ok);
}
.feedback--erro[data-v-08eb13ef] { background: var(--risk-soft); color: var(--risk);
}
.grupo[data-v-08eb13ef] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; margin-bottom: 10px; overflow: hidden;
}
.grupo__hdr[data-v-08eb13ef] { width: 100%; display: flex; align-items: center; gap: 10px; padding: 14px 18px; border: none; background: transparent; cursor: pointer; text-align: left; font-family: inherit;
}
.grupo__hdr[data-v-08eb13ef]:hover { background: var(--bg-soft);
}
.grupo__ic[data-v-08eb13ef] { font-size: 18px; width: 28px; text-align: center;
}
.grupo__titulo[data-v-08eb13ef] { font-family: var(--font-heading); font-size: 17px; font-weight: 600; margin: 0; flex: 1; color: var(--text-primary);
}
.grupo__seta[data-v-08eb13ef] { color: var(--muted); font-size: 15px;
}
.casos[data-v-08eb13ef] { list-style: none; margin: 0; padding: 0 12px 12px; display: grid; gap: 8px;
}
.caso[data-v-08eb13ef] { border: 1px solid var(--border-soft); border-radius: 10px; padding: 12px 14px; display: grid; gap: 10px; background: var(--bg-soft);
}
.caso--alta[data-v-08eb13ef] { background: var(--risk-soft); border-color: transparent;
}
.caso--media[data-v-08eb13ef] { background: var(--warn-soft); border-color: transparent;
}
.caso--ia[data-v-08eb13ef] { background: var(--primary-soft); border-color: var(--primary-line);
}
.caso__linha[data-v-08eb13ef] { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center;
}
.caso__quem b[data-v-08eb13ef] { display: block; font-size: 15px; font-weight: 700; color: var(--text-primary);
}
.caso__quem span[data-v-08eb13ef] { font-size: 15px; color: var(--text-tertiary);
}
.caso__medida[data-v-08eb13ef] { font-size: 15px; color: var(--text-tertiary); font-variant-numeric: tabular-nums;
}
.caso__fonte[data-v-08eb13ef] { color: var(--muted); font-weight: 600;
}
.caso__acoes[data-v-08eb13ef] { display: flex; gap: 6px; flex-wrap: wrap; align-items: center;
}
.caso__proposta[data-v-08eb13ef] { font-size: 15px; font-weight: 700; margin-right: 6px; font-variant-numeric: tabular-nums;
}
@media (max-width: 640px) {
.caso__linha[data-v-08eb13ef] { grid-template-columns: 1fr;
}
}
.paradas-corpo[data-v-08eb13ef] { padding: 0 18px 16px;
}
.paradas-sub[data-v-08eb13ef] { font-size: 14px; color: var(--text-tertiary); margin: 0 0 12px; max-width: 74ch;
}
.paradas-stats[data-v-08eb13ef] { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-bottom: 14px;
}

.page[data-v-aab2db5c] {
  max-width: none;
  padding: 28px 28px 40px;
}
.page-hdr[data-v-aab2db5c] {
  padding-bottom: var(--spacing-lg);
  border-bottom: 1px solid var(--border-primary);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: var(--spacing-lg);
  flex-wrap: wrap;
  gap: var(--spacing-lg);
}
.page-hdr__crumb[data-v-aab2db5c] {
  font-size: var(--font-size-sm);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-primary-deep);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-xs);
}
.page-hdr__title[data-v-aab2db5c] {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-3xl);
  margin: 0;
  color: var(--text-primary);
  font-weight: var(--font-weight-semibold);
}
.page-hdr__sub[data-v-aab2db5c] {
  margin: var(--spacing-sm) 0 0;
  font-size: var(--font-size-base);
  color: var(--text-tertiary);
  max-width: 640px;
  line-height: var(--line-height-normal);
}
.hdr-acoes[data-v-aab2db5c] {
  display: flex;
  gap: var(--spacing-sm);
  flex-wrap: wrap;
}
.semana-nav[data-v-aab2db5c] {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-lg);
  flex-wrap: wrap;
}
.semana-nav__titulo[data-v-aab2db5c] {
  font-size: var(--font-size-lg);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  font-weight: var(--font-weight-medium);
}
.semana-nav__tag[data-v-aab2db5c] {
  font-size: var(--font-size-sm);
  background: var(--color-primary-soft);
  color: var(--color-primary-deep);
  border-radius: 999px;
  padding: var(--spacing-xs) var(--spacing-md);
  font-weight: var(--font-weight-bold);
}
.config-form[data-v-aab2db5c] {
  display: grid;
  grid-template-columns: 160px 200px auto 1fr;
  gap: var(--spacing-md);
  align-items: end;
}
@media (max-width: 720px) {
.config-form[data-v-aab2db5c] {
    grid-template-columns: 1fr;
}
}
.config-msg[data-v-aab2db5c] {
  font-size: var(--font-size-base);
  color: var(--text-tertiary);
}
.kpi-row[data-v-aab2db5c] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-lg);
}
@media (max-width: 900px) {
.kpi-row[data-v-aab2db5c] {
    grid-template-columns: repeat(2, 1fr);
}
}
.aviso[data-v-aab2db5c] {
  padding: var(--spacing-md) var(--spacing-lg);
  border-radius: var(--radius-md);
  background: var(--ok-soft);
  color: var(--ok);
  font-size: var(--font-size-base);
  margin-bottom: var(--spacing-md);
  line-height: var(--line-height-normal);
}
.aviso--erro[data-v-aab2db5c] {
  background: #FBF1F1;
  color: var(--risk);
}
.gantt-wrap[data-v-aab2db5c] {
  overflow-x: auto;
}
.gantt[data-v-aab2db5c] {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 980px;
  font-size: var(--font-size-base);
}
.gantt th[data-v-aab2db5c] {
  text-align: left;
  padding: var(--spacing-sm) var(--spacing-md);
  font-size: var(--font-size-sm);
  color: var(--text-tertiary);
  border-bottom: 1px solid var(--border-primary);
  background: var(--bg-light);
  font-weight: var(--font-weight-medium);
}
.gantt__dia[data-v-aab2db5c] {
  text-align: center !important;
  min-width: 96px;
}
.gantt__dia-nome[data-v-aab2db5c] {
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
}
.gantt__dia-num[data-v-aab2db5c] {
  display: block;
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  font-size: var(--font-size-base);
}
.gantt__dia--fds[data-v-aab2db5c] {
  background: var(--bg-light);
}
.gantt__dia--hoje .gantt__dia-num[data-v-aab2db5c] {
  color: var(--color-primary);
}
.gantt__mot[data-v-aab2db5c] {
  min-width: 200px;
}
.gantt__tot[data-v-aab2db5c] {
  min-width: 120px;
}
.gantt__status[data-v-aab2db5c] {
  min-width: 220px;
}
.gantt__linha td[data-v-aab2db5c] {
  padding: var(--spacing-md);
  border-bottom: 1px solid var(--border-primary);
  vertical-align: top;
}
.gantt__linha--aceito td[data-v-aab2db5c] {
  background: var(--ok-soft);
}
.gantt__linha--contestado td[data-v-aab2db5c] {
  background: #FBF1F1;
}
.gantt__cel[data-v-aab2db5c] {
  position: relative;
  padding: var(--spacing-md) var(--spacing-xs) !important;
}
.gantt__cel--fds[data-v-aab2db5c] {
  background: var(--bg-light);
}
.gantt__cel--hoje[data-v-aab2db5c] {
  box-shadow: inset 0 -3px 0 var(--color-primary);
}
.cel-vazia[data-v-aab2db5c] {
  color: var(--text-tertiary);
  text-align: center;
  font-size: var(--font-size-base);
}
.mot[data-v-aab2db5c] {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
}
.mot__av[data-v-aab2db5c] {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  flex: none;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-deep));
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-base);
}
.mot__txt[data-v-aab2db5c] {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
}
.mot__txt b[data-v-aab2db5c] {
  font-size: var(--font-size-base);
  color: var(--text-primary);
  font-weight: var(--font-weight-semibold);
}
.mot__txt .link[data-v-aab2db5c] {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  text-align: left;
}
.mot__txt .link:hover b[data-v-aab2db5c] {
  color: var(--primary);
  text-decoration: underline;
}
.mot__pend[data-v-aab2db5c] {
  font-size: var(--font-size-sm);
  color: var(--risk);
  font-weight: var(--font-weight-semibold);
}
.mot__ok[data-v-aab2db5c] {
  font-size: var(--font-size-sm);
  color: var(--ok);
  font-weight: var(--font-weight-semibold);
}
.barra[data-v-aab2db5c] {
  display: block;
  box-sizing: border-box;
  height: 28px;
  border: none;
  border-radius: var(--radius-md);
  cursor: pointer;
  margin-bottom: var(--spacing-xs);
  padding: 0 var(--spacing-sm);
  text-align: left;
  overflow: hidden;
  white-space: nowrap;
  background: var(--color-primary);
  color: #fff;
  font-size: var(--font-size-sm);
  font-family: inherit;
  font-weight: var(--font-weight-semibold);
  transition: filter var(--transition-fast);
}
.barra[data-v-aab2db5c]:hover {
  filter: brightness(1.08);
}
.barra--viol[data-v-aab2db5c] {
  background: var(--risk);
}
.barra--aberta[data-v-aab2db5c] {
  background: repeating-linear-gradient(
    45deg,
    var(--color-primary) 0 6px,
    var(--color-primary-deep) 6px 12px
  );
}
.barra__txt[data-v-aab2db5c] {
  font-weight: var(--font-weight-bold);
}
.tot[data-v-aab2db5c] {
  display: flex;
  flex-direction: column;
  line-height: var(--line-height-tight);
  margin-bottom: var(--spacing-xs);
}
.tot b[data-v-aab2db5c] {
  font-size: var(--font-size-lg);
  color: var(--text-primary);
  font-weight: var(--font-weight-semibold);
}
.tot span[data-v-aab2db5c] {
  font-size: var(--font-size-sm);
  color: var(--text-tertiary);
}
.tot--sm b[data-v-aab2db5c] {
  font-size: var(--font-size-base);
}
.prazo[data-v-aab2db5c] {
  font-size: var(--font-size-sm);
  color: var(--text-tertiary);
  margin-top: var(--spacing-sm);
  line-height: var(--line-height-normal);
}
.prazo--vencido[data-v-aab2db5c] {
  color: var(--risk);
  font-weight: var(--font-weight-semibold);
}
.acoes[data-v-aab2db5c] {
  display: flex;
  gap: var(--spacing-xs);
  flex-wrap: wrap;
  margin-top: var(--spacing-sm);
}
.pend-lista[data-v-aab2db5c] {
  margin: var(--spacing-sm) 0 0;
  padding-left: var(--spacing-xl);
  font-size: var(--font-size-sm);
  color: var(--risk);
  line-height: var(--line-height-normal);
}
.legenda[data-v-aab2db5c] {
  font-size: var(--font-size-sm);
  color: var(--text-tertiary);
  margin-top: var(--spacing-md);
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  flex-wrap: wrap;
  line-height: var(--line-height-normal);
}
.leg[data-v-aab2db5c] {
  display: inline-block;
  width: 22px;
  height: 12px;
  border-radius: var(--radius-sm);
  background: var(--color-primary);
}
.leg--viol[data-v-aab2db5c] {
  background: var(--risk);
}
.leg--aberta[data-v-aab2db5c] {
  background: repeating-linear-gradient(
    45deg,
    var(--color-primary) 0 4px,
    var(--color-primary-deep) 4px 8px
  );
}
.pop-backdrop[data-v-aab2db5c] {
  position: fixed;
  inset: 0;
  z-index: 50;
}
.pop[data-v-aab2db5c] {
  position: absolute;
  width: 290px;
  background: var(--bg-card);
  border: 1px solid var(--border-primary);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  padding: var(--spacing-lg);
  display: grid;
  gap: var(--spacing-md);
  font-size: var(--font-size-base);
}
.pop__hdr[data-v-aab2db5c] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--spacing-sm);
}
.pop__hdr .link[data-v-aab2db5c] {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
}
.pop__hdr .link:hover b[data-v-aab2db5c] {
  color: var(--primary);
  text-decoration: underline;
}
.pop__acoes[data-v-aab2db5c] {
  display: flex;
  gap: var(--spacing-sm);
  margin-top: var(--spacing-sm);
}
.pop__acoes[data-v-aab2db5c] > * {
  flex: 1;
}
.pop__fechar[data-v-aab2db5c] {
  border: none;
  background: none;
  font-size: var(--font-size-xl);
  line-height: 1;
  cursor: pointer;
  color: var(--text-tertiary);
  padding: 0;
  transition: color var(--transition-fast);
}
.pop__fechar[data-v-aab2db5c]:hover {
  color: var(--text-primary);
}
.pop__row[data-v-aab2db5c] {
  display: flex;
  justify-content: space-between;
  gap: var(--spacing-md);
  font-size: var(--font-size-sm);
}
.pop__row span[data-v-aab2db5c] {
  color: var(--text-tertiary);
  font-weight: var(--font-weight-normal);
}
.pop__row b[data-v-aab2db5c] {
  color: var(--text-primary);
  font-weight: var(--font-weight-semibold);
}
.txt-bad[data-v-aab2db5c] {
  color: var(--risk);
  font-weight: var(--font-weight-semibold);
}
.so-quem-trabalhou[data-v-aab2db5c] { padding: 24px; text-align: center; color: var(--text-tertiary); font-size: 15px; background: var(--bg-surface); border: 1px dashed var(--border); border-radius: 12px;
}
.so-quem-trabalhou .link[data-v-aab2db5c] { background: none; border: none; padding: 0; color: var(--primary-deep); font: 700 15px var(--font-body); cursor: pointer;
}

/* ── Impressão (05/09/2026): só a tabela, limpa, em preto e branco.
   O menu/topo do console some por regra global em theme.css. ── */
@media print {
.page[data-v-aab2db5c] { padding: 0;
}
.hdr-acoes[data-v-aab2db5c], .semana-nav[data-v-aab2db5c], .kpi-row[data-v-aab2db5c], .aviso[data-v-aab2db5c], .legenda[data-v-aab2db5c], .acoes[data-v-aab2db5c], .pop-backdrop[data-v-aab2db5c] { display: none !important;
}
.page-hdr[data-v-aab2db5c] { border-bottom: 2px solid #000;
}
.page-hdr__sub[data-v-aab2db5c] { display: none;
}
.gantt-wrap[data-v-aab2db5c] { overflow: visible;
}
.gantt[data-v-aab2db5c] { min-width: 0; width: 100%;
}
.gantt th[data-v-aab2db5c], .gantt__linha td[data-v-aab2db5c] { border-color: #000 !important; background: #fff !important; color: #000 !important;
}
.barra[data-v-aab2db5c] { background: #fff !important; color: #000 !important; border: 1px solid #000; border-radius: 3px;
}
.barra--viol[data-v-aab2db5c] { border: 2px solid #000; font-weight: 800;
}
.mot__av[data-v-aab2db5c] { background: #fff !important; color: #000 !important; border: 1px solid #000;
}
.prazo[data-v-aab2db5c], .mot__pend[data-v-aab2db5c], .mot__ok[data-v-aab2db5c], .pend-lista[data-v-aab2db5c] { color: #000 !important;
}
}

.page[data-v-cd40907f] { max-width: none; padding: 28px 28px 40px; background: var(--bg-primary); border-radius: 16px;
}
.voltar[data-v-cd40907f] { background: none; border: none; cursor: pointer; font-family: var(--font-body); font-size: 14px; font-weight: 600; color: var(--primary-deep); padding: 0 0 12px; transition: color 0.2s;
}
.voltar[data-v-cd40907f]:hover { color: var(--primary-dark);
}
.voltar[data-v-cd40907f]:active:not(:disabled) { background: none; color: var(--primary-dark);
}
.page-hdr[data-v-cd40907f] {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border); margin-bottom: 24px;
}
.page-hdr--acoes[data-v-cd40907f] { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap;
}
.page-hdr__crumb[data-v-cd40907f] { font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--primary-deep); font-weight: 900; margin-bottom: 8px;
}
.page-hdr__title[data-v-cd40907f] { font-family: var(--font-heading); font-size: 32px; font-weight: 700; margin: 0; color: var(--text-primary);
}
.page-hdr__sub[data-v-cd40907f] { font-size: 14px; color: var(--text-tertiary); margin: 8px 0 0; max-width: 720px; line-height: 1.5;
}
.kpis[data-v-cd40907f] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 20px;
}
.filtros[data-v-cd40907f] { display: grid; grid-template-columns: 2fr 1.4fr 1fr 1fr auto; gap: 12px; align-items: end; margin-bottom: 20px;
}
@media (max-width: 820px) {
.filtros[data-v-cd40907f] { grid-template-columns: 1fr 1fr;
}
}
.card-grid[data-v-cd40907f] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}
.card-item[data-v-cd40907f] {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 16px;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 1px 3px rgba(30, 41, 59, 0.06);
}
.card-item[data-v-cd40907f]:hover {
  border-color: var(--primary-deep);
  box-shadow: 0 4px 12px rgba(62, 92, 134, 0.15);
  transform: translateY(-2px);
}
.card-item__header[data-v-cd40907f] {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.card-item__avatar[data-v-cd40907f] {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
}
.card-item__info[data-v-cd40907f] {
  word-break: break-word;
  flex: 1;
}
.card-item__title[data-v-cd40907f] {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
}
.card-item__title .link[data-v-cd40907f] {
  border: none;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
  padding: 0;
  text-align: left;
}
.card-item__title .link[data-v-cd40907f]:hover {
  color: var(--primary);
  text-decoration: underline;
}
.card-item__subtitle[data-v-cd40907f] {
  font-size: 12px;
  color: var(--muted);
  margin-top: 2px;
}
.card-item__meta[data-v-cd40907f] {
  font-size: 12px;
  color: var(--muted);
}
.card-item__meta-title[data-v-cd40907f] {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 4px;
}
.card-item__meta-body[data-v-cd40907f] {
  font-size: 13px;
  color: var(--text-tertiary);
  line-height: 1.4;
}
.card-item__stats[data-v-cd40907f] {
  display: flex;
  gap: 12px;
  padding-top: 8px;
  border-top: 1px solid var(--primary-soft);
}
.card-item__stat[data-v-cd40907f] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  font-size: 12px;
}
.card-item__stat-label[data-v-cd40907f] {
  color: var(--muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.card-item__stat-value[data-v-cd40907f] {
  color: var(--text-primary);
  font-weight: 600;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.card-item__footer[data-v-cd40907f] {
  margin-top: auto;
  padding-top: 8px;
}
@media (max-width: 820px) {
.card-grid[data-v-cd40907f] { grid-template-columns: 1fr;
}
}
.form-card[data-v-cd40907f] { display: grid; gap: 16px; max-width: 560px; padding: 24px; border: 1px solid var(--border); border-radius: 14px; background: #fff; box-shadow: 0 1px 3px rgba(30, 41, 59, 0.06);
}
.campo[data-v-cd40907f] { display: block;
}
.campo__label[data-v-cd40907f] { display: block; font-size: 14px; font-weight: 600; color: var(--text-primary); margin-bottom: 6px;
}
.campo__area[data-v-cd40907f] { width: 100%; font: inherit; font-size: 14px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; resize: vertical; box-shadow: 0 1px 2px rgba(30, 41, 59, 0.04); transition: border-color 0.2s ease;
}
.campo__area[data-v-cd40907f]:hover { border-color: var(--primary-deep);
}
.campo__area[data-v-cd40907f]:focus { outline: none; border-color: var(--primary-deep); box-shadow: 0 0 0 3px var(--primary-soft);
}
.rodape-ajuda[data-v-cd40907f] { font-size: 13px; color: var(--text-tertiary); margin-top: 16px; line-height: 1.6;
}
.link[data-v-cd40907f] { background: none; border: none; padding: 0; font: inherit; font-size: 13px; color: var(--primary-deep); font-weight: 600; cursor: pointer; text-decoration: underline; transition: color 0.2s;
}
.link[data-v-cd40907f]:hover, .link[data-v-cd40907f]:focus-visible, .link[data-v-cd40907f]:active { background: none !important; box-shadow: none !important; transform: none !important; color: var(--primary-dark);
}

.diarias-view[data-v-45f2cdd5] {
  max-width: none;
  padding: 28px 28px 40px;
}

/* ── Page Header ── */
.page-hdr[data-v-45f2cdd5] {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 28px;
  flex-wrap: wrap;
  gap: 16px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border-light);
}
.page-hdr__title[data-v-45f2cdd5] {
  font-family: var(--font-heading);
  font-size: 28px;
  margin: 0;
  color: var(--text-primary);
  font-weight: 800;
}
.page-hdr__sub[data-v-45f2cdd5] {
  color: var(--text-tertiary);
  font-size: 15px;
  margin: 4px 0 0;
  max-width: 640px;
}

/* ── Filter Row ── */
.filter-row[data-v-45f2cdd5] {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 24px;
  padding: 16px;
  background: var(--bg-primary);
  border-radius: 12px;
}
.mes-nav[data-v-45f2cdd5] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 6px;
}
.mes-nav__btn[data-v-45f2cdd5] {
  width: 34px;
  height: 34px;
  border: none;
  background: none;
  font-size: 18px;
  cursor: pointer;
  color: var(--primary-deep);
  border-radius: 6px;
  transition: all 0.15s ease;
}
.mes-nav__btn[data-v-45f2cdd5]:hover {
  background: var(--primary-soft);
}
.mes-nav__label[data-v-45f2cdd5] {
  min-width: 120px;
  text-align: center;
  font-weight: 800;
  font-size: 15px;
  color: var(--text-primary);
}
.j-select-wrap[data-v-45f2cdd5] {
  display: block;
  flex: 1;
  min-width: 200px;
  max-width: 300px;
}
.j-select[data-v-45f2cdd5] {
  width: 100%;
  padding: 10px 14px;
  font-size: 15px;
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-surface, #fff);
  color: var(--text-primary);
  min-height: 44px;
  box-shadow: 0 1px 2px rgba(30, 41, 59, 0.04);
  transition: all 0.15s ease;
}
.j-select[data-v-45f2cdd5]:hover {
  border-color: var(--primary);
}
.j-select[data-v-45f2cdd5]:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--primary-soft);
}

/* ── KPI Row ── */
.kpis[data-v-45f2cdd5] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 24px;
}
@media (max-width: 720px) {
.kpis[data-v-45f2cdd5] {
    grid-template-columns: repeat(2, 1fr);
}
.motorista-acoes[data-v-45f2cdd5] {
    width: 100%;
}
}

/* ── Motorista Groups ── */
.motorista-group[data-v-45f2cdd5] {
  margin-bottom: 32px;
}
.motorista-header[data-v-45f2cdd5] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border-light);
  flex-wrap: wrap;
}
.motorista-info[data-v-45f2cdd5] {
  flex: 1;
  min-width: 200px;
}
.motorista-nome[data-v-45f2cdd5] {
  font-size: 18px;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
}
.motorista-resumo[data-v-45f2cdd5] {
  font-size: 13px;
  color: var(--text-tertiary);
  margin: 4px 0 0;
}
.motorista-acoes[data-v-45f2cdd5] {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* ── Card Grid ── */
.card-grid[data-v-45f2cdd5] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}
@media (max-width: 768px) {
.card-grid[data-v-45f2cdd5] {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
}
@media (max-width: 480px) {
.card-grid[data-v-45f2cdd5] {
    grid-template-columns: 1fr;
}
}

/* ── Card Item ── */
.card-item[data-v-45f2cdd5] {
  background: var(--bg-card, #fff);
  border: 1px solid var(--border-primary);
  border-radius: 10px;
  padding: 16px;
  cursor: default;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 1px 2px rgba(30, 41, 59, 0.04);
}
.card-item[data-v-45f2cdd5]:hover {
  border-color: var(--primary);
  box-shadow: 0 4px 12px rgba(62, 92, 134, 0.15);
  transform: translateY(-2px);
}
.card-item.card-item--meia[data-v-45f2cdd5] {
  background: #FFFBF5;
  border-color: var(--warn-soft);
}
.card-item.card-item--meia[data-v-45f2cdd5]:hover {
  border-color: #FFD699;
}

/* ── Card Header ── */
.card-item__header[data-v-45f2cdd5] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.card-item__icon[data-v-45f2cdd5] {
  font-size: 24px;
  flex-shrink: 0;
  line-height: 1;
}
.card-item__info[data-v-45f2cdd5] {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  word-break: break-word;
}
.card-item__title[data-v-45f2cdd5] {
  font-size: 13px;
  font-weight: 700;
  color: var(--primary-deep);
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  transition: color 0.15s ease;
  text-align: left;
  display: block;
}
.card-item__title[data-v-45f2cdd5]:hover {
  color: var(--primary);
}

/* ── Meia Badge ── */
.meia-badge[data-v-45f2cdd5] {
  font-size: 12px;
  font-weight: 700;
  color: var(--warn);
  background: var(--warn-soft);
  padding: 4px 8px;
  border-radius: 6px;
  white-space: nowrap;
}

/* ── Card Meta ── */
.card-item__meta[data-v-45f2cdd5] {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── Card Body ── */
.card-item__body[data-v-45f2cdd5] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.refeicoes[data-v-45f2cdd5] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px 0;
  border-top: 1px solid var(--border-light);
  border-bottom: 1px solid var(--border-light);
}
.refeicao-item[data-v-45f2cdd5] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
}
.refeicao-label[data-v-45f2cdd5] {
  color: var(--text-tertiary);
  font-weight: 500;
}
.refeicao-valor[data-v-45f2cdd5] {
  color: var(--text-primary);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* ── Card Footer ── */
.card-item__footer[data-v-45f2cdd5] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-top: 4px;
}
.card-item__total[data-v-45f2cdd5] {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.total-label[data-v-45f2cdd5] {
  font-size: 12px;
  color: var(--text-tertiary);
  font-weight: 500;
}
.total-valor[data-v-45f2cdd5] {
  font-size: 14px;
  font-weight: 700;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}

/* ── Link styling (reusable) ── */
.link[data-v-45f2cdd5] {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  font-weight: 700;
  color: var(--primary-deep);
  cursor: pointer;
  text-decoration: underline;
  transition: color 0.15s ease;
}
.link[data-v-45f2cdd5]:hover, .link[data-v-45f2cdd5]:focus-visible, .link[data-v-45f2cdd5]:active {
  background: none !important; box-shadow: none !important; transform: none !important;
  color: var(--primary);
}

/* ── Diárias faltando lançar ── */
.lista-faltando[data-v-45f2cdd5] { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px;
}
.lista-faltando__item[data-v-45f2cdd5] { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--border-soft);
}
.lista-faltando__item[data-v-45f2cdd5]:first-child { border-top: none; padding-top: 0;
}
.lista-faltando__meta[data-v-45f2cdd5] { display: block; color: var(--text-tertiary); font-size: 13px; margin-top: 2px;
}

/* ── Empty/Loading States ── */
.loading-state[data-v-45f2cdd5], .error-state[data-v-45f2cdd5] {
  padding: 40px 20px;
  text-align: center;
  color: var(--text-tertiary);
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(30, 41, 59, 0.04);
}
.error-state[data-v-45f2cdd5] {
  color: var(--text-error);
  border-color: var(--border-light);
}

.page[data-v-dccc2790] { max-width: none; padding: 28px 28px 40px;
}
.page-hdr[data-v-dccc2790] { margin-bottom: 20px;
}
.page-hdr__crumb[data-v-dccc2790] { font-size: 15px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--primary-deep); font-weight: 800; margin-bottom: 4px;
}
.page-hdr__title[data-v-dccc2790] { font-family: var(--font-heading); font-size: 28px; margin: 0;
}
.page-hdr__sub[data-v-dccc2790] { font-size: 15px; color: var(--text-tertiary); margin: 6px 0 0; max-width: 720px;
}
.filtros[data-v-dccc2790] { display: grid; grid-template-columns: 1fr 1fr 2fr auto; gap: 12px; align-items: end; margin-bottom: 10px;
}
@media (max-width: 820px) {
.filtros[data-v-dccc2790] { grid-template-columns: 1fr 1fr;
}
}
.msg[data-v-dccc2790] { font-size: 15px; color: var(--primary-deep); font-weight: 700; margin: 0 0 12px;
}
.kpis[data-v-dccc2790] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 16px;
}
.card-grid[data-v-dccc2790] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
@media (max-width: 768px) {
.card-grid[data-v-dccc2790] { grid-template-columns: 1fr;
}
}
.card-item[data-v-dccc2790] {
  background: var(--bg-card, white);
  border: 1px solid var(--border-primary);
  border-radius: 10px;
  padding: 16px;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.card-item[data-v-dccc2790]:hover {
  border-color: var(--color-primary);
  box-shadow: 0 4px 12px rgba(62, 92, 134, 0.15);
  transform: translateY(-2px);
}
.card-item__header[data-v-dccc2790] {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.card-item__avatar[data-v-dccc2790] {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}
.card-item__info[data-v-dccc2790] {
  flex: 1;
  word-break: break-word;
  min-width: 0;
}
.card-item__title[data-v-dccc2790] {
  font-size: 13px;
  font-weight: 600;
  margin: 0;
  line-height: 1.4;
}
.card-item__title .link[data-v-dccc2790] {
  border: none;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
  padding: 0;
  text-align: left;
}
.card-item__title .link[data-v-dccc2790]:hover,
.card-item__title .link[data-v-dccc2790]:focus-visible,
.card-item__title .link[data-v-dccc2790]:active {
  background: none !important; box-shadow: none !important; transform: none !important;
  color: var(--primary);
  text-decoration: underline;
}
.card-item__meta[data-v-dccc2790] {
  font-size: 12px;
  color: var(--text-tertiary);
  margin-top: 4px;
}
.card-item__stats[data-v-dccc2790] {
  display: flex;
  gap: 12px;
  justify-content: space-between;
}
.card-item__stat[data-v-dccc2790] {
  flex: 1;
  text-align: center;
  padding: 8px;
  background: var(--bg-neutral);
  border-radius: 6px;
}
.card-item__stat-label[data-v-dccc2790] {
  display: block;
  font-size: 11px;
  color: var(--text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 4px;
}
.card-item__stat-value[data-v-dccc2790] {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}
.card-item__details[data-v-dccc2790] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.card-item__detail[data-v-dccc2790] {
  font-size: 12px;
  color: var(--text-secondary);
  display: flex;
  justify-content: space-between;
}
.card-item__detail-label[data-v-dccc2790] {
  font-weight: 500;
}
.card-item__actions[data-v-dccc2790] {
  display: flex;
  gap: 6px;
  margin-top: 4px;
}
.fin[data-v-dccc2790] { border-top: 1px dashed var(--border); margin-top: 8px; padding-top: 8px; font-size: 13px;
}
.fin__linha[data-v-dccc2790] { display: flex; justify-content: space-between; padding: 2px 0; color: var(--text-primary);
}
.fin__linha--total[data-v-dccc2790] { border-top: 1px solid var(--border); margin-top: 4px; padding-top: 6px; font-weight: 800;
}
.fin__aviso[data-v-dccc2790] { color: var(--text-tertiary); font-size: 12.5px;
}
.rodape-ajuda[data-v-dccc2790] { font-size: 15px; color: var(--text-tertiary); margin-top: 14px;
}

.veiculos-view[data-v-72682ebb] {
  max-width: none;
  padding: 32px 20px;
  background: var(--bg-primary);
  border-radius: 16px;
}
.page-hdr[data-v-72682ebb] {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 24px;
  flex-wrap: wrap;
  gap: 16px;
}
.page-hdr__crumb[data-v-72682ebb] {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--primary-deep);
  font-weight: 900;
  margin-bottom: 8px;
}
.page-hdr__title[data-v-72682ebb] {
  font-family: var(--font-heading);
  font-size: 32px;
  font-weight: 700;
  margin: 0;
  color: var(--text-primary);
}
.page-hdr__sub[data-v-72682ebb] {
  color: var(--text-tertiary);
  font-size: 14px;
  margin: 8px 0 0;
  line-height: 1.5;
}
.filter-row[data-v-72682ebb] {
  display: flex;
  gap: 16px;
  margin-bottom: 20px;
  flex-wrap: wrap;
  align-items: center;
}
.filter-search[data-v-72682ebb] { flex: 1; min-width: 260px; max-width: 460px;
}
.filter-chips[data-v-72682ebb] { display: flex; gap: 6px; flex-wrap: wrap;
}
.chip[data-v-72682ebb] {
  padding: 8px 14px;
  border-radius: 18px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text-tertiary);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 1px 2px rgba(30, 41, 59, 0.04);
}
.chip[data-v-72682ebb]:hover { border-color: var(--primary-deep); color: var(--primary-deep); background: var(--bg-soft);
}
.chip--active[data-v-72682ebb] {
  background: var(--primary-soft);
  color: var(--primary-deep);
  border-color: var(--primary-deep);
  box-shadow: 0 2px 4px rgba(70, 103, 154, 0.12);
}
.loading-state[data-v-72682ebb], .empty-state[data-v-72682ebb], .error-state[data-v-72682ebb] {
  padding: 40px 20px;
  text-align: center;
  color: var(--text-tertiary);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(30, 41, 59, 0.04);
}
.error-state[data-v-72682ebb] { color: var(--risk); border-color: var(--risk-soft); background: var(--risk-soft);
}

/* Card Grid Layout */
.card-grid[data-v-72682ebb] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
.card-item[data-v-72682ebb] {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 16px;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 1px 2px rgba(30, 41, 59, 0.04);
}
.card-item[data-v-72682ebb]:hover {
  border-color: var(--primary-deep);
  box-shadow: 0 4px 12px rgba(62, 92, 134, 0.15);
  transform: translateY(-2px);
}

/* Card Header: Avatar + Info */
.card-item__header[data-v-72682ebb] {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.card-item__avatar[data-v-72682ebb] {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: var(--primary-soft);
  display: grid;
  place-items: center;
  font-size: 22px;
  flex-shrink: 0;
}
.card-item__info[data-v-72682ebb] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.card-item__title[data-v-72682ebb] {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 600;
  font-size: 13px;
  color: var(--text-primary);
  letter-spacing: 0.03em;
  word-break: break-word;
}
.card-item__meta[data-v-72682ebb] {
  font-size: 12px;
  color: var(--primary-deep);
  line-height: 1.4;
  word-break: break-word;
}

/* Card Status */
.card-item__status[data-v-72682ebb] {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.gps-indicator[data-v-72682ebb] {
  font-size: 12px;
  color: var(--primary-deep);
  font-weight: 600;
}
.gps-indicator--off[data-v-72682ebb] { color: var(--text-tertiary); font-weight: 500;
}
.card-item__tele[data-v-72682ebb] {
  display: flex; flex-wrap: wrap; gap: 6px 12px;
  font-size: 12px; color: var(--text-tertiary);
}
.card-item__links[data-v-72682ebb] { display: flex; gap: 14px; flex-wrap: wrap;
}
.link[data-v-72682ebb] {
  background: none; border: none; cursor: pointer; padding: 0;
  font: 700 15px var(--font-body); color: var(--primary-deep);
}
.link[data-v-72682ebb]:hover, .link[data-v-72682ebb]:focus-visible, .link[data-v-72682ebb]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.dica[data-v-72682ebb] { font-size: 12.5px; color: var(--text-tertiary); margin: -6px 0 0;
}
.sighra-ok[data-v-72682ebb] { display: flex; gap: 10px; align-items: flex-start;
}
.sighra-ok__ic[data-v-72682ebb] { font-size: 18px;
}
.sighra-ok__meta[data-v-72682ebb] { font-size: 12.5px; color: var(--text-secondary); margin-top: 2px;
}
.status-badge[data-v-72682ebb] {
  padding: 6px 12px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  display: inline-block;
}
.status-badge--operacional[data-v-72682ebb] { background: #F0FDF4; color: #166534;
}
.status-badge--manutencao[data-v-72682ebb]  { background: #FFF8F3; color: #B45309;
}
.status-badge--inativo[data-v-72682ebb]     { background: #FEF2F2; color: #991B1B;
}

/* Card Actions */
.card-item__actions[data-v-72682ebb] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid #F0F4F8;
}
.voltar[data-v-72682ebb] {
  background: none; border: none; cursor: pointer;
  font-family: var(--font-body);
  font-size: 14px; font-weight: 600;
  color: var(--primary-deep);
  padding: 0 0 12px;
  transition: color 0.2s;
}
.voltar[data-v-72682ebb]:hover { color: var(--primary-dark);
}
.voltar[data-v-72682ebb]:active:not(:disabled) { background: none; color: var(--primary-dark);
}
.form-card[data-v-72682ebb] {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 28px;
  max-width: 560px;
  display: grid; gap: 14px;
  box-shadow: 0 1px 3px rgba(30, 41, 59, 0.06);
}
.form-card__row-2[data-v-72682ebb] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.j-select-wrap[data-v-72682ebb] { display: block;
}
.j-select-wrap__label[data-v-72682ebb] {
  display: block; font-size: 14px; font-weight: 600;
  color: var(--text-primary); margin-bottom: 6px;
}
.j-select[data-v-72682ebb] {
  width: 100%; padding: 10px 14px; font-size: 14px;
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  color: var(--text-primary);
  min-height: 44px;
  box-shadow: 0 1px 2px rgba(30, 41, 59, 0.04);
  transition: border-color 0.2s ease;
}
.j-select[data-v-72682ebb]:hover { border-color: var(--primary-deep);
}
.j-select[data-v-72682ebb]:focus {
  outline: none;
  border-color: var(--primary-deep);
  box-shadow: 0 0 0 3px var(--primary-soft);
}

.end[data-v-40421633] { border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; background: var(--bg-soft); display: flex; flex-direction: column; gap: 10px;
}
.end__topo[data-v-40421633] { display: flex; align-items: center; justify-content: space-between;
}
.end__titulo[data-v-40421633] { font-weight: 700; color: var(--text-primary);
}
.end__remover[data-v-40421633] { background: none; border: none; color: var(--risk); font: 700 14px var(--font-body); cursor: pointer; padding: 0;
}
.end__remover[data-v-40421633]:hover, .end__remover[data-v-40421633]:focus-visible, .end__remover[data-v-40421633]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.linha[data-v-40421633] { display: grid; gap: 10px;
}
.linha--3[data-v-40421633] { grid-template-columns: 1fr 2fr 1fr;
}
.linha--janela[data-v-40421633] { grid-template-columns: 1fr 1fr 2fr;
}
.end__previa[data-v-40421633] { margin: 0; font-size: 14px; color: var(--text-tertiary);
}
.end__previa b[data-v-40421633] { color: var(--primary-dark);
}
.end__erro[data-v-40421633] { margin: 0; font-size: 14px; color: var(--risk); font-weight: 700;
}
@media (max-width: 720px) {
.linha--3[data-v-40421633], .linha--janela[data-v-40421633] { grid-template-columns: 1fr;
}
}

.mapa-overlay[data-v-f26df8ff] { position: fixed; inset: 0; background: rgba(20,22,40,.55); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 16px;
}
.mapa-box[data-v-f26df8ff] { background: var(--bg-surface); border-radius: 16px; width: min(720px,100%); max-height: 92vh; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.35);
}
.mapa-box--full[data-v-f26df8ff] { width: 96vw; max-width: 96vw; height: 94vh; max-height: 94vh;
}
.mapa-box--full .mapa-canvas[data-v-f26df8ff], .mapa-box--full .mapa-status[data-v-f26df8ff] { min-height: 60vh;
}
.mapa-head-btns[data-v-f26df8ff] { display: flex; align-items: center; gap: 4px; flex: none;
}
.mapa-head[data-v-f26df8ff] { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 18px 20px 10px;
}
.mapa-head h3[data-v-f26df8ff] { font-family: var(--font-heading); font-size: 19px; font-weight: 800; color: var(--text-primary);
}
.mapa-head p[data-v-f26df8ff] { font-size: 14px; color: var(--text-tertiary); margin-top: 2px;
}
.mapa-x[data-v-f26df8ff] { background: none; border: none; font-size: 20px; cursor: pointer; color: var(--text-tertiary); line-height: 1; padding: 4px;
}
.mapa-x[data-v-f26df8ff]:hover, .mapa-x[data-v-f26df8ff]:focus-visible, .mapa-x[data-v-f26df8ff]:active { background: var(--bg-soft) !important; box-shadow: none !important; transform: none !important;
}
.mapa-busca[data-v-f26df8ff] { margin: 0 20px 10px; padding: 12px 14px; font-size: 15px; font-family: var(--font-body); border: 1px solid var(--border); border-radius: 10px; background: var(--bg-surface); color: var(--text-primary);
}
.mapa-canvas[data-v-f26df8ff], .mapa-status[data-v-f26df8ff] { flex: 1; min-height: 320px; margin: 0 20px; border-radius: 10px; overflow: hidden;
}
.mapa-status[data-v-f26df8ff] { display: flex; align-items: center; justify-content: center; color: var(--text-tertiary); text-align: center; padding: 20px;
}
.mapa-status--erro[data-v-f26df8ff] { color: var(--risk);
}
.mapa-legenda[data-v-f26df8ff] { display: flex; gap: 14px; flex-wrap: wrap; padding: 10px 20px 0; font-size: 12.5px; color: var(--text-tertiary);
}
.mapa-legenda span[data-v-f26df8ff] { display: inline-flex; align-items: center; gap: 5px;
}
.pin[data-v-f26df8ff] { width: 11px; height: 11px; border-radius: 50%; display: inline-block; border: 1.5px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.15);
}
.pin--livre[data-v-f26df8ff] { background: #0f9c62;
}
.pin--dirigindo[data-v-f26df8ff] { background: #2c4a73;
}
.pin--parado[data-v-f26df8ff] { background: #b8790a;
}
.pin--teto[data-v-f26df8ff] { background: #d1435b;
}
.pin--coleta[data-v-f26df8ff] { background: #111827; border-radius: 2px;
}
.mapa-sel[data-v-f26df8ff] { margin: 10px 20px 0; font-size: 14px; font-weight: 600; color: var(--primary-deep);
}
.mapa-acoes[data-v-f26df8ff] { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 20px 18px;
}
.mapa-btn[data-v-f26df8ff] { padding: 11px 18px; border-radius: 10px; font-family: var(--font-heading); font-weight: 700; font-size: 15px; cursor: pointer; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary);
}
.mapa-btn--primary[data-v-f26df8ff] { background: var(--primary); border-color: var(--primary); color: #fff;
}
.mapa-btn--primary[data-v-f26df8ff]:disabled { opacity: .5; cursor: not-allowed;
}

.cx-véu[data-v-11050b3f] { position: fixed; inset: 0; z-index: 3200; background: rgba(23, 28, 36, 0.46); display: flex; align-items: center; justify-content: center; padding: 20px;
}
.cx-caixa[data-v-11050b3f] { width: 640px; max-width: 100%; max-height: 86vh; overflow: auto; background: var(--bg-surface); border-radius: 14px; box-shadow: 0 20px 50px rgba(23, 28, 36, 0.28); padding: 22px 24px;
}
.cx-hdr[data-v-11050b3f] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px;
}
.cx-hdr h2[data-v-11050b3f] { margin: 0; font: 700 20px var(--font-heading); color: var(--text-primary);
}
.cx-x[data-v-11050b3f] { border: none; background: none; font-size: 22px; line-height: 1; color: var(--muted); cursor: pointer; padding: 2px 6px;
}
.cx-x[data-v-11050b3f]:hover { color: var(--text-primary);
}
.cx-dica[data-v-11050b3f] { font-size: 14.5px; color: var(--text-tertiary); line-height: 1.5; margin: 0 0 14px;
}
.cx-dica b[data-v-11050b3f] { color: var(--text-primary);
}
.cx-area[data-v-11050b3f] { width: 100%; border: 1px solid var(--border); border-radius: 10px; padding: 12px; font: 500 14px/1.5 ui-monospace, monospace; color: var(--text-primary); resize: vertical;
}
.cx-acoes[data-v-11050b3f] { display: flex; justify-content: space-between; align-items: center; margin-top: 16px;
}
.link[data-v-11050b3f] { background: none; border: none; color: var(--primary-deep); font: 700 15px var(--font-body); cursor: pointer; padding: 0;
}
.link[data-v-11050b3f]:hover, .link[data-v-11050b3f]:focus-visible, .link[data-v-11050b3f]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.cx-tabela-scroll[data-v-11050b3f] { overflow: auto; max-height: 40vh; border: 1px solid var(--border); border-radius: 10px;
}
.cx-tabela[data-v-11050b3f] { width: 100%; border-collapse: collapse; font-size: 13.5px;
}
.cx-tabela th[data-v-11050b3f] { position: sticky; top: 0; background: var(--bg-soft); text-align: left; padding: 8px 10px; font-weight: 700; color: var(--text-tertiary); white-space: nowrap;
}
.cx-tabela td[data-v-11050b3f] { padding: 7px 10px; border-top: 1px solid var(--border-soft); color: var(--text-primary); white-space: nowrap;
}
.cx-tag[data-v-11050b3f] { font: 700 12px var(--font-body); padding: 2px 8px; border-radius: 999px;
}
.cx-tag--ok[data-v-11050b3f] { background: var(--ok-soft); color: var(--ok);
}
.cx-tag--sem[data-v-11050b3f] { background: var(--bg-soft); color: var(--muted);
}
.cx-aviso[data-v-11050b3f] { font-size: 13.5px; color: var(--warn); margin: 10px 0 0;
}

.prog-view[data-v-f4f33262] { max-width: none; padding: 28px 28px 40px;
}
.voltar[data-v-f4f33262] {
  background: none; border: none; cursor: pointer; padding: 0 0 16px;
  color: var(--primary-deep); font: 700 15px var(--font-body);
}
.page-hdr[data-v-f4f33262] {
  padding-bottom: 20px; border-bottom: 1px solid var(--border);
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: 24px; flex-wrap: wrap; gap: 16px;
}
.page-hdr__crumb[data-v-f4f33262] { font-size: 15px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--primary-deep); font-weight: 800; margin-bottom: 8px;
}
.page-hdr__title[data-v-f4f33262] { font-family: var(--font-heading); font-size: 30px; font-weight: 700; margin: 0; color: var(--text-primary); letter-spacing: -0.02em;
}
.page-hdr__sub[data-v-f4f33262] { color: var(--text-tertiary); font-size: 15px; margin: 8px 0 0; line-height: 1.5;
}
.form-card[data-v-f4f33262] {
  background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px;
  padding: 24px; display: flex; flex-direction: column; gap: 14px;
}
.form-card__row-2[data-v-f4f33262] { display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
.form-sec[data-v-f4f33262] { font-family: var(--font-heading); font-size: 17px; font-weight: 600; color: var(--text-primary); margin: 10px 0 0;
}
.form-hint[data-v-f4f33262] { margin: 0; font-size: 15px; color: var(--text-tertiary);
}
.form-hint strong[data-v-f4f33262] { color: var(--primary-deep); font-weight: 700;
}
.travada-check[data-v-f4f33262] { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--text-primary); cursor: pointer;
}
.travada-check input[data-v-f4f33262] { width: 18px; height: 18px; accent-color: var(--primary-deep);
}
.card-item__cadeado[data-v-f4f33262] { margin-left: 6px; font-size: 13px;
}
.aviso-troca[data-v-f4f33262] { margin: 0 0 14px; padding: 10px 14px; border-radius: 8px; background: var(--warn-soft); color: var(--warn); font-size: 15px; font-weight: 600;
}
.filtro-ativo[data-v-f4f33262] { margin: 0 0 14px; padding: 10px 14px; border-radius: 8px; background: var(--primary-soft); color: var(--primary-dark); font-size: 15px; display: flex; align-items: center; gap: 10px;
}
.filtro-ativo .link[data-v-f4f33262] { color: var(--primary-deep);
}
.form-error[data-v-f4f33262] { margin: 0; font-size: 15px; color: var(--risk);
}
.dias[data-v-f4f33262] { display: flex; gap: 8px; flex-wrap: wrap;
}
.dia[data-v-f4f33262] {
  padding: 8px 14px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg-surface);
  color: var(--text-tertiary); font: 700 15px var(--font-body); cursor: pointer;
}
.dia--on[data-v-f4f33262] { background: var(--primary-soft); color: var(--primary-deep); border-color: var(--primary-deep);
}
.por-dia[data-v-f4f33262] { border: 1px dashed var(--border); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px;
}
.por-dia__linha[data-v-f4f33262] { display: grid; grid-template-columns: 48px 1fr 1fr; gap: 8px; align-items: center;
}
.por-dia__dia[data-v-f4f33262] { font-weight: 700; font-size: 15px; color: var(--text-primary);
}
.inline-card[data-v-f4f33262] { border: 1px solid var(--primary-line); background: var(--primary-soft); border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px;
}
.inline-card--dentro[data-v-f4f33262] { background: var(--bg-soft); border-color: var(--border); margin-bottom: 4px;
}
.inline-card__hdr[data-v-f4f33262] { display: flex; justify-content: space-between; align-items: center; font-size: 15px; color: var(--text-primary);
}
.inline-card__acoes[data-v-f4f33262] { display: flex; justify-content: flex-end; align-items: center; gap: 12px;
}
.link[data-v-f4f33262] { background: none; border: none; color: var(--primary-deep); font: 700 15px var(--font-body); cursor: pointer; padding: 0;
}
.link[data-v-f4f33262]:hover, .link[data-v-f4f33262]:focus-visible, .link[data-v-f4f33262]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.j-select-wrap[data-v-f4f33262] { display: flex; flex-direction: column; gap: 6px;
}
.j-select-wrap__label[data-v-f4f33262] { font-size: 15px; font-weight: 700; color: var(--text-primary);
}
.j-select[data-v-f4f33262] { width: 100%; padding: 12px 14px; font-size: 15px; font-family: var(--font-body); border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface); color: var(--text-primary); min-height: 46px;
}
.motorista--novo[data-v-f4f33262] { justify-content: center; border: 1px dashed var(--primary-line); color: var(--primary-deep); font-weight: 700; background: transparent;
}
.motoristas[data-v-f4f33262] { display: flex; flex-direction: column; gap: 6px; max-height: 320px; overflow: auto; border: 1px solid var(--border); border-radius: 10px; padding: 8px;
}
.motorista[data-v-f4f33262] {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; cursor: pointer;
  font-size: 15px; color: var(--text-primary);
}
.motorista[data-v-f4f33262]:hover { background: var(--bg-primary);
}
.motorista--on[data-v-f4f33262] { background: var(--primary-soft);
}
.motorista input[data-v-f4f33262] { accent-color: var(--primary); width: 18px; height: 18px;
}
.motorista__nome[data-v-f4f33262] { font-weight: 700; flex: 1;
}
.motorista__meta[data-v-f4f33262] { color: var(--text-tertiary);
}
.empty-inline[data-v-f4f33262] { color: var(--text-tertiary); font-size: 15px; margin: 0; padding: 6px 4px;
}

/* Sugestão de motorista (perto + livre + fôlego de teto) */
.sugerido[data-v-f4f33262] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 14px; border-radius: 10px; background: var(--ok-soft, var(--primary-soft)); border: 1px solid var(--ok, var(--primary-line));
}
.sugerido__txt[data-v-f4f33262] { font-size: 14px; color: var(--text-primary); flex: 1; min-width: 200px;
}
.sugerido__btn[data-v-f4f33262] { padding: 8px 14px; border-radius: 8px; border: none; background: var(--primary); color: #fff; font-family: var(--font-heading); font-weight: 700; font-size: 14px; cursor: pointer;
}
.sugerido__ok[data-v-f4f33262] { color: var(--ok); font-weight: 700; font-size: 14px;
}

/* Seletor de coleta no mapa (29/08/2026) */
.coleta-pick[data-v-f4f33262] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.coleta-btn[data-v-f4f33262] { padding: 11px 16px; border-radius: 10px; border: 1px solid var(--primary-line); background: var(--primary-soft); color: var(--primary-deep); font-family: var(--font-heading); font-weight: 700; font-size: 15px; cursor: pointer;
}
.coleta-btn[data-v-f4f33262]:hover { background: var(--primary-soft); border-color: var(--primary);
}
.coleta-sel[data-v-f4f33262] { font-size: 14px; color: var(--text-secondary, var(--text-tertiary)); font-weight: 600;
}

/* Linha rica: nome + distância do ponto de coleta + jornada atual (29/08/2026) */
.form-hint[data-v-f4f33262] { color: var(--text-tertiary); font-size: 14px; margin: 0 0 2px;
}
.motorista--rico[data-v-f4f33262] { align-items: flex-start;
}
.motorista--rico input[data-v-f4f33262] { margin-top: 2px;
}
.mot-body[data-v-f4f33262] { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0;
}
.mot-top[data-v-f4f33262] { display: flex; align-items: center; gap: 8px;
}
.mot-sub[data-v-f4f33262] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.mot-dist[data-v-f4f33262] { font-weight: 800; font-size: 13px; white-space: nowrap;
}
.mot-dist--ok[data-v-f4f33262] { color: var(--ok);
}
.mot-dist--warn[data-v-f4f33262] { color: var(--warn);
}
.mot-dist--risk[data-v-f4f33262] { color: var(--risk);
}
.mot-dist--pos[data-v-f4f33262] { color: var(--primary-deep);
}
.mot-dist--none[data-v-f4f33262] { color: var(--text-tertiary);
}
.mot-jr[data-v-f4f33262] { font-size: 13px; font-weight: 600;
}
.mot-jr--estrada[data-v-f4f33262] { color: var(--ok);
}
.mot-jr--parado[data-v-f4f33262] { color: var(--warn);
}
.mot-jr--livre[data-v-f4f33262] { color: var(--text-tertiary);
}
.loading-state[data-v-f4f33262], .empty-state[data-v-f4f33262], .error-state[data-v-f4f33262] {
  padding: 40px 20px; text-align: center; color: var(--text-tertiary);
  background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; font-size: 15px;
}
.error-state[data-v-f4f33262] { color: var(--risk);
}

/* ── Barra de ação em massa (18/09/2026) ── */
.barra-massa[data-v-f4f33262] {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  background: var(--primary-soft); border: 1px solid var(--primary-line); border-radius: 10px;
  padding: 10px 14px; margin-bottom: 14px;
}
.barra-massa__contagem[data-v-f4f33262] { font: 700 15px var(--font-body); color: var(--primary-dark);
}
.barra-massa__select[data-v-f4f33262] { max-width: 220px; min-height: 38px; padding: 8px 10px;
}
.card-grid[data-v-f4f33262] { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px;
}
.card-item[data-v-f4f33262] {
  background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px;
  padding: 18px; display: flex; flex-direction: column; gap: 10px;
}
.card-item--sel[data-v-f4f33262] { border-color: var(--primary-deep); box-shadow: 0 0 0 2px var(--primary-soft);
}
.card-item__check[data-v-f4f33262] { display: flex; align-self: flex-start;
}
.card-item__check input[data-v-f4f33262] { width: 18px; height: 18px; accent-color: var(--primary-deep); cursor: pointer;
}
.card-item__select[data-v-f4f33262] { min-height: 38px; padding: 6px 8px; font-size: 14px; flex: 1; min-width: 160px;
}
.card-item__trocar[data-v-f4f33262] { background: none; border: none; color: var(--primary-deep); font: 700 13px var(--font-body); cursor: pointer; padding: 2px 4px;
}
.card-item__trocar[data-v-f4f33262]:hover, .card-item__trocar[data-v-f4f33262]:focus-visible, .card-item__trocar[data-v-f4f33262]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.card-item__header[data-v-f4f33262] { display: flex; gap: 12px; align-items: center;
}
.card-item__avatar[data-v-f4f33262] {
  width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center;
  background: var(--primary-soft); font-size: 22px; flex-shrink: 0;
}
.card-item__title[data-v-f4f33262] { font-family: var(--font-heading); font-weight: 600; font-size: 17px; color: var(--text-primary);
}
.card-item__meta[data-v-f4f33262] { color: var(--text-tertiary); font-size: 15px;
}
.card-item__linha[data-v-f4f33262] { display: flex; justify-content: space-between; gap: 10px; font-size: 15px;
}
.card-item__linha .rotulo[data-v-f4f33262] { color: var(--text-tertiary);
}
.card-item__linha .valor[data-v-f4f33262] { color: var(--text-primary); font-weight: 700; text-align: right;
}
.card-item__obs[data-v-f4f33262] { font-size: 15px; color: var(--text-tertiary); font-style: italic;
}
.card-item__motoristas[data-v-f4f33262] { display: flex; flex-wrap: wrap; gap: 6px;
}
.status-badge[data-v-f4f33262] {
  padding: 4px 10px; border-radius: 999px; font-size: 15px; font-weight: 700;
  background: var(--bg-primary); color: var(--text-tertiary); border: 1px solid var(--border);
}
.status-badge--ok[data-v-f4f33262] { background: var(--ok-soft); color: var(--ok); border-color: var(--ok);
}
.status-badge--link[data-v-f4f33262] { cursor: pointer; font-family: inherit;
}
.status-badge--link[data-v-f4f33262]:hover { filter: brightness(0.95); text-decoration: underline;
}
.card-item__actions[data-v-f4f33262] { display: flex; gap: 8px; margin-top: 4px;
}
@media (max-width: 600px) {
.form-card__row-2[data-v-f4f33262] { grid-template-columns: 1fr;
}
.card-item__actions[data-v-f4f33262] { flex-direction: column;
}
}

.loc-view[data-v-fc14fe44] { padding: 28px 28px 40px;
}
.page-hdr[data-v-fc14fe44] { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--border);
}
.page-hdr__title[data-v-fc14fe44] { font-family: var(--font-heading); font-size: 24px; font-weight: 600; margin: 0;
}
.page-hdr__sub[data-v-fc14fe44] { margin: 4px 0 0; color: var(--text-tertiary); font-size: 15px;
}
.page-hdr__actions[data-v-fc14fe44] { display: flex; gap: 8px; flex-wrap: wrap;
}
.filtros[data-v-fc14fe44] { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 14px;
}
.filtro[data-v-fc14fe44] { display: flex; flex-direction: column; gap: 4px;
}
.filtro__rotulo[data-v-fc14fe44] { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted);
}
.campo[data-v-fc14fe44] { font: inherit; font-size: 15px; color: var(--text-primary); background: var(--bg-surface); border: 1px solid var(--border); border-radius: 8px; padding: 8px 11px; min-width: 220px;
}
.campo--data[data-v-fc14fe44] { min-width: 150px;
}
.linha[data-v-fc14fe44] { display: flex; gap: 6px;
}
.chips[data-v-fc14fe44] { display: flex; flex-wrap: wrap; gap: 6px;
}
.chip[data-v-fc14fe44] { border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-tertiary); border-radius: 999px; padding: 6px 12px; font: 700 14px var(--font-body); cursor: pointer;
}
.chip--on[data-v-fc14fe44] { background: var(--primary-soft); border-color: var(--primary-line); color: var(--primary-deep);
}
.limpar[data-v-fc14fe44] { background: none; border: none; color: var(--primary-deep); font: 700 15px var(--font-body); cursor: pointer; align-self: center;
}
.feedback[data-v-fc14fe44] { margin: 0 0 12px; padding: 10px 14px; border-radius: 8px; font-size: 15px; font-weight: 600;
}
.feedback--ok[data-v-fc14fe44] { background: var(--ok-soft); color: var(--ok);
}
.feedback--erro[data-v-fc14fe44] { background: var(--risk-soft); color: var(--risk);
}
.grade[data-v-fc14fe44] { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 16px; align-items: start;
}
.card[data-v-fc14fe44] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; margin-bottom: 12px;
}
.card__t[data-v-fc14fe44] { font-family: var(--font-heading); font-size: 17px; font-weight: 600; margin: 0; padding: 14px 18px 0;
}
.card__s[data-v-fc14fe44] { color: var(--text-tertiary); font-size: 15px; margin: 2px 0 6px; padding: 0 18px;
}
.stats[data-v-fc14fe44] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 14px 18px;
}
.stat[data-v-fc14fe44] { background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: 10px; padding: 10px 12px;
}
.stat small[data-v-fc14fe44] { display: block; color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.stat b[data-v-fc14fe44] { font-family: var(--font-heading); font-size: 20px; display: block;
}
.stat span[data-v-fc14fe44] { color: var(--text-tertiary); font-size: 14px;
}
.mapa[data-v-fc14fe44] { margin: 0 18px 12px; height: 460px; border-radius: 10px; overflow: hidden; border: 1px solid var(--border-soft); background: var(--bg-soft);
}
.mapa--erro[data-v-fc14fe44] { display: flex; align-items: center; justify-content: center; color: var(--risk); padding: 20px;
}
.legenda[data-v-fc14fe44] { display: flex; gap: 14px; flex-wrap: wrap; padding: 0 18px 14px; font-size: 13px; color: var(--text-tertiary);
}
.legenda span[data-v-fc14fe44] { display: inline-flex; align-items: center; gap: 5px;
}
.legenda__dica[data-v-fc14fe44] { color: var(--muted);
}
.pin[data-v-fc14fe44] { width: 11px; height: 11px; border-radius: 50%; display: inline-block; border: 1.5px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.15);
}
.pin--atual[data-v-fc14fe44] { background: #0f9c62;
}
.pin--dia[data-v-fc14fe44] { background: #46679A;
}
.pin--sim[data-v-fc14fe44] { background: #AEB8C6;
}
.item[data-v-fc14fe44] { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 18px; border-top: 1px solid var(--border-soft); font-size: 15px;
}
.item b[data-v-fc14fe44] { display: block;
}
.item small[data-v-fc14fe44] { color: var(--text-tertiary); display: block;
}
.item--click[data-v-fc14fe44] { cursor: pointer;
}
.item--click[data-v-fc14fe44]:hover, .item--on[data-v-fc14fe44] { background: var(--primary-soft);
}
.tx-warn[data-v-fc14fe44] { color: var(--warn);
}
.tx-risk[data-v-fc14fe44] { color: var(--risk); margin: 0; font-weight: 600;
}
.tl[data-v-fc14fe44] { list-style: none; margin: 0; padding: 0 0 8px; max-height: 420px; overflow: auto;
}
.ponto[data-v-fc14fe44] { display: flex; align-items: center; gap: 10px; padding: 9px 18px; border-top: 1px solid var(--border-soft); cursor: pointer; font-size: 15px;
}
.ponto[data-v-fc14fe44]:hover, .ponto--on[data-v-fc14fe44] { background: var(--primary-soft);
}
.n[data-v-fc14fe44] { width: 24px; height: 24px; border-radius: 50%; background: var(--primary-deep); color: #fff; font: 700 12px var(--font-body); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.n--sim[data-v-fc14fe44] { background: var(--nv-400);
}
.ponto__txt[data-v-fc14fe44] { flex: 1;
}
.ponto__txt b[data-v-fc14fe44] { display: block;
}
.ponto__txt small[data-v-fc14fe44] { color: var(--text-tertiary);
}
.ponto__link[data-v-fc14fe44] { color: var(--primary-deep); text-decoration: none; font-weight: 700;
}
.vazio[data-v-fc14fe44] { padding: 12px 18px 16px; color: var(--text-tertiary); font-size: 15px;
}
.pill[data-v-fc14fe44] { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 13px; font-weight: 700; white-space: nowrap;
}
.pill--ok[data-v-fc14fe44] { background: var(--ok-soft); color: var(--ok);
}
.pill--warn[data-v-fc14fe44] { background: var(--warn-soft); color: var(--warn);
}
.pill--neutro[data-v-fc14fe44] { background: var(--border-soft); color: var(--text-tertiary);
}
.pill--azul[data-v-fc14fe44] { background: var(--primary-soft); color: var(--primary-dark);
}
.modal[data-v-fc14fe44] { position: fixed; inset: 0; background: rgba(20,22,40,.55); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 16px;
}
.modal__box[data-v-fc14fe44] { background: var(--bg-surface); border-radius: 14px; width: min(440px, 100%); padding: 6px 20px 20px; display: flex; flex-direction: column; gap: 12px;
}
.modal__box .card__t[data-v-fc14fe44] { padding: 14px 0 0;
}
.modal__box .campo[data-v-fc14fe44] { min-width: 0; width: 100%;
}
.modal__acoes[data-v-fc14fe44] { display: flex; gap: 8px; justify-content: flex-end;
}
@media (max-width: 1100px) {
.grade[data-v-fc14fe44] { grid-template-columns: 1fr;
}
.stats[data-v-fc14fe44] { grid-template-columns: repeat(2, 1fr);
}
}

.frota-view[data-v-b5bfd8e7] { padding: 4px 2px 24px;
}
.page-hdr[data-v-b5bfd8e7] { margin-bottom: 14px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.page-hdr__crumb[data-v-b5bfd8e7] { font-size: 12px; color: var(--text-tertiary); font-weight: 700;
}
.page-hdr__title[data-v-b5bfd8e7] { font-family: var(--font-heading); font-size: 26px; font-weight: 800; color: var(--text-primary);
}
.page-hdr__sub[data-v-b5bfd8e7] { font-size: 14px; color: var(--text-tertiary);
}

/* ── Modo grade — Cadence ao Vivo ──
   Altura limitada com scroll INTERNO (17/09/2026, correção de legibilidade):
   antes a tabela crescia livre — 157 linhas viravam ~7300px de página,
   obrigando a rolar o site inteiro e perdendo o cabeçalho de vista. */
.grade-scroll[data-v-b5bfd8e7] { overflow: auto; max-height: 68vh; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-surface);
}
.grade[data-v-b5bfd8e7] { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 14px; table-layout: fixed;
}
.grade__th[data-v-b5bfd8e7] { position: sticky; top: 0; background: var(--bg-primary, var(--border-light, #f4f5f7)); color: var(--text-tertiary); font: 700 11px var(--font-body); text-transform: uppercase; letter-spacing: 0.04em; padding: 10px 12px; text-align: left; white-space: nowrap; cursor: pointer; user-select: none; border-bottom: 1px solid var(--border); z-index: 1;
}
.grade__th[data-v-b5bfd8e7]:hover { color: var(--text-primary);
}
.grade__th-drag[data-v-b5bfd8e7] { color: var(--text-tertiary); margin-right: 4px; cursor: grab;
}
.grade__th-seta[data-v-b5bfd8e7] { margin-left: 4px;
}
/* Filtro por coluna, "como no Excel" (23/09/2026) — linha própria embaixo do
   cabeçalho, célula vazia nas colunas sem filtro pra manter o alinhamento. */
.grade__filtro[data-v-b5bfd8e7] { position: sticky; top: 33px; background: var(--bg-surface); padding: 6px 8px; border-bottom: 1px solid var(--border); z-index: 1; cursor: default;
}
.grade__filtro-input[data-v-b5bfd8e7], .grade__filtro-select[data-v-b5bfd8e7] { width: 100%; font-size: 12.5px; border: 1px solid var(--border); background: var(--bg-primary, #fff); color: var(--text-primary); border-radius: 7px; padding: 5px 7px;
}
.grade__filtro-input[data-v-b5bfd8e7]:focus, .grade__filtro-select[data-v-b5bfd8e7]:focus { outline: none; border-color: var(--primary);
}
.grade__td[data-v-b5bfd8e7] { padding: 10px 12px; border-bottom: 1px solid var(--border); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text-primary);
}
.grade__truncar[data-v-b5bfd8e7] { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom;
}
.grade__vazio[data-v-b5bfd8e7] { padding: 30px; text-align: center; color: var(--text-tertiary);
}
/* Larguras disciplinadas por coluna — nomes de motorista longos não podiam
   mais esticar a coluna a 380px e distorcer o resto da grade (era o caso
   antes: sem table-layout:fixed, cada coluna herdava a largura do maior
   conteúdo, os textos e números ficavam desalinhados de linha pra linha). */
.grade__td--motorista[data-v-b5bfd8e7], .grade__th[data-v-b5bfd8e7]:nth-child(1) { width: 23%;
}
.grade__td--placa[data-v-b5bfd8e7], .grade__th[data-v-b5bfd8e7]:nth-child(2) { width: 9%;
}
.grade__td--tipo[data-v-b5bfd8e7], .grade__th[data-v-b5bfd8e7]:nth-child(3) { width: 8%;
}
.grade__td--grupo_analista[data-v-b5bfd8e7], .grade__th[data-v-b5bfd8e7]:nth-child(4) { width: 10%;
}
.grade__td--macro_atual[data-v-b5bfd8e7], .grade__th[data-v-b5bfd8e7]:nth-child(5) { width: 14%;
}
.grade__td--macro_hora[data-v-b5bfd8e7], .grade__th[data-v-b5bfd8e7]:nth-child(6) { width: 10%;
}
.grade__td--previsao_retorno[data-v-b5bfd8e7], .grade__th[data-v-b5bfd8e7]:nth-child(7) { width: 9%;
}
.grade__td--evento_duracao[data-v-b5bfd8e7], .grade__th[data-v-b5bfd8e7]:nth-child(8) { width: 8%;
}
.grade__td--tempo_jornada[data-v-b5bfd8e7], .grade__th[data-v-b5bfd8e7]:nth-child(9) { width: 9%;
}
.grade__td--tempo_jornada[data-v-b5bfd8e7], .grade__td--macro_hora[data-v-b5bfd8e7], .grade__td--previsao_retorno[data-v-b5bfd8e7], .grade__td--evento_duracao[data-v-b5bfd8e7] { text-align: right; font-variant-numeric: tabular-nums;
}
.grade__td--cor[data-v-b5bfd8e7] { font-weight: 700;
}
/* zebra: com 100+ linhas por vez, alternar o fundo é o que faz a linha não
   se perder ao olhar de uma coluna distante pra outra (17/09/2026). */
.grade__linha[data-v-b5bfd8e7]:nth-child(even) { background: var(--bg-soft, #f7f9fc);
}
.grade__linha[data-v-b5bfd8e7]:hover { background: var(--primary-soft, rgba(0,0,0,.04));
}
.grade__linha--pernoite[data-v-b5bfd8e7] { box-shadow: inset 3px 0 0 #ef4444;
}
.link[data-v-b5bfd8e7] { background: none; border: none; padding: 0; cursor: pointer; color: var(--primary); font: 700 14px var(--font-body);
}
.link[data-v-b5bfd8e7]:hover, .link[data-v-b5bfd8e7]:focus-visible, .link[data-v-b5bfd8e7]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.muted[data-v-b5bfd8e7] { color: var(--text-tertiary);
}
.alerta-ia[data-v-b5bfd8e7] { display: inline-flex; align-items: center; font: 700 10.5px var(--font-body); background: var(--risk-soft); color: var(--risk); padding: 2px 8px; border-radius: 999px; margin-left: 6px;
}
.grade__endereco[data-v-b5bfd8e7] { font-size: 11px; color: var(--text-tertiary); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.grade__risco[data-v-b5bfd8e7] { color: var(--risk); font-weight: 700;
}

/* ── Saúde da operação — hoje (23/09/2026, Conceito B) — bloco separado do
   resumo de sempre, explica o que pode estar distorcendo mapa/grade. ── */
.saude[data-v-b5bfd8e7] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 16px; padding: 14px 16px; margin-bottom: 12px;
}
.saude__topo[data-v-b5bfd8e7] { display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px;
}
.saude__titulo[data-v-b5bfd8e7] { font-family: var(--font-heading); font-size: 15px; font-weight: 800; color: var(--text-primary);
}
.saude__sub[data-v-b5bfd8e7] { font-size: 11.5px; color: var(--muted);
}
.saude__grade[data-v-b5bfd8e7] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px;
}
@media (max-width: 900px) {
.saude__grade[data-v-b5bfd8e7] { grid-template-columns: 1fr;
}
}
/* min-width/min-height: 0 (24/09/2026, achado real: lista grande de placas
   estourava o card e sobrepunha o vizinho) — item de grid com conteúdo
   longo não encolhe/cresce sozinho sem isso, principalmente sendo <button>. */
.saude__card[data-v-b5bfd8e7] { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; min-width: 0; min-height: 0; overflow-wrap: break-word;
}
.saude__card--risk[data-v-b5bfd8e7] { background: var(--risk-soft); border-color: var(--risk);
}
.saude__card--ok[data-v-b5bfd8e7] { background: var(--bg-soft); border-color: var(--border);
}
.saude__card--neutro[data-v-b5bfd8e7] { background: var(--bg-soft);
}
/* Segurança vira botão quando tem alerta (24/09/2026) — todo número é link
   pra filtrar a grade; sem alerta fica desabilitado (nada pra filtrar). */
.saude__card--btn[data-v-b5bfd8e7] { font: inherit; text-align: left; width: 100%; cursor: pointer;
}
.saude__card--btn[data-v-b5bfd8e7]:disabled { cursor: default;
}
.saude__card--btn[data-v-b5bfd8e7]:not(:disabled):hover { border-color: var(--risk);
}
.saude__card--btn.on[data-v-b5bfd8e7] { border-color: var(--risk); box-shadow: 0 0 0 2px var(--risk-soft);
}
.saude__card-rotulo[data-v-b5bfd8e7] { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-tertiary); margin-bottom: 7px;
}
.saude__card--risk .saude__card-rotulo[data-v-b5bfd8e7] { color: var(--risk);
}
.saude__dot[data-v-b5bfd8e7] { width: 9px; height: 9px; border-radius: 50%; display: inline-block; background: var(--muted);
}
.saude__dot--risk[data-v-b5bfd8e7], .saude__card--risk .saude__dot[data-v-b5bfd8e7] { background: var(--risk);
}
.saude__dot--ok[data-v-b5bfd8e7] { background: var(--ok);
}
.saude__dot--neutro[data-v-b5bfd8e7] { background: var(--warn);
}
.saude__valor[data-v-b5bfd8e7] { font-family: var(--font-heading); font-size: 16px; font-weight: 800; color: var(--text-primary);
}
.saude__card--risk .saude__valor[data-v-b5bfd8e7] { color: var(--risk);
}
.saude__valor--ok[data-v-b5bfd8e7] { color: var(--ok);
}
.saude__valor--menor[data-v-b5bfd8e7] { font-size: 13.5px; font-weight: 700; line-height: 1.35;
}
.saude__nota[data-v-b5bfd8e7] { font-size: 12px; color: var(--text-tertiary); margin-top: 2px; overflow-wrap: break-word; white-space: normal;
}
.saude__card--risk .saude__nota[data-v-b5bfd8e7] { color: var(--risk);
}
.saude__semaforo[data-v-b5bfd8e7] { display: flex; gap: 16px;
}
.saude__semaforo-item[data-v-b5bfd8e7] { display: flex; flex-direction: column; border: 1px solid transparent; background: none; padding: 4px 8px; border-radius: 8px; cursor: pointer; font: inherit; text-align: left;
}
.saude__semaforo-item[data-v-b5bfd8e7]:hover { background: var(--bg-surface);
}
.saude__semaforo-item.on[data-v-b5bfd8e7] { border-color: currentColor; background: var(--bg-surface);
}
.saude__semaforo-n[data-v-b5bfd8e7] { font-family: var(--font-heading); font-size: 20px; font-weight: 800;
}
.saude__semaforo-l[data-v-b5bfd8e7] { font-size: 11px; font-weight: 700;
}
.saude__semaforo-item--vermelho .saude__semaforo-n[data-v-b5bfd8e7], .saude__semaforo-item--vermelho .saude__semaforo-l[data-v-b5bfd8e7] { color: var(--risk);
}
.saude__semaforo-item--laranja .saude__semaforo-n[data-v-b5bfd8e7], .saude__semaforo-item--laranja .saude__semaforo-l[data-v-b5bfd8e7] { color: var(--warn);
}
.saude__semaforo-item--verde .saude__semaforo-n[data-v-b5bfd8e7], .saude__semaforo-item--verde .saude__semaforo-l[data-v-b5bfd8e7] { color: var(--ok);
}
.resumo[data-v-b5bfd8e7] { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; align-items: stretch;
}
.kpi[data-v-b5bfd8e7] { flex: 1; min-width: 118px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 13px; padding: 11px 13px; cursor: pointer; text-align: left;
}
.kpi[data-v-b5bfd8e7]:hover { border-color: var(--primary);
}
.kpi.on[data-v-b5bfd8e7] { border-color: var(--primary); box-shadow: 0 0 0 2px var(--primary-soft);
}
.kpi__n[data-v-b5bfd8e7] { font-family: var(--font-heading); font-weight: 800; font-size: 24px; color: var(--text-primary); display: flex; align-items: center; gap: 7px;
}
.kpi__l[data-v-b5bfd8e7] { font-size: 12.5px; color: var(--text-tertiary); display: block;
}
.dot[data-v-b5bfd8e7] { width: 11px; height: 11px; border-radius: 50%; display: inline-block;
}
.dot.dirigindo[data-v-b5bfd8e7] { background: var(--primary-dark, var(--primary));
}
.dot.parado[data-v-b5bfd8e7] { background: var(--warn);
}
.dot.livre[data-v-b5bfd8e7] { background: var(--ok);
}
.dot.teto[data-v-b5bfd8e7] { background: var(--risk);
}
.dot.offline[data-v-b5bfd8e7] { background: var(--muted);
}
/* números gerenciais migrados da Dashboard (22/09/2026) — mesmo tile. Viraram
   botão (24/09/2026, pedido do dono: todo número filtra a grade abaixo) —
   .kpi--btn reabre o cursor/hover que .kpi--info/.kpi--warn tiravam. */
.resumo__div[data-v-b5bfd8e7] { width: 1px; align-self: stretch; background: var(--border); flex: 0 0 1px;
}
.kpi--info[data-v-b5bfd8e7], .kpi--warn[data-v-b5bfd8e7] { cursor: default;
}
.kpi--info[data-v-b5bfd8e7]:hover, .kpi--warn[data-v-b5bfd8e7]:hover { border-color: var(--border);
}
.kpi--warn .kpi__n[data-v-b5bfd8e7] { color: var(--warn);
}
.kpi--warn .kpi__l[data-v-b5bfd8e7] { color: var(--warn);
}
.kpi--btn[data-v-b5bfd8e7] { cursor: pointer; font: inherit; width: auto;
}
.kpi--btn[data-v-b5bfd8e7]:hover { border-color: var(--primary);
}
.toolbar[data-v-b5bfd8e7] { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap;
}
.btn[data-v-b5bfd8e7] { font-family: var(--font-heading); font-weight: 700; font-size: 14px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary); border-radius: 10px; padding: 8px 14px; cursor: pointer;
}
.btn[data-v-b5bfd8e7]:hover { border-color: var(--primary);
}
.filtro-tag[data-v-b5bfd8e7], .filtro-especial-tag[data-v-b5bfd8e7] { font-size: 13px; color: var(--text-tertiary); background: var(--bg-surface); border: 1px solid var(--border); border-radius: 999px; padding: 5px 12px;
}
.filtro-especial-tag[data-v-b5bfd8e7] { align-self: flex-start; margin: -4px 0 4px;
}
.filtro-tag button[data-v-b5bfd8e7], .filtro-especial-tag button[data-v-b5bfd8e7] { border: none; background: none; color: var(--text-tertiary); cursor: pointer; margin-left: 6px;
}
.cidade[data-v-b5bfd8e7] { flex: 1; min-width: 200px; font-size: 13.5px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary); border-radius: 10px; padding: 8px 12px;
}
.cidade[data-v-b5bfd8e7]:focus { outline: none; border-color: var(--primary);
}
.grow[data-v-b5bfd8e7] { flex: 1;
}
.clock[data-v-b5bfd8e7] { font-size: 12.5px; color: var(--text-tertiary);
}
.grid[data-v-b5bfd8e7] { display: block;
}
.mapcard[data-v-b5bfd8e7] { position: relative; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 16px; overflow: hidden;
}
.mapcanvas[data-v-b5bfd8e7] { width: 100%; height: 560px; transition: height .2s;
}
.mapstatus[data-v-b5bfd8e7] { height: 560px; display: flex; align-items: center; justify-content: center; color: var(--text-tertiary);
}
.mapstatus--erro[data-v-b5bfd8e7] { color: var(--risk);
}
.grid--expandido .mapcanvas[data-v-b5bfd8e7], .grid--expandido .mapstatus[data-v-b5bfd8e7] { height: 78vh;
}

/* Controles do mapa (zoom/expandir por botão, 22/09/2026) — chrome nativo do
   Google fica desligado de propósito; isso é a única forma de zoom/reset. */
.map-controls[data-v-b5bfd8e7] { position: absolute; top: 12px; right: 12px; z-index: 5; display: flex; flex-direction: column; gap: 6px;
}
.mapbtn[data-v-b5bfd8e7] { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 9px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary); font: 700 16px var(--font-body); line-height: 1; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.15);
}
.mapbtn[data-v-b5bfd8e7]:hover { border-color: var(--primary); color: var(--primary);
}
.legenda[data-v-b5bfd8e7] { display: flex; gap: 12px; flex-wrap: wrap; padding: 10px 16px 16px; font-size: 12px; color: var(--text-tertiary);
}
.legenda span[data-v-b5bfd8e7] { display: inline-flex; align-items: center; gap: 5px;
}
.legenda--mapa[data-v-b5bfd8e7] { padding: 10px 16px; border-top: 1px solid var(--border); background: var(--bg-surface);
}
.lc[data-v-b5bfd8e7] { width: 11px; height: 11px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.12);
}


.banco-view[data-v-1732592f] { padding: 4px 2px 24px;
}
.page-hdr[data-v-1732592f] { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 14px;
}
.page-hdr__crumb[data-v-1732592f] { font-size: 12px; color: var(--text-tertiary); font-weight: 700;
}
.page-hdr__title[data-v-1732592f] { font-family: var(--font-heading); font-size: 26px; font-weight: 800; color: var(--text-primary);
}
.page-hdr__sub[data-v-1732592f] { font-size: 14px; color: var(--text-tertiary); max-width: 62ch;
}
.hdr-actions[data-v-1732592f] { display: flex; gap: 8px; align-items: center;
}
.sel[data-v-1732592f] { border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary); border-radius: 10px; padding: 8px 10px; font-size: 14px;
}
.btn[data-v-1732592f] { font-family: var(--font-heading); font-weight: 700; font-size: 14px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary); border-radius: 10px; padding: 8px 14px; cursor: pointer;
}
.btn--primario[data-v-1732592f] { background: var(--primary); border-color: var(--primary); color: #fff;
}
.btn[data-v-1732592f]:disabled { opacity: .55; cursor: default;
}
.kpis[data-v-1732592f] { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px;
}
.kpi[data-v-1732592f] { flex: 1; min-width: 140px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 13px; padding: 12px 14px;
}
.kpi__n[data-v-1732592f] { font-family: var(--font-heading); font-weight: 800; font-size: 22px; color: var(--text-primary); display: block; font-variant-numeric: tabular-nums;
}
.kpi__l[data-v-1732592f] { font-size: 12.5px; color: var(--text-tertiary);
}
.kpi--ok .kpi__n[data-v-1732592f] { color: var(--ok);
}
.kpi--risk .kpi__n[data-v-1732592f] { color: var(--risk);
}
.aviso[data-v-1732592f] { color: var(--text-tertiary); padding: 12px 2px;
}
.aviso--erro[data-v-1732592f] { color: var(--risk);
}
.tabela-wrap[data-v-1732592f] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 14px; overflow-x: auto;
}
.tabela[data-v-1732592f] { width: 100%; border-collapse: collapse; font-size: 14px;
}
.tabela th[data-v-1732592f] { text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--text-tertiary); padding: 12px 14px 8px; border-bottom: 1px solid var(--border);
}
.tabela td[data-v-1732592f] { padding: 10px 14px; border-bottom: 1px solid var(--border); color: var(--text-primary);
}
.tabela tr:last-child td[data-v-1732592f] { border-bottom: none;
}
.num[data-v-1732592f] { text-align: right; font-variant-numeric: tabular-nums;
}
.ok[data-v-1732592f] { color: var(--ok);
}
.risk[data-v-1732592f] { color: var(--risk);
}
.link[data-v-1732592f] { border: none; background: none; color: var(--text-primary); font-weight: 700; cursor: pointer; padding: 0; font-size: 14px;
}
.link[data-v-1732592f]:hover, .link[data-v-1732592f]:focus-visible, .link[data-v-1732592f]:active { background: none !important; box-shadow: none !important; transform: none !important; color: var(--primary);
}
.pill[data-v-1732592f] { display: inline-block; font-size: 11.5px; font-weight: 700; border-radius: 999px; padding: 3px 10px; background: var(--bg-primary, var(--primary-soft)); color: var(--text-tertiary);
}
.pill--ok[data-v-1732592f] { background: var(--ok-soft); color: var(--ok);
}
.pill--risk[data-v-1732592f] { background: var(--risk-soft); color: var(--risk);
}
.mini[data-v-1732592f] { font-size: 12px; font-weight: 700; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary); border-radius: 8px; padding: 4px 10px; cursor: pointer;
}
.mini[data-v-1732592f]:hover { border-color: var(--primary); color: var(--primary);
}
.acoes[data-v-1732592f] { text-align: right;
}
.tr--aberto td[data-v-1732592f] { border-bottom: none;
}
.tr--extrato td[data-v-1732592f] { background: color-mix(in srgb, var(--bg-surface) 60%, transparent); padding-top: 0;
}
.ext[data-v-1732592f] { width: 100%; max-width: 420px; border-collapse: collapse; font-size: 13px; margin: 4px 0 8px;
}
.ext th[data-v-1732592f] { font-size: 11px; text-transform: uppercase; color: var(--text-tertiary); text-align: left; padding: 4px 10px;
}
.ext td[data-v-1732592f] { padding: 4px 10px; border-bottom: 1px dashed var(--border);
}
.ext-status[data-v-1732592f] { color: var(--text-tertiary); font-size: 13px; padding: 6px 0 10px;
}
.rodape[data-v-1732592f] { font-size: 12.5px; color: var(--text-tertiary); margin-top: 12px; max-width: 80ch;
}

.perfil-view[data-v-3838f252] { max-width: none; padding: 28px 28px 40px;
}
.page-hdr[data-v-3838f252] { margin-bottom: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--border);
}
.page-hdr__title[data-v-3838f252] { font-family: var(--font-heading); font-size: 28px; font-weight: 600; letter-spacing: -0.02em; margin: 0; color: var(--text-primary);
}
.page-hdr__sub[data-v-3838f252] { color: var(--text-tertiary); font-size: 15px; margin: 6px 0 0;
}
.grade[data-v-3838f252] { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; align-items: start;
}
.dados[data-v-3838f252] { margin: 0; display: grid; gap: 10px;
}
.dados div[data-v-3838f252] { display: grid; grid-template-columns: 96px 1fr; gap: 10px; font-size: 15px;
}
.dados dt[data-v-3838f252] { color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding-top: 3px;
}
.dados dd[data-v-3838f252] { margin: 0; color: var(--text-primary); font-weight: 600; word-break: break-word;
}
.acoes[data-v-3838f252] { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--border-soft);
}
.form[data-v-3838f252] { display: grid; gap: 12px;
}
.ok[data-v-3838f252] { margin: 0; font-size: 15px; color: var(--ok); font-weight: 700;
}
.loading-state[data-v-3838f252] { color: var(--text-tertiary); font-size: 15px;
}

.grade-view[data-v-5de65e3a] { display: flex; flex-direction: column; padding: 28px 28px 40px;
}
.page-hdr[data-v-5de65e3a] { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 18px;
}
.page-hdr__title[data-v-5de65e3a] { font-family: var(--font-heading); font-size: 24px; font-weight: 600; margin: 0;
}
.page-hdr__sub[data-v-5de65e3a] { margin: 2px 0 0; color: var(--text-tertiary); font-size: 15px;
}
.page-hdr__actions[data-v-5de65e3a] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.periodo[data-v-5de65e3a] { display: inline-flex; align-items: center; gap: 2px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 10px; padding: 3px;
}
.periodo__btn[data-v-5de65e3a] { width: 32px; height: 32px; border-radius: 8px; border: none; background: transparent; color: var(--primary-deep); font-size: 18px; font-weight: 700; cursor: pointer;
}
.periodo__btn[data-v-5de65e3a]:hover { background: var(--primary-soft);
}
.periodo__label[data-v-5de65e3a] { font-family: var(--font-heading); font-size: 16px; font-weight: 600; min-width: 150px; text-align: center; color: var(--text-primary);
}
/* filtros — opção A */
.filtros[data-v-5de65e3a] { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 14px;
}
.filtro[data-v-5de65e3a] { display: flex; flex-direction: column; gap: 4px;
}
.filtro__rotulo[data-v-5de65e3a] { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted);
}
.campo[data-v-5de65e3a] { font: inherit; font-size: 15px; color: var(--text-primary); background: var(--bg-surface); border: 1px solid var(--border); border-radius: 8px; padding: 9px 11px; min-width: 240px;
}
.campo[data-v-5de65e3a]:focus { outline: none; border-color: var(--primary); box-shadow: var(--shadow-focus);
}
.chips[data-v-5de65e3a] { display: flex; flex-wrap: wrap; gap: 6px;
}
.chip[data-v-5de65e3a] { border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-tertiary); border-radius: 999px; padding: 7px 12px; font: 700 15px var(--font-body); cursor: pointer;
}
.chip[data-v-5de65e3a]:hover { border-color: var(--primary-line);
}
.chip--on[data-v-5de65e3a] { background: var(--primary-soft); border-color: var(--primary-line); color: var(--primary-deep);
}
.chip__n[data-v-5de65e3a] { color: var(--muted); font-weight: 600; margin-left: 2px;
}
.legenda[data-v-5de65e3a] { display: flex; flex-wrap: wrap; gap: 14px; color: var(--text-tertiary); font-size: 15px; margin-left: auto; align-self: center;
}
.cor[data-v-5de65e3a] { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px;
}
.cor--rec[data-v-5de65e3a] { background: var(--primary);
}
.cor--avulsa[data-v-5de65e3a] { background: var(--ok);
}
.cor--warn[data-v-5de65e3a] { background: var(--warn);
}
.cor--risk[data-v-5de65e3a] { background: var(--risk);
}
.cor--folga[data-v-5de65e3a] { background: var(--nv-400);
}
.feedback[data-v-5de65e3a] { margin: 0 0 12px; padding: 10px 14px; border-radius: 8px; font-size: 15px; font-weight: 600;
}
.feedback--ok[data-v-5de65e3a] { background: var(--ok-soft); color: var(--ok);
}
.feedback--erro[data-v-5de65e3a] { background: var(--risk-soft); color: var(--risk);
}
/* grade */
.grade[data-v-5de65e3a] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; overflow: auto; max-height: 72vh; position: relative;
}
.tabela[data-v-5de65e3a] { border-collapse: separate; border-spacing: 0; font-variant-numeric: tabular-nums; min-width: 100%;
}
.tabela th[data-v-5de65e3a], .tabela td[data-v-5de65e3a] { border-bottom: 1px solid var(--border-soft); border-right: 1px solid var(--border-soft); padding: 0; vertical-align: top;
}
.mot[data-v-5de65e3a] { position: sticky; top: 0; z-index: 3; background: var(--bg-surface); height: 64px; min-width: 156px; padding: 10px 12px; text-align: left; box-shadow: 0 1px 0 var(--border);
}
.mot__nome[data-v-5de65e3a] { display: block; background: none; border: none; padding: 0; text-align: left; font: 600 15px var(--font-heading); color: var(--text-primary); cursor: pointer;
}
.mot__nome[data-v-5de65e3a]:hover { color: var(--primary-deep); text-decoration: underline;
}
.mot__nome--pool[data-v-5de65e3a] { cursor: default; color: var(--text-tertiary); font-weight: 600;
}
.mot__nome--pool[data-v-5de65e3a]:hover { text-decoration: none;
}
.mot small[data-v-5de65e3a] { display: block; color: var(--muted); font-weight: 600; font-size: 13px;
}
.dia[data-v-5de65e3a] { position: sticky; left: 0; z-index: 2; background: var(--bg-surface); min-width: 96px; width: 96px; padding: 8px 12px; font: 600 17px/1.2 var(--font-heading); box-shadow: 1px 0 0 var(--border);
}
.dia small[data-v-5de65e3a] { display: block; color: var(--muted); font: 600 13px var(--font-body);
}
.dia--canto[data-v-5de65e3a] { top: 0; z-index: 4; box-shadow: 1px 0 0 var(--border), 0 1px 0 var(--border); font: 700 12px var(--font-body); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); text-align: left; vertical-align: top;
}
tr.fds td[data-v-5de65e3a], tr.fds .dia[data-v-5de65e3a] { background: var(--bg-soft);
}
tr.hoje .dia[data-v-5de65e3a] { background: var(--primary-soft); color: var(--primary-dark);
}
tr.hoje .dia small[data-v-5de65e3a] { color: var(--primary-deep);
}
tr.hoje td.cel[data-v-5de65e3a] { background: #F5F8FC;
}
.cel[data-v-5de65e3a] { height: 54px; min-width: 156px; padding: 6px; cursor: pointer; transition: background-color 0.12s;
}
.cel[data-v-5de65e3a]:hover { background: var(--primary-soft) !important;
}
.cel[data-v-5de65e3a]:focus-visible { outline: none; box-shadow: inset var(--shadow-focus);
}
.cel[data-v-5de65e3a]:empty::after { content: '+'; color: transparent; font-size: 18px; display: block; text-align: center; line-height: 40px;
}
.cel[data-v-5de65e3a]:hover:empty::after { color: var(--primary-deep);
}
.ev[data-v-5de65e3a] { display: block; border: 1px solid var(--border-soft); background: var(--bg-soft); border-radius: 8px; padding: 5px 9px; font-size: 15px; line-height: 1.3; font-weight: 700; color: var(--text-primary); margin-bottom: 4px;
}
.ev__mot[data-v-5de65e3a] { font-weight: 800;
}
.ev small[data-v-5de65e3a] { display: block; font-weight: 600; font-size: 13px; color: var(--text-tertiary);
}
.ev--rec[data-v-5de65e3a] { background: var(--primary-soft); border-color: var(--primary-line); color: var(--primary-dark);
}
.ev--rec small[data-v-5de65e3a] { color: var(--primary-deep);
}
.ev--avulsa[data-v-5de65e3a], .ev--evento[data-v-5de65e3a] { background: var(--ok-soft); border-color: #CFE0DA; color: var(--ok);
}
.ev--avulsa small[data-v-5de65e3a], .ev--evento small[data-v-5de65e3a] { color: var(--ok);
}
.ev--folga[data-v-5de65e3a] { color: var(--text-tertiary); font-weight: 600;
}
.ev--pend[data-v-5de65e3a] { background: var(--warn-soft); border-color: #E4D6BC; color: var(--warn);
}
.ev--pend small[data-v-5de65e3a] { color: var(--warn);
}
.ev--risco[data-v-5de65e3a] { background: var(--risk-soft); border-color: #E4C7C2; color: var(--risk);
}
.ev--risco small[data-v-5de65e3a] { color: var(--risk);
}
.vazio[data-v-5de65e3a] { padding: 24px; color: var(--text-tertiary); margin: 0;
}
/* pop-up */
.pop[data-v-5de65e3a] { position: absolute; z-index: 20; width: 352px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--shadow-xl, 0 12px 24px rgba(18,21,28,.15)); padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 10px;
}
.pop__titulo[data-v-5de65e3a] { font-family: var(--font-heading); font-size: 17px; font-weight: 600; margin: 0;
}
.pop__ctx[data-v-5de65e3a] { color: var(--text-tertiary); font-size: 15px; margin: -6px 0 0;
}
.pop__rec[data-v-5de65e3a] { background: var(--primary-soft); border-radius: 8px; padding: 8px 10px; font-size: 15px; color: var(--primary-dark); display: flex; flex-direction: column; gap: 4px;
}
.tipos[data-v-5de65e3a] { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px;
}
.tipo[data-v-5de65e3a] { border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-tertiary); border-radius: 8px; padding: 9px 4px; font: 700 15px var(--font-body); cursor: pointer;
}
.tipo[data-v-5de65e3a]:hover { border-color: var(--primary-line);
}
.tipo--on[data-v-5de65e3a] { background: var(--primary-soft); border-color: var(--primary-line); color: var(--primary-deep);
}
.pop__campo[data-v-5de65e3a] { display: flex; flex-direction: column; gap: 4px;
}
.pop__campo .campo[data-v-5de65e3a] { min-width: 0; width: 100%;
}
.repetir[data-v-5de65e3a] { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; color: var(--primary-deep); cursor: pointer;
}
.repetir input[data-v-5de65e3a] { width: 18px; height: 18px; accent-color: var(--primary-deep);
}
.adv[data-v-5de65e3a] { border-top: 1px dashed var(--border); padding-top: 8px; display: flex; flex-direction: column; gap: 4px;
}
.dias[data-v-5de65e3a] { display: flex; gap: 4px;
}
.dias button[data-v-5de65e3a] { flex: 1; border: 1px solid var(--border); background: var(--bg-surface); border-radius: 8px; padding: 7px 0; font: 700 14px var(--font-body); color: var(--text-tertiary); cursor: pointer;
}
.dias button.on[data-v-5de65e3a] { background: var(--primary-soft); border-color: var(--primary-line); color: var(--primary-deep);
}
.pop__dica[data-v-5de65e3a] { margin: 4px 0 0; font-size: 13px; color: var(--muted);
}
.pop__erro[data-v-5de65e3a] { margin: 0; font-size: 15px; color: var(--risk); font-weight: 600;
}
.acoes[data-v-5de65e3a] { display: flex; gap: 8px; margin-top: 4px;
}
.acoes[data-v-5de65e3a] > * { flex: 1;
}
.acao--link[data-v-5de65e3a] { background: none; border: none; color: var(--primary-deep); padding: 0; font: 700 15px var(--font-body); cursor: pointer;
}

.agenda[data-v-68c47f0a] { max-width: none; padding: 28px 28px 40px;
}   /* usa a largura toda: hoje fixo à esquerda, próximos dias esticam (pedido do dono 27/08) */
.page-hdr[data-v-68c47f0a] { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--border); flex-wrap: wrap;
}
.page-hdr__title[data-v-68c47f0a] { font-family: var(--font-heading); font-size: 28px; font-weight: 600; letter-spacing: -0.02em; margin: 0; color: var(--text-primary);
}
.page-hdr__sub[data-v-68c47f0a] { color: var(--text-tertiary); font-size: 15px; margin: 6px 0 0;
}
.page-hdr__actions[data-v-68c47f0a] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.periodo[data-v-68c47f0a] { display: inline-flex; align-items: center; gap: 2px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 10px; padding: 3px;
}
.periodo__btn[data-v-68c47f0a] { width: 32px; height: 32px; border-radius: 8px; border: none; background: transparent; color: var(--primary-deep); font-size: 18px; font-weight: 700; cursor: pointer;
}
.periodo__btn[data-v-68c47f0a]:hover { background: var(--primary-soft);
}
.periodo__label[data-v-68c47f0a] { font-family: var(--font-heading); font-size: 16px; font-weight: 600; min-width: 130px; text-align: center; color: var(--text-primary); font-variant-numeric: tabular-nums;
}

/* filtros — opção A */
.filtros[data-v-68c47f0a] { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 18px;
}
.filtro[data-v-68c47f0a] { display: flex; flex-direction: column; gap: 4px;
}
.filtro__rotulo[data-v-68c47f0a] { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted);
}
.segmento[data-v-68c47f0a] { display: inline-flex; gap: 2px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 10px; padding: 3px;
}
.segmento__item[data-v-68c47f0a] { padding: 7px 14px; border-radius: 8px; border: none; background: transparent; color: var(--text-tertiary); font: 700 15px var(--font-body); cursor: pointer; white-space: nowrap;
}
.segmento__item--rodando[data-v-68c47f0a] { color: var(--ok);
}
.segmento__item--atrasado[data-v-68c47f0a] { color: var(--risk);
}
.segmento__item[data-v-68c47f0a]:hover { background: var(--bg-soft);
}
.segmento__item--on[data-v-68c47f0a] { background: var(--primary-soft); color: var(--primary-dark);
}
.segmento__n[data-v-68c47f0a] { color: var(--muted); font-variant-numeric: tabular-nums; margin-left: 2px;
}
.campo[data-v-68c47f0a] { min-width: 240px; padding: 9px 12px; font-size: 15px; font-family: var(--font-body); border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface); color: var(--text-primary); height: 40px;
}
.campo[data-v-68c47f0a]:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft);
}
.limpar[data-v-68c47f0a] { background: none; border: none; color: var(--primary-deep); font: 700 15px var(--font-body); cursor: pointer; padding: 10px 4px; margin-left: auto;
}

/* grade */
.grade[data-v-68c47f0a] { display: grid; grid-template-columns: minmax(440px, 34%) minmax(0, 1fr); gap: 16px; align-items: start;
}
@media (max-width: 1100px) {
.grade[data-v-68c47f0a] { grid-template-columns: 1fr;
}
}

/* hoje */
.hoje[data-v-68c47f0a] { background: var(--bg-surface); border: 1px solid var(--primary-line); border-radius: 12px; overflow: hidden;
}
.hoje__hdr[data-v-68c47f0a] { display: flex; align-items: baseline; justify-content: space-between; padding: 14px 18px; background: var(--primary-soft); border-bottom: 1px solid var(--primary-line);
}
.hoje__titulo[data-v-68c47f0a] { display: flex; align-items: baseline; gap: 10px;
}
.hoje__nome[data-v-68c47f0a] { font-family: var(--font-heading); font-size: 20px; font-weight: 600; color: var(--primary-dark);
}
.hoje__data[data-v-68c47f0a] { color: var(--text-tertiary); font-size: 15px;
}
.hoje__total[data-v-68c47f0a] { font-weight: 700; color: var(--primary-dark); font-variant-numeric: tabular-nums;
}
.hoje__resumo[data-v-68c47f0a] { display: flex; gap: 8px; flex-wrap: wrap; padding: 12px 18px; border-bottom: 1px solid var(--border-soft);
}
.vazio[data-v-68c47f0a] { margin: 0; padding: 24px 18px; color: var(--text-tertiary); font-size: 15px;
}
.entrega[data-v-68c47f0a] { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--border-soft); align-items: start; cursor: pointer;
}
.entrega[data-v-68c47f0a]:last-child { border-bottom: none;
}
.entrega[data-v-68c47f0a]:hover { background: var(--bg-soft);
}
.entrega--risk[data-v-68c47f0a] { background: var(--risk-soft);
}
.entrega--risk[data-v-68c47f0a]:hover { background: var(--risk-soft);
}
.entrega--warn[data-v-68c47f0a] { background: var(--warn-soft);
}
.entrega--warn[data-v-68c47f0a]:hover { background: var(--warn-soft);
}
.entrega__hora[data-v-68c47f0a] { display: flex; flex-direction: column; line-height: 1.2; font-variant-numeric: tabular-nums;
}
.entrega__hora b[data-v-68c47f0a] { font-family: var(--font-heading); font-weight: 600; font-size: 17px; color: var(--text-primary);
}
.entrega__hora small[data-v-68c47f0a] { font-size: 13px; color: var(--muted);
}
.entrega__info[data-v-68c47f0a] { display: flex; flex-direction: column; gap: 3px; min-width: 0;
}
.entrega__cliente[data-v-68c47f0a] { font-size: 16px; font-weight: 700; color: var(--text-primary);
}
.entrega__meta[data-v-68c47f0a] { color: var(--text-tertiary); font-size: 15px;
}
.entrega__quem[data-v-68c47f0a] { display: flex; align-items: center; gap: 8px; margin-top: 4px; flex-wrap: wrap; font-size: 15px;
}
.avatar[data-v-68c47f0a] { width: 28px; height: 28px; border-radius: 8px; background: var(--primary-soft); color: var(--primary-dark); display: grid; place-items: center; font-family: var(--font-heading); font-weight: 600; font-size: 12px;
}
.avatar--risk[data-v-68c47f0a] { background: var(--bg-surface); color: var(--risk);
}
.entrega__nome[data-v-68c47f0a] { font-weight: 600; color: var(--text-primary);
}
.entrega__nome--link[data-v-68c47f0a] { background: none; border: none; padding: 0; font: 600 15px var(--font-body); cursor: pointer; color: var(--text-primary);
}
.entrega__nome--link[data-v-68c47f0a]:hover { color: var(--primary-deep); text-decoration: underline;
}
.acao[data-v-68c47f0a]:disabled { opacity: 0.6; cursor: default;
}
.entrega__placa[data-v-68c47f0a] { color: var(--muted);
}
.entrega__acoes[data-v-68c47f0a] { display: flex; flex-direction: column; gap: 6px; align-items: flex-end;
}
.acao[data-v-68c47f0a] { border-radius: 8px; font: 700 15px var(--font-body); cursor: pointer; white-space: nowrap;
}
.acao--link[data-v-68c47f0a] { background: none; border: none; color: var(--primary-deep); padding: 2px 0;
}

/* pílulas */
.pill[data-v-68c47f0a] { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 15px; font-weight: 700; white-space: nowrap;
}
.pill--mini[data-v-68c47f0a] { padding: 2px 8px; font-size: 13px; align-self: flex-start;
}
.pill--ok[data-v-68c47f0a] { background: var(--ok-soft); color: var(--ok);
}
.pill--neutro[data-v-68c47f0a] { background: var(--border-soft); color: var(--text-tertiary);
}
.pill--risk[data-v-68c47f0a] { background: var(--bg-surface); color: var(--risk);
}
.entrega:not(.entrega--risk) .pill--risk[data-v-68c47f0a], .coluna .cartao:not(.cartao--risk) .pill--risk[data-v-68c47f0a] { background: var(--risk-soft);
}
.pill--warn[data-v-68c47f0a] { background: var(--bg-surface); color: var(--warn);
}
.cartao:not(.cartao--warn) .pill--warn[data-v-68c47f0a], .entrega:not(.entrega--warn) .pill--warn[data-v-68c47f0a] { background: var(--warn-soft);
}
.pill--planejado[data-v-68c47f0a] { background: var(--ok-soft); color: var(--ok);
}

/* próximos dias */
.proximos[data-v-68c47f0a] { display: flex; flex-direction: column; gap: 10px; min-width: 0;
}
.proximos__hdr[data-v-68c47f0a] { display: flex; align-items: baseline; justify-content: space-between; padding: 0 4px; flex-wrap: wrap; gap: 8px;
}
.proximos__titulo[data-v-68c47f0a] { font-family: var(--font-heading); font-size: 17px; font-weight: 600; color: var(--text-primary);
}
.proximos__resumo[data-v-68c47f0a] { color: var(--text-tertiary); font-size: 15px;
}
.tx-risk[data-v-68c47f0a] { color: var(--risk);
}
.tx-warn[data-v-68c47f0a] { color: var(--warn);
}
.colunas[data-v-68c47f0a] { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px;
}
@media (max-width: 900px) {
.colunas[data-v-68c47f0a] { grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.coluna[data-v-68c47f0a] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; display: flex; flex-direction: column; min-height: 320px;
}
.coluna__hdr[data-v-68c47f0a] { padding: 12px 12px 10px; border-bottom: 1px solid var(--border-soft); display: flex; flex-direction: column; gap: 2px;
}
.coluna__dia[data-v-68c47f0a] { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted);
}
.coluna__linha[data-v-68c47f0a] { display: flex; align-items: baseline; justify-content: space-between;
}
.coluna__data[data-v-68c47f0a] { font-family: var(--font-heading); font-size: 20px; font-weight: 600; color: var(--text-primary);
}
.coluna__n[data-v-68c47f0a] { color: var(--text-tertiary); font-weight: 700; font-variant-numeric: tabular-nums;
}
.coluna__n--zero[data-v-68c47f0a] { color: var(--muted);
}
.coluna__vazio[data-v-68c47f0a] { padding: 20px 12px; color: var(--muted); font-size: 14px; text-align: center;
}
.cartao[data-v-68c47f0a] { margin: 10px 10px 0; border: 1px solid var(--border-soft); border-radius: 10px; padding: 10px; background: var(--bg-soft); display: flex; flex-direction: column; gap: 4px; cursor: pointer;
}
.cartao[data-v-68c47f0a]:last-child { margin-bottom: 10px;
}
.cartao[data-v-68c47f0a]:hover { border-color: var(--primary-line);
}
.cartao--risk[data-v-68c47f0a] { background: var(--risk-soft); border-color: #E4C7C2;
}
.cartao--warn[data-v-68c47f0a] { background: var(--warn-soft); border-color: #E4D6BC;
}
.cartao__hora[data-v-68c47f0a] { font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums;
}
.cartao__cliente[data-v-68c47f0a] { font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--text-primary);
}
.cartao__quem[data-v-68c47f0a] { color: var(--text-tertiary); font-size: 14px;
}
.legenda[data-v-68c47f0a] { display: flex; gap: 14px; flex-wrap: wrap; padding: 6px 4px 0; font-size: 14px; color: var(--text-tertiary); align-items: center;
}
.legenda span[data-v-68c47f0a] { display: inline-flex; align-items: center; gap: 6px;
}
.legenda__cor[data-v-68c47f0a] { width: 10px; height: 10px; border-radius: 3px; display: inline-block; border: 1px solid transparent;
}
.legenda__cor--ok[data-v-68c47f0a] { background: var(--ok-soft); border-color: #C8DFD7;
}
.legenda__cor--warn[data-v-68c47f0a] { background: var(--warn-soft); border-color: #E4D6BC;
}
.legenda__cor--risk[data-v-68c47f0a] { background: var(--risk-soft); border-color: #E4C7C2;
}
.legenda__dica[data-v-68c47f0a] { margin-left: auto;
}

.clientes-view[data-v-49a57b37] { max-width: none; padding: 28px 28px 40px;
}
.voltar[data-v-49a57b37] { background: none; border: none; cursor: pointer; font: 700 15px var(--font-body); color: var(--primary-deep); padding: 0 0 12px;
}
.page-hdr[data-v-49a57b37] { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--border); flex-wrap: wrap;
}
.page-hdr__crumb[data-v-49a57b37] { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--primary-deep); font-weight: 700; margin-bottom: 6px;
}
.page-hdr__title[data-v-49a57b37] { font-family: var(--font-heading); font-size: 28px; font-weight: 600; letter-spacing: -0.02em; margin: 0; color: var(--text-primary);
}
.page-hdr__sub[data-v-49a57b37] { color: var(--text-tertiary); font-size: 15px; margin: 6px 0 0;
}
.filtros[data-v-49a57b37] { display: flex; gap: 8px; align-items: center; margin-bottom: 16px; flex-wrap: wrap;
}
.busca[data-v-49a57b37] { width: 380px; max-width: 100%;
}
.chip[data-v-49a57b37] { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-tertiary); font: 700 15px var(--font-body); cursor: pointer;
}
.chip--active[data-v-49a57b37] { background: var(--primary-soft); color: var(--primary-dark); border-color: var(--primary-line);
}
.loading-state[data-v-49a57b37], .empty-state[data-v-49a57b37], .error-state[data-v-49a57b37] { padding: 40px 20px; text-align: center; color: var(--text-tertiary); background: var(--bg-surface); border: 1px dashed var(--border); border-radius: 12px; font-size: 15px;
}
.error-state[data-v-49a57b37] { color: var(--risk); background: var(--risk-soft); border-color: transparent;
}
.lista[data-v-49a57b37] { display: flex; flex-direction: column; gap: 12px;
}
.cliente[data-v-49a57b37] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 16px 20px;
}
.cliente--inativo[data-v-49a57b37] { opacity: 0.65;
}
.cliente__hdr[data-v-49a57b37] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.avatar[data-v-49a57b37] { width: 40px; height: 40px; border-radius: 10px; background: var(--primary-soft); color: var(--primary-dark); display: grid; place-items: center; font-family: var(--font-heading); font-weight: 600; flex-shrink: 0;
}
.cliente__info[data-v-49a57b37] { display: flex; flex-direction: column; flex: 1; min-width: 200px;
}
.cliente__nome[data-v-49a57b37] { font-family: var(--font-heading); font-size: 17px; font-weight: 600; color: var(--text-primary);
}
.cliente__nome--link[data-v-49a57b37] { background: none; border: none; padding: 0; height: auto; text-align: left; cursor: pointer;
}
.cliente__nome--link[data-v-49a57b37]:hover { color: var(--primary-deep); text-decoration: underline;
}
.cliente__meta[data-v-49a57b37] { color: var(--text-tertiary); font-size: 15px;
}
.cliente__resumo[data-v-49a57b37] { color: var(--text-tertiary); font-size: 15px;
}
.cliente__resumo b[data-v-49a57b37] { color: var(--text-primary);
}
.pill[data-v-49a57b37] { padding: 3px 9px; border-radius: 999px; font-size: 13px; font-weight: 700;
}
.pill--neutro[data-v-49a57b37] { background: var(--border-soft); color: var(--text-tertiary);
}
.enderecos[data-v-49a57b37] { margin-top: 10px;
}
.endereco[data-v-49a57b37] { display: grid; grid-template-columns: 160px minmax(0, 1fr) 220px; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--border-soft); font-size: 15px;
}
.endereco__apelido[data-v-49a57b37] { font-weight: 700; color: var(--text-primary);
}
.endereco__local[data-v-49a57b37] { color: var(--text-tertiary);
}
.endereco__janela[data-v-49a57b37] { display: flex; flex-direction: column; gap: 2px;
}
.endereco__janela b[data-v-49a57b37] { color: var(--primary-dark); font-variant-numeric: tabular-nums;
}
.endereco__janela small[data-v-49a57b37] { font-size: 13px; color: var(--muted);
}
.muted[data-v-49a57b37] { color: var(--muted);
}
@media (max-width: 720px) {
.endereco[data-v-49a57b37] { grid-template-columns: 1fr;
}
}

/* form */
.grade[data-v-49a57b37] { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 16px; align-items: start;
}
@media (max-width: 960px) {
.grade[data-v-49a57b37] { grid-template-columns: 1fr;
}
}
.form-card[data-v-49a57b37] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 20px 22px; display: flex; flex-direction: column; gap: 12px;
}
.form-sec[data-v-49a57b37] { font-family: var(--font-heading); font-size: 17px; font-weight: 600; color: var(--text-primary); margin: 0;
}
.form-sec--linha[data-v-49a57b37] { display: flex; align-items: baseline; justify-content: space-between;
}
.check[data-v-49a57b37] { display: flex; align-items: center; gap: 8px; color: var(--text-tertiary); font-size: 15px;
}
.check input[data-v-49a57b37] { accent-color: var(--primary); width: 18px; height: 18px;
}
.add-endereco[data-v-49a57b37] { border: 1px dashed var(--primary-line); background: transparent; border-radius: 10px; padding: 12px; color: var(--primary-deep); font: 700 15px var(--font-body); cursor: pointer;
}
.add-endereco[data-v-49a57b37]:hover { background: var(--primary-soft);
}
.erro[data-v-49a57b37] { margin: 0; color: var(--risk); font-size: 15px;
}
.acoes[data-v-49a57b37] { display: flex; justify-content: flex-end; gap: 8px; padding-top: 4px;
}

/* ── Colar do Excel (05/09/2026) ── */
.import-card[data-v-49a57b37] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 24px; display: grid; gap: 14px; max-width: 980px;
}
.import-area[data-v-49a57b37] { width: 100%; padding: 12px 14px; font-size: 15px; font-family: var(--font-body); border: 1px solid var(--border); border-radius: 8px; background: var(--bg-surface); color: var(--text-primary); min-height: 140px; resize: vertical; white-space: pre; overflow-x: auto;
}
.import-area[data-v-49a57b37]:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft);
}
.import-prev[data-v-49a57b37] { overflow-x: auto; border: 1px solid var(--border-soft); border-radius: 10px;
}
.vt[data-v-49a57b37] { width: 100%; border-collapse: collapse; font-size: 15px; background: var(--bg-surface);
}
.vt__th[data-v-49a57b37] { background: var(--bg-soft); text-align: left; font: 700 12px var(--font-body); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-tertiary); padding: 9px 12px; border-bottom: 1px solid var(--border); white-space: nowrap;
}
.vt tbody td[data-v-49a57b37] { padding: 7px 12px; border-bottom: 1px solid var(--border-soft); color: var(--text-primary);
}
.vt tbody tr:last-child td[data-v-49a57b37] { border-bottom: none;
}
.vt__muted[data-v-49a57b37] { color: var(--muted);
}
.import-linha--erro td[data-v-49a57b37] { background: var(--risk-soft);
}
.pill--ok[data-v-49a57b37] { background: var(--ok-soft); color: var(--ok);
}
.pill--risk[data-v-49a57b37] { background: var(--risk-soft); color: var(--risk);
}
.import-resumo[data-v-49a57b37] { margin: 0; padding: 10px 14px; border-radius: 8px; font-size: 15px; font-weight: 700; background: var(--ok-soft); color: var(--ok);
}
.import-resumo--erro[data-v-49a57b37] { background: var(--risk-soft); color: var(--risk);
}

.cliente-view[data-v-933395ca] { max-width: none; padding: 28px 28px 40px; display: flex; flex-direction: column; gap: 16px;
}
.cab[data-v-933395ca] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 20px 22px; display: flex; flex-direction: column; gap: 16px;
}
.cab__linha[data-v-933395ca] { display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
}
.cab__info[data-v-933395ca] { display: flex; flex-direction: column; flex: 1; min-width: 220px;
}
.cab__nome[data-v-933395ca] { margin: 0; font-family: var(--font-heading); font-size: 26px; font-weight: 600; letter-spacing: -0.02em; color: var(--text-primary);
}
.cab__meta[data-v-933395ca] { color: var(--text-tertiary); font-size: 15px;
}
.avatar[data-v-933395ca] { width: 48px; height: 48px; border-radius: 12px; background: var(--primary-soft); color: var(--primary-dark); display: grid; place-items: center; font-family: var(--font-heading); font-weight: 600; font-size: 18px; flex-shrink: 0;
}
.avatar--sm[data-v-933395ca] { width: 30px; height: 30px; border-radius: 8px; font-size: 12px;
}
.enderecos[data-v-933395ca] { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px;
}
.endereco[data-v-933395ca] { border: 1px solid var(--border-soft); border-radius: 10px; padding: 10px 14px; background: var(--bg-soft); display: flex; flex-direction: column; gap: 2px; font-size: 15px;
}
.endereco b[data-v-933395ca] { color: var(--text-primary);
}
.endereco__janela[data-v-933395ca] { color: var(--primary-dark); font-weight: 700; font-size: 14px; font-variant-numeric: tabular-nums;
}
.muted[data-v-933395ca] { color: var(--text-tertiary); font-size: 14px;
}
.periodo-linha[data-v-933395ca] { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}
.sec[data-v-933395ca] { margin: 0; font-family: var(--font-heading); font-size: 17px; font-weight: 600; color: var(--text-primary);
}
.periodo[data-v-933395ca] { display: inline-flex; align-items: center; gap: 2px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 10px; padding: 3px;
}
.periodo__btn[data-v-933395ca] { width: 32px; height: 32px; border-radius: 8px; border: none; background: transparent; color: var(--primary-deep); font-size: 18px; font-weight: 700; cursor: pointer;
}
.periodo__btn[data-v-933395ca]:hover { background: var(--primary-soft);
}
.periodo__label[data-v-933395ca] { font-family: var(--font-heading); font-size: 16px; font-weight: 600; min-width: 130px; text-align: center; color: var(--text-primary);
}
.tiles[data-v-933395ca] { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px;
}
@media (max-width: 960px) {
.tiles[data-v-933395ca] { grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.grade[data-v-933395ca] { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start;
}
@media (max-width: 900px) {
.grade[data-v-933395ca] { grid-template-columns: 1fr;
}
}
.chips[data-v-933395ca] { display: flex; gap: 6px; flex-wrap: wrap;
}
.chip[data-v-933395ca] { padding: 6px 12px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-tertiary); font: 700 14px var(--font-body); cursor: pointer; height: auto;
}
.chip--active[data-v-933395ca] { background: var(--primary-soft); color: var(--primary-dark); border-color: var(--primary-line);
}
.vazio[data-v-933395ca] { margin: 0; padding: 18px 4px; color: var(--text-tertiary); font-size: 15px;
}
.tabela[data-v-933395ca] { border: 1px solid var(--border); border-radius: 10px; overflow: hidden; display: flex; flex-direction: column;
}
.tabela__hdr[data-v-933395ca] > *, .linha[data-v-933395ca] > * { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tabela__hdr[data-v-933395ca], .linha[data-v-933395ca] { display: grid; grid-template-columns: 92px 130px minmax(0, 1fr) 110px 80px 130px; gap: 12px; align-items: center; padding: 10px 14px;
}
.tabela__hdr[data-v-933395ca] { background: var(--bg-soft); border-bottom: 1px solid var(--border); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-tertiary);
}
.linha[data-v-933395ca] { width: 100%; height: auto; border: none; border-top: 1px solid var(--border-soft); background: var(--bg-surface); text-align: left; font: 15px var(--font-body); color: var(--text-primary); cursor: pointer; border-radius: 0;
}
.linha[data-v-933395ca]:first-of-type { border-top: none;
}
.linha[data-v-933395ca]:hover:not(:disabled) { background: var(--primary-soft);
}
.linha[data-v-933395ca]:disabled { cursor: default; color: var(--text-primary); opacity: 1;
}
.linha--nao_realizada[data-v-933395ca], .linha--sem_resposta[data-v-933395ca] { background: var(--risk-soft);
}
.linha--fora_janela[data-v-933395ca] { background: var(--warn-soft);
}
.forte[data-v-933395ca] { font-weight: 700; color: var(--text-primary);
}
.tab[data-v-933395ca] { font-variant-numeric: tabular-nums;
}
.dir[data-v-933395ca] { justify-self: end;
}
.mais[data-v-933395ca] { border: none; border-top: 1px solid var(--border-soft); background: var(--bg-surface); color: var(--primary-deep); font: 700 15px var(--font-body); padding: 12px; cursor: pointer; height: auto; border-radius: 0;
}
.pill[data-v-933395ca] { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 13px; font-weight: 700; white-space: nowrap;
}
.pill--ok[data-v-933395ca] { background: var(--ok-soft); color: var(--ok);
}
.pill--warn[data-v-933395ca] { background: var(--bg-surface); color: var(--warn);
}
.pill--risk[data-v-933395ca] { background: var(--bg-surface); color: var(--risk);
}
.pill--azul[data-v-933395ca] { background: var(--primary-soft); color: var(--primary-dark);
}
.pill--neutro[data-v-933395ca] { background: var(--border-soft); color: var(--text-tertiary);
}
.lateral[data-v-933395ca] { display: flex; flex-direction: column; gap: 12px;
}
.mot[data-v-933395ca] { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 15px;
}
.mot__nome[data-v-933395ca] { flex: 1; text-align: left; background: none; border: none; padding: 0; height: auto; font: 600 15px var(--font-body); color: var(--text-primary); cursor: pointer;
}
.mot__nome[data-v-933395ca]:hover { color: var(--primary-deep); text-decoration: underline;
}
.prog[data-v-933395ca] { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; background: none; border: none; border-top: 1px solid var(--border-soft); padding: 10px 0; height: auto; text-align: left; font: 15px var(--font-body); color: var(--text-primary); cursor: pointer; border-radius: 0;
}
.prog[data-v-933395ca]:first-of-type { border-top: none;
}
.prog:hover b[data-v-933395ca] { color: var(--primary-deep);
}

.day-strip[data-v-aa2007a4] {
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: var(--radius-md, 14px);
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.day-strip__hdr[data-v-aa2007a4] {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  color: var(--text-tertiary);
}
.day-strip__hdr b[data-v-aa2007a4] { color: var(--text-primary); font-size: 15px;
}
.day-strip__total[data-v-aa2007a4] { margin-left: auto; font-weight: 700;
}
.day-strip__track[data-v-aa2007a4] {
  position: relative;
  /* alto o bastante pros rótulos respeitarem o piso de leitura (15px) */
  height: 28px;
  background: var(--primary-soft);
  border-radius: 6px;
  overflow: hidden;
}
.day-strip__seg[data-v-aa2007a4] {
  position: absolute;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  overflow: hidden;
  white-space: nowrap;
}
.day-strip__legend[data-v-aa2007a4] {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 15px;
  color: var(--text-tertiary);
}
.day-strip__sw[data-v-aa2007a4] {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  display: inline-block;
  margin-right: 4px;
}

.macro-grid[data-v-2b2fd053] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}
.macro-choice[data-v-2b2fd053] {
  padding: 18px 16px;
  border-radius: var(--radius-md, 14px);
  border: 1.5px solid var(--border);
  background: var(--bg-surface, #fff);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  text-align: left;
  font-family: var(--font-body);
  transition: transform 0.06s ease, border-color 0.1s ease, box-shadow 0.1s ease;
}
.macro-choice[data-v-2b2fd053]:hover {
  border-color: var(--primary);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(30, 41, 59, 0.08);
}
.macro-choice[data-v-2b2fd053]:active { transform: translateY(0);
}
.macro-choice--destaque[data-v-2b2fd053] {
  border-color: var(--primary);
  background: var(--primary-soft);
}
.macro-choice__tag[data-v-2b2fd053] {
  background: var(--primary);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: var(--radius-full, 999px);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.macro-choice__ic[data-v-2b2fd053] {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-md, 14px);
  background: var(--primary-soft);
  display: grid;
  place-items: center;
  font-size: 26px;
}
.macro-choice--destaque .macro-choice__ic[data-v-2b2fd053] { background: var(--bg-surface, #fff);
}
.macro-choice__lbl[data-v-2b2fd053] {
  font-weight: 800;
  /* piso de leitura do projeto: nada abaixo de 15px */
  font-size: 16px;
  color: var(--text-primary);
}
.macro-choice__desc[data-v-2b2fd053] {
  color: var(--text-tertiary);
  font-size: 15px;
  line-height: 1.35;
}

.evento-curso[data-v-526d9c10] {
  background: linear-gradient(180deg, var(--primary-soft), var(--bg-surface, #fff));
  border: 1px solid var(--primary);
  border-radius: var(--radius-lg, 18px);
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.evento-curso__topo[data-v-526d9c10] { display: flex; align-items: center; gap: 12px;
}
.evento-curso__ic[data-v-526d9c10] {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-md, 14px);
  background: var(--bg-surface, #fff);
  display: grid;
  place-items: center;
  font-size: 26px;
}
.evento-curso__titulo[data-v-526d9c10] {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 19px;
  color: var(--text-primary);
}
.evento-curso__sub[data-v-526d9c10] { font-size: 15px; color: var(--text-tertiary);
}
.evento-curso__clock[data-v-526d9c10] {
  font-size: 58px;
  font-weight: 900;
  letter-spacing: -2px;
  color: var(--primary-deep);
  text-align: center;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  padding: 6px 0;
}
.evento-curso__minimo[data-v-526d9c10] {
  text-align: center;
  font-size: 15px;
  font-weight: 700;
  color: var(--warn);
}
.evento-curso__minimo.ok[data-v-526d9c10] { color: var(--ok);
}

.tablet[data-v-c30eb5e3] {
  min-height: 100vh;
  background: var(--bg-app);
  padding: 20px;
  display: flex;
  flex-direction: column;
}

/* ── telas centradas (quem / inicio / resumo) ── */
.tablet__center[data-v-c30eb5e3] {
  margin: auto;
  width: 100%;
  max-width: 720px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  text-align: center;
  padding: 40px 0;
}
.tablet__titulo[data-v-c30eb5e3] {
  font-family: var(--font-heading);
  font-size: 34px;
  margin: 0;
  color: var(--text-primary);
}
.tablet__sub[data-v-c30eb5e3] { margin: -8px 0 0; color: var(--text-tertiary); font-size: 17px;
}
.tablet__aviso[data-v-c30eb5e3] {
  padding: 32px;
  border: 1px dashed var(--border);
  border-radius: var(--radius-md, 14px);
  color: var(--text-tertiary);
  background: var(--bg-surface, #fff);
  font-size: 16px;
}
.tablet__link[data-v-c30eb5e3] {
  background: none;
  border: none;
  color: var(--primary-deep);
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  padding: 8px;
}
.tablet__erro[data-v-c30eb5e3] {
  background: rgba(169, 121, 123, 0.12);
  color: var(--risk);
  border: 1px solid var(--risk);
  border-radius: var(--radius-md, 14px);
  padding: 12px 16px;
  font-weight: 700;
  font-size: 15px;
}
/* aviso amarelo: registro na fila da Central (não é erro) */
.tablet__aviso-central[data-v-c30eb5e3] {
  background: var(--warn-soft);
  color: var(--warn);
  border: 1px solid var(--warn);
  border-radius: var(--radius-md, 14px);
  padding: 12px 16px;
  font-weight: 700;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  line-height: 1.45;
}
.tablet__aviso-central-ok[data-v-c30eb5e3] {
  border: 1px solid var(--warn);
  background: transparent;
  color: var(--warn);
  border-radius: 8px;
  padding: 8px 14px;
  font: 700 15px var(--font-body);
  cursor: pointer;
  flex-shrink: 0;
}

/* ── seleção de motorista ── */
.pessoa-grid[data-v-c30eb5e3] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px;
}
.pessoa-card[data-v-c30eb5e3] {
  background: var(--bg-surface, #fff);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-lg, 18px);
  padding: 22px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font-family: var(--font-body);
  transition: transform 0.06s ease, border-color 0.1s ease;
}
.pessoa-card[data-v-c30eb5e3]:hover { border-color: var(--primary); transform: translateY(-2px);
}
.pessoa-card__av[data-v-c30eb5e3] {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), var(--primary-deep));
  color: #fff;
  display: grid; place-items: center;
  font-weight: 800; font-size: 22px;
}
.pessoa-card__nome[data-v-c30eb5e3] { font-weight: 800; font-size: 17px; color: var(--text-primary);
}

/* ── seleção de veículo ── */
.veiculo-grid[data-v-c30eb5e3] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 12px;
}
.veiculo-card[data-v-c30eb5e3] {
  background: var(--bg-surface, #fff);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-md, 14px);
  padding: 18px 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  font-family: var(--font-body);
}
.veiculo-card--sel[data-v-c30eb5e3] {
  border-color: var(--primary);
  background: var(--primary-soft);
  box-shadow: 0 8px 24px rgba(94, 134, 184, 0.18);
}
.veiculo-card__ic[data-v-c30eb5e3] { font-size: 30px;
}
.veiculo-card__placa[data-v-c30eb5e3] { font-weight: 900; font-size: 19px; letter-spacing: 0.04em; color: var(--text-primary);
}
.veiculo-card__tipo[data-v-c30eb5e3] { font-size: 15px; color: var(--text-tertiary);
}

/* ── jornada em andamento ── */
.tablet__jornada[data-v-c30eb5e3] {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.app-hdr[data-v-c30eb5e3] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: var(--radius-md, 14px);
}
.app-hdr__av[data-v-c30eb5e3] {
  width: 46px; height: 46px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), var(--primary-deep));
  color: #fff;
  display: grid; place-items: center;
  font-weight: 800; font-size: 16px;
}
.app-hdr__nome[data-v-c30eb5e3] { font-weight: 800; font-size: 16px; color: var(--text-primary);
}
.app-hdr__sub[data-v-c30eb5e3] { font-size: 15px; color: var(--text-tertiary);
}
.app-hdr__chips[data-v-c30eb5e3] { margin-left: auto; display: flex; gap: 8px;
}
.chip[data-v-c30eb5e3] {
  padding: 7px 12px;
  border-radius: var(--radius-full, 999px);
  background: var(--primary-soft);
  color: var(--primary-deep);
  font-size: 15px;
  font-weight: 800;
}
.chip--ok[data-v-c30eb5e3] { background: var(--ok-soft); color: var(--ok);
}
.chip--warn[data-v-c30eb5e3] { background: var(--warn-soft); color: var(--warn);
}
.chip--risk[data-v-c30eb5e3] { background: var(--risk-soft); color: var(--risk);
}
.cursos[data-v-c30eb5e3] {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}
.wizard-bloco[data-v-c30eb5e3] {
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg, 18px);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.wizard-bloco__titulo[data-v-c30eb5e3] {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 20px;
  color: var(--text-primary);
}
.tablet__rodape[data-v-c30eb5e3] { display: flex; justify-content: flex-end; padding-bottom: 12px;
}

/* ── resumo ── */
.resumo-grid[data-v-c30eb5e3] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
}
.resumo-item[data-v-c30eb5e3] {
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: var(--radius-md, 14px);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.resumo-item span[data-v-c30eb5e3] {
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  color: var(--text-tertiary);
}
.resumo-item b[data-v-c30eb5e3] { font-size: 24px; color: var(--primary-deep);
}

/* ── tela de confirmação ── */
.tablet__confirma[data-v-c30eb5e3] { max-width: 640px;
}
.confirma-icone[data-v-c30eb5e3] { font-size: 52px;
}
.confirma-aviso[data-v-c30eb5e3] {
  background: var(--warn-soft);
  color: var(--warn);
  border-radius: var(--radius-md, 14px);
  padding: 14px 18px;
  font-size: 16px;
  font-weight: 700;
}
.confirma-acoes[data-v-c30eb5e3] {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 12px;
  margin-top: 8px;
}
@media (max-width: 560px) {
.confirma-acoes[data-v-c30eb5e3] { grid-template-columns: 1fr;
}
}

/* ── recados do gerente ── */
.recados[data-v-c30eb5e3] {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 50;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 380px;
}
.recado[data-v-c30eb5e3] {
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-left: 4px solid var(--primary);
  border-radius: var(--radius-md, 14px);
  padding: 12px 14px;
  display: flex;
  gap: 10px;
  align-items: center;
  box-shadow: 0 12px 32px rgba(30, 41, 59, 0.14);
}
.recado__ic[data-v-c30eb5e3] { font-size: 22px;
}
.recado__corpo[data-v-c30eb5e3] { flex: 1;
}
.recado__corpo b[data-v-c30eb5e3] { font-size: 15px; color: var(--text-primary);
}
.recado__corpo p[data-v-c30eb5e3] { margin: 2px 0 0; font-size: 15px; color: var(--text-tertiary);
}

.page[data-v-3181f742] { max-width: 900px; margin: 0 auto; padding: 32px 20px;
}
.page-hdr[data-v-3181f742] { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 20px; flex-wrap: wrap; gap: 16px;
}
.page-hdr__crumb[data-v-3181f742] { font-size: 15px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--primary-deep); font-weight: 800; margin-bottom: 4px;
}
.page-hdr__title[data-v-3181f742] { font-family: var(--font-heading); font-size: 28px; margin: 0;
}
.page-hdr__sub[data-v-3181f742] { color: var(--text-tertiary); font-size: 15px; margin: 4px 0 0;
}
.corte-row[data-v-3181f742] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.corte-label[data-v-3181f742] { font-weight: 700; font-size: 14px; color: var(--text-primary); display: flex; align-items: center; gap: 8px;
}
.corte-input[data-v-3181f742] { width: 70px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary); border-radius: 8px; padding: 7px 10px; font-size: 14px;
}
.corte-hint[data-v-3181f742] { font-size: 13px; color: var(--text-tertiary);
}
.corte-msg[data-v-3181f742] { font-size: 13px; color: var(--ok);
}
.grid-2[data-v-3181f742] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; font-size: 15px;
}
.hist[data-v-3181f742] { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px;
}
.hist__item[data-v-3181f742] { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; background: var(--bg-primary); border-radius: 10px;
}
.hist__meta[data-v-3181f742] { font-size: 15px; color: var(--text-tertiary); margin-top: 2px;
}
.voltar[data-v-3181f742]:hover, .voltar[data-v-3181f742]:focus-visible, .voltar[data-v-3181f742]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.voltar[data-v-3181f742] {
  background: none; border: none; cursor: pointer;
  font-family: var(--font-body);
  font-size: 15px; font-weight: 700;
  color: var(--primary-deep);
  padding: 0 0 12px;
}
.form-card[data-v-3181f742] {
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg, 18px);
  padding: 28px;
  display: grid; gap: 12px;
}
.hint[data-v-3181f742] { font-size: 15px; color: var(--text-tertiary); font-style: italic;
}
.toggle-row[data-v-3181f742] {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 12px 14px; background: var(--bg-primary);
  border-radius: 12px; cursor: pointer;
}
.toggle-row input[data-v-3181f742] { margin-top: 3px; accent-color: var(--primary); cursor: pointer; width: 18px; height: 18px;
}
.toggle-row__texto[data-v-3181f742] { display: flex; flex-direction: column; gap: 2px;
}
.toggle-row__texto b[data-v-3181f742] { font-size: 15px; color: var(--text-primary);
}
.toggle-row__texto small[data-v-3181f742] { font-size: 15px; color: var(--text-tertiary); line-height: 1.45;
}
.erro-inline[data-v-3181f742] {
  background: rgba(169, 121, 123, 0.12); color: var(--risk);
  border-radius: 12px; padding: 10px 14px; font-size: 15px; font-weight: 700;
}

.pd-view[data-v-0f7355d8] { max-width: 820px; margin: 0 auto; padding: 32px 20px; display: grid; gap: 16px;
}
.page-hdr[data-v-0f7355d8] { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 16px;
}
.page-hdr__crumb[data-v-0f7355d8] { font-size: 15px; text-transform: uppercase; letter-spacing: .06em; color: var(--primary-deep); font-weight: 800; margin-bottom: 4px;
}
.page-hdr__title[data-v-0f7355d8] { font-family: var(--font-heading); font-size: 28px; margin: 0; color: var(--text-primary);
}
.page-hdr__sub[data-v-0f7355d8] { color: var(--text-tertiary); font-size: 15px; margin: 4px 0 0;
}
.itens[data-v-0f7355d8] { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px;
}
.item[data-v-0f7355d8] { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius-sm, 12px); font-size: 15px;
}
.item__lbl[data-v-0f7355d8] { color: var(--text-tertiary); font-weight: 700;
}
.item__val[data-v-0f7355d8] { font-weight: 800; color: var(--text-primary); font-size: 16px;
}
.item--total[data-v-0f7355d8] { background: var(--primary-soft); border-color: var(--primary); grid-column: 1 / -1;
}
.hist[data-v-0f7355d8] { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px;
}
.hist__item[data-v-0f7355d8] { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; border-bottom: 1px solid var(--border); font-size: 15px;
}
.hist__nome[data-v-0f7355d8] { font-weight: 700;
}
.hist__meta[data-v-0f7355d8] { color: var(--text-tertiary); font-size: 15px;
}
.hist__val[data-v-0f7355d8] { font-weight: 800;
}
.hist__val small[data-v-0f7355d8] { font-weight: 600; color: var(--text-tertiary); font-size: 15px;
}
.voltar[data-v-0f7355d8] { background: none; border: none; cursor: pointer; font-family: var(--font-body); font-size: 15px; font-weight: 700; color: var(--primary-deep); padding: 0; text-align: left;
}
.voltar[data-v-0f7355d8]:hover, .voltar[data-v-0f7355d8]:focus-visible, .voltar[data-v-0f7355d8]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.form-card[data-v-0f7355d8] { background: var(--bg-surface, #fff); border: 1px solid var(--border); border-radius: var(--radius-lg, 18px); padding: 28px; max-width: 560px; display: grid; gap: 14px;
}
.form-card__row-2[data-v-0f7355d8] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.dica[data-v-0f7355d8] { font-size: 15px; color: var(--text-tertiary); margin: 0; line-height: 1.5;
}
.total-preview[data-v-0f7355d8] { font-size: 15px; padding: 10px 14px; background: var(--primary-soft); border-radius: var(--radius-sm, 12px);
}
.loading-state[data-v-0f7355d8] { padding: 40px 20px; text-align: center; color: var(--text-tertiary);
}

.central-view[data-v-14651ae2] {
  max-width: none;
  padding: 32px 20px;
  background: var(--bg-primary);
  border-radius: 16px;
}
.page-hdr[data-v-14651ae2] {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 24px;
  flex-wrap: wrap;
  gap: 16px;
}
.page-hdr__crumb[data-v-14651ae2] {
  font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--primary-deep); font-weight: 900; margin-bottom: 8px;
}
.page-hdr__title[data-v-14651ae2] {
  font-family: var(--font-heading);
  font-size: 32px; font-weight: 700; margin: 0;
  color: var(--text-primary);
}
.page-hdr__sub[data-v-14651ae2] {
  color: var(--text-tertiary); font-size: 15px;
  margin: 8px 0 0; line-height: 1.5; max-width: 720px;
}
.filter-chips[data-v-14651ae2] { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 20px;
}
.chip[data-v-14651ae2] {
  padding: 8px 14px; border-radius: 18px;
  border: 1px solid var(--border);
  background: var(--bg-surface, #fff);
  color: var(--text-tertiary);
  font-family: var(--font-body);
  font-size: 15px; font-weight: 600; cursor: pointer;
  transition: all 0.2s ease;
  display: inline-flex; align-items: center; gap: 8px;
}
.chip[data-v-14651ae2]:hover { border-color: var(--primary-deep); color: var(--primary-deep); background: var(--bg-soft);
}
.chip--active[data-v-14651ae2] {
  background: var(--primary-soft); color: var(--primary-deep);
  border-color: var(--primary-deep);
}
.chip__num[data-v-14651ae2] {
  background: var(--primary-deep); color: #fff;
  border-radius: 999px; min-width: 20px; height: 20px; padding: 0 6px;
  display: inline-grid; place-items: center; font-size: 12px; font-weight: 800;
}
.aviso-banner[data-v-14651ae2] {
  background: var(--warn-soft); color: var(--warn);
  border-radius: 12px; padding: 12px 16px;
  font-size: 15px; font-weight: 700; margin-bottom: 16px;
}
.loading-state[data-v-14651ae2], .empty-state[data-v-14651ae2], .error-state[data-v-14651ae2] {
  padding: 40px 20px; text-align: center; color: var(--text-tertiary);
  background: var(--bg-surface, #fff); border: 1px solid var(--border);
  border-radius: 12px; font-size: 15px;
}
.error-state[data-v-14651ae2] { color: var(--risk); border-color: var(--risk-soft); background: var(--risk-soft);
}
.fila[data-v-14651ae2] { display: grid; gap: 12px; max-width: 860px;
}
.pend-card[data-v-14651ae2] {
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px 18px;
  display: flex; flex-direction: column; gap: 10px;
  box-shadow: 0 1px 2px rgba(30, 41, 59, 0.04);
}
.pend-card__topo[data-v-14651ae2] { display: flex; gap: 12px; align-items: flex-start;
}
.pend-card__ic[data-v-14651ae2] {
  width: 42px; height: 42px; border-radius: 10px; flex-shrink: 0;
  background: var(--warn-soft);
  display: grid; place-items: center; font-size: 20px;
}
.pend-card__texto[data-v-14651ae2] { flex: 1; min-width: 0;
}
.pend-card__titulo[data-v-14651ae2] { font-weight: 700; font-size: 15px; color: var(--text-primary);
}
.pend-card__detalhe[data-v-14651ae2] { font-size: 15px; color: var(--text-tertiary); margin-top: 2px; line-height: 1.45;
}
.pend-card__meta[data-v-14651ae2] {
  display: flex; flex-wrap: wrap; gap: 6px 14px;
  font-size: 15px; color: var(--text-tertiary); margin-top: 6px;
}
.pend-card__decisao[data-v-14651ae2] { font-size: 15px; color: var(--text-tertiary);
}
.pend-card__acoes[data-v-14651ae2] { display: flex; gap: 8px;
}
.pend-card__links[data-v-14651ae2] { display: flex; gap: 16px; flex-wrap: wrap;
}
.link[data-v-14651ae2] {
  background: none; border: none; cursor: pointer; padding: 0;
  font-family: var(--font-body); font-size: 15px; font-weight: 700;
  color: var(--primary-deep);
}
.link[data-v-14651ae2]:hover, .link[data-v-14651ae2]:focus-visible, .link[data-v-14651ae2]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.voltar[data-v-14651ae2] {
  background: none; border: none; cursor: pointer;
  font-family: var(--font-body);
  font-size: 15px; font-weight: 700;
  color: var(--primary-deep);
  padding: 0 0 12px;
}
.form-card[data-v-14651ae2] {
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 28px;
  max-width: 560px;
  display: grid; gap: 14px;
  box-shadow: 0 1px 3px rgba(30, 41, 59, 0.06);
}
.resumo[data-v-14651ae2] { margin: 0; display: grid; gap: 8px;
}
.resumo__item[data-v-14651ae2] {
  display: grid; grid-template-columns: 110px 1fr; gap: 12px;
  padding: 10px 14px;
  background: var(--bg-primary);
  border-radius: 10px; align-items: center;
}
.resumo__item dt[data-v-14651ae2] {
  font-size: 13px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.05em; color: var(--text-tertiary);
}
.resumo__item dd[data-v-14651ae2] { margin: 0; font-size: 15px; color: var(--text-primary);
}
.erro-inline[data-v-14651ae2] {
  background: rgba(169, 121, 123, 0.12); color: var(--risk);
  border-radius: 12px; padding: 10px 14px; font-size: 15px; font-weight: 700;
}

.acessos-view[data-v-4750d09e] {
  max-width: none;
  padding: 32px 20px;
  background: var(--bg-primary);
  border-radius: 16px;
}
.page-hdr[data-v-4750d09e] {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 24px;
  flex-wrap: wrap;
  gap: 16px;
}
.page-hdr__crumb[data-v-4750d09e] {
  font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--primary-deep); font-weight: 900; margin-bottom: 8px;
}
.page-hdr__title[data-v-4750d09e] {
  font-family: var(--font-heading);
  font-size: 32px; font-weight: 700; margin: 0;
  color: var(--text-primary);
}
.page-hdr__sub[data-v-4750d09e] {
  color: var(--text-tertiary); font-size: 15px;
  margin: 8px 0 0; line-height: 1.5; max-width: 720px;
}
.aviso-ok[data-v-4750d09e] {
  background: var(--ok-soft); color: var(--ok);
  border-radius: 12px; padding: 12px 16px;
  font-size: 15px; font-weight: 700; margin-bottom: 16px;
}
.loading-state[data-v-4750d09e], .empty-state[data-v-4750d09e], .error-state[data-v-4750d09e] {
  padding: 40px 20px; text-align: center; color: var(--text-tertiary);
  background: var(--bg-surface, #fff); border: 1px solid var(--border);
  border-radius: 12px; font-size: 15px;
}
.error-state[data-v-4750d09e] { color: var(--risk); border-color: var(--risk-soft); background: var(--risk-soft);
}

/* lista de acessos: uma linha por pessoa */
.lista[data-v-4750d09e] { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px;
}
.acesso[data-v-4750d09e] {
  display: grid; grid-template-columns: minmax(200px, 1.4fr) minmax(220px, 1.6fr) auto;
  gap: 10px 16px; align-items: center;
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 18px;
  box-shadow: 0 1px 2px rgba(30, 41, 59, 0.04);
}
.acesso--off[data-v-4750d09e] { opacity: 0.6;
}
.acesso__quem[data-v-4750d09e] { min-width: 0;
}
.acesso__quem b[data-v-4750d09e] { display: block; font-size: 15px; color: var(--text-primary);
}
.acesso__email[data-v-4750d09e] { display: block; font-size: 15px; color: var(--text-tertiary); word-break: break-all;
}
.acesso__desde[data-v-4750d09e] { display: block; font-size: 13px; color: var(--muted); margin-top: 2px;
}
.acesso__tags[data-v-4750d09e] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.acesso__acoes[data-v-4750d09e] { display: flex; gap: 14px; align-items: center; justify-content: flex-end; flex-wrap: wrap;
}
@media (max-width: 860px) {
.acesso[data-v-4750d09e] { grid-template-columns: 1fr;
}
.acesso__acoes[data-v-4750d09e] { justify-content: flex-start;
}
}

/* chip do papel (tons suaves da paleta Névoa, como o tipo-chip dos Locais) */
.papel-chip[data-v-4750d09e] {
  padding: 4px 10px; border-radius: 999px;
  font-size: 15px; font-weight: 700; white-space: nowrap;
}
.papel-chip--admin[data-v-4750d09e]     { background: #F5F0FA; color: #7f56d9;
}
.papel-chip--gerente[data-v-4750d09e]   { background: #EAF1F8; color: #3E5C86;
}
.papel-chip--rh[data-v-4750d09e]        { background: #FFF8F3; color: #B45309;
}
.papel-chip--motorista[data-v-4750d09e] { background: #F0FDF4; color: #166534;
}
.link[data-v-4750d09e] {
  background: none; border: none; cursor: pointer; padding: 0;
  font-family: var(--font-body); font-size: 15px; font-weight: 700;
  color: var(--primary-deep);
}
.link[data-v-4750d09e]:hover, .link[data-v-4750d09e]:focus-visible, .link[data-v-4750d09e]:active { background: none !important; box-shadow: none !important; transform: none !important; text-decoration: underline;
}
.link--risk[data-v-4750d09e] { color: var(--risk);
}
.link-inline[data-v-4750d09e] {
  background: none; border: none; cursor: pointer; padding: 0;
  font: inherit; font-weight: 700; color: var(--primary-deep); text-decoration: underline;
}
.voltar[data-v-4750d09e] {
  background: none; border: none; cursor: pointer;
  font-family: var(--font-body);
  font-size: 15px; font-weight: 700;
  color: var(--primary-deep);
  padding: 0 0 12px;
}
.voltar[data-v-4750d09e]:hover { color: var(--primary-dark);
}
.voltar[data-v-4750d09e]:active:not(:disabled) { background: none; color: var(--primary-dark);
}
.form-card[data-v-4750d09e] {
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 28px;
  max-width: 560px;
  display: grid; gap: 14px;
  box-shadow: 0 1px 3px rgba(30, 41, 59, 0.06);
}
.lembrete[data-v-4750d09e] {
  margin: 0;
  padding: 10px 14px;
  background: var(--warn-soft);
  color: var(--warn);
  border-radius: 10px;
  font-size: 15px;
  line-height: 1.45;
  font-weight: 600;
}
.efeito-papel[data-v-4750d09e] {
  margin: -6px 0 0;
  padding: 10px 14px;
  background: var(--primary-soft);
  color: var(--primary-dark);
  border-radius: 10px;
  font-size: 15px;
  line-height: 1.45;
}
.erro-inline[data-v-4750d09e] {
  background: rgba(169, 121, 123, 0.12); color: var(--risk);
  border-radius: 12px; padding: 10px 14px; font-size: 15px; font-weight: 700;
}

.forja-view[data-v-685d66c4] { max-width: 960px; margin: 0 auto; padding: 8px 0 40px;
}
.voltar[data-v-685d66c4] { background: none; border: none; color: var(--primary-deep); font-size: 15px; font-weight: 700; cursor: pointer; padding: 6px 0;
}
.page-hdr[data-v-685d66c4] { margin-bottom: 14px;
}
.page-hdr__crumb[data-v-685d66c4] { font-size: 15px; color: var(--text-tertiary); font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
}
.page-hdr__title[data-v-685d66c4] { margin: 2px 0 4px; font-family: var(--font-heading); font-size: 26px;
}
.page-hdr__sub[data-v-685d66c4] { margin: 0; color: var(--text-tertiary); font-size: 15px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
}
.form-card[data-v-685d66c4] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 16px; padding: 16px; margin-bottom: 14px; display: flex; flex-direction: column; gap: 12px;
}
.andamento__previsao[data-v-685d66c4] { font-size: 15px; color: var(--text-tertiary);
}
.quadro-wrap[data-v-685d66c4] { overflow-x: auto; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 14px;
}
.quadro[data-v-685d66c4] { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 860px;
}
.quadro th[data-v-685d66c4] { text-align: left; padding: 10px 12px; font-size: 15px; color: var(--text-tertiary); text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--border); white-space: nowrap;
}
.quadro td[data-v-685d66c4] { padding: 10px 12px; border-bottom: 1px solid var(--border-soft, var(--border)); vertical-align: top;
}
.quadro__linha[data-v-685d66c4] { cursor: pointer;
}
.quadro__linha:hover td[data-v-685d66c4] { background: var(--primary-soft);
}
.quadro__quem[data-v-685d66c4] { white-space: nowrap; font-weight: 700;
}
.quadro__texto[data-v-685d66c4] { max-width: 320px; white-space: pre-line;
}
.quadro__prompt[data-v-685d66c4] { color: var(--text-tertiary); max-height: 4.6em; overflow: hidden;
}
.quadro__data[data-v-685d66c4] { white-space: nowrap; color: var(--text-tertiary);
}
.chips[data-v-685d66c4] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
}
.rotulo[data-v-685d66c4] { font-size: 15px; font-weight: 700; color: var(--text-tertiary); text-transform: uppercase; letter-spacing: .04em;
}
.chip-btn[data-v-685d66c4] { border: 1px solid var(--border); background: var(--bg-surface); border-radius: 999px; padding: 8px 14px; font-size: 15px; cursor: pointer; color: var(--text-primary);
}
.chip-btn.on[data-v-685d66c4] { background: var(--primary-deep); color: #fff; border-color: var(--primary-deep);
}
.area[data-v-685d66c4] { width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; border: 1px solid var(--border); border-radius: 12px; padding: 12px; background: var(--bg-surface); color: var(--text-primary); resize: vertical; min-height: 120px;
}
.dica[data-v-685d66c4] { margin: 0; font-size: 15px; color: var(--text-tertiary);
}
.erro-inline[data-v-685d66c4] { color: var(--risk); font-size: 15px;
}
.aviso[data-v-685d66c4] { background: var(--warn-soft); color: var(--text-primary); padding: 10px 14px; border-radius: 12px; margin-bottom: 12px; font-size: 15px;
}
.chaves[data-v-685d66c4] { flex-direction: row; flex-wrap: wrap; gap: 18px; align-items: center;
}
.switch[data-v-685d66c4] { display: flex; gap: 6px; align-items: center; font-size: 15px; cursor: pointer;
}
.sec[data-v-685d66c4] { font-family: var(--font-heading); font-size: 19px; margin: 18px 0 8px;
}
.vazio[data-v-685d66c4] { color: var(--text-tertiary); font-size: 15px;
}
.card-pedido[data-v-685d66c4] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 14px; padding: 12px 14px; margin-bottom: 10px; cursor: pointer;
}
.card-pedido[data-v-685d66c4]:hover { border-color: var(--primary);
}
.card-pedido__topo[data-v-685d66c4] { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 4px;
}
.card-pedido__titulo[data-v-685d66c4] { font-size: 17px; font-weight: 700;
}
.card-pedido__resumo[data-v-685d66c4] { font-size: 15px; color: var(--text-secondary, var(--text-primary)); white-space: pre-line; margin-top: 4px;
}
.meta[data-v-685d66c4] { font-size: 15px; color: var(--text-tertiary);
}
.chip[data-v-685d66c4] { font-size: 15px; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: var(--bg-primary, #eef2f7); color: var(--text-primary);
}
.chip--ok[data-v-685d66c4] { background: var(--ok-soft, #e6f1ee); color: var(--ok);
}
.chip--risco[data-v-685d66c4] { background: var(--risk-soft, #f6e3e0); color: var(--risk);
}
.chip--atencao[data-v-685d66c4] { background: var(--warn-soft); color: var(--warn);
}
.chip--andamento[data-v-685d66c4] { background: var(--primary-soft); color: var(--primary-deep);
}
.bloco[data-v-685d66c4] { display: flex; flex-direction: column; gap: 4px;
}
.bloco--ok[data-v-685d66c4] { background: var(--ok-soft, #e6f1ee); border-radius: 12px; padding: 10px 12px;
}
.bloco__rotulo[data-v-685d66c4] { font-size: 15px; font-weight: 700; color: var(--text-tertiary); text-transform: uppercase; letter-spacing: .04em;
}
.texto[data-v-685d66c4] { white-space: pre-wrap; font: inherit; font-size: 15px; margin: 0;
}
.acoes[data-v-685d66c4] { display: flex; gap: 10px; flex-wrap: wrap;
}
.andamento[data-v-685d66c4] { display: flex; gap: 12px; align-items: center; background: var(--primary-soft); border: 1px solid var(--border); border-radius: 14px; padding: 12px 14px; margin-bottom: 12px;
}
.andamento--fim[data-v-685d66c4] { background: var(--ok-soft, #e6f1ee);
}
.andamento--erro[data-v-685d66c4] { background: var(--risk-soft, #f6e3e0);
}
.andamento__spin[data-v-685d66c4] { width: 22px; height: 22px; border-radius: 50%; border: 3px solid var(--border); border-top-color: var(--primary-deep); animation: forja-gira-685d66c4 .9s linear infinite; flex-shrink: 0;
}
.andamento__icone[data-v-685d66c4] { width: 22px; height: 22px; border-radius: 50%; background: var(--primary-deep); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 15px; flex-shrink: 0;
}
.andamento--erro .andamento__icone[data-v-685d66c4] { background: var(--risk);
}
.andamento--fim:not(.andamento--erro) .andamento__icone[data-v-685d66c4] { background: var(--ok);
}
.andamento__texto[data-v-685d66c4] { flex: 1; display: flex; flex-direction: column; gap: 6px;
}
.andamento__etapa[data-v-685d66c4] { font-size: 16px; font-weight: 700;
}
.andamento__barra[data-v-685d66c4] { height: 6px; border-radius: 3px; background: var(--border); overflow: hidden;
}
.andamento__cheio[data-v-685d66c4] { height: 100%; background: var(--primary-deep); transition: width .6s ease;
}
@keyframes forja-gira-685d66c4 {
to { transform: rotate(360deg);
}
}
.previa[data-v-685d66c4] { gap: 8px;
}
.previa__frame[data-v-685d66c4] { width: 100%; height: 520px; border: 1px solid var(--border); border-radius: 12px; background: #fff;
}
.previa--esperando .dica[data-v-685d66c4] { font-style: italic;
}
.log summary[data-v-685d66c4] { cursor: pointer; font-weight: 700; font-size: 15px;
}
.log__pre[data-v-685d66c4] { white-space: pre-wrap; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 15px; background: var(--bg-primary, #f7f9fb); border-radius: 12px; padding: 12px; max-height: 50vh; overflow: auto;
}

.coletor-view[data-v-ac838b55] { max-width: none; padding: 28px 28px 40px; display: grid; gap: 16px;
}
.page-hdr[data-v-ac838b55] { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap;
}
.page-hdr__crumb[data-v-ac838b55] { font-size: 12.5px; font-weight: 700; color: var(--primary-deep); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px;
}
.page-hdr__title[data-v-ac838b55] { font-family: var(--font-heading); font-size: 26px; font-weight: 700; color: var(--text-primary);
}
.page-hdr__sub[data-v-ac838b55] { margin: 6px 0 0; color: var(--text-secondary); font-size: 14.5px; max-width: 62ch;
}
.page-hdr__actions[data-v-ac838b55] { display: flex; align-items: center; gap: 10px;
}
.clock[data-v-ac838b55] { font-size: 12.5px; color: var(--text-tertiary);
}
.btn[data-v-ac838b55] { font-family: var(--font-body); font-weight: 700; font-size: 13px; padding: 8px 14px; border-radius: 9px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-secondary); cursor: pointer;
}
.erro-carregar[data-v-ac838b55] { color: var(--risk); font-size: 14px;
}
.status-card[data-v-ac838b55] { display: flex; align-items: center; gap: 16px; background: var(--card-bg, var(--bg-surface)); border: 1px solid var(--border); border-radius: 16px; padding: 18px 22px;
}
.status-card--ok[data-v-ac838b55] { border-color: var(--ok-soft); background: var(--ok-soft);
}
.status-card--off[data-v-ac838b55] { border-color: var(--risk-soft); background: var(--risk-soft);
}
.status-card__ic[data-v-ac838b55] { font-size: 26px;
}
.status-card__corpo[data-v-ac838b55] { flex: 1; min-width: 0;
}
.status-card__titulo[data-v-ac838b55] { font-family: var(--font-heading); font-size: 17px; font-weight: 700; color: var(--text-primary);
}
.status-card__meta[data-v-ac838b55] { font-size: 13px; color: var(--text-secondary); margin-top: 2px;
}
.status-card__detalhe[data-v-ac838b55] { font-size: 12.5px; color: var(--text-tertiary); margin-top: 4px;
}
.status-card__pendentes[data-v-ac838b55] { text-align: center; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; padding: 8px 14px;
}
.status-card__pendentes b[data-v-ac838b55] { display: block; font-family: var(--font-heading); font-size: 18px;
}
.status-card__pendentes span[data-v-ac838b55] { font-size: 11px; color: var(--text-tertiary);
}
.overflow[data-v-ac838b55] { overflow-x: auto;
}
.tbl[data-v-ac838b55] { width: 100%; border-collapse: collapse; font-size: 13.5px;
}
.tbl th[data-v-ac838b55] { text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted, var(--text-tertiary)); font-weight: 700; padding: 8px 12px; border-bottom: 1px solid var(--border);
}
.tbl td[data-v-ac838b55] { padding: 10px 12px; border-bottom: 1px solid var(--border-soft, var(--border));
}
.fluxo-nome[data-v-ac838b55] { font-weight: 600;
}
.mono[data-v-ac838b55] { font-variant-numeric: tabular-nums; font-family: ui-monospace, monospace;
}
.vazio[data-v-ac838b55] { color: var(--text-tertiary); font-size: 13.5px; padding: 8px 0; text-align: center;
}
.eventos[data-v-ac838b55] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; max-height: 420px; overflow-y: auto;
}
.evento[data-v-ac838b55] { display: flex; gap: 10px; padding: 10px 12px; border-radius: 10px; background: var(--bg-soft, var(--bg-primary));
}
.evento--erro[data-v-ac838b55] { background: var(--risk-soft);
}
.evento--aviso[data-v-ac838b55] { background: var(--warn-soft);
}
.evento__ic[data-v-ac838b55] { font-size: 15px;
}
.evento__corpo[data-v-ac838b55] { flex: 1; min-width: 0;
}
.evento__msg[data-v-ac838b55] { font-size: 13.5px; color: var(--text-primary);
}
.evento__meta[data-v-ac838b55] { font-size: 11.5px; color: var(--text-tertiary); margin-top: 2px;
}
.vazio-inline[data-v-ac838b55] { color: var(--text-tertiary); font-size: 12.5px;
}
.feed[data-v-ac838b55] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; max-height: 480px; overflow-y: auto;
}
.feed__item[data-v-ac838b55] { display: flex; align-items: flex-start; gap: 10px; padding: 9px 12px; border-radius: 10px; background: var(--bg-soft, var(--bg-primary));
}
.feed__ic[data-v-ac838b55] { font-size: 15px;
}
.feed__corpo[data-v-ac838b55] { flex: 1; min-width: 0;
}
.feed__linha1[data-v-ac838b55] { font-size: 13px; color: var(--text-primary); font-weight: 600;
}
.feed__motorista[data-v-ac838b55] { font-weight: 400; color: var(--text-secondary);
}
.feed__jornada[data-v-ac838b55] { font-weight: 400; color: var(--ok, var(--text-secondary));
}
.feed__resumo[data-v-ac838b55] { font-size: 12.5px; color: var(--text-secondary); margin-top: 1px;
}
.feed__tempo[data-v-ac838b55] { font-size: 11.5px; color: var(--text-tertiary); white-space: nowrap; padding-top: 2px;
}

.trajeto-view[data-v-c8566679] { padding: 4px 2px 24px;
}
.page-hdr[data-v-c8566679] { margin-bottom: 14px;
}
.page-hdr__crumb[data-v-c8566679] { font-size: 12px; color: var(--text-tertiary); font-weight: 700;
}
.page-hdr__title[data-v-c8566679] { font-family: var(--font-heading); font-size: 26px; font-weight: 800; color: var(--text-primary);
}
.page-hdr__sub[data-v-c8566679] { font-size: 14px; color: var(--text-tertiary); max-width: 62ch;
}
.filtros[data-v-c8566679] { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin-bottom: 16px;
}
.campo[data-v-c8566679] { display: flex; flex-direction: column; gap: 3px;
}
.campo label[data-v-c8566679] { font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--muted);
}
.campo select[data-v-c8566679], .campo input[data-v-c8566679] { font: inherit; font-size: 13.5px; padding: 8px 11px; border-radius: 9px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary); min-width: 170px;
}
.campo select[data-v-c8566679]:focus, .campo input[data-v-c8566679]:focus { outline: none; border-color: var(--primary);
}
.grow[data-v-c8566679] { flex: 1;
}
.btn[data-v-c8566679] { font-family: var(--font-heading); font-weight: 700; font-size: 13.5px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary); border-radius: 10px; padding: 9px 14px; cursor: pointer;
}
.btn[data-v-c8566679]:hover:not(:disabled) { border-color: var(--primary);
}
.btn[data-v-c8566679]:disabled { opacity: .5; cursor: not-allowed;
}
.vazio-tela[data-v-c8566679] { color: var(--text-tertiary); font-size: 14px; padding: 30px 4px;
}
.stats[data-v-c8566679] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 14px;
}
@media (max-width: 900px) {
.stats[data-v-c8566679] { grid-template-columns: repeat(2, 1fr);
}
}
.stat[data-v-c8566679] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 13px; padding: 12px 14px;
}
.stat--alerta[data-v-c8566679] { border-color: var(--risk); background: var(--risk-soft);
}
.stat .n[data-v-c8566679] { font-family: var(--font-heading); font-weight: 800; font-size: 21px; display: flex; align-items: baseline; gap: 4px;
}
.stat .n small[data-v-c8566679] { font-family: var(--font-body); font-weight: 700; font-size: 12px; color: var(--muted);
}
.stat .l[data-v-c8566679] { font-size: 11.5px; color: var(--muted); margin-top: 1px;
}
.grid[data-v-c8566679] { display: grid; grid-template-columns: 1fr 320px; gap: 16px; align-items: start;
}
@media (max-width: 860px) {
.grid[data-v-c8566679] { grid-template-columns: 1fr;
}
}
.card[data-v-c8566679] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 16px; overflow: hidden;
}
.mapa-card[data-v-c8566679] { position: relative;
}
.mapcanvas[data-v-c8566679] { width: 100%; height: 520px;
}
.mapstatus[data-v-c8566679] { height: 520px; display: flex; align-items: center; justify-content: center; color: var(--text-tertiary); text-align: center; padding: 20px;
}
.mapstatus--erro[data-v-c8566679] { color: var(--risk);
}
.mapa-legenda[data-v-c8566679] { position: absolute; left: 14px; bottom: 14px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 11px; padding: 9px 12px; font-size: 11.5px; color: var(--text-secondary); box-shadow: 0 4px 14px rgba(23,28,36,.12); display: flex; flex-direction: column; gap: 5px;
}
.mapa-legenda span[data-v-c8566679] { display: flex; align-items: center; gap: 6px;
}
.lc[data-v-c8566679] { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: none;
}
.side h3[data-v-c8566679] { font-family: var(--font-heading); font-weight: 800; font-size: 14px; padding: 13px 15px 8px; display: flex; align-items: center; gap: 7px; border-bottom: 1px solid var(--border-soft); color: var(--text-primary);
}
.side h3 .c[data-v-c8566679] { margin-left: auto; font-size: 11px; font-weight: 800; background: var(--primary-soft); color: var(--primary-deep); border-radius: 999px; padding: 2px 8px;
}
.timeline[data-v-c8566679] { list-style: none; margin: 0; padding: 6px; max-height: 460px; overflow-y: auto; display: flex; flex-direction: column; gap: 2px;
}
.ev[data-v-c8566679] { display: flex; gap: 10px; padding: 8px 9px; border-radius: 10px;
}
.ev[data-v-c8566679]:hover { background: var(--bg-primary, var(--bg-soft));
}
.ev--alerta[data-v-c8566679] { background: var(--risk-soft);
}
.ev__ic[data-v-c8566679] { width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; font-size: 13.5px; flex: none; background: var(--primary-soft); color: var(--primary-deep);
}
.ev__ic.alerta[data-v-c8566679] { background: var(--risk-soft); color: var(--risk);
}
.ev__b[data-v-c8566679] { flex: 1; min-width: 0;
}
.ev__t[data-v-c8566679] { font-size: 12.5px; font-weight: 800; color: var(--text-primary); display: block;
}
.ev__d[data-v-c8566679] { font-size: 11.5px; color: var(--muted);
}
.ev__hora[data-v-c8566679] { font-size: 11px; color: var(--muted); white-space: nowrap; padding-top: 2px; font-variant-numeric: tabular-nums;
}
.ev-vazio[data-v-c8566679] { padding: 20px 14px; color: var(--text-tertiary); font-size: 13px; text-align: center;
}

.anomalias-view[data-v-a2252f0d] { padding: 4px 2px 24px;
}
.page-hdr[data-v-a2252f0d] { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 16px;
}
.page-hdr__crumb[data-v-a2252f0d] { font-size: 12px; color: var(--text-tertiary); font-weight: 700;
}
.page-hdr__title[data-v-a2252f0d] { font-family: var(--font-heading); font-size: 26px; font-weight: 800; color: var(--text-primary);
}
.page-hdr__sub[data-v-a2252f0d] { font-size: 14px; color: var(--text-tertiary); max-width: 62ch; margin-top: 4px;
}
.page-hdr__actions[data-v-a2252f0d] { display: flex; align-items: center; gap: 10px;
}
.page-hdr__actions select[data-v-a2252f0d] { font: inherit; font-size: 13.5px; padding: 8px 11px; border-radius: 9px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary);
}
.btn[data-v-a2252f0d] { font-family: var(--font-heading); font-weight: 700; font-size: 13px; padding: 8px 14px; border-radius: 9px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-secondary); cursor: pointer;
}
.btn[data-v-a2252f0d]:hover { border-color: var(--primary);
}
.erro-carregar[data-v-a2252f0d] { color: var(--risk); font-size: 14px;
}
.vazio[data-v-a2252f0d] { color: var(--text-tertiary); font-size: 14px; padding: 20px 4px;
}
.lista[data-v-a2252f0d] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px;
}
.item[data-v-a2252f0d] { display: grid; grid-template-columns: 40px 1fr auto; gap: 12px; align-items: center; padding: 13px 14px; border-radius: 13px; background: var(--bg-surface); border: 1px solid var(--border);
}
.item__ic[data-v-a2252f0d] { width: 36px; height: 36px; border-radius: 10px; background: var(--risk-soft); color: var(--risk); display: grid; place-items: center; font-size: 17px;
}
.item__b[data-v-a2252f0d] { display: flex; flex-direction: column; min-width: 0;
}
.item__t[data-v-a2252f0d] { font-family: var(--font-heading); font-weight: 800; font-size: 14px; color: var(--text-primary);
}
.item__t small[data-v-a2252f0d] { font-weight: 600; color: var(--text-tertiary);
}
.item__t .link[data-v-a2252f0d] { border: none; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer;
}
.item__t .link[data-v-a2252f0d]:hover, .item__t .link[data-v-a2252f0d]:focus-visible, .item__t .link[data-v-a2252f0d]:active { background: none !important; box-shadow: none !important; transform: none !important; color: var(--primary); text-decoration: underline;
}
.item__d[data-v-a2252f0d] { font-size: 13px; color: var(--text-secondary); margin-top: 2px;
}
.item__meta[data-v-a2252f0d] { display: flex; flex-direction: column; align-items: flex-end; gap: 4px;
}
.item__tag[data-v-a2252f0d] { font-family: var(--font-heading); font-weight: 800; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--warn); background: var(--warn-soft); border-radius: 999px; padding: 3px 9px;
}
.item__tag.critico[data-v-a2252f0d] { color: var(--risk); background: var(--risk-soft);
}
.item__hora[data-v-a2252f0d] { font-size: 11.5px; color: var(--muted);
}

.desempenho-view[data-v-0ba36fcc] { padding: 4px 2px 24px;
}
.page-hdr[data-v-0ba36fcc] { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 16px;
}
.page-hdr__crumb[data-v-0ba36fcc] { font-size: 12px; color: var(--text-tertiary); font-weight: 700;
}
.page-hdr__title[data-v-0ba36fcc] { font-family: var(--font-heading); font-size: 26px; font-weight: 800; color: var(--text-primary);
}
.page-hdr__sub[data-v-0ba36fcc] { font-size: 14px; color: var(--text-tertiary); max-width: 62ch; margin-top: 4px;
}
.page-hdr__actions[data-v-0ba36fcc] { display: flex; align-items: center; gap: 10px;
}
.page-hdr__actions select[data-v-0ba36fcc] { font: inherit; font-size: 13.5px; padding: 8px 11px; border-radius: 9px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary);
}
.btn[data-v-0ba36fcc] { font-family: var(--font-heading); font-weight: 700; font-size: 13px; padding: 8px 14px; border-radius: 9px; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-secondary); cursor: pointer;
}
.btn[data-v-0ba36fcc]:hover { border-color: var(--primary);
}
.erro-carregar[data-v-0ba36fcc] { color: var(--risk); font-size: 14px;
}
.vazio[data-v-0ba36fcc] { color: var(--text-tertiary); font-size: 14px; padding: 20px 4px;
}
.tabela-wrap[data-v-0ba36fcc] { background: var(--bg-surface); border: 1px solid var(--border); border-radius: 16px; overflow-x: auto;
}
.tabela[data-v-0ba36fcc] { width: 100%; border-collapse: collapse;
}
.tabela th[data-v-0ba36fcc] { text-align: left; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); padding: 10px 14px; border-bottom: 1px solid var(--border);
}
.tabela td[data-v-0ba36fcc] { padding: 12px 14px; border-bottom: 1px solid var(--border-soft); font-size: 13.5px; vertical-align: middle;
}
.tabela tr:last-child td[data-v-0ba36fcc] { border-bottom: none;
}
.mot-nome[data-v-0ba36fcc], .mot-placa[data-v-0ba36fcc] { border: none; background: none; padding: 0; text-align: left; cursor: pointer;
}
.mot-nome[data-v-0ba36fcc]:disabled, .mot-placa[data-v-0ba36fcc]:disabled { cursor: default;
}
.mot-nome[data-v-0ba36fcc] { font-family: var(--font-heading); font-weight: 800; font-size: 13.5px; color: var(--text-primary); display: block;
}
.mot-nome[data-v-0ba36fcc]:hover:not(:disabled), .mot-placa[data-v-0ba36fcc]:hover:not(:disabled) { color: var(--primary); text-decoration: underline;
}
.mot-placa[data-v-0ba36fcc] { font-size: 11.5px; color: var(--muted);
}
.nota-badge[data-v-0ba36fcc] { font-family: var(--font-heading); font-weight: 800; font-size: 15px; border-radius: 10px; padding: 4px 10px; display: inline-block; min-width: 42px; text-align: center;
}
.nota-badge.alta[data-v-0ba36fcc] { background: var(--ok-soft); color: var(--ok);
}
.nota-badge.media[data-v-0ba36fcc] { background: var(--warn-soft); color: var(--warn);
}
.nota-badge.baixa[data-v-0ba36fcc] { background: var(--risk-soft); color: var(--risk);
}
.faixa-bar[data-v-0ba36fcc] { display: flex; height: 9px; border-radius: 5px; overflow: hidden; width: 140px; background: var(--border-soft);
}
.freio-n[data-v-0ba36fcc] { font-variant-numeric: tabular-nums; font-weight: 700;
}
.freio-n.alto[data-v-0ba36fcc] { color: var(--risk);
}

/* App root styles — theme variables defined in theme.css */
html, body, #app {
  width: 100%;
  height: 100%;
  font-family: var(--font-family-body);
  background-color: var(--bg-body);
  color: var(--text-primary);
}
body {
  margin: 0;
  padding: 0;
}
.landing-frame { display: block; width: 100%; height: 100vh; border: 0; background: var(--bg-body);
}
/* Jornada — Névoa 2.0 (26/08/2026), por cima do tema v6.
 * Fonte da verdade: cadence-aux/design-system + mobile/design/Theme.kt.
 * Títulos Instrument Sans, corpo Nunito, piso de leitura 15px, tonal > cheio.
 * As views usam os aliases abaixo (--primary, --text-primary, --border…);
 * cores fixas foram trocadas por eles em 26/08 — não voltar a escrever hex. */

:root {
  /* Névoa: neutros e cor de marca */
  --nv-0: #FFFFFF; --nv-25: #F7F9FC; --nv-50: #F1F4F8; --nv-100: #EFF3F8; --nv-200: #E1E8F1;
  --nv-300: #CFDAE6; --nv-400: #AEB8C6; --nv-500: #8A93A3; --nv-600: #55617B; --nv-900: #171C24;
  /* Marca "Grafite" (19/09/2026, opção 1 de 3 aprovada pelo dono — saiu do azul
   * de app novo pra um neutro de software corporativo). Nome do token não é
   * mais a cor (era --azul-*): só troca aqui se a marca mudar de novo. */
  --marca-100: #EBEDF0; --marca-300: #C7CCD4; --marca-400: #A9B0BB; --marca-500: #5B6472; --marca-700: #414957; --marca-900: #262C36;
  --ok-100: #E6F1EE; --ok-700: #3A6E5E;
  --atencao-100: #F4EDE0; --atencao-700: #8A6B3B;
  --atrasado-100: #F6E3E0; --atrasado-700: #8C3B33;

  /* Aliases que as telas usam */
  --bg-primary: var(--nv-50);
  --bg-surface: var(--nv-0);
  --bg-soft: var(--nv-25);
  --border: var(--nv-200);
  --border-soft: var(--nv-100);
  --text-primary: var(--nv-900);
  --text-secondary: var(--nv-600);
  --text-tertiary: var(--nv-600);
  --muted: var(--nv-500);
  --text: var(--nv-900);
  --primary: var(--marca-500);
  --primary-deep: var(--marca-700);
  --primary-dark: var(--marca-900);
  --primary-soft: var(--marca-100);
  --primary-line: var(--marca-300);
  --soft: var(--marca-100);
  --risk: var(--atrasado-700);
  --risk-soft: var(--atrasado-100);
  --warn: var(--atencao-700);
  --warn-soft: var(--atencao-100);
  --alert-warn: var(--atencao-700);
  --ok: var(--ok-700);
  --ok-soft: var(--ok-100);
  --card-bg: var(--nv-0);

  /* Cor por categoria do menu (19/09/2026): 6 seções do trilho lateral, cada
   * uma com um par soft/base/deep — usado nos chips do menu e em botões
   * contextuais daquela área. Programações/Jornadas/Configurações reaproveitam
   * azul/ok/atencao; Motoristas e Telemetria ganharam matiz próprio. */
  --cat-visao-soft: #E9ECF4; --cat-visao-base: #6672AD; --cat-visao-deep: #414B7D;
  --cat-prog-soft: var(--marca-100); --cat-prog-base: var(--marca-500); --cat-prog-deep: var(--marca-900);
  --cat-jorn-soft: var(--ok-100); --cat-jorn-base: var(--ok-700); --cat-jorn-deep: #234A3F;
  --cat-moto-soft: #F1E9F0; --cat-moto-base: #8A5C82; --cat-moto-deep: #603D59;
  --cat-tele-soft: #E5EEF2; --cat-tele-base: #3E7A96; --cat-tele-deep: #234E63;
  --cat-conf-soft: var(--atencao-100); --cat-conf-base: var(--atencao-700); --cat-conf-deep: #5D4B2C;
  --font-heading: 'Instrument Sans', system-ui, -apple-system, sans-serif;
  --font-body: 'Nunito', system-ui, -apple-system, sans-serif;
}


:root {
  /* ==================== COLOR SYSTEM ==================== */

  /* Primary Brand: Grafite (19/09/2026) — mesma família de --marca-*/--primary
   * acima; ramp de 9 paradas porque button{}/a{} (mais abaixo) leem 500/600/700/800. */
  --color-primary-50: #EEF0F2;
  --color-primary-100: #DEE1E6;
  --color-primary-200: #C2C7CF;
  --color-primary-300: #A2A9B4;
  --color-primary-400: #838B98;
  --color-primary-500: #66707D;
  --color-primary-600: #5B6472;
  --color-primary-700: #414957;
  --color-primary-800: #333944;
  --color-primary-900: #262C36;

  /* Accent: Grafite */
  --color-accent: #4A5262;
  --color-accent-dark: #2C3548;
  --color-accent-light: #6B7A94;

  /* Semantic Status Colors */
  --color-success-50: #E7EDEA;
  --color-success-100: #C2D2CB;
  --color-success-200: #8FB5A7;
  --color-success-500: #2F5E50;
  --color-success-600: #2A5148;
  --color-success-700: #25453F;

  --color-error-50: #F3E4E1;
  --color-error-100: #DCC3BE;
  --color-error-200: #BD9791;
  --color-error-500: #7C3B34;
  --color-error-600: #6E3430;
  --color-error-700: #602D2A;

  --color-warning-50: #F2EDE2;
  --color-warning-100: #D9CDB2;
  --color-warning-200: #B4A075;
  --color-warning-500: #79613A;
  --color-warning-600: #6B5633;
  --color-warning-700: #5D4B2C;

  --color-info-50: #E8EBF0;
  --color-info-100: #D1D7E0;
  --color-info-200: #A8B5D4;
  --color-info-500: #3E5C86;
  --color-info-600: #364E76;
  --color-info-700: #2C4468;

  /* Neutral Colors (light mode) */
  --color-neutral-50: #FAFBFC;
  --color-neutral-100: #F4F5F7;
  --color-neutral-200: #EDEEF1;
  --color-neutral-300: #DEE0E5;
  --color-neutral-400: #9BA0AB;
  --color-neutral-500: #767D8A;
  --color-neutral-600: #4A5262;
  --color-neutral-700: #303540;
  --color-neutral-800: #1A1E28;
  --color-neutral-900: #12151C;

  /* Legacy named colors — aliased à marca (19/09/2026) em vez de hex duplicado,
   * senão FechamentoSemanalView/FolhasPontoView ficariam azuis com o resto grafite. */
  --color-primary-deep: var(--primary-deep);
  --color-primary: var(--primary);
  --color-primary-soft: var(--primary-soft);
  --alert-amber: #79613A;
  --alert-red: #7C3B34;
  --alert-green: #2F5E50;
  --alert-blue: #3E5C86;

  /* ==================== BACKGROUNDS ==================== */

  --bg-body: #F1F4F8;
  --bg-card: #FFFFFF;
  --bg-card-hover: #FAFAFB;
  --bg-light: #FAFAFB;
  --bg-overlay: rgba(18, 21, 28, 0.5);
  --bg-input: #FFFFFF;
  --bg-input-hover: #FAFAFB;
  --bg-input-disabled: #EDEEF1;

  /* ==================== TEXT COLORS ==================== */

  --text-primary: #171C24;
  --text-secondary: #55617B;
  --text-tertiary: #55617B;
  --text-inverted: #FFFFFF;
  --text-muted: #9BA0AB;
  --text-placeholder: #BCC3CF;
  --text-disabled: #DEE0E5;

  /* Semantic text colors */
  --text-success: #2F5E50;
  --text-error: #7C3B34;
  --text-warning: #79613A;
  --text-info: #3E5C86;

  /* ==================== BORDERS ==================== */

  --border-primary: #E1E8F1;
  --border-secondary: #EFF3F8;
  --border-light: #F4F5F7;
  --border-hover: #BCC3CF;
  --border-focus: var(--primary);
  --border-disabled: #EDEEF1;
  --border-error: #F3E4E1;
  --border-success: #E7EDEA;

  /* ==================== TYPOGRAPHY ==================== */

  /* Font Families */
  --font-family-heading: 'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-family-body: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-family-mono: 'IBM Plex Mono', 'Courier New', monospace;

  /* Font Sizes - Mobile first scale */
  --font-size-xs: 15px;
  --font-size-sm: 15px;
  --font-size-base: 16px;
  --font-size-lg: 18px;
  --font-size-xl: 20px;
  --font-size-2xl: 24px;
  --font-size-3xl: 30px;
  --font-size-4xl: 36px;
  --font-size-5xl: 48px;

  /* Font Weights */
  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Line Heights */
  --line-height-tight: 1.2;
  --line-height-snug: 1.375;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.75;
  --line-height-loose: 2;

  /* Letter Spacing */
  --letter-spacing-tight: -0.02em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.05em;
  --letter-spacing-wider: 0.1em;

  /* ==================== SPACING ==================== */

  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 12px;
  --spacing-lg: 16px;
  --spacing-xl: 24px;
  --spacing-2xl: 32px;
  --spacing-3xl: 48px;
  --spacing-4xl: 64px;

  /* ==================== BORDER RADIUS ==================== */

  --radius-none: 0;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 9999px;

  /* ==================== SHADOWS ==================== */

  /* Elevation shadows (light mode) */
  --shadow-none: none;
  --shadow-sm: 0 1px 2px 0 rgba(18, 21, 28, 0.045);
  --shadow-md: 0 4px 8px 0 rgba(18, 21, 28, 0.08);
  --shadow-lg: 0 8px 16px 0 rgba(18, 21, 28, 0.12);
  --shadow-xl: 0 12px 24px 0 rgba(18, 21, 28, 0.15);
  --shadow-2xl: 0 20px 32px 0 rgba(18, 21, 28, 0.2);

  /* Interactive shadows */
  --shadow-focus: 0 0 0 2px #FFFFFF, 0 0 0 4px var(--primary);
  --shadow-error-focus: 0 0 0 2px #FFFFFF, 0 0 0 4px #7C3B34;

  /* ==================== TRANSITIONS ==================== */

  --transition-fast: 150ms ease-in-out;
  --transition-base: 250ms ease-in-out;
  --transition-slow: 350ms ease-in-out;

  /* Specific transition timings */
  --transition-color: 200ms ease-in-out;
  --transition-shadow: 200ms ease-in-out;
  --transition-transform: 200ms cubic-bezier(0.4, 0, 0.2, 1);

  /* ==================== OPACITY ==================== */

  --opacity-disabled: 0.5;
  --opacity-hover: 0.8;
  --opacity-focus: 0.9;
  --opacity-backdrop: 0.5;

  /* ==================== Z-INDEX SCALE ==================== */

  --z-dropdown: 1000;
  --z-sticky: 100;
  --z-fixed: 200;
  --z-modal-backdrop: 300;
  --z-modal: 301;
  --z-tooltip: 400;
  --z-notification: 500;

  /* ==================== COMPONENT TOKENS ==================== */

  /* Button */
  --btn-height-sm: 32px;
  --btn-height-md: 40px;
  --btn-height-lg: 48px;
  --btn-padding-x-sm: 12px;
  --btn-padding-x-md: 16px;
  --btn-padding-x-lg: 24px;

  /* Input */
  --input-height-sm: 32px;
  --input-height-md: 40px;
  --input-height-lg: 48px;
  --input-padding-x: 12px;
  --input-padding-y: 8px;
  --input-border-width: 1px;

  /* Card */
  --card-padding: var(--spacing-lg);
  --card-border-width: 1px;
  --card-border-radius: var(--radius-lg);

  /* Badge/Pill */
  --badge-height: 24px;
  --badge-padding: 0 8px;
  --badge-radius: var(--radius-full);
}

/* ==================== GLOBAL STYLES ==================== */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* O site é sempre claro (Névoa 2.0). Sem isso, o Chrome/Firefox usa o tema
 * escuro do SISTEMA OPERACIONAL pra elementos nativos — inputs, scrollbar e,
 * o caso que travou o Tiago (20/09/2026): a seleção de texto (::selection)
 * vem preta do GTK dark e engole o nome do motorista na planilha. Forçar
 * "light" aqui resolve pra qualquer usuário, independente do tema do PC dele. */
html {
  color-scheme: light;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

::selection {
  background: var(--primary-soft);
  color: var(--primary-dark);
}

body {
  background-color: var(--bg-body);
  color: var(--text-primary);
  font-family: var(--font-family-body);
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  transition: background-color var(--transition-color), color var(--transition-color);
}

#app {
  width: 100%;
  min-height: 100vh;
  background-color: var(--bg-body);
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==================== TYPOGRAPHY ==================== */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-tight);
  color: var(--text-primary);
  text-wrap: balance;
  margin: 0;
}

h1 {
  font-size: var(--font-size-5xl);
  font-weight: var(--font-weight-bold);
  line-height: 1.1;
  margin-bottom: var(--spacing-lg);
  letter-spacing: var(--letter-spacing-tight);
}

h2 {
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-lg);
}

h3 {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--spacing-md);
}

h4 {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--spacing-md);
}

h5 {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--spacing-sm);
}

h6 {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--spacing-sm);
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing-wide);
}

p {
  margin-bottom: var(--spacing-md);
  color: var(--text-primary);
  line-height: var(--line-height-relaxed);
}

/* Text utilities */
.text-sm {
  font-size: var(--font-size-sm);
}

.text-base {
  font-size: var(--font-size-base);
}

.text-lg {
  font-size: var(--font-size-lg);
}

/* Links with improved states */
a {
  color: var(--color-primary-600);
  text-decoration: none;
  transition: color var(--transition-color);
  font-weight: var(--font-weight-medium);
}

a:hover {
  color: var(--color-primary-700);
  text-decoration: underline;
}

a:focus-visible {
  outline: 2px solid var(--color-primary-500);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

a:active {
  color: var(--color-primary-800);
}

/* Code and pre blocks */
code {
  font-family: var(--font-family-mono);
  font-size: 0.9em;
  background-color: var(--bg-light);
  border-radius: var(--radius-sm);
  padding: 2px 6px;
  color: var(--text-primary);
  word-break: break-word;
}

pre {
  font-family: var(--font-family-mono);
  font-size: var(--font-size-sm);
  background-color: var(--bg-light);
  border: 1px solid var(--border-primary);
  border-radius: var(--radius-md);
  padding: var(--spacing-lg);
  overflow-x: auto;
  color: var(--text-primary);
  line-height: var(--line-height-relaxed);
}

pre code {
  background: none;
  padding: 0;
  color: inherit;
}

/* ==================== FORM ELEMENTS ==================== */

input,
textarea,
select {
  font-family: inherit;
  font-size: inherit;
  border: var(--input-border-width) solid var(--border-primary);
  border-radius: var(--radius-md);
  padding: var(--input-padding-y) var(--input-padding-x);
  background-color: var(--bg-input);
  color: var(--text-primary);
  transition: border-color var(--transition-color), background-color var(--transition-color), box-shadow var(--transition-shadow);
}

input::placeholder,
textarea::placeholder {
  color: var(--text-placeholder);
}

input:hover:not(:disabled),
textarea:hover:not(:disabled),
select:hover:not(:disabled) {
  background-color: var(--bg-input-hover);
  border-color: var(--border-hover);
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: none;
  border-color: var(--border-focus);
  box-shadow: var(--shadow-focus);
  background-color: var(--bg-input);
}

input:disabled,
textarea:disabled,
select:disabled {
  background-color: var(--bg-input-disabled);
  color: var(--text-disabled);
  border-color: var(--border-disabled);
  cursor: not-allowed;
  opacity: var(--opacity-disabled);
}

/* Error state */
input.error,
textarea.error,
select.error {
  border-color: var(--color-error-500);
  background-color: var(--color-error-50);
}

input.error:focus-visible,
textarea.error:focus-visible,
select.error:focus-visible {
  box-shadow: var(--shadow-error-focus);
}

/* Success state */
input.success,
textarea.success,
select.success {
  border-color: var(--color-success-500);
}

/* Label styling */
label {
  display: block;
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-sm);
  margin-bottom: var(--spacing-sm);
  color: var(--text-primary);
}

/* Help text */
.form-help {
  font-size: var(--font-size-xs);
  color: var(--text-tertiary);
  margin-top: var(--spacing-xs);
}

.form-error {
  font-size: var(--font-size-xs);
  color: var(--color-error-600);
  margin-top: var(--spacing-xs);
  font-weight: var(--font-weight-medium);
}

.form-success {
  font-size: var(--font-size-xs);
  color: var(--color-success-600);
  margin-top: var(--spacing-xs);
  font-weight: var(--font-weight-medium);
}

/* ==================== BUTTONS ==================== */

button {
  font-family: inherit;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  border: none;
  border-radius: var(--radius-lg);
  padding: var(--spacing-md) var(--spacing-lg);
  height: var(--btn-height-md);
  background-color: var(--color-primary-600);
  color: #ffffff;
  cursor: pointer;
  transition: background-color var(--transition-color), box-shadow var(--transition-shadow), transform var(--transition-transform), filter var(--transition-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  white-space: nowrap;
}

/* Redesenho "mais clicável" (19/09/2026, revisto 20/09/2026): todo <button>
 * da base ganha leve elevação no hover/active pra mão saber que ali clica.
 *
 * ATÉ 19/09 isso trocava o fundo por --color-primary-700/800 (grafite quase
 * preto) — e qualquer botão/chip/item de menu que NÃO fosse um CTA sólido
 * (a maioria: .chip, .link, .mot-link, itens de menu lateral, itens de
 * dropdown…) precisava de um `!important` próprio só pra escapar disso.
 * Rastreei o histórico (20/09/2026): pelo menos 4 correções pontuais
 * anteriores (37427204, f5e94817, c085b91f, 7f4d6c10) remendaram UM
 * componente de cada vez sem nunca tocar aqui — por isso o mesmo problema
 * reaparecia toda vez que um componente novo esquecia o próprio remendo.
 * Os 14 arquivos com `.chip { … }` nunca tiveram esse remendo: os chips de
 * filtro (período, veículo, "só exceções" etc.) ficavam pretos no clique até
 * hoje.
 *
 * Fix definitivo: `filter: brightness()` em vez de trocar a cor. Escurece
 * RELATIVO à cor que já está ali — nunca vira preto, nunca precisa de
 * override por componente, e continua funcionando em cima de qualquer
 * fundo (sólido, --primary-soft de um chip ativo, transparente de um
 * .link). Os `!important` que já existem por aí continuam válidos (ficam
 * redundantes, não quebram nada) — não precisam ser removidos agora. */
button:hover:not(:disabled) {
  filter: brightness(0.95);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

button:focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
}

button:active:not(:disabled) {
  transform: scale(0.98);
  filter: brightness(0.9);
}

button:disabled {
  opacity: var(--opacity-disabled);
  cursor: not-allowed;
  box-shadow: none;
}

/* Button variants */
button.btn-secondary {
  background-color: var(--bg-light);
  color: var(--text-primary);
  border: 1px solid var(--border-primary);
}

button.btn-secondary:hover:not(:disabled) {
  background-color: var(--neutral-100);
  border-color: var(--border-hover);
}

/* Sem isso, o :active genérico do <button> (mais acima) escurece o fundo pra
 * grafite quase preto no instante do clique — como esses variants têm texto
 * escuro (não branco), ficava texto escuro em fundo escuro (19/09/2026). */
button.btn-secondary:active:not(:disabled) {
  background-color: var(--neutral-100);
}

button.btn-danger {
  background-color: var(--color-error-600);
}

button.btn-danger:hover:not(:disabled) {
  background-color: var(--color-error-700);
}

button.btn-danger:active:not(:disabled) {
  background-color: var(--color-error-700);
}

button.btn-success {
  background-color: var(--color-success-600);
}

button.btn-success:hover:not(:disabled) {
  background-color: var(--color-success-700);
}

button.btn-success:active:not(:disabled) {
  background-color: var(--color-success-700);
}

/* Button sizes */
button.btn-sm {
  height: var(--btn-height-sm);
  padding: 0 var(--btn-padding-x-sm);
  font-size: var(--font-size-xs);
}

button.btn-lg {
  height: var(--btn-height-lg);
  padding: 0 var(--btn-padding-x-lg);
  font-size: var(--font-size-base);
}

/* ==================== COR POR CATEGORIA (19/09/2026) ====================
 * Utilitário global: qualquer botão de qualquer view vira "contextual"
 * daquela área do produto só com uma classe — sem hex fixo, sem repetir
 * a paleta em cada arquivo. Mesmas 6 cores do trilho lateral
 * (JornadaShell.vue) e dos tokens --cat-*-soft/base/deep. */
button.btn-cat-visao, button.btn-cat-prog, button.btn-cat-jorn,
button.btn-cat-moto, button.btn-cat-tele, button.btn-cat-conf {
  color: var(--cat-deep);
  background-color: var(--cat-soft);
  box-shadow: none;
}
button.btn-cat-visao:hover:not(:disabled), button.btn-cat-prog:hover:not(:disabled),
button.btn-cat-jorn:hover:not(:disabled), button.btn-cat-moto:hover:not(:disabled),
button.btn-cat-tele:hover:not(:disabled), button.btn-cat-conf:hover:not(:disabled) {
  background-color: var(--cat-base);
  color: #fff;
  box-shadow: 0 6px 14px rgba(23, 28, 36, 0.18);
}
button.btn-cat-visao:active:not(:disabled), button.btn-cat-prog:active:not(:disabled),
button.btn-cat-jorn:active:not(:disabled), button.btn-cat-moto:active:not(:disabled),
button.btn-cat-tele:active:not(:disabled), button.btn-cat-conf:active:not(:disabled) {
  background-color: var(--cat-base);
}
button.btn-cat-visao { --cat-soft: var(--cat-visao-soft); --cat-base: var(--cat-visao-base); --cat-deep: var(--cat-visao-deep); }
button.btn-cat-prog  { --cat-soft: var(--cat-prog-soft);  --cat-base: var(--cat-prog-base);  --cat-deep: var(--cat-prog-deep); }
button.btn-cat-jorn  { --cat-soft: var(--cat-jorn-soft);  --cat-base: var(--cat-jorn-base);  --cat-deep: var(--cat-jorn-deep); }
button.btn-cat-moto  { --cat-soft: var(--cat-moto-soft);  --cat-base: var(--cat-moto-base);  --cat-deep: var(--cat-moto-deep); }
button.btn-cat-tele  { --cat-soft: var(--cat-tele-soft);  --cat-base: var(--cat-tele-base);  --cat-deep: var(--cat-tele-deep); }
button.btn-cat-conf  { --cat-soft: var(--cat-conf-soft);  --cat-base: var(--cat-conf-base);  --cat-deep: var(--cat-conf-deep); }

/* ==================== DICA AO PASSAR O MOUSE (19/09/2026) ====================
 * Nunca usar title=""/:title="" pra dica visual: esse balão é desenhado pelo
 * tema do sistema operacional, e em Linux com tema escuro (ex.: Yaru dark) o
 * Chromium tem um bug conhecido que pinta o fundo escuro sem trocar a cor do
 * texto — fica ilegível. `data-dica="..."` (ou `:data-dica="..."`) no lugar
 * de `title` usa este balão nosso, que a gente controla 100%. Por padrão
 * aparece ACIMA do elemento; `data-dica-pos="bottom"` inverte pra ABAIXO
 * (útil perto do topo da tela, ex.: cabeçalho de tabela). */
[data-dica] { position: relative; }
[data-dica]::after {
  content: attr(data-dica);
  position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translate(-50%, 4px);
  opacity: 0; visibility: hidden; transition: opacity 0.15s ease, transform 0.15s ease;
  background: var(--text-primary); color: #fff; padding: 6px 10px; border-radius: 8px;
  font: 500 12.5px var(--font-family-body); line-height: 1.4; text-align: center; white-space: normal;
  width: max-content; max-width: 240px;
  box-shadow: 0 8px 20px rgba(23, 28, 36, 0.22);
  z-index: 2000; pointer-events: none;
}
[data-dica]:hover::after, [data-dica]:focus-visible::after { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
[data-dica-pos="bottom"]::after { bottom: auto; top: calc(100% + 8px); transform: translate(-50%, -4px); }

/* ==================== CARDS & CONTAINERS ==================== */

.card {
  background-color: var(--bg-card);
  border: var(--card-border-width) solid var(--border-primary);
  border-radius: var(--card-border-radius);
  padding: var(--card-padding);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition-shadow), transform var(--transition-transform), border-color var(--transition-color);
}

.card:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--border-hover);
}

.card.elevated {
  box-shadow: var(--shadow-lg);
}

.card.interactive {
  cursor: pointer;
}

.card.interactive:active {
  transform: scale(0.99);
}

/* Badge/Pill component */
.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-xs);
  height: var(--badge-height);
  padding: var(--badge-padding);
  border-radius: var(--badge-radius);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  background-color: var(--color-primary-50);
  color: var(--color-primary-700);
  white-space: nowrap;
}

.badge.success {
  background-color: var(--color-success-50);
  color: var(--color-success-700);
}

.badge.error {
  background-color: var(--color-error-50);
  color: var(--color-error-700);
}

.badge.warning {
  background-color: var(--color-warning-50);
  color: var(--color-warning-700);
}

.badge.info {
  background-color: var(--color-info-50);
  color: var(--color-info-700);
}

/* ==================== UTILITIES ==================== */

/* Text color utilities */
.text-primary {
  color: var(--text-primary);
}

.text-secondary {
  color: var(--text-secondary);
}

.text-tertiary {
  color: var(--text-tertiary);
}

.text-muted {
  color: var(--text-muted);
}

.text-success {
  color: var(--text-success);
}

.text-error {
  color: var(--text-error);
}

.text-warning {
  color: var(--text-warning);
}

.text-info {
  color: var(--text-info);
}

/* Background utilities */
.bg-light {
  background-color: var(--bg-light);
}

.bg-card {
  background-color: var(--bg-card);
}

.bg-success {
  background-color: var(--color-success-50);
}

.bg-error {
  background-color: var(--color-error-50);
}

.bg-warning {
  background-color: var(--color-warning-50);
}

.bg-info {
  background-color: var(--color-info-50);
}

/* Border utilities */
.border-primary {
  border-color: var(--border-primary);
}

.border-secondary {
  border-color: var(--border-secondary);
}

.border-success {
  border-color: var(--color-success-500);
}

.border-error {
  border-color: var(--color-error-500);
}

.border-warning {
  border-color: var(--color-warning-500);
}

.border-info {
  border-color: var(--color-info-500);
}

/* Spacing utilities */
.gap-xs {
  gap: var(--spacing-xs);
}

.gap-sm {
  gap: var(--spacing-sm);
}

.gap-md {
  gap: var(--spacing-md);
}

.gap-lg {
  gap: var(--spacing-lg);
}

.gap-xl {
  gap: var(--spacing-xl);
}

.gap-2xl {
  gap: var(--spacing-2xl);
}

/* Margin utilities */
.m-auto {
  margin: auto;
}

.mt-auto {
  margin-top: auto;
}

.mb-auto {
  margin-bottom: auto;
}

/* Padding utilities */
.p-md {
  padding: var(--spacing-md);
}

.p-lg {
  padding: var(--spacing-lg);
}

.p-xl {
  padding: var(--spacing-xl);
}

.px-md {
  padding-left: var(--spacing-md);
  padding-right: var(--spacing-md);
}

.py-md {
  padding-top: var(--spacing-md);
  padding-bottom: var(--spacing-md);
}

/* Shadow utilities */
.shadow-sm {
  box-shadow: var(--shadow-sm);
}

.shadow-md {
  box-shadow: var(--shadow-md);
}

.shadow-lg {
  box-shadow: var(--shadow-lg);
}

.shadow-xl {
  box-shadow: var(--shadow-xl);
}

/* Flex utilities */
.flex {
  display: flex;
}

.flex-col {
  flex-direction: column;
}

.flex-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

.items-center {
  align-items: center;
}

.justify-center {
  justify-content: center;
}

/* Grid utilities */
.grid {
  display: grid;
}

/* Rounded utilities */
.rounded-sm {
  border-radius: var(--radius-sm);
}

.rounded-md {
  border-radius: var(--radius-md);
}

.rounded-lg {
  border-radius: var(--radius-lg);
}

.rounded-xl {
  border-radius: var(--radius-xl);
}

.rounded-full {
  border-radius: var(--radius-full);
}

/* Display utilities */
.hidden {
  display: none;
}

.invisible {
  visibility: hidden;
}

.block {
  display: block;
}

.inline {
  display: inline;
}

.inline-block {
  display: inline-block;
}

/* Font weight utilities */
.font-light {
  font-weight: var(--font-weight-light);
}

.font-normal {
  font-weight: var(--font-weight-normal);
}

.font-medium {
  font-weight: var(--font-weight-medium);
}

.font-semibold {
  font-weight: var(--font-weight-semibold);
}

.font-bold {
  font-weight: var(--font-weight-bold);
}

/* Line height utilities */
.leading-tight {
  line-height: var(--line-height-tight);
}

.leading-snug {
  line-height: var(--line-height-snug);
}

.leading-normal {
  line-height: var(--line-height-normal);
}

.leading-relaxed {
  line-height: var(--line-height-relaxed);
}

/* Opacity utilities */
.opacity-50 {
  opacity: 0.5;
}

.opacity-75 {
  opacity: 0.75;
}

.opacity-90 {
  opacity: 0.9;
}

/* Cabeçalho de página (28/08/2026): o título alinha com o conteúdo dos cards
 * (JCard tem 22px de padding lateral) — antes ficava colado na borda. Regra
 * global de propósito: os 17 .page-hdr das views só definem padding-bottom. */
.page-hdr { padding-left: 22px; padding-right: 22px; }

/* ── Impressão (05/09/2026): "Imprimir" no fechamento semanal (e onde mais
 * chamar window.print) esconde o console — topo, trilho e gaveta — e deixa
 * só o conteúdo, fundo branco, pra tabela sair limpa em preto e branco. ── */
@media print {
  .topo, .rail, .drawer, .sino { display: none !important; }
  .shell, .shell__corpo { display: block !important; min-height: 0 !important; }
  .shell__main { width: 100% !important; }
  html, body, #app { background: #fff !important; }
}
