/* Fluxo: estrutura comum e componentes. Substitui o portal/Financeiro legado. */
[hidden] { display:none !important; }
body { background:var(--cor-fundo); font-family:"Segoe UI",system-ui,sans-serif; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; }
:focus-visible { outline:3px solid var(--cor-foco); outline-offset:3px; }
:root[data-tema="escuro"] :focus-visible { outline-color:var(--cor-foco); }
:root[data-tema="escuro"] .botao-secundario,:root[data-tema="escuro"] .botao-voltar { background:var(--cor-superficie); color:var(--cor-primaria-texto); border-color:var(--cor-borda-controle); }
:root[data-tema="escuro"] .botao-secundario:hover { background:var(--cor-fundo-suave); color:var(--cor-texto); }
.mensagem { overflow-wrap:anywhere; }
.mensagem.aviso,.mensagem.parcial { display:block; background:var(--tom-ambar-suave); color:var(--tom-ambar-forte); border:1px solid var(--tom-ambar-borda); padding:14px 18px; border-radius:8px; }
#app-shell { display:flex; min-height:100vh; align-items:flex-start; }
#app-main { flex:1; min-width:0; width:0; padding:0 clamp(24px,3vw,48px) 56px; }
#app-main .tela { min-height:0; flex-direction:column; }
#app-main .tela > .topo { position:static; background:transparent; box-shadow:none; padding:28px 0 24px; gap:16px; justify-content:flex-start; flex-wrap:wrap; }
#app-main .tela > .topo strong { color:var(--cor-texto); font-size:30px; letter-spacing:-.8px; margin:0; flex:1; }
#app-main .tela > .topo > span:empty { display:none; }
#app-main .conteudo,#app-main .dashboard-conteudo { margin:0; padding:0; width:100%; max-width:none; overflow:visible; }
#app-main .sub-tela { width:100%; max-width:none; padding:28px 0 0; margin:0; }
#app-context { min-height:76px; display:flex; align-items:center; gap:16px; padding:14px 0; border-bottom:1px solid var(--cor-borda); background:var(--cor-fundo); box-shadow:none; position:static; }
#app-context-title { margin:0; font-size:13px; color:var(--cor-texto-suave); font-weight:600; flex:1; }
#app-context .topo-acoes { display:flex; align-items:center; gap:8px; }
#app-context button { min-height:44px; min-width:44px; width:auto; margin:0; }
#app-context #btn-sair { display:none; }
#app-menu-open { display:none; border:1px solid var(--cor-borda-controle); background:var(--cor-superficie); border-radius:8px; color:var(--cor-texto); align-items:center; justify-content:center; }
#app-messages { margin:18px 0; position:relative; padding-right:54px; line-height:1.6; }
#app-messages button { position:absolute; right:8px; top:6px; border:0; background:transparent; color:inherit; width:40px; height:40px; font-size:25px; }
.botao-principal,#btn-lancar { background:var(--cor-marca); color:var(--cor-sobre-marca); border:1px solid var(--cor-marca); border-radius:8px; min-height:44px; font-size:14px; font-weight:700; padding:11px 19px; box-shadow:none; }
.botao-principal:hover,#btn-lancar:hover { background:#ff823f; }
.botao-secundario,.botao-voltar { min-height:44px; border:1px solid var(--cor-borda-controle); border-radius:8px; background:var(--cor-superficie); color:var(--cor-primaria-texto); font-size:14px; padding:10px 16px; }
.campo label { color:var(--cor-texto); font-size:14px; font-weight:600; line-height:1.5; }
.campo input,.campo select,.campo textarea { min-height:44px; background:var(--cor-superficie); color:var(--cor-texto); border:1px solid var(--cor-borda-controle); border-radius:8px; font-size:14px; padding:10px 12px; min-width:0; }
.campo input:focus,.campo select:focus,.campo textarea:focus { border-color:var(--cor-foco); box-shadow:none; }
.campo input::placeholder,.campo textarea::placeholder { color:var(--cor-texto-suave); opacity:1; }
.campo small,.texto-suave { color:var(--cor-texto-suave); }
.botao-anexar { min-height:44px; color:var(--cor-primaria-texto); background:var(--cor-superficie); border:1px solid var(--cor-borda-controle); border-radius:8px; }
.campo-anexo,.campo-anexo-foto-unica { grid-column:1/-1; background:var(--cor-fundo-suave); padding:20px; border:1px dashed var(--cor-borda-controle); border-radius:8px; }
.preview-anexo,.foto-unica-area { min-width:0; }
.preview-info { min-width:0; overflow-wrap:anywhere; }
.fluxo-form { border:1px solid var(--cor-borda); border-radius:12px; padding:0; gap:0; box-shadow:none; max-width:1050px; margin-bottom:24px; overflow:hidden; }
.form-section { padding:26px 30px; border-bottom:1px solid var(--cor-borda); }
.form-section h2 { font-size:20px; color:var(--cor-texto); margin:0 0 22px; letter-spacing:-.4px; }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 24px; }
.field-grid .campo { margin:0; min-width:0; }
.form-actions { display:flex; gap:12px; justify-content:flex-end; padding:22px 30px; }
.form-actions button { width:auto; min-width:130px; margin:0; }
.fluxo-form > .mensagem:not(:empty) { margin:0 30px 24px; }
.fluxo-form > .botao-excluir-veiculo { margin:0 30px 24px; width:calc(100% - 60px); }
.fluxo-form > #btn-voz-mov { margin:20px 30px !important; align-self:flex-start; }
.fluxo-form > #voz-mov-status { margin:0 30px 16px !important; }
.opcoes-tipo { max-width:900px; }
.opcao-tipo { border:1px solid var(--cor-borda-controle); background:var(--cor-superficie); border-radius:12px; box-shadow:none; padding:32px; }
.opcao-icone { color:var(--cor-primaria-texto); }

