/* raga.css — camada de tema única Raga Motors. Carregada por ÚLTIMO no <head>.
   ===================================================================
   REDESIGN "COCKPIT" (Direção B) — substitui "Pátio" (Direção A).
   Conceito: painel = instrumento de precisão. Neutro grafite FRIO,
   verde só como SINAL/ação, geometria RETA (raio 8–12, botão não-pill),
   UMA métrica-herói por tela, hairlines, zero gradiente empilhado.
   Tipografia: Satoshi (variable, self-hosted) — corpo, títulos e números.
   Os NOMES de token/classe são os mesmos do Pátio → views não mudam;
   só mudam os VALORES + entram os componentes-assinatura no fim.
   =================================================================== */
@font-face{font-family:'Satoshi';font-style:normal;font-weight:300 900;font-display:swap;
  src:url('/fonts/satoshi.woff2') format('woff2');}

:root{
  /* ===== Neutros: rampa FRIA (grafite) — contraste ao papel quente do Pátio ===== */
  --ink:#0E1621; --ink-2:#1B2531; --card:#FFFFFF; --bg:#F5F7FA;
  --line:#E4E9F0; --line-2:#EFF2F7; --muted:#5A6675; --muted-2:#727F90;
  /* ===== Marca (verde canônico #6CB33F) — agora só SINAL/ação ===== */
  --brand:#6CB33F; --brand-strong:#3E7A22; --brand-ink:#FFFFFF; --brand-text:#356818; --brand-tint:#ECF5E1;
  /* ===== Estados (tom frio; nenhum reusa o verde da marca) ===== */
  --ok:#15803D; --ok-bg:#E7F4EC;
  --warn:#B45309; --warn-bg:#FBEEDA;
  --danger:#C0342B; --danger-bg:#FCECEA;
  --info:#2563EB; --info-bg:#E7EEFE;
  /* Alias legado do status "atrasado" → warn */
  --atraso:var(--warn); --atraso-bg:var(--warn-bg);
  /* ===== Sinal financeiro (margem/saldo) — sempre com sinal/seta ===== */
  --pos:#15803D; --neg:#C0342B;
  /* ===== Paleta de gráfico (azul = série única; sem rosa) ===== */
  --c1:#6CB33F; --c2:#2563EB; --c3:#14B8C4; --c4:#8B5CF6; --c5:#EAB308; --c6:#0EA5A5;
  /* ===== Não-cor: raios MAIS RETOS que o Pátio (lá 16 + pill) + elevações sutis ===== */
  --r-sm:8px; --r-md:10px; --r-lg:12px; --radius:12px; --radius-pill:999px;
  --sh-soft:0 1px 2px rgba(14,22,33,.05); --sh-raised:0 14px 34px -18px rgba(14,22,33,.30);
  /* Alias legado: views antigas usam var(--afx-line, #...) — aponta pra linha Raga. */
  --afx-line:#E4E9F0;
  --font:'Satoshi',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --display:'Satoshi',system-ui,sans-serif;
  --mono:'Satoshi',ui-monospace,SFMono-Regular,Menlo,monospace;
  /* Neutraliza as vars dinâmicas por-empresa do master (identidade Raga fixa): */
  --btn-primary:var(--brand); --btn-primary-ink:var(--brand-ink);
  --sidebar-bg:#0E1621; --sidebar-hover:#151F2B; --sidebar-active:#6CB33F;
}
body{background:var(--bg);color:var(--ink); font-family:var(--font);}
h1,h2,h3,h4,.af-title{font-family:var(--display);font-weight:700;letter-spacing:-.02em;}
/* Números tabulares em mono (preços, placas, km, KPIs) */
.mono,.af-kpi .val,.vei-placa,.dt-num{font-family:var(--mono);font-variant-numeric:tabular-nums;}

/* ---- Botões (RETOS — não pill; ação = brand-strong) ---- */
.btn-primary,.btn-success{background:var(--brand-strong);border-color:var(--brand-strong);color:var(--brand-ink);}
.btn-primary:hover,.btn-success:hover{background:var(--brand-text);border-color:var(--brand-text);color:#fff;}
.btn-outline-primary{color:var(--brand-text);border-color:var(--brand);}
.btn-outline-primary:hover{background:var(--brand);color:var(--brand-ink);}
.btn{border-radius:var(--r-sm);font-weight:600;}
.btn-ico{width:34px;height:34px;display:inline-grid;place-items:center;padding:0;}
/* ---- Cards / surfaces ---- */
.card,.af-soft-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);}
.card-header,.bg-light{background:var(--bg)!important;border-color:var(--line);}
/* ---- Forms ---- */
.form-control,.form-select{border-radius:var(--r-sm);border-color:var(--line);}
.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint);}
/* ---- Tabelas + DataTables ---- */
.table>:not(caption)>*>*{border-color:var(--line);}
.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:var(--bg);}
table.dataTable td .badge.bg-dark{background:var(--ink)!important;font-family:var(--mono);letter-spacing:.06em;}
.dataTables_filter input,.dataTables_length select{border-radius:8px;border:1px solid var(--line);}
/* ---- toastr ---- */
#toast-container>.toast-success{background-color:var(--brand);color:var(--brand-ink);}
/* ---- flatpickr ---- */
.flatpickr-day.selected{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);}

/* ===================================================================
   Vocabulário de componentes do app — classes af-* / stbadge /
   empty-state / hist-* usadas nas views.
   =================================================================== */

/* ---- KPIs ---- */
.af-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;}
.af-kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;}
.af-kpi .lbl{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;}
.af-kpi .val{font-family:var(--mono);font-size:26px;font-weight:600;color:var(--ink);line-height:1.1;margin-top:4px;}
.af-kpi .sub{font-size:12px;color:var(--muted-2);margin-top:2px;}
.af-kpi.accent-blue{border-color:var(--info);background:var(--info-bg);}
.af-kpi.accent-blue .val{color:var(--info);}
/* ---- Tiles / cards de conteúdo ---- */
.af-tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;}
.af-ch{margin-bottom:12px;} .af-ch b{font-weight:700;}
.af-soft-card{box-shadow:var(--sh-soft);}
/* ---- Status badges ---- */
.stbadge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;
  padding:3px 10px;border-radius:var(--radius-pill);}