/* Uma única navegação desktop/móvel; nenhum evento duplicado. */
#app-navigation { position:sticky; top:0; bottom:auto; left:auto; right:auto; width:230px; flex:0 0 230px; height:100dvh; padding:24px 12px 16px; display:flex; flex-direction:column; justify-content:flex-start; align-items:stretch; gap:3px; overflow-y:auto; overflow-x:hidden; background:var(--cor-menu); color:var(--cor-menu-texto); border:0; box-shadow:none; z-index:30; }
.sidebar-marca { display:flex; flex-direction:column; align-items:flex-start; padding:4px 12px 22px; gap:8px; color:var(--cor-menu-texto); }
.sidebar-marca .embalo-marca { --marca-tamanho:35px; }
.sidebar-marca .embalo-assinatura { font-size:11px; color:var(--cor-menu-suave); }
.sidebar-secao-label { display:block; padding:20px 15px 8px; font-size:10px; letter-spacing:1.6px; color:var(--cor-menu-suave); }
#app-navigation .menu-item { flex:none; width:100%; min-height:47px; display:flex; flex-direction:row; align-items:center; gap:12px; padding:10px 14px; font-size:14px; font-weight:600; text-align:left; background:transparent; color:var(--cor-menu-texto); border:0; border-radius:8px; margin:0; position:relative; }
#app-navigation .menu-item.ativo,#app-navigation .menu-item:hover { background:var(--cor-menu-ativo); color:var(--cor-menu-texto); }
#app-navigation .menu-item.ativo { box-shadow:inset 3px 0 var(--cor-marca); }
#app-navigation .menu-item:focus-visible,#app-collapse:focus-visible { outline-color:#FFAA70; outline-offset:-3px; }
#app-navigation .menu-icone { flex:0 0 20px; width:20px; height:22px; display:grid; place-items:center; font-size:20px; }
#app-navigation .menu-rotulo { font-size:14px; white-space:nowrap; }
#sidebar-btn-minha-conta { margin-top:auto !important; }
#app-collapse { display:flex; align-items:center; gap:12px; min-height:44px; margin:0 4px 10px; border:1px solid #58718A; border-radius:8px; color:var(--cor-menu-texto); background:transparent; padding:8px 12px; text-align:left; font-size:13px; }
#app-collapse > span:first-child { font-size:22px; }
.menu-compact #app-navigation { width:76px; flex-basis:76px; padding-left:10px; padding-right:10px; }
.menu-compact .sidebar-marca { padding-left:0; padding-right:0; }
.menu-compact .sidebar-marca .embalo-marca { --marca-tamanho:36px; }
.menu-compact .embalo-marca > span,.menu-compact .sidebar-marca .embalo-assinatura,.menu-compact .sidebar-secao-label,.menu-compact #app-navigation .menu-rotulo { display:none; }
.menu-compact #app-navigation .menu-item,.menu-compact #app-collapse { justify-content:center; padding-left:0; padding-right:0; }
.menu-compact #app-collapse > span:first-child { transform:rotate(180deg); }
#app-scrim { position:fixed; inset:0; background:#08152299; border:0; z-index:25; }
#app-nav-tooltip { position:fixed; left:84px; padding:9px 14px; background:var(--cor-menu); color:var(--cor-menu-texto); border:1px solid #58718A; border-radius:7px; z-index:50; font-size:13px; pointer-events:none; }
.drawer-open { overflow:hidden; }