.stbadge.verde{background:var(--brand-tint);color:var(--brand-text);}
.stbadge.ambar{background:var(--atraso-bg);color:var(--atraso);}
.stbadge.slate{background:#EAEEF3;color:var(--muted);}
/* ---- Empty state ---- */
.empty-state,.af-empty-state{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:48px 24px;text-align:center;color:var(--muted);}
.empty-state .ico,.af-empty-state i{font-size:2.2rem;color:var(--muted-2);margin-bottom:12px;display:block;}
/* ---- Títulos / banners de marca ---- */
.af-title{font-weight:800;letter-spacing:-.03em;}
.af-banner{background:var(--ink);color:#fff;border-radius:var(--radius);}
.af-namechip{background:var(--brand-tint);color:var(--brand-text);border-radius:var(--radius-pill);padding:2px 10px;font-weight:600;}
/* ---- Botão "af-btn" (dashboard header) — reto ---- */
.af-btn{display:inline-flex;align-items:center;gap:8px;background:var(--brand-strong);color:var(--brand-ink);
  font-weight:600;border:none;border-radius:var(--r-sm);padding:11px 18px;text-decoration:none;}
.af-btn:hover{background:var(--brand-text);color:#fff;}

/* ---- KPIs: acentos extras ---- */
.af-kpi.accent-green{border-color:var(--brand);background:var(--brand-tint);}
.af-kpi.accent-green .val{color:var(--brand-text);}
.af-kpi.accent-amber{border-color:var(--warn);background:var(--warn-bg);}
.af-kpi.accent-amber .val{color:var(--warn);}
.af-kpi.accent-red{border-color:var(--danger);background:var(--danger-bg);}
.af-kpi.accent-red .val{color:var(--danger);}

/* ---- Status badges: cores extras ---- */
.stbadge.azul{background:var(--info-bg);color:var(--info);}
.stbadge.vermelho{background:var(--danger-bg);color:var(--danger);}
.stbadge.laranja{background:var(--warn-bg);color:var(--warn);}
.stbadge.violeta{background:#EDE9F8;color:#5B3E8F;}

/* ---- Empty state: texto de apoio ---- */
.empty-state .s,.af-empty-state .s{font-weight:600;font-size:.9rem;}

/* ---- Banners de estado (topo de detalhe / avisos) ---- */
.af-banner{display:flex;align-items:center;gap:12px;padding:13px 16px;font-weight:700;margin-bottom:18px;border:1px solid transparent;}
.af-banner .b-ico{font-size:1.1rem;}
.af-banner.warn{background:var(--warn-bg);border-color:var(--warn);color:var(--warn);}
.af-banner.danger{background:var(--danger-bg);border-color:var(--danger);color:var(--danger);}
.af-banner.ok{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-text);}
.af-banner.info{background:var(--info-bg);border-color:var(--info);color:var(--info);}

/* ---- Linhas clicáveis (DataTables / listas) ---- */
tr[data-href],.linha-clicavel{cursor:pointer;}
tr[data-href]:focus-visible,.linha-clicavel:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;}

/* ---- Ações de linha: "Ver" sólido / "Editar" suave (variações de .btn-ico) ---- */
.btn-primary.btn-ico{box-shadow:0 2px 7px rgba(62,122,34,.28);}
.btn-outline-primary.btn-ico{background:var(--brand-tint);color:var(--brand-text);border-color:rgba(53,104,24,.16);}
.btn-outline-primary.btn-ico:hover,.btn-outline-primary.btn-ico:focus{background:#E1EFD1;color:var(--brand-text);border-color:rgba(53,104,24,.34);}
.btn-outline-primary.btn-ico:active,.btn-outline-primary.btn-ico.active{background:#D6E8C2;color:var(--brand-text);border-color:rgba(53,104,24,.4);}

/* ---- Cabeçalho / subtítulo / rodapé de ações de página ---- */
.af-hdr{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.af-sub{margin:5px 0 0;color:var(--muted);font-size:13.5px;}
.af-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px;}
.af-actions-danger{display:flex;gap:8px;}
@media (max-width:576px){
  .af-actions{flex-direction:column;align-items:stretch;}
  .af-actions-danger{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
}

/* ---- Chip do logo (sidebar) ---- */
.af-logo-chip{display:inline-flex;align-items:center;text-decoration:none;background:#fff;border-radius:10px;padding:9px 14px;box-shadow:0 1px 3px rgba(0,0,0,.28);}
.af-logo-img{display:block;height:56px;width:auto;max-width:210px;object-fit:contain;}

/* ---- Crédito Studio Sora (rodapé do site) ---- */
.af-sora-credit{display:inline-flex;align-items:center;gap:11px;margin-top:16px;padding:7px 16px 7px 8px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--card);box-shadow:0 2px 10px -4px rgba(14,22,33,.14);text-decoration:none;transition:box-shadow .16s,border-color .16s,transform .16s;}
.af-sora-credit:hover{border-color:var(--muted-2);box-shadow:0 8px 20px -8px rgba(14,22,33,.28);transform:translateY(-1px);}
.af-sora-credit img{width:32px;height:32px;border-radius:50%;display:block;box-shadow:0 1px 4px rgba(14,22,33,.18);}
.af-sora-credit .af-sora-eyebrow{display:block;font-size:.68rem;letter-spacing:.02em;color:var(--muted-2);line-height:1.1;}
.af-sora-credit .af-sora-name{font-size:.9rem;font-weight:700;color:var(--ink);}
.af-sora-credit .af-sora-site{font-size:.76rem;color:var(--muted);}

/* ---- Card herói (.af-soft-card) — separação por superfície+hairline ---- */
.af-soft-card{position:relative;}

/* ---- Cards de histórico (.hist-*, partials/hist-cards-style.blade.php) ---- */
.hist-mobile{display:none;}
@media (max-width:767.98px){
  .hist-desktop{display:none!important;}
  .hist-mobile{display:flex;flex-direction:column;gap:0;}
}
.hist-list{position:relative;}
.hist-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:15px;box-shadow:0 1px 2px rgba(14,22,33,.05);cursor:pointer;margin-bottom:12px;transition:box-shadow .16s ease,transform .1s ease;}
.hist-card:last-child{margin-bottom:0;}
.hist-card:active{transform:scale(.99);}
.hist-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}
.hist-top{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.hist-num{font-weight:800;font-family:var(--mono);color:var(--muted);font-size:.9rem;}
.hist-veic{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:10px;}
.hist-veic .badge-placa{display:inline-block;background:var(--bg);color:var(--ink);border:1px solid var(--line);font-weight:800;letter-spacing:.08em;font-size:.82rem;padding:3px 9px;border-radius:7px;font-family:var(--mono);}
.hist-modelo{font-weight:700;color:var(--ink);font-size:.95rem;}
.hist-serv{display:flex;align-items:flex-start;gap:8px;font-size:.88rem;color:var(--muted);margin-top:9px;line-height:1.4;}
.hist-serv i{font-size:.78rem;color:var(--muted-2);margin-top:3px;flex:0 0 auto;}
.hist-resp,.hist-when{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;color:var(--muted);margin-top:7px;}
.hist-resp i,.hist-when i{font-size:.76rem;color:var(--muted-2);}
.hist-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);}
.hist-total{font-weight:800;font-size:1.1rem;color:var(--ink);}
.hist-ver{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.88rem;color:var(--brand-text);}

/* ---- Formulário padrão de cadastro (.ucad) ---- */
.ucad .ucad-sec{display:flex;align-items:center;gap:12px;margin:0 0 18px;}
.ucad .ucad-sec.mt{margin-top:30px;}
.ucad .ucad-sec-ico{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;font-size:1rem;}
.ucad .ucad-sec-ico.is-user,.ucad .ucad-sec-ico.is-info{background:var(--brand-tint);color:var(--brand-text);}
.ucad .ucad-sec-ico.is-lock{background:var(--atraso-bg);color:var(--atraso);}
.ucad .ucad-sec-tt{font-weight:800;font-size:1rem;color:var(--ink);line-height:1.15;font-family:var(--display);}
.ucad .ucad-sec-hint{font-size:.8rem;color:var(--muted);margin-top:1px;}
.ucad .ucad-sec-line{flex:1 1 auto;height:1px;background:linear-gradient(90deg,var(--line),transparent);margin-left:4px;}
.ucad .form-label{font-weight:600;font-size:.8rem;color:var(--muted);margin-bottom:6px;letter-spacing:.01em;}
.ucad .form-control,.ucad .form-select{height:46px;border-radius:var(--r-sm);border:1.5px solid var(--line);color:var(--ink);font-size:.95rem;}
.ucad textarea.form-control{height:auto;min-height:92px;padding-top:10px;}
.ucad .ucad-status{display:flex;align-items:center;height:46px;}
.ucad .form-switch{padding-left:0;display:inline-flex;align-items:center;gap:12px;margin:0;min-height:auto;}
.ucad .form-switch .form-check-input{width:46px;height:26px;margin:0;cursor:pointer;background-color:#cfd6e2;border-color:transparent;box-shadow:none;}
.ucad .form-switch .form-check-input:checked{background-color:var(--brand);border-color:transparent;}
.ucad .form-switch .form-check-input:focus{box-shadow:0 0 0 3px var(--brand-tint);border-color:transparent;}
.ucad .form-switch .form-check-label{font-weight:600;color:var(--ink);cursor:pointer;}
.ucad .input-group .ucad-eye{width:48px;border:1.5px solid var(--line);background:var(--bg);color:var(--muted);display:flex;align-items:center;justify-content:center;}
.ucad .input-group .ucad-eye:hover{color:var(--brand-text);background:var(--brand-tint);}
.ucad .ucad-gen{display:flex;align-items:stretch;gap:10px;max-width:560px;}
.ucad .ucad-gen-btn{flex:0 0 auto;height:46px;border-radius:var(--r-sm);font-weight:600;display:inline-flex;align-items:center;gap:7px;padding:0 16px;border:1.5px solid transparent;}
.ucad .ucad-gen-btn.is-gerar{background:var(--bg);color:var(--ink);border-color:var(--line);}
.ucad .ucad-gen-btn.is-gerar:hover{background:var(--line);}
.ucad .ucad-gen-btn.is-usar{background:var(--brand-strong);color:var(--brand-ink);}
.ucad .ucad-gen-btn.is-usar:hover{background:var(--brand-text);color:#fff;}
.ucad .ucad-gen .form-control{flex:1 1 auto;font-family:var(--mono);letter-spacing:.03em;background:var(--bg);}
.ucad .ucad-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:30px;padding-top:20px;border-top:1px solid var(--line);flex-wrap:wrap;}
.ucad .ucad-foot .btn{border-radius:var(--r-sm);font-weight:600;padding:11px 22px;}
.ucad .ucad-foot .btn-voltar2{background:var(--card);color:var(--muted);border:1.5px solid var(--line);}
.ucad .ucad-foot .btn-voltar2:hover{border-color:var(--muted-2);color:var(--ink);}
.ucad .ucad-foot .btn-salvar2,.ucad .btn-success{background:var(--brand-strong);color:var(--brand-ink);border:0;}
.ucad .ucad-foot .btn-salvar2:hover,.ucad .btn-success:hover,.ucad .btn-success:focus{background:var(--brand-text);color:#fff;}
/* ---- Shell de formulário padrão: .ucad dentro de .rtbl-shell + header .rtbl-hdr ---- */
.rform{padding:22px 24px 26px;}
.rform-back{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:14px;border-radius:var(--r-sm);padding:10px 15px;text-decoration:none;background:var(--card);color:var(--muted);border:1px solid var(--line);transition:border-color .15s,color .15s,transform .1s;}
.rform-back:hover{border-color:var(--muted-2);color:var(--ink);}
.rform-back:active{transform:scale(.97);}
.rform-back .lu{width:16px;height:16px;}
.ucad .ucad-sec-ico .lu{width:18px;height:18px;}
.ucad .ucad-foot .btn .lu{width:16px;height:16px;margin-right:6px;vertical-align:-3px;}
@media (max-width:560px){.rform{padding:18px 16px 20px;}}

/* ---- Sidebar: itens "em breve" + badge ---- */
.sidebar-menu .nav-link.em-breve{opacity:.5;cursor:default;pointer-events:none;}
.sidebar-menu .menu-badge{margin-left:auto;font-size:9px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;background:rgba(108,179,63,.18);color:#8fce5f;
  padding:2px 7px;border-radius:999px;white-space:nowrap;}

/* ---- Botões neutros (Voltar/Listar/Cancelar): neutro Raga, não azul ---- */
.btn-secondary{ background:var(--ink); border-color:var(--ink); color:#fff; }
.btn-secondary:hover{ background:#000; border-color:#000; color:#fff; }
.btn-outline-secondary{ color:var(--muted); border-color:var(--line); background:var(--card); }
.btn-outline-secondary:hover{ background:var(--bg); color:var(--ink); border-color:var(--muted-2); }
.text-primary{ color:var(--brand-text) !important; }

/* ---- Neutraliza os verdes do Bootstrap: só o verde da marca vale ---- */
.bg-success{ background-color:var(--brand)!important; }
.text-success{ color:var(--brand-text)!important; }
.badge.bg-success,.badge.text-bg-success{ background-color:var(--brand)!important; color:var(--brand-ink)!important; }
.btn-outline-success{ color:var(--brand-text); border-color:var(--brand); }
.btn-outline-success:hover,.btn-outline-success:focus{ background:var(--brand); color:var(--brand-ink); }

/* ===== Tokens semânticos de 1ª classe ===== */
/* ---- Vencimento — sempre com ícone/rótulo, nunca cor sozinha ---- */
.due{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; border-radius:6px; padding:4px 9px; white-space:nowrap; }
.due-over{ background:var(--danger-bg); color:var(--danger); }
.due-today{ background:var(--warn-bg); color:var(--warn); }
.due-soon{ background:var(--info-bg); color:var(--info); }
.due-settled{ background:var(--ok-bg); color:var(--ok); }
/* ---- Sinal financeiro (margem/saldo) ---- */
.fin-pos{ color:var(--pos); font-weight:600; font-family:var(--mono); font-variant-numeric:tabular-nums; }
.fin-neg{ color:var(--neg); font-weight:600; font-family:var(--mono); font-variant-numeric:tabular-nums; }
/* ---- Faixa de urgência (lista de contas por vencimento) ---- */
.urg-row{ display:flex; align-items:center; gap:14px; padding:12px 14px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--card); }
.urg-row.is-over{ border-left:3px solid var(--danger); }
.urg-row.is-today{ border-left:3px solid var(--warn); }
.urg-row.is-soon{ border-left:3px solid var(--info); }
.urg-row .urg-amt{ margin-left:auto; font-weight:600; font-family:var(--mono); font-variant-numeric:tabular-nums; }
/* ---- Total financeiro grudado no rodapé ---- */
.fin-total-bar{ position:sticky; bottom:0; display:flex; gap:24px; flex-wrap:wrap; background:linear-gradient(160deg,var(--ink),var(--ink-2)); color:#fff; border-radius:var(--r-md); padding:14px 18px; margin-top:14px; box-shadow:var(--sh-raised); }
.fin-total-bar .l{ font-size:11px; text-transform:uppercase; letter-spacing:.08em; opacity:.7; }
.fin-total-bar .v{ font-size:20px; font-weight:600; margin-top:2px; font-family:var(--mono); font-variant-numeric:tabular-nums; }

/* ---- DataTables + Bootstrap: paginação/controles no visual Raga ---- */
.page-item.active .page-link{ background:var(--brand); border-color:var(--brand); color:var(--brand-ink); }
.page-link{ color:var(--brand-text); }
.page-link:hover{ color:var(--brand-text); background:var(--bg); }
.page-link:focus{ box-shadow:0 0 0 3px var(--brand-tint); }
.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input{ border:1px solid var(--line); border-radius:8px; padding:5px 10px; }
.dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter{ font-size:13px; color:var(--muted); margin-bottom:12px; }
.dataTables_wrapper .dataTables_info{ font-size:12.5px; color:var(--muted-2); }
table.dataTable thead th{ font-weight:700; font-size:12.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--line); }
table.dataTable.no-footer{ border-bottom:1px solid var(--line); }
/* ---- Cabeçalho de tabela padronizado: mata o gradiente roxo legado de style.min.css
   (.table thead{background:linear-gradient(#667eea,#764ba2);color:white}) em TODAS as tabelas. ---- */
.table thead,.table>thead{ background:transparent !important; }
.table thead th{ background:transparent !important; color:var(--muted) !important; font-weight:700; font-size:12.5px;
  text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--line); }
.table thead td{ background:transparent !important; color:var(--muted) !important; }

/* ---- Busca (dataTables_filter): input refinado, foco de marca. Padrão global. ---- */
.dataTables_wrapper .dataTables_filter{ margin-bottom:14px; }
.dataTables_wrapper .dataTables_filter label{ font-size:12.5px; font-weight:600; color:var(--muted); display:inline-flex; align-items:center; gap:9px; white-space:nowrap; }
.dataTables_wrapper .dataTables_filter input{ margin:0; height:40px; min-width:min(260px,58vw); border:1px solid var(--line); border-radius:10px; padding:0 14px; background:var(--card); color:var(--ink); font-size:13.5px; transition:border-color .15s, box-shadow .15s; }
.dataTables_wrapper .dataTables_filter input::placeholder{ color:var(--muted-2); }
.dataTables_wrapper .dataTables_filter input:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 4px var(--brand-tint); }
/* ---- Ordenação: par de triângulos compactos e discretos; direção ativa em ink. ---- */
table.dataTable thead > tr > th.sorting,
table.dataTable thead > tr > th.sorting_asc,
table.dataTable thead > tr > th.sorting_desc{ padding-right:20px !important; }
table.dataTable thead .sorting:before, table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:before, table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:before, table.dataTable thead .sorting_desc:after{
  right:.5em; bottom:auto; top:50%; font-size:.56em; line-height:0; color:var(--muted-2); opacity:.4; }
table.dataTable thead .sorting:before,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:before{ content:"\25B2"; margin-top:-.45em; }
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after{ content:"\25BC"; margin-top:.45em; }
table.dataTable thead .sorting_asc:before{ color:var(--ink); opacity:1; }
table.dataTable thead .sorting_desc:after{ color:var(--ink); opacity:1; }

/* ---- Cabeçalho de modal padronizado: mata o gradiente roxo legado (style.min.css .modal-header)
   em TODOS os modais (Anotações, reserva, despesa, etc.). Grafite Cockpit + acento verde. ---- */
.modal-content{ border:0; border-radius:16px; box-shadow:0 30px 70px -22px rgba(14,22,33,.42); }
.modal-header{ background:linear-gradient(120deg,var(--ink),var(--ink-2)) !important; color:#fff !important;
  border-bottom:0 !important; border-radius:16px 16px 0 0; padding:16px 20px; }
.modal-header .modal-title{ color:#fff !important; font-family:var(--display); font-weight:700; letter-spacing:-.01em;
  font-size:17px; display:flex; align-items:center; gap:9px; }
.modal-header .modal-title i{ color:var(--brand) !important; }
.modal-header .btn-close{ filter:invert(1) brightness(1.8); opacity:.75; }
.modal-header .btn-close:hover{ opacity:1; }
.modal-footer{ border-top:1px solid var(--line-2); }

/* ===================================================================
   CABEÇALHO DE TABELA — banda refinada (todas as tabelas do sistema).
   Preenchimento cool + hairline dupla + rótulo mais forte. !important
   vence os overrides escopados por view (cliidx/fornidx/estoque).
   =================================================================== */
.table thead th,
table.rtbl thead th,
table.dataTable thead th,
table.rtbl-in thead th{
  background:var(--bg) !important;
  color:var(--muted) !important;
  font-weight:700 !important;
  font-size:11.5px !important;
  letter-spacing:.07em !important;
  text-transform:uppercase !important;
  border-top:1px solid var(--line) !important;
  border-bottom:1px solid var(--line) !important;
  padding-top:13px !important;
  padding-bottom:13px !important;
}
/* ícones de ordenação: legíveis sobre a banda */
.table thead th.sorting:before,.table thead th.sorting:after,
table.dataTable thead th.sorting:before,table.dataTable thead th.sorting:after{ color:var(--muted-2); }

/* ===================================================================
   COCKPIT — componentes-assinatura (novos). Opt-in por tela na Fase 2.
   =================================================================== */
/* ---- Fileira de instrumentos: 1 número-herói + apoio ---- */
.ck-instr{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:14px;margin-bottom:16px;}
.ck-tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:17px 19px;box-shadow:var(--sh-soft);position:relative;overflow:hidden;}
.ck-tile .lbl{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2);display:flex;align-items:center;gap:7px;}
.ck-tile .lbl i,.ck-tile .lbl svg{font-size:13px;width:14px;height:14px;}
.ck-tile .val{font-family:var(--mono);font-weight:600;font-size:30px;line-height:1.05;margin-top:10px;color:var(--ink);letter-spacing:-.02em;}
.ck-tile .foot{font-size:12px;color:var(--muted);margin-top:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.ck-tile.hero{background:linear-gradient(160deg,var(--ink),var(--ink-2));border-color:var(--ink);}
.ck-tile.hero .lbl{color:#8b98a8;}
.ck-tile.hero .val{color:#fff;font-size:38px;}
.ck-tile.hero .foot{color:#aab4c2;}
@media (max-width:1080px){.ck-instr{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.ck-instr{grid-template-columns:1fr;}}
/* ---- Delta (variação) ---- */
.ck-delta{display:inline-flex;align-items:center;gap:3px;font-family:var(--mono);font-weight:600;font-size:12px;padding:1px 7px;border-radius:var(--radius-pill);}
.ck-delta.up{color:var(--pos);background:var(--ok-bg);}
.ck-delta.dn{color:var(--neg);background:var(--danger-bg);}
/* ---- Status seco: dot + rótulo (alternativa ao badge preenchido) ---- */
.ck-st{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--ink);}
.ck-st .d{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--muted-2);}
.ck-st.ok{color:var(--brand-text);} .ck-st.ok .d{background:var(--brand);}
.ck-st.info{color:var(--info);} .ck-st.info .d{background:var(--info);}
.ck-st.warn{color:var(--warn);} .ck-st.warn .d{background:var(--warn);}
.ck-st.danger{color:var(--danger);} .ck-st.danger .d{background:var(--danger);}
.ck-st.mut{color:var(--muted);} .ck-st.mut .d{background:var(--muted-2);}
/* ---- Herói numérico (detalhe): o dado que importa domina ---- */
.ck-hero{background:linear-gradient(160deg,var(--ink),var(--ink-2));border-radius:var(--r-lg);padding:24px 26px;color:#fff;position:relative;overflow:hidden;}
.ck-hero .k{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:#8b98a8;font-weight:600;}
.ck-hero .big{font-family:var(--mono);font-weight:600;font-size:clamp(34px,6vw,50px);line-height:1;margin:12px 0 6px;letter-spacing:-.03em;}
.ck-hero .pct{color:#aab4c2;font-size:13.5px;}
.ck-hero .pct b{color:var(--brand);}
/* ---- Spec-strip: régua de especificações ---- */
.ck-specs{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--card);}
.ck-specs .sp{padding:14px 16px;border-right:1px solid var(--line-2);}
.ck-specs .sp:last-child{border-right:0;}
.ck-specs .sp .k{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);font-weight:600;}
.ck-specs .sp .v{font-family:var(--mono);font-weight:600;font-size:16px;margin-top:5px;}
@media (max-width:680px){.ck-specs{grid-template-columns:1fr 1fr;}.ck-specs .sp:nth-child(2n){border-right:0;}}
/* ---- Timeline ---- */
.ck-tl{list-style:none;margin:0;padding:0;position:relative;}
.ck-tl::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--line);}
.ck-tl li{position:relative;padding:0 0 18px 28px;}
.ck-tl li:last-child{padding-bottom:0;}
.ck-tl li .dot{position:absolute;left:1px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--card);border:3px solid var(--brand);}
.ck-tl li .dot.mut{border-color:var(--line);}
.ck-tl li .tt{font-weight:600;font-size:14px;}
.ck-tl li .mt{font-size:12.5px;color:var(--muted-2);font-family:var(--mono);margin-top:1px;}
/* ---- Segmented control (filtros de lista) ---- */
.ck-seg{display:inline-flex;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:3px;gap:2px;flex-wrap:wrap;}
.ck-seg a,.ck-seg button{border:0;background:transparent;color:var(--muted);font-size:13px;font-weight:600;padding:7px 14px;border-radius:6px;transition:.15s;text-decoration:none;cursor:pointer;}
.ck-seg a.on,.ck-seg button.on{background:var(--ink);color:#fff;}
.ck-seg a:hover:not(.on),.ck-seg button:hover:not(.on){color:var(--ink);}
/* ---- Placa (chip mono) ---- */
.ck-plate{font-family:var(--mono);font-weight:600;font-size:12.5px;letter-spacing:.06em;background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:3px 8px;border-radius:6px;display:inline-block;}
/* ---- Cabeçalho de card com ícone ---- */
.ck-cardhd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line-2);}
.ck-cardhd .h{font-size:14px;font-weight:700;font-family:var(--display);letter-spacing:-.01em;display:flex;align-items:center;gap:9px;}
.ck-cardhd .h i{color:var(--muted-2);}
.ck-cardhd .lnk{font-size:12.5px;color:var(--brand-text);font-weight:600;display:inline-flex;align-items:center;gap:5px;}

/* ---- Shell: topbar clara fria + blur (vence config-cores) ---- */
.top-header{ background:rgba(245,247,250,.86)!important; border-bottom:1px solid var(--line)!important; backdrop-filter:blur(8px); }
/* ---- Shell: sidebar grafite frio + legibilidade AA do menu (vence #af-shell do master) ---- */
.sidebar{ background:linear-gradient(180deg,var(--sidebar-bg),#0A0F16)!important; }
.sidebar-menu .nav-link{ color:#9AA6B6!important; }
.sidebar-menu .nav-link i{ color:#6E7C8E!important; }
.sidebar-menu .nav-link:hover{ background:rgba(255,255,255,.05)!important; color:#EAF0F6!important; }
.sidebar-menu .nav-link:hover i{ color:var(--brand)!important; }
.sidebar-menu .nav-link.active{ background:rgba(108,179,63,.12)!important; color:#fff!important; }
.sidebar-menu .nav-link.active i{ color:var(--brand)!important; }
.menu-section-title{ color:#6B7789!important; }

/* ===================================================================
   PADRÃO DE LISTA reutilizável (.rtbl-*) — telas de tabela padronizadas.
   Uso: .rtbl-page > .rtbl-hdr (h1+sub+botão) + .rtbl-shell (card) com
   .rtbl-cardhd (título+contagem) e <table class="rtbl">. Ícones Lucide.
   =================================================================== */
.rtbl-page{ padding:20px 0 40px; color:var(--ink); }
.rtbl-hdr{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:20px; flex-wrap:wrap; }
.rtbl-hdr h1{ margin:0; font-family:var(--display); font-optical-sizing:auto; font-weight:800; font-size:clamp(24px,2.8vw,31px); line-height:1.02; letter-spacing:-.035em; color:var(--ink); }
.rtbl-hdr .sub{ margin:6px 0 0; color:var(--muted); font-size:14px; }
.rtbl-hdr .sub b{ color:var(--ink); font-weight:600; }
.rtbl-newbtn{ display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14px; border-radius:var(--r-sm); padding:11px 17px; text-decoration:none; background:var(--brand-strong); color:#fff; border:1px solid transparent; box-shadow:0 3px 10px -3px rgba(62,122,34,.5); transition:transform .12s cubic-bezier(.2,.8,.2,1),background .2s,box-shadow .2s; }
.rtbl-newbtn:hover{ background:var(--brand-text); color:#fff; box-shadow:0 6px 16px -4px rgba(62,122,34,.55); }
.rtbl-newbtn:active{ transform:scale(.96); }
.rtbl-newbtn .lu{ width:17px; height:17px; }
.rtbl-shell{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-soft); overflow:hidden; }
.rtbl-cardhd{ display:flex; align-items:center; gap:10px; padding:15px 20px 13px; border-bottom:1px solid var(--line-2); }
.rtbl-cardhd .h{ font-size:14px; font-weight:700; font-family:var(--display); letter-spacing:-.01em; color:var(--ink); }
.rtbl-cardhd .grow{ flex:1; }
.rtbl-count{ font-family:var(--mono); font-size:12px; font-weight:600; color:var(--muted); background:var(--bg); border:1px solid var(--line); border-radius:999px; padding:1px 9px; }
.rtbl-wrap{ padding:4px 8px 8px; overflow-x:auto; }
table.rtbl{ margin:0; width:100%; border-collapse:separate; border-spacing:0; }
table.rtbl thead th{ background:transparent !important; color:var(--muted-2) !important; font-weight:600; font-size:11px; letter-spacing:.05em; text-transform:uppercase; border:0; border-bottom:1px solid var(--line); padding:12px 10px; white-space:nowrap; }
table.rtbl tbody td{ border:0; border-top:1px solid var(--line-2); padding:13px 10px; font-size:13.5px; color:var(--ink); vertical-align:middle; }
table.rtbl tbody tr:first-child td{ border-top:0; }
table.rtbl tbody tr.rtbl-click{ cursor:pointer; transition:background .14s ease; }
table.rtbl tbody tr.rtbl-click:hover{ background:var(--bg); }
.rtbl .mono{ font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:12.5px; letter-spacing:-.01em; }
.rtbl .num,.rtbl th.num{ text-align:right; white-space:nowrap; }
.rtbl-nome{ font-weight:700; }
.rtbl-acts{ display:inline-flex; gap:6px; justify-content:flex-end; }
.rtbl-th-acts{ text-align:right; }
.rtbl-ico{ width:34px; height:34px; border-radius:9px; display:inline-grid; place-items:center; border:1px solid transparent; background:transparent; color:var(--muted); cursor:pointer; transition:background .15s,color .15s,border-color .15s,transform .1s; padding:0; }
.rtbl-ico .lu{ width:17px; height:17px; }
.rtbl-ico:active{ transform:scale(.92); }
.rtbl-ico.edit:hover{ background:var(--brand-tint); color:var(--brand-text); border-color:rgba(53,104,24,.18); }
.rtbl-ico.ok:hover{ background:var(--ok-bg); color:var(--ok); border-color:rgba(21,128,61,.2); }
.rtbl-ico.del:hover{ background:var(--danger-bg); color:var(--danger); border-color:rgba(192,52,43,.18); }
.rtbl-ico.info:hover{ background:var(--info-bg); color:var(--info); border-color:rgba(37,99,235,.18); }
.rtbl-ico.warn:hover{ background:var(--warn-bg); color:var(--warn); border-color:rgba(180,83,9,.18); }
.rtbl-acts form{ margin:0; display:inline; }
.rtbl-empty{ display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; color:var(--muted); padding:44px 16px; }
.rtbl-empty .lu{ width:34px; height:34px; color:var(--muted-2); }
.rtbl-empty .s{ font-weight:600; font-size:.92rem; }
.rtbl-total{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 18px; border-top:1px solid var(--line); }
.rtbl-total .l{ font-weight:700; font-size:13.5px; color:var(--ink); }
.rtbl-total .v{ font-weight:700; font-size:16px; color:var(--ink); font-variant-numeric:tabular-nums; }
.rtbl-plate{ font-family:var(--mono); font-weight:600; font-size:12.5px; letter-spacing:.06em; background:var(--bg); border:1px solid var(--line); color:var(--ink); padding:3px 8px; border-radius:6px; display:inline-block; }
.rtbl-chip{ display:inline-flex; align-items:center; font-size:12px; font-weight:600; color:var(--muted); background:var(--bg); border:1px solid var(--line); border-radius:6px; padding:2px 8px; }
@keyframes rtbl-rise{ from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }
.rtbl-rise{ animation:rtbl-rise .5s cubic-bezier(.2,.85,.25,1) both; }
.rtbl-shell.rtbl-rise{ animation-delay:.06s; }
@media (prefers-reduced-motion:reduce){ .rtbl-rise{ animation:none } }

/* ============================================================
   MOBILE-FIRST — sistema de breakpoints Raga (2026-08-24)
   Tiers: mobile ≤480 · mobile-h/tablet-p ≤768 (834) · tablet-h/laptop ≤1024 (1440) · desktop ≥1440.
   Camada ADITIVA (raga.css vence a cascata). O shell (sidebar→drawer+overlay,
   .main-content margin-left:0) já é responsivo em ≤768 no style.min.css; aqui só
   o CONTEÚDO + componentes compartilhados. Apenas overrides, sem redefinir o base.
   ============================================================ */

/* Tabelas largas: rolagem horizontal (mantém colunas, nunca estoura a página). */
.table-responsive,
.rtbl-wrap,
.rtbl-shell{ overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* Conteúdo pode encolher abaixo do tamanho intrínseco (senão um filho largo
   empurra a página e cria scroll horizontal no body). */
.main-content{ min-width:0; }
.main-content .card{ max-width:100%; }

/* ---- ≤1024 (tablet landscape / laptop pequeno) ---- */
@media (max-width:1024px){
  .ck-instr{ grid-template-columns:1fr 1fr; }
}

/* ---- ≤768 (tablet portrait / mobile landscape) ---- */
@media (max-width:768px){
  .container-fluid{ padding-left:14px; padding-right:14px; }
  .container-fluid.py-4{ padding-top:18px; padding-bottom:18px; }
  .ck-instr,
  .ck-specs{ grid-template-columns:1fr 1fr; }
  /* cabeçalho de card com ação: quebra em vez de espremer/estourar */
  .ck-cardhd{ flex-wrap:wrap; row-gap:10px; }
  .ck-cardhd .h{ min-width:0; }
  /* modais quase full-width, corpo rolável */
  .modal-dialog{ margin:.5rem; }
  .modal-body{ max-height:calc(100vh - 190px); overflow-y:auto; }
  .af-kpi{ min-width:0; }
}

/* ---- ≤480 (mobile) ---- */
@media (max-width:480px){
  .container-fluid{ padding-left:11px; padding-right:11px; }
  .container-fluid.py-4{ padding-top:14px; padding-bottom:14px; }
  .ck-instr,
  .ck-specs{ grid-template-columns:1fr; }
  /* número-herói: reduz p/ não estourar valores longos */
  .ck-hero{ padding:18px 18px; }
  .ck-hero .big{ font-size:clamp(26px,8vw,34px); }
  /* specs em 1 coluna: troca borda direita por inferior */
  .ck-specs .sp{ border-right:0; border-bottom:1px solid var(--line-2); }
  .ck-specs .sp:last-child{ border-bottom:0; }
  /* ação principal ocupa a linha (toque 44px+) */
  .rtbl-newbtn{ width:100%; justify-content:center; }
}

/* ============================================================
   Popup de atualização do PWA — toast Cockpit (injetado pelo pwa.js). 2026-08-24.
   ============================================================ */
.raga-upd{ position:fixed; left:50%; bottom:20px; transform:translateX(-50%); z-index:2147483000;
  width:min(420px, calc(100vw - 28px)); background:linear-gradient(160deg,var(--ink),var(--ink-2)); color:#fff;
  border:1px solid var(--ink); border-radius:var(--r-lg); box-shadow:0 18px 50px rgba(10,20,45,.4);
  padding:16px 18px; display:flex; gap:14px; align-items:flex-start;
  animation:raga-upd-in .38s cubic-bezier(.2,.85,.25,1) both; }
.raga-upd .ic{ flex:0 0 auto; width:36px; height:36px; border-radius:10px; display:grid; place-items:center;
  background:rgba(108,179,63,.16); color:var(--brand); }
.raga-upd .ic svg{ width:20px; height:20px; }
.raga-upd .bd{ flex:1 1 auto; min-width:0; }
.raga-upd .tt{ font-weight:700; font-size:14.5px; font-family:var(--display); letter-spacing:-.01em; }
.raga-upd .sb{ font-size:12.5px; color:#aab4c2; margin-top:2px; }
.raga-upd .ac{ display:flex; gap:8px; margin-top:12px; justify-content:flex-end; }
.raga-upd .btn{ border:0; border-radius:var(--r-sm); font-weight:700; font-size:13px; padding:8px 14px; cursor:pointer; min-height:36px; line-height:1; }
.raga-upd .btn-later{ background:transparent; color:#aab4c2; }
.raga-upd .btn-later:hover{ color:#fff; background:rgba(255,255,255,.06); }
.raga-upd .btn-go{ background:var(--brand-strong); color:#fff; display:inline-flex; align-items:center; gap:6px; }
.raga-upd .btn-go:hover{ background:var(--brand-text); }
@keyframes raga-upd-in{ from{opacity:0; transform:translateX(-50%) translateY(16px)} to{opacity:1; transform:translateX(-50%) translateY(0)} }
@keyframes raga-upd-in-m{ from{opacity:0; transform:translateY(16px)} to{opacity:1; transform:translateY(0)} }
@media (max-width:480px){
  .raga-upd{ left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); width:auto; transform:none; animation-name:raga-upd-in-m; }
}
@media (prefers-reduced-motion:reduce){ .raga-upd{ animation:none } }

/* ==========================================================================
   Padrão de listas (2026-09-11): ícones de ação Lucide em botões limpos +
   chrome do DataTables moderno. GLOBAL — padroniza todas as telas de listagem.
   ========================================================================== */
.lu{width:1.15em;height:1.15em;display:inline-block;vertical-align:-.15em;}
.lu-spin{animation:lu-spin 1s linear infinite;transform-origin:center;}
@keyframes lu-spin{to{transform:rotate(360deg);}}

/* Ações de linha: ghost icon-button (mata as "pílulas" do btn-outline bootstrap). */
.btn-ico{width:36px;height:36px;border-radius:10px;display:inline-grid;place-items:center;padding:0;border:1px solid transparent !important;background:transparent !important;color:var(--muted) !important;box-shadow:none !important;transition:background .15s ease,color .15s ease,transform .08s ease;}
.btn-ico:active{transform:scale(.94);}
.btn-ico .lu{width:18px;height:18px;}
.btn-ico>i{font-size:15px;}
.btn-outline-primary.btn-ico,.btn-outline-success.btn-ico,.btn-outline-danger.btn-ico,.btn-outline-warning.btn-ico{background:transparent !important;color:var(--muted) !important;border-color:transparent !important;}
.btn-outline-primary.btn-ico:hover,.btn-outline-primary.btn-ico:focus,.btn-outline-success.btn-ico:hover,.btn-outline-success.btn-ico:focus{background:var(--brand-tint) !important;color:var(--brand-text) !important;border-color:transparent !important;}
.btn-outline-danger.btn-ico:hover,.btn-outline-danger.btn-ico:focus{background:var(--danger-bg) !important;color:var(--danger) !important;border-color:transparent !important;}
.btn-outline-warning.btn-ico:hover,.btn-outline-warning.btn-ico:focus{background:var(--warn-bg) !important;color:var(--warn) !important;border-color:transparent !important;}
.btn-primary.btn-ico{background:var(--brand) !important;color:#fff !important;box-shadow:0 2px 7px rgba(62,122,34,.28) !important;}
.btn-primary.btn-ico:hover{filter:brightness(1.05);color:#fff !important;}

/* KPIs: número maior/tabular, respiro — mantém o markup .af-kpi existente. */
.af-kpi{padding:20px 22px;border-radius:18px;}
.af-kpi .lbl{font-size:.74rem;letter-spacing:.06em;font-weight:700;}
.af-kpi .val{font-family:var(--font);font-variant-numeric:tabular-nums;font-size:2.1rem;font-weight:800;margin-top:6px;}

/* DataTables chrome moderno (busca/length/info/paginação) — todas as tabelas. */
.dataTables_wrapper .dataTables_filter input{height:40px;border:1px solid var(--line);border-radius:11px;padding:0 14px;font-size:.92rem;color:var(--ink);background:var(--card);min-width:220px;margin-left:4px;}
.dataTables_wrapper .dataTables_filter input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(108,179,63,.16);}
.dataTables_wrapper .dataTables_length select{height:38px;border:1px solid var(--line);border-radius:10px;padding:0 26px 0 12px;color:var(--ink);background:var(--card);font-weight:600;}
.dataTables_wrapper .dataTables_info{color:var(--muted-2);font-size:.84rem;padding-top:12px;}
.dataTables_wrapper .dataTables_paginate{padding-top:8px;}
.dataTables_wrapper .dataTables_paginate .paginate_button{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;margin:0 3px;border-radius:10px !important;border:1px solid var(--line) !important;background:var(--card) !important;color:var(--ink) !important;padding:0 10px !important;font-weight:600;box-sizing:border-box;overflow:hidden;transition:background .15s ease,border-color .15s ease,color .15s ease;}
/* mata o box interno do tema (style.css: .paginate_button a) — 1 pílula só, sem caixa aninhada */
.dataTables_wrapper .dataTables_paginate .paginate_button a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0 !important;margin:0 !important;border:0 !important;background:transparent !important;color:inherit !important;text-decoration:none;}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current a{background:var(--brand) !important;border-color:var(--brand) !important;color:#fff !important;}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled a{color:#c3cbd8 !important;background:var(--card) !important;border-color:var(--line) !important;cursor:default;}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover:not(.current):not(.disabled),
.dataTables_wrapper .dataTables_paginate .paginate_button:hover:not(.current):not(.disabled) a{background:var(--brand-tint) !important;border-color:var(--brand-tint) !important;color:var(--brand-text) !important;}
.btn{white-space:nowrap;}
.btn>.lu{flex:0 0 auto;}
.ref-chip .lu{width:.82em;height:.82em;}

/* ============================================================
   Padrão admin — KPI Apple-clean + Painel da operadora
   ============================================================ */
/* Cor do valor do KPI (sem fundo pastel — leitura premium) */
.af-kpi .val.is-brand{color:var(--brand-text);}
.af-kpi .val.is-neg{color:var(--danger);}
.af-kpi .val.is-warn{color:var(--warn);}
.af-kpi .val.is-info{color:var(--info);}
.af-kpi .val.is-ink{color:var(--ink);}
.af-kpi .lbl .kpi-dot{display:inline-block;width:7px;height:7px;border-radius:999px;margin-right:2px;vertical-align:1px;}
.kpi-dot.neg{background:var(--danger);}.kpi-dot.warn{background:var(--warn);}
.kpi-dot.info{background:var(--info);}.kpi-dot.brand{background:var(--brand);}
/* Chip de tendência */
.kpi-trend{display:inline-flex;align-items:center;gap:3px;font-family:var(--mono);font-size:.72rem;font-weight:700;padding:2px 7px 2px 5px;border-radius:999px;}
.kpi-trend .lu{width:12px;height:12px;}
.kpi-trend.up{color:var(--ok);background:var(--ok-bg);}
.kpi-trend.down{color:var(--danger);background:var(--danger-bg);}
.kpi-trend.flat{color:var(--muted);background:#EEF1F5;}

/* --- Painel da operadora (escopado) --- */
#opdash .af-kpis{margin-bottom:0;}
#opdash .af-grid-2{display:grid;grid-template-columns:1.55fr 1fr;gap:16px;margin-top:16px;}
#opdash .af-panel{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--sh-soft);margin-top:16px;}
#opdash .af-grid-2 .af-panel{margin-top:0;}
#opdash .af-panel-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px 10px;}
#opdash .af-panel-h h6{margin:0;font-weight:800;color:var(--ink);font-size:1rem;letter-spacing:-.01em;}
#opdash .af-panel-h .hint{font-size:.76rem;color:var(--muted-2);font-weight:600;}
#opdash .af-panel-b{padding:4px 18px 16px;}

/* Fila "Ação necessária" */
#opdash .af-list{display:flex;flex-direction:column;}
#opdash .af-list-item{display:flex;align-items:center;gap:12px;padding:12px 6px;border-top:1px solid var(--line-2);text-decoration:none;color:inherit;transition:background .12s ease;}
#opdash .af-list-item:first-child{border-top:0;}
#opdash .af-list-item:hover{background:var(--bg);}
#opdash .af-list-ico{flex:0 0 auto;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;}
#opdash .af-list-ico .lu{width:18px;height:18px;}
#opdash .af-list-ico.warn{background:var(--warn-bg);color:var(--warn);}
#opdash .af-list-ico.danger{background:var(--danger-bg);color:var(--danger);}
#opdash .af-list-ico.info{background:var(--info-bg);color:var(--info);}
#opdash .af-list-ico.brand{background:var(--brand-tint);color:var(--brand-text);}
#opdash .af-list-body{min-width:0;flex:1 1 auto;}
#opdash .af-list-title{font-weight:700;color:var(--ink);font-size:.92rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#opdash .af-list-sub{font-size:.78rem;color:var(--muted-2);margin-top:1px;}
#opdash .af-list-val{flex:0 0 auto;text-align:right;font-family:var(--mono);font-weight:700;color:var(--ink);font-size:.9rem;white-space:nowrap;}
#opdash .af-list-val small{display:block;font-family:var(--font);font-weight:600;color:var(--muted-2);font-size:.68rem;letter-spacing:.02em;}
#opdash .af-list-chev{flex:0 0 auto;color:var(--muted-2);display:flex;}
#opdash .af-list-chev .lu{width:16px;height:16px;}
#opdash .af-ok{display:flex;flex-direction:column;align-items:center;gap:8px;padding:30px 10px;color:var(--muted);text-align:center;}
#opdash .af-ok .lu{width:34px;height:34px;color:var(--brand);}
#opdash .af-ok b{color:var(--ink);font-weight:700;}

/* Mix de planos */
#opdash .mix{display:flex;flex-direction:column;gap:14px;}
#opdash .mix-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
#opdash .mix-nome{font-weight:700;color:var(--ink);font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#opdash .mix-nome span{font-weight:600;color:var(--muted-2);font-size:.76rem;margin-left:4px;}
#opdash .mix-mrr{font-family:var(--mono);font-weight:700;color:var(--brand-text);font-size:.86rem;flex:0 0 auto;}
#opdash .mix-track{height:8px;border-radius:999px;background:var(--line-2);margin-top:7px;overflow:hidden;}
#opdash .mix-fill{height:100%;border-radius:999px;background:var(--brand);}
#opdash .mix-empty{color:var(--muted-2);font-size:.85rem;padding:14px 2px;}

/* Receita — 6 meses (gráfico de linha + pontos, SVG inline) */
#opdash .rc-wrap{position:relative;width:100%;aspect-ratio:720/190;margin-top:4px;}
#opdash .rc-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
#opdash .rc-grid{stroke:var(--line-2);stroke-width:1;stroke-dasharray:3 4;vector-effect:non-scaling-stroke;}
#opdash .rc-area{fill:url(#rcGrad);stroke:none;}
#opdash .rc-line{fill:none;stroke:var(--brand);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;}
#opdash .rc-dot{fill:#fff;stroke:var(--brand);stroke-width:2.5;vector-effect:non-scaling-stroke;transition:r .12s ease;}
#opdash .rc-dot.is-now{fill:var(--brand);}
#opdash .rc-dot.is-active{stroke-width:3;}
#opdash .rc-ytick{position:absolute;left:0;transform:translateY(-50%);width:38px;text-align:right;font-family:var(--mono);font-size:.64rem;color:var(--muted-2);pointer-events:none;}
#opdash .rc-xtick{position:absolute;bottom:0;transform:translateX(-50%);font-size:.72rem;color:var(--muted-2);text-transform:capitalize;pointer-events:none;white-space:nowrap;}
#opdash .rc-xtick.is-now{color:var(--ink);font-weight:700;}
#opdash .rc-xtick.is-future{color:var(--muted-2);opacity:.5;}
#opdash .rc-hit{position:absolute;width:36px;height:36px;transform:translate(-50%,-50%);border:0;background:transparent;padding:0;cursor:pointer;border-radius:50%;}
#opdash .rc-hit:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}
#opdash .rc-tip{position:absolute;z-index:5;transform:translate(-50%,-118%);background:var(--ink);color:#fff;border-radius:9px;padding:7px 10px;font-size:.72rem;line-height:1.4;white-space:nowrap;pointer-events:none;box-shadow:0 8px 20px -8px rgba(14,22,33,.5);}
#opdash .rc-tip .rc-tip-m{display:block;color:#c7cfda;text-transform:capitalize;font-size:.68rem;}
#opdash .rc-tip b{display:block;font-family:var(--mono);font-weight:700;margin-top:1px;}
#opdash .rc-tip .rc-tip-ch{display:block;color:#9fe08a;font-family:var(--mono);font-size:.66rem;margin-top:1px;}
#opdash .rc-tip .rc-tip-ch.neg{color:#ff9c96;}

@media (max-width:900px){
    #opdash .af-grid-2{grid-template-columns:1fr;}
}
@media (max-width:575.98px){
    #opdash .rc-xtick{font-size:.62rem;}
    #opdash .rc-ytick{font-size:.56rem;width:32px;}
}