/* Financeiro: título + ação, resumo do período, meta e extrato. */
.financeiro-header-row { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:26px; }
.financeiro-header-row h1 { font-size:36px; line-height:1.2; letter-spacing:-1px; color:var(--cor-texto); margin:8px 0; }
.page-eyebrow { color:var(--cor-texto-suave); font-size:10px; font-weight:650; letter-spacing:1.5px; }
#saudacao { font-size:14px; font-weight:400; color:var(--cor-texto-suave); }
#btn-lancar { display:flex; align-items:center; gap:8px; width:auto; margin:0; }
.financeiro-resumo { background:var(--cor-superficie); border:1px solid var(--cor-borda); border-radius:12px; padding:24px 28px; margin-bottom:20px; }
.financeiro-topo-direita { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.periodo-pills-grupo { display:flex; flex-wrap:wrap; gap:4px; }
.btn-periodo-pill,.filtro-btn { background:transparent; color:var(--cor-texto-suave); border:1px solid transparent; border-radius:6px; min-height:44px; padding:8px 12px; font-size:13px; }
.btn-periodo-pill.ativo,.filtro-btn.ativo { color:var(--cor-primaria-texto); background:var(--cor-fundo-suave); border-color:var(--cor-borda); font-weight:700; }
.btn-periodo-dropdown { display:flex; align-items:center; gap:8px; }
.btn-tema-header { width:44px; min-height:44px; border:0; border-radius:8px; color:var(--cor-texto-suave); background:transparent; }
#btn-tema-financeiro,.veiculo-topo-acoes { display:none; }
.table-scroll-hint { display:none; }
.cards-metricas-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:24px 0; gap:28px; }
.card-metrica-box { position:relative; min-width:0; padding:0 22px 0 0; border-right:1px solid var(--cor-borda); }
.card-metrica-box:last-child { border:0; padding:0; }
.card-metrica-titulo { color:var(--cor-texto-suave); font-size:13px; }
.card-metrica-valor { display:block; font-size:clamp(22px,2.2vw,32px); font-variant-numeric:tabular-nums; letter-spacing:-.7px; margin:7px 0; line-height:1.3; white-space:nowrap; }
.card-receitas .card-metrica-valor { color:var(--cor-receita); }
.card-despesas .card-metrica-valor { color:var(--cor-despesa); }
.card-metrica-wave-container { height:44px; overflow:hidden; opacity:.8; }
.card-metrica-wave-container svg { width:100%; height:44px; }
.meta-diaria-coluna { border-top:1px solid var(--cor-borda); padding-top:18px; }
.meta-diaria-label-linha { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:13px; }
.meta-rotulo-texto { color:var(--cor-texto-suave); }
.meta-valores-texto { font-weight:600; }
.btn-meta-config { border:0; background:transparent; color:var(--cor-primaria-texto); min-width:44px; min-height:44px; }
.meta-barra-trilho { height:6px; background:var(--cor-fundo-suave); border-radius:10px; margin-top:8px; overflow:hidden; }
.meta-barra-fill { height:100%; background:var(--cor-primaria-texto); border-radius:10px; }
.meta-editor { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
#meta-input { background:var(--cor-superficie); color:var(--cor-texto); border:1px solid var(--cor-borda-controle); border-radius:7px; padding:10px; width:140px; min-height:44px; }
.financeiro-links { margin:18px 0 26px; }
.toolbar-botoes-grupo { display:flex; gap:12px; flex-wrap:wrap; }
.btn-acao-escuro { display:flex; align-items:center; gap:8px; background:transparent; border:1px solid var(--cor-borda-controle); border-radius:8px; color:var(--cor-primaria-texto); min-height:44px; padding:10px 16px; font-size:13px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:26px 0 18px; }
.section-heading h2 { color:var(--cor-texto); font-size:23px; margin:6px 0 0; }
.section-heading p { font-size:12px; color:var(--cor-texto-suave); }
.filtro-barra-opcao3 { display:flex; flex-wrap:wrap; align-items:center; gap:16px; padding:18px 20px; border:1px solid var(--cor-borda); border-bottom:0; background:var(--cor-superficie); border-radius:12px 12px 0 0; }
.filtro-busca-wrap { position:relative; flex:1; min-width:180px; }
.busca-lupa-svg { position:absolute; left:12px; top:14px; color:var(--cor-texto-suave); }
#filtro-busca-mov { border:1px solid var(--cor-borda-controle); border-radius:8px; min-height:44px; padding:10px 40px; background:var(--cor-superficie); color:var(--cor-texto); width:100%; font-size:14px; }
.btn-limpar-busca-x { position:absolute; right:0; top:0; width:42px; height:44px; background:transparent; border:0; color:var(--cor-texto-suave); }
.filtro-pills-container,.filtro-pills-lista { display:flex; align-items:center; flex-wrap:wrap; gap:3px; }
.filtro-rotulo-prefixo { display:none; }
.tabela-card-opcao3 { overflow-x:auto; border:1px solid var(--cor-borda); border-radius:0 0 12px 12px; background:var(--cor-superficie); }
.tabela-opcao3 { border-collapse:collapse; width:100%; min-width:730px; font-size:14px; text-align:left; }
.tabela-opcao3 th { background:var(--cor-fundo-suave); color:var(--cor-texto-suave); font-size:12px; font-weight:600; white-space:nowrap; }
.tabela-opcao3 th,.tabela-opcao3 td { border-bottom:1px solid var(--cor-borda); padding:16px 14px; }
.tabela-opcao3 tbody tr:last-child td { border-bottom:0; }
.th-flex { display:flex; align-items:center; gap:6px; }
.col-valor { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.linha-receita .col-valor { color:var(--cor-receita); }
.linha-despesa .col-valor { color:var(--cor-despesa); }
.col-descricao { min-width:160px; max-width:280px; overflow-wrap:anywhere; }
.col-comprovante,.col-acoes { text-align:center; }
.btn-tabela-foto,.btn-tabela-menu { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; color:var(--cor-primaria-texto); background:transparent; border:1px solid var(--cor-borda); border-radius:7px; }
.tabela-vazio-box { padding:32px 16px; text-align:center; color:var(--cor-texto-suave); }
.tabela-vazio-box svg { margin-bottom:10px; }
.card-onboarding-saas { padding:20px 24px; background:var(--cor-fundo-suave); border:1px solid var(--cor-borda); border-radius:10px; margin-bottom:20px; }
.card-onboarding-topo,.onboarding-titulo-box { display:flex; gap:10px; align-items:center; justify-content:space-between; }
.btn-fechar-onboarding { width:44px; height:44px; border:0; background:transparent; color:var(--cor-texto-suave); }
.onboarding-passos-grid { display:flex; gap:24px; flex-wrap:wrap; }
.onboarding-passo { gap:16px; }

#app-confirm { color:var(--cor-texto); background:var(--cor-superficie); border:1px solid var(--cor-borda); border-radius:12px; padding:30px; width:min(500px,calc(100% - 32px)); margin:auto; box-shadow:var(--sombra); }
#app-confirm::backdrop { background:#081522a6; }
#app-confirm h2 { font-size:24px; margin:0 0 16px; }
#app-confirm p { font-size:15px; color:var(--cor-texto-suave); line-height:1.7; white-space:pre-line; }
.dialog-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:26px; }
.dialog-actions button { width:auto; }
.botao-principal.danger { color:var(--cor-despesa); border-color:var(--cor-despesa); background:var(--cor-despesa-clara); }

@media(max-width:1100px) { .cards-metricas-grid { gap:16px; } .card-metrica-box { padding-right:12px; } .card-metrica-valor { font-size:24px; } .filtro-pills-container { width:100%; } }
@media(max-width:899px) {
  .table-scroll-hint { display:block; color:var(--cor-texto-suave); font-size:12px; line-height:1.5; padding:10px 16px; margin:0; background:var(--cor-superficie); border:1px solid var(--cor-borda); border-bottom:0; }
  #app-context { min-height:68px; gap:8px; padding-top:calc(10px + env(safe-area-inset-top, 0px)); }
  #app-main { padding:0 22px calc(40px + env(safe-area-inset-bottom, 0px)); }
  #app-menu-open { display:inline-flex; }
  #app-navigation,.menu-compact #app-navigation { position:fixed; left:0; top:0; width:230px; height:100dvh; transform:translateX(-100%); padding:calc(22px + env(safe-area-inset-top, 0px)) 12px calc(16px + env(safe-area-inset-bottom, 0px)); }
  .menu-open #app-navigation { transform:translateX(0); }
  #app-collapse { display:none; }
  .menu-compact .sidebar-marca { padding:4px 12px 22px; }
  .menu-compact .embalo-marca > span,.menu-compact #app-navigation .menu-rotulo,.menu-compact .sidebar-marca .embalo-assinatura,.menu-compact .sidebar-secao-label { display:initial; }
  .menu-compact #app-navigation .menu-item { justify-content:flex-start; padding:10px 14px; }
  .cards-metricas-grid { gap:20px; }
}
@media(max-width:768px) {
  /* Evita auto-zoom no Safari iOS em inputs */
  input[type="text"],input[type="number"],input[type="date"],input[type="email"],input[type="password"],input[type="tel"],input[type="search"],select,textarea { font-size:16px !important; }
}
@media(max-width:600px) {
  #app-main { padding:0 16px calc(36px + env(safe-area-inset-bottom, 0px)); }
  #app-context { min-height:68px; gap:8px; }
  #app-context-title { font-size:12px; }
  #app-context .topo-acoes { gap:4px; }
  #app-main .tela > .topo strong { font-size:26px; }
  #app-main .tela > .topo { align-items:flex-start; flex-direction:column; padding:24px 0 20px; }
  .financeiro-header-row { align-items:flex-start; gap:16px; flex-direction:column; }
  .financeiro-header-row h1 { font-size:32px; }
  #btn-lancar { width:100%; justify-content:center; }
  .financeiro-resumo { padding:18px; }
  .cards-metricas-grid { grid-template-columns:1fr; gap:14px; margin:20px 0; }
  .card-metrica-box { display:grid; grid-template-columns:minmax(0,1fr) 90px; gap:12px; border-right:0; border-bottom:1px solid var(--cor-borda); padding:0 0 12px; }
  .card-metrica-wave-container { align-self:center; }
  .card-metrica-valor { font-size:27px; }
  .btn-periodo-pill { padding:7px 10px; font-size:12px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
  .financeiro-topo-direita { gap:0; }
  .field-grid { grid-template-columns:1fr; }
  .form-section { padding:22px 18px; }
  .form-actions { padding:20px 18px; flex-wrap:wrap; }
  .form-actions button { flex:1; min-width:100px; }
  .fluxo-form > .mensagem:not(:empty) { margin:0 18px 20px; }
  .section-heading { align-items:flex-start; flex-direction:column; gap:6px; }
  .filtro-barra-opcao3 { padding:16px; }
  .filtro-btn { font-size:12px; padding:8px 12px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
  .toolbar-botoes-grupo > button { flex:1; justify-content:center; }
  .dialog-actions { flex-direction:column-reverse; }
  .dialog-actions button { width:100%; }

  /* Lista de Movimentações em Cards Responsivos no Mobile */
  .table-scroll-hint { display:none !important; }
  .tabela-card-opcao3 { background:transparent; border:none; overflow-x:visible; box-shadow:none; }
  .tabela-opcao3 { display:block; width:100%; min-width:0; border:none; }
  .tabela-opcao3 thead { display:none; }
  .tabela-opcao3 tbody { display:flex; flex-direction:column; gap:12px; width:100%; }
  .tabela-opcao3 tr.linha-movimentacao { display:grid; grid-template-columns:minmax(0,1fr) auto auto; grid-template-areas:"desc valor valor" "cat pag pag" "data foto acoes"; gap:6px 10px; padding:14px 16px; background:var(--cor-superficie); border:1px solid var(--cor-borda); border-radius:10px; align-items:center; }
  .tabela-opcao3 tr.linha-movimentacao td { padding:0; border:none; line-height:1.4; }
  .tabela-opcao3 .col-descricao { grid-area:desc; font-weight:650; font-size:15px; color:var(--cor-texto); min-width:0; max-width:none; white-space:normal; overflow-wrap:anywhere; }
  .tabela-opcao3 .col-valor { grid-area:valor; text-align:right; font-weight:700; font-size:16px; white-space:nowrap; justify-self:end; }
  .tabela-opcao3 .col-categoria { grid-area:cat; font-size:12px; color:var(--cor-texto-suave); min-width:0; white-space:normal; }
  .tabela-opcao3 .col-pagamento { grid-area:pag; text-align:right; font-size:12px; color:var(--cor-texto-suave); justify-self:end; }
  .tabela-opcao3 .col-data { grid-area:data; font-size:12px; color:var(--cor-texto-suave); }
  .tabela-opcao3 .col-comprovante { grid-area:foto; justify-self:end; display:flex; align-items:center; }
  .tabela-opcao3 .col-acoes { grid-area:acoes; justify-self:end; display:flex; align-items:center; }
  .tabela-opcao3 tr:has(.tabela-vazio-td),.tabela-opcao3 td.tabela-vazio-td { display:block; width:100%; padding:24px 16px; border:1px solid var(--cor-borda); border-radius:10px; background:var(--cor-superficie); }
  .paginacao-financeiro button { min-height:44px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

/* Operação: checklist, jornada, produtividade e rotas. */
.operations-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:28px; }
.operations-heading h1 { font-size:36px; letter-spacing:-1px; margin:8px 0; color:var(--cor-texto); }
.operations-heading p { font-size:14px; line-height:1.6; margin:0; }
.operations-heading > button { flex:none; width:auto; }
.operations-page > .cabecalho-secao { margin-top:26px; }
.operations-page .cabecalho-secao h3 { font-size:21px; font-weight:650; color:var(--cor-texto); }
.checklist-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(270px,1fr); gap:24px; align-items:start; }
.card-checklist,.cronometro-card,.card-nova-parada,.grafico-card,.resumo-jornada { border:1px solid var(--cor-borda); border-radius:12px; background:var(--cor-superficie); padding:26px; box-shadow:none; }
.card-checklist { margin:0; }
.card-checklist-topo { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:18px; }
.card-checklist-topo strong { font-size:18px; }
.card-checklist-topo span { font-size:12px; }
.lista-checklist { display:flex; flex-direction:column; list-style:none; gap:0; padding:0; margin:0 0 20px; }
.item-checklist { display:flex; align-items:center; border-bottom:1px solid var(--cor-borda); gap:14px; min-height:58px; }
.item-checklist:last-child { border:0; }
.item-checklist input[type=checkbox] { display:block; width:22px; height:22px; flex:none; accent-color:var(--cor-primaria-texto); cursor:pointer; }
.item-checklist label { display:flex; align-items:center; gap:12px; min-height:52px; flex:1; cursor:pointer; color:var(--cor-texto); font-size:14px; }
.chk-marca { display:none; }
.item-checklist input:checked + label { font-weight:650; }
.streak-banner { display:flex; background:var(--cor-fundo-suave); color:var(--cor-primaria-texto); border:1px solid var(--cor-borda); border-radius:8px; padding:14px 20px; margin-bottom:20px; }
.streak-banner strong { font-variant-numeric:tabular-nums; margin-right:4px; }
.cronometro-card { min-height:240px; border-top:3px solid var(--cor-marca); }
.cronometro-card h3 { font-size:23px; margin-bottom:14px; }
.cronometro-conteudo p { font-size:14px; line-height:1.65; margin-bottom:18px; }
.cronometro-display { font-size:clamp(30px,3.5vw,48px); font-weight:700; letter-spacing:-1px; font-variant-numeric:tabular-nums; color:var(--cor-primaria-texto); margin:12px 0; }
.botao-iniciar,.botao-encerrar { min-height:44px; border:1px solid var(--cor-marca); background:var(--cor-marca); color:var(--cor-sobre-marca); padding:12px 18px; border-radius:8px; font-weight:700; font-size:14px; }
.botao-iniciar:disabled,.botao-encerrar:disabled { opacity:.65; }
.resumo-jornada { display:flex; margin-bottom:20px; max-width:1050px; }
.resumo-jornada strong { display:block; font-size:28px; color:var(--cor-primaria-texto); }
.historico-checklist,.lista-jornadas,.lista-paradas { display:flex; flex-direction:column; gap:0; border:1px solid var(--cor-borda); border-radius:10px; overflow:hidden; background:var(--cor-superficie); }
.historico-item,.item-jornada,.item-parada { padding:17px 20px; display:flex; gap:18px; align-items:center; border-bottom:1px solid var(--cor-borda); }
.historico-item:last-child,.item-jornada:last-child,.item-parada:last-child { border-bottom:0; }
.historico-item { justify-content:space-between; font-size:14px; }
.historico-itens { color:var(--cor-texto-suave); }
.jornada-icone { display:none; }
.jornada-info { flex:1; min-width:0; }
.jornada-data,.parada-titulo { font-weight:600; font-size:14px; color:var(--cor-texto); overflow-wrap:anywhere; }
.jornada-detalhes,.parada-endereco,.parada-obs { color:var(--cor-texto-suave); font-size:13px; line-height:1.6; margin-top:4px; overflow-wrap:anywhere; }
.jornada-duracao { font-weight:650; font-variant-numeric:tabular-nums; color:var(--cor-primaria-texto); white-space:nowrap; }
.jornada-excluir,.btn-excluir-parada,.btn-entregue-parada,.btn-mover-parada { min-width:44px; min-height:44px; border:1px solid var(--cor-borda-controle); background:var(--cor-superficie); color:var(--cor-primaria-texto); border-radius:7px; padding:8px; font-size:14px; }
.btn-mover-parada:disabled { opacity:.45; }
.list-pagination { display:flex; align-items:center; justify-content:flex-end; gap:16px; margin:14px 0 24px; font-size:12px; color:var(--cor-texto-suave); }
.list-pagination button { width:auto; }
.prod-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:18px; font-size:13px; }
.prod-toolbar select { min-height:44px; padding:10px 14px; border:1px solid var(--cor-borda-controle); border-radius:8px; color:var(--cor-texto); background:var(--cor-superficie); }
.prod-toolbar span { color:var(--cor-texto-suave); }
.operation-status { padding:15px 18px; background:var(--cor-fundo-suave); border:1px solid var(--cor-borda); border-radius:8px; color:var(--cor-texto-suave); font-size:13px; margin-bottom:24px; line-height:1.6; }
.insights-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--cor-borda); border-radius:12px; background:var(--cor-superficie); padding:22px 6px; margin:20px 0; }
.card-insight { padding:0 22px; border-right:1px solid var(--cor-borda); min-width:0; }
.card-insight:last-child { border:0; }
.insight-info { display:flex; flex-direction:column; gap:8px; }
.insight-rotulo { color:var(--cor-texto-suave); font-size:12px; }
.insight-valor { font-size:clamp(17px,1.8vw,25px); color:var(--cor-texto); font-weight:650; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.dica-card { display:flex; padding:16px 20px; border-left:3px solid var(--cor-marca); background:var(--cor-fundo-suave); margin-bottom:24px; font-size:13px; line-height:1.65; color:var(--cor-texto); }
.dica-card p { margin:0; }
.grafico-card { min-width:0; margin-bottom:24px; }
.grafico-card h3 { font-size:19px; margin-bottom:7px; }
.grafico-card .texto-suave { font-size:13px; margin-bottom:22px; line-height:1.6; }
.grafico-wrapper { position:relative; height:280px; width:100%; }
.graficos-duplos-desktop { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.chart-table { margin-top:16px; border-top:1px solid var(--cor-borda); font-size:13px; }
.chart-table summary { min-height:44px; padding:14px 0; cursor:pointer; color:var(--cor-primaria-texto); }
.chart-table-scroll { overflow-x:auto; }
.chart-table table { width:100%; border-collapse:collapse; text-align:left; font-size:12px; }
.chart-table caption { text-align:left; margin-bottom:10px; color:var(--cor-texto-suave); }
.chart-table td,.chart-table th { padding:10px; border-bottom:1px solid var(--cor-borda); }
.chart-table td { text-align:right; white-space:nowrap; }
.card-nova-parada { margin-bottom:24px; }
.card-nova-parada h2 { font-size:21px; margin-bottom:20px; }
#form-parada { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; padding:0; background:transparent; box-shadow:none; max-width:none; }
#form-parada .campo { margin:0; }
#form-parada .campo:first-child,#form-parada .campo:nth-child(3),#mensagem-parada { grid-column:1/-1; }
#btn-add-parada { align-self:end; }
.parada-numero { color:var(--cor-primaria-texto); background:var(--cor-fundo-suave); width:36px; height:36px; display:grid; place-items:center; border-radius:50%; font-weight:650; flex:none; }
.parada-info { flex:1; min-width:0; }
.parada-ordenar,.parada-acoes { display:flex; gap:6px; flex:none; }
.parada-ordenar { flex-direction:column; }
.parada-entregue .parada-numero { color:var(--cor-receita); background:var(--cor-receita-clara); }
.parada-entregue .parada-titulo { text-decoration:line-through; }
.rota-acoes { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:20px 0; }
.rota-acoes button { width:auto; margin:0; min-height:44px; }
.botao-abrir-waze { border:1px solid var(--cor-borda-controle); border-radius:8px; color:var(--cor-primaria-texto); background:var(--cor-superficie); padding:10px 18px; }
#otimizar-rota-status { width:100%; font-size:13px; line-height:1.6; }
.card-relatorios-cta { display:flex; gap:20px; align-items:center; flex-wrap:wrap; padding:22px 24px; border:1px solid var(--cor-borda); border-radius:10px; background:var(--cor-superficie); margin-bottom:24px; }
.cta-texto { flex:1; min-width:180px; }
.cta-texto strong { display:block; font-size:16px; color:var(--cor-texto); margin-bottom:8px; }
.cta-texto p { font-size:13px; line-height:1.6; color:var(--cor-texto-suave); margin:0; }
.botao-cta { border:1px solid var(--cor-borda-controle); background:var(--cor-superficie); color:var(--cor-primaria-texto); border-radius:8px; min-height:44px; padding:10px 16px; font-weight:650; }
@media(max-width:1100px) { .insights-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 0; } .card-insight:nth-child(2) { border:0; } .checklist-grid { grid-template-columns:1fr; } .parada-acoes { flex-direction:column; } }
@media(max-width:700px) { .operations-heading { align-items:flex-start; flex-direction:column; gap:18px; } .operations-heading h1 { font-size:30px; } .operations-heading > button { width:100%; } .card-checklist,.cronometro-card,.card-nova-parada,.grafico-card,.resumo-jornada { padding:20px 16px; } .card-checklist-topo { flex-wrap:wrap; gap:8px; } .graficos-duplos-desktop { grid-template-columns:1fr; gap:0; } .grafico-wrapper { height:240px; } .list-pagination { justify-content:space-between; gap:8px; flex-wrap:wrap; } .list-pagination span { font-size:11px; } .item-jornada,.historico-item { padding:14px 12px; gap:10px; } .item-parada { display:grid; grid-template-columns:44px 32px minmax(0,1fr); gap:10px; padding:14px 12px; } .parada-acoes { grid-column:2/-1; flex-direction:row; justify-content:flex-end; } .parada-numero { width:30px; height:30px; } #form-parada { grid-template-columns:1fr; } #form-parada .campo,#btn-add-parada { grid-column:1/-1; } .rota-acoes button { flex:1; } .card-insight { padding:0 14px; } .insight-valor { font-size:18px; } }

/* PWA — Instalação, Badges e Modais */
.pwa-badge { display:inline-block; font-size:12px; font-weight:600; padding:6px 12px; border-radius:6px; }
.pwa-badge-instalado { background:var(--cor-receita-clara); color:var(--cor-receita); border:1px solid var(--cor-borda); }
.pwa-badge-pronto { background:var(--tom-azul-bg); color:var(--tom-azul-texto); border:1px solid var(--cor-borda); }
.pwa-badge-navegador { background:var(--cor-fundo-suave); color:var(--cor-texto-suave); border:1px solid var(--cor-borda); }

.modal-pwa-backdrop { position:fixed; inset:0; background:rgba(0,0,0,0.65); display:none; place-items:center; z-index:9999; padding:16px; }
.modal-pwa-backdrop.ativa { display:grid; }
.modal-pwa-card { background:var(--cor-superficie); border:1px solid var(--cor-borda); border-radius:12px; max-width:440px; width:100%; padding:24px; box-shadow:var(--sombra); }
.modal-pwa-topo { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.modal-pwa-topo h3 { font-size:18px; margin:0; color:var(--cor-texto); font-weight:650; }
.btn-fechar-modal-pwa { background:transparent; border:0; color:var(--cor-texto-suave); font-size:16px; cursor:pointer; min-width:44px; min-height:44px; display:grid; place-items:center; }
.btn-fechar-modal-pwa:hover { color:var(--cor-texto); }
.passos-instalacao-pwa { margin:14px 0 0 20px; padding:0; line-height:1.7; font-size:14px; color:var(--cor-texto); }
.passos-instalacao-pwa li { margin-bottom:8px; }
.modal-pwa-rodape { margin-top:20px; display:flex; justify-content:flex-end; }
