/* BotaForaPro - Controle de Vale — design "Floresta" (sidebar escura + conteúdo claro em bento; modo escuro opcional)
   Cor principal pode ser trocada em Configurações > Marca (sobrescreve --bf-verde). */

@font-face{font-family:Sora;font-weight:500;font-display:swap;src:url(fonts/SoraMedium-500.woff2) format("woff2")}
@font-face{font-family:Sora;font-weight:600;font-display:swap;src:url(fonts/SoraSemiBold-600.woff2) format("woff2")}
@font-face{font-family:Sora;font-weight:700;font-display:swap;src:url(fonts/Sora-700.woff2) format("woff2")}
@font-face{font-family:Sora;font-weight:800;font-display:swap;src:url(fonts/SoraExtraBold-800.woff2) format("woff2")}
@font-face{font-family:Manrope;font-weight:500;font-display:swap;src:url(fonts/ManropeMedium-500.woff2) format("woff2")}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(fonts/ManropeSemiBold-600.woff2) format("woff2")}
@font-face{font-family:Manrope;font-weight:800;font-display:swap;src:url(fonts/ManropeExtraBold-800.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:400;font-display:swap;src:url(fonts/Inter-Regular-400.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:500;font-display:swap;src:url(fonts/InterMedium-Regular-500.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:600;font-display:swap;src:url(fonts/InterSemiBold-Regular-600.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:700;font-display:swap;src:url(fonts/Inter-Bold-700.woff2) format("woff2")}

:root{
  --bf-verde:#1E5B3B;          /* cor principal */
  --bf-verde-escuro:#164630;
  --bf-verde-900:#0B1F16;      /* sidebar */
  --bf-verde-800:#12301F;
  --bf-verde-500:#2F7A48;
  --bf-verde-200:#CFE6D6;
  --bf-verde-folha:#9CD07A;
  --bf-terra:#7A4E2A;
  --bf-ocre:#C99A5B;
  --bf-areia:#E6D3A8;
  --bf-grafite:#17201B;
  --bf-azul:var(--bf-verde);   /* nome antigo mantido */
  --bf-cinza:#F3F5F2;
  /* superfícies */
  --bf-bg:#F3F5F2;--bf-pan:#FFFFFF;--bf-pan2:#F6F8F5;--bf-ink:#17201B;--bf-mut:#66736B;--bf-line:#E3E8E4;--bf-line2:#EEF2EE;
  --bf-sombra:0 1px 2px rgba(23,32,27,.04),0 8px 24px rgba(23,32,27,.05);
  --bf-raio:18px;--bf-raio-sm:12px;
  --bf-sidebar-w:284px;
  --bs-body-font-family:Manrope,Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --bs-body-bg:var(--bf-bg);--bs-body-color:var(--bf-ink);--bs-border-color:var(--bf-line);
  --bs-primary:var(--bf-verde);--bs-primary-rgb:30,91,59;--bs-link-color:var(--bf-verde);--bs-link-hover-color:var(--bf-verde-escuro);
  --bs-link-color-rgb:30,91,59;--bs-link-hover-color-rgb:22,70,48;
}
[data-bs-theme=dark]{
  --bf-bg:#0F1A14;--bf-pan:#16241C;--bf-pan2:#1C2D23;--bf-ink:#EAF2EC;--bf-mut:#93A79B;--bf-line:rgba(255,255,255,.09);--bf-line2:rgba(255,255,255,.06);
  --bf-verde-200:#244B34;--bf-cinza:#0F1A14;--bf-sombra:0 1px 2px rgba(0,0,0,.3),0 12px 30px rgba(0,0,0,.35);
  --bs-body-bg:var(--bf-bg);--bs-body-color:var(--bf-ink);--bs-border-color:var(--bf-line);--bs-tertiary-bg:var(--bf-pan2);--bs-secondary-bg:var(--bf-pan2);
  --bs-link-color:#9CD07A;--bs-link-hover-color:#B9E09E;--bs-link-color-rgb:156,208,122;--bs-link-hover-color-rgb:185,224,158;
}
html{scroll-behavior:smooth}
body{background:var(--bf-bg);color:var(--bf-ink);font-family:var(--bs-body-font-family);font-size:.925rem;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,.h1,.h2,.h3,.h4,.h5,.bf-sora{font-family:Sora,Manrope,system-ui,sans-serif;letter-spacing:-.01em}
a{text-decoration:none}a:hover{text-decoration:underline}

/* ============================================================ casca: sidebar + topo */
.bf-app{display:flex;min-height:100vh;background:linear-gradient(90deg,var(--bf-verde-800) 0,var(--bf-verde-800) var(--bf-sidebar-w),transparent var(--bf-sidebar-w))}
.bf-side{width:var(--bf-sidebar-w);flex:0 0 var(--bf-sidebar-w);background:linear-gradient(180deg,var(--bf-verde-900),var(--bf-verde-800));color:#DCE9E0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow:hidden}
.bf-side::after{content:"";position:absolute;right:-90px;bottom:-90px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(156,208,122,.16),transparent 70%);pointer-events:none}
.bf-side-in{padding:18px 14px 10px;display:flex;flex-direction:column;gap:1px;overflow-y:auto;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
.bf-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 18px;color:#fff;text-decoration:none}
.bf-brand:hover{text-decoration:none;color:#fff}
.bf-brand .bf-selo{width:42px;height:42px;border-radius:12px;background:var(--bf-verde);display:grid;place-items:center;font:800 14px Sora;color:#fff;letter-spacing:.04em;box-shadow:inset 0 -4px 0 var(--bf-ocre);flex:0 0 42px}
.bf-brand b{display:block;font:700 15px Sora;letter-spacing:.01em;line-height:1.15}
.bf-brand small{color:#9DB8A7;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}
.bf-brand .bf-logo{height:38px;width:auto;max-width:190px;object-fit:contain}
.bf-grp{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#7F9A8A;padding:12px 12px 5px;font-weight:700}
.bf-it{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:10px;color:#CFE0D5;cursor:pointer;position:relative;text-decoration:none;font-weight:500;border:0;background:none;width:100%;text-align:left}
.bf-it i.bi{font-size:17px;width:20px;text-align:center;opacity:.9;flex:0 0 20px}
.bf-it span.t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bf-it .bf-n{font-size:11px;background:var(--bf-ocre);color:#1a1206;border-radius:99px;padding:1px 7px;font-weight:800}
.bf-it .bf-chev{font-size:11px;opacity:.55;transition:transform .2s}
.bf-it:hover{background:rgba(255,255,255,.06);color:#fff;text-decoration:none}
.bf-it.on{background:rgba(255,255,255,.09);color:#fff}
.bf-it.on::before{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:var(--bf-verde-folha)}
.bf-it[aria-expanded=true] .bf-chev{transform:rotate(90deg)}
.bf-sub{margin:2px 0 4px 30px;border-left:1px solid rgba(255,255,255,.12);padding-left:10px;display:none}
.bf-sub.open{display:block}
.bf-sub a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;color:#A9C2B3;font-size:13px;text-decoration:none}
.bf-sub a:hover{color:#fff;background:rgba(255,255,255,.05)}.bf-sub a.on{color:#fff;background:rgba(156,208,122,.14)}
.bf-sub a small{color:#7F9A8A}
.bf-user{margin:6px 14px 14px;flex:0 0 auto;display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.06);color:#fff;text-decoration:none}
.bf-user:hover{background:rgba(255,255,255,.1);color:#fff;text-decoration:none}
.bf-user .bf-av{width:34px;height:34px;border-radius:50%;background:var(--bf-ocre);color:#1a1206;display:grid;place-items:center;font-weight:800;flex:0 0 34px}
.bf-user b{display:block;font-size:13.5px;line-height:1.2}.bf-user small{color:#9DB8A7;font-size:11.5px}

.bf-body{flex:1;min-width:0;display:flex;flex-direction:column}
.bf-top{display:flex;align-items:center;gap:12px;padding:14px 28px 0;flex-wrap:wrap}
.bf-crumb{color:var(--bf-mut);font-size:13.5px;white-space:nowrap}.bf-crumb b{color:var(--bf-ink);font-weight:600}
.bf-search{margin-left:auto;display:flex;align-items:center;gap:10px;background:var(--bf-pan);border:1px solid var(--bf-line);border-radius:12px;padding:8px 14px;width:min(360px,100%);color:var(--bf-mut);cursor:text;font-size:13.5px}
.bf-search kbd{margin-left:auto;font:600 11px Inter;background:var(--bf-pan2);border:1px solid var(--bf-line);border-radius:6px;padding:2px 6px;color:var(--bf-mut)}
.bf-ic{width:40px;height:40px;border-radius:12px;background:var(--bf-pan);border:1px solid var(--bf-line);display:grid;place-items:center;color:var(--bf-verde);position:relative;cursor:pointer}
.bf-ic:hover{background:var(--bf-pan2)}
[data-bs-theme=dark] .bf-ic{color:var(--bf-verde-folha)}
.bf-ic .bf-dot{position:absolute;top:8px;right:8px;min-width:16px;height:16px;border-radius:99px;background:#E0533D;color:#fff;font:800 10px Inter;display:grid;place-items:center;padding:0 4px;border:2px solid var(--bf-pan)}
.bf-burger{display:none}
.bf-top-brand{display:none;align-items:center;gap:8px;font:700 15px Sora;color:var(--bf-ink);text-decoration:none}
.bf-top-brand .bf-selo{width:30px;height:30px;border-radius:9px;background:var(--bf-verde);color:#fff;display:grid;place-items:center;font:800 11px Sora}
.bf-main{padding:14px 28px 36px;max-width:1500px;width:100%}
.bf-titulo{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:6px 0 18px}
.bf-titulo h1{font-size:1.55rem;font-weight:700;margin:0}
.bf-titulo .bf-sub-h{color:var(--bf-mut);font-size:.9rem;margin-top:2px}
footer.bf-foot{padding:10px 28px 22px;color:var(--bf-mut);font-size:12.5px}

/* mobile: sidebar vira gaveta */
@media (max-width:991.98px){
  .bf-side{position:fixed;left:0;top:0;bottom:0;z-index:1045;transform:translateX(-100%);transition:transform .25s ease;box-shadow:0 0 0 100vw rgba(0,0,0,0);height:100dvh}
  .bf-side.aberta{transform:none;box-shadow:0 0 0 100vw rgba(0,0,0,.45)}
  .bf-app{background:none}
  .bf-top-brand{display:inline-flex}
  .bf-burger{display:grid}
  .bf-top{padding:12px 16px 0}.bf-main{padding:12px 16px 32px}footer.bf-foot{padding:8px 16px 18px}
  .bf-search{width:100%;order:9}
  .bf-crumb{display:none}
}

/* paleta de busca (Ctrl+K) */
.bf-pal{position:fixed;inset:0;background:rgba(11,31,22,.45);backdrop-filter:blur(4px);z-index:1060;display:none;align-items:flex-start;justify-content:center;padding:10vh 16px}
.bf-pal.aberta{display:flex}
.bf-pal-box{width:min(620px,100%);background:var(--bf-pan);border:1px solid var(--bf-line);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden}
.bf-pal-box input{width:100%;border:0;outline:0;padding:16px 18px;font:500 16px Manrope;background:transparent;color:var(--bf-ink)}
.bf-pal-list{max-height:52vh;overflow:auto;border-top:1px solid var(--bf-line)}
.bf-pal-list a{display:flex;align-items:center;gap:12px;padding:10px 18px;color:var(--bf-ink);text-decoration:none;font-size:14px}
.bf-pal-list a small{color:var(--bf-mut);margin-left:auto}
.bf-pal-list a.sel,.bf-pal-list a:hover{background:var(--bf-pan2)}
.bf-pal-list a i{color:var(--bf-verde);width:18px;text-align:center}
.bf-pal-hint{padding:8px 18px;border-top:1px solid var(--bf-line);color:var(--bf-mut);font-size:12px}

/* ============================================================ componentes */
.card{border:1px solid var(--bf-line);border-radius:var(--bf-raio);box-shadow:var(--bf-sombra);background:var(--bf-pan);--bs-card-bg:var(--bf-pan);--bs-card-border-color:var(--bf-line);--bs-card-cap-bg:transparent}
.card-header{background:transparent;border-bottom:1px solid var(--bf-line2);font-weight:700;font-family:Sora,Manrope,sans-serif;font-size:.9rem;padding:.85rem 1.15rem;letter-spacing:.005em}
.card-header i.bi{color:var(--bf-verde);margin-right:.2rem}[data-bs-theme=dark] .card-header i.bi{color:var(--bf-verde-folha)}
.card-body{padding:1.1rem 1.15rem}
.card .card-body.p-0 .table{margin:0}
.btn{border-radius:11px;font-weight:600;padding:.5rem .95rem}
.btn-sm{border-radius:9px;padding:.3rem .65rem}.btn-lg{border-radius:14px}
.btn-primary{--bs-btn-bg:var(--bf-verde);--bs-btn-border-color:var(--bf-verde);--bs-btn-hover-bg:var(--bf-verde-escuro);--bs-btn-hover-border-color:var(--bf-verde-escuro);--bs-btn-active-bg:var(--bf-verde-escuro);--bs-btn-active-border-color:var(--bf-verde-escuro);box-shadow:0 6px 16px rgba(30,91,59,.22)}
.btn-outline-primary{--bs-btn-color:var(--bf-verde);--bs-btn-border-color:var(--bf-line);--bs-btn-hover-bg:var(--bf-verde);--bs-btn-hover-border-color:var(--bf-verde);--bs-btn-active-bg:var(--bf-verde);--bs-btn-active-border-color:var(--bf-verde);background:var(--bf-pan)}
[data-bs-theme=dark] .btn-outline-primary{--bs-btn-color:var(--bf-verde-folha)}
.btn-light{--bs-btn-bg:var(--bf-pan);--bs-btn-border-color:var(--bf-line);--bs-btn-color:var(--bf-ink);--bs-btn-hover-bg:var(--bf-pan2);--bs-btn-hover-border-color:var(--bf-line);--bs-btn-active-bg:var(--bf-pan2)}
.btn-success{--bs-btn-bg:var(--bf-verde-500);--bs-btn-border-color:var(--bf-verde-500);--bs-btn-hover-bg:var(--bf-verde);--bs-btn-hover-border-color:var(--bf-verde)}
.btn-check:checked + .btn-outline-primary,.btn-check:active + .btn-outline-primary,.btn-outline-primary.active{background:var(--bf-verde);border-color:var(--bf-verde);color:#fff}
.btn-check:focus + .btn-outline-primary{box-shadow:0 0 0 .2rem rgba(47,122,72,.35)}
.form-control,.form-select{border-radius:11px;border-color:var(--bf-line);background:var(--bf-pan);color:var(--bf-ink);padding:.5rem .8rem}
.form-control:focus,.form-select:focus{border-color:var(--bf-verde-500);box-shadow:0 0 0 .2rem rgba(47,122,72,.28);background:var(--bf-pan);color:var(--bf-ink)}
.form-control-lg,.form-select-lg{border-radius:14px}.form-control-sm,.form-select-sm{border-radius:9px}
.input-group>.form-control:first-child,.input-group>.form-select:first-child{border-top-left-radius:11px;border-bottom-left-radius:11px}
.input-group>:last-child{border-top-right-radius:11px;border-bottom-right-radius:11px}
.form-label{font-weight:600;font-size:.83rem;margin-bottom:.25rem;color:var(--bf-ink)}
.form-text{color:var(--bf-mut)}
.obrigatorio::after{content:" *";color:#c0392b}
.form-check-input:checked{background-color:var(--bf-verde);border-color:var(--bf-verde)}
.form-switch .form-check-input{width:2.4em;height:1.3em}
/* foco visível de teclado (Tab): contorno sólido 2px; o clique de mouse não muda (:focus-visible não dispara no mouse) */
:focus-visible{outline:2px solid var(--bf-verde);outline-offset:2px}
[data-bs-theme=dark] :focus-visible{outline-color:var(--bf-verde-folha)}
.bf-side :focus-visible{outline-color:var(--bf-verde-folha)}
.btn:focus-visible{outline:2px solid var(--bf-verde);outline-offset:2px}
[data-bs-theme=dark] .btn:focus-visible{outline-color:var(--bf-verde-folha)}
.btn-check:focus-visible + .btn{outline:2px solid var(--bf-verde);outline-offset:2px}
[data-bs-theme=dark] .btn-check:focus-visible + .btn{outline-color:var(--bf-verde-folha)}
.form-control:focus-visible,.form-select:focus-visible,.form-check-input:focus-visible{outline:2px solid var(--bf-verde-500);outline-offset:1px}
[data-bs-theme=dark] .form-control:focus-visible,[data-bs-theme=dark] .form-select:focus-visible,[data-bs-theme=dark] .form-check-input:focus-visible{outline-color:var(--bf-verde-folha)}
.alert{border-radius:14px;border:1px solid transparent}
.badge{border-radius:99px;font-weight:700;padding:.35em .65em}
.text-bg-success{background-color:var(--bf-verde)!important}
.text-bg-light{background:var(--bf-pan2)!important;color:var(--bf-ink)!important}
.dropdown-menu{border-radius:14px;border:1px solid var(--bf-line);box-shadow:var(--bf-sombra);padding:.4rem;--bs-dropdown-bg:var(--bf-pan);--bs-dropdown-link-color:var(--bf-ink)}
.dropdown-item{border-radius:9px;padding:.45rem .7rem}
.modal-content{border-radius:18px;border:1px solid var(--bf-line);background:var(--bf-pan)}
.list-group{--bs-list-group-bg:transparent;--bs-list-group-border-color:var(--bf-line2);--bs-list-group-color:var(--bf-ink)}
.list-group-item{background:transparent}.list-group-item.active{background:var(--bf-verde);border-color:var(--bf-verde);color:#fff}
.nav-pills .nav-link.active{background:var(--bf-verde)}.nav-pills .nav-link{color:var(--bf-ink);border-radius:10px}
.page-link{color:var(--bf-verde);border-color:var(--bf-line);background:var(--bf-pan)}.active>.page-link{background:var(--bf-verde);border-color:var(--bf-verde)}
.nav-tabs .nav-link{border-radius:10px 10px 0 0}
.text-muted{color:var(--bf-mut)!important}
.bf-rotulo{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bf-terra);font-weight:700}
[data-bs-theme=dark] .bf-rotulo{color:var(--bf-ocre)}
.text-bf{color:var(--bf-verde)!important}
hr{border-color:var(--bf-line)}
code{color:var(--bf-terra)}[data-bs-theme=dark] code{color:var(--bf-ocre)}
.bg-light{background:var(--bf-pan2)!important}
.border{border-color:var(--bf-line)!important}

/* tabelas */
table.table{--bs-table-bg:transparent;--bs-table-color:var(--bf-ink);--bs-table-border-color:var(--bf-line2);--bs-table-striped-bg:var(--bf-pan2);--bs-table-hover-bg:var(--bf-pan2);background:transparent;margin-bottom:0}
.table>:not(caption)>*>*{padding:.6rem .7rem;border-bottom-color:var(--bf-line2)}
.table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--bf-mut);background:transparent;font-weight:700;border-bottom:1px solid var(--bf-line)}
.table-light,.table>thead.table-light>tr>th,.table-light>*{--bs-table-bg:var(--bf-pan2);--bs-table-color:var(--bf-ink);background:var(--bf-pan2);color:var(--bf-ink)}
.tabela-scroll{overflow-x:auto}.tabela-scroll td,.tabela-scroll th{white-space:nowrap}
.tabela-scroll.acoes-fixas td:last-child,.tabela-scroll.acoes-fixas th:last-child{position:sticky;right:0;background:var(--bf-pan);box-shadow:-8px 0 8px -8px rgba(0,0,0,.18)}
.tabela-scroll.acoes-fixas tr:hover td:last-child{background:var(--bf-pan2)}
.table code{background:var(--bf-pan2);padding:1px 6px;border-radius:6px;font-size:.8rem;font-family:ui-monospace,Menlo,Consolas,monospace}

/* KPI (cartões bento) */
.kpi{border-left:0;position:relative;overflow:hidden}
.kpi .card-body{padding:1rem 1.15rem}
.kpi .card-body:has(.bf-fab) .rotulo,.kpi .card-body:has(.bf-fab) .valor{padding-right:44px}
.kpi .rotulo{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:var(--bf-mut);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi .valor{font-family:Sora,Manrope,sans-serif;font-size:clamp(1.15rem,4.2vw,1.75rem);font-weight:800;color:var(--bf-ink);line-height:1.15;margin-top:.35rem;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi.azul .valor{color:var(--bf-verde)}[data-bs-theme=dark] .kpi.azul .valor{color:var(--bf-verde-folha)}
.kpi.amarelo .valor{color:var(--bf-terra)}[data-bs-theme=dark] .kpi.amarelo .valor{color:var(--bf-ocre)}
.kpi.vermelho .valor{color:#B42318}[data-bs-theme=dark] .kpi.vermelho .valor{color:#F2A08A}
.kpi .small{font-size:.78rem}
.kpi.hero{background:linear-gradient(135deg,var(--bf-verde),var(--bf-verde-500));color:#fff;border:0}
.kpi.hero .rotulo,.kpi.hero .small,.kpi.hero .text-muted{color:#CFE6D6!important}
.kpi.hero .valor{color:#fff;font-size:clamp(1.6rem,3.6vw,2.4rem)}
.kpi .bf-fab{position:absolute;right:16px;top:16px;width:36px;height:36px;border-radius:10px;background:var(--bf-pan2);display:grid;place-items:center;color:var(--bf-verde)}
[data-bs-theme=dark] .kpi .bf-fab{color:var(--bf-verde-folha)}
.kpi.hero .bf-fab{background:rgba(255,255,255,.14);color:#fff}

/* lista "precisa de você" */
.bf-alerta{display:flex;gap:12px;align-items:center;padding:11px 12px;border-radius:12px;margin-bottom:8px;text-decoration:none;color:var(--bf-ink)}
.bf-alerta:hover{filter:brightness(.97);text-decoration:none;color:var(--bf-ink)}
.bf-alerta i{font-size:20px;flex:0 0 22px;text-align:center}.bf-alerta b{display:block;font-size:.9rem}.bf-alerta small{color:var(--bf-mut)}
.bf-alerta.am{background:#FFF6E3}.bf-alerta.am i{color:#8A5A12}
.bf-alerta.vm{background:#FDECEC}.bf-alerta.vm i{color:#B42318}
.bf-alerta.az{background:#EAF3FF}.bf-alerta.az i{color:#1D4ED8}
.bf-alerta.vd{background:#E4F1E8}.bf-alerta.vd i{color:var(--bf-verde)}
.bf-alerta.cz{background:var(--bf-pan2)}.bf-alerta.cz i{color:var(--bf-verde)}
[data-bs-theme=dark] .bf-alerta.am{background:rgba(214,166,94,.14)}[data-bs-theme=dark] .bf-alerta.am i{color:#E5B770}
[data-bs-theme=dark] .bf-alerta.vm{background:rgba(224,83,61,.14)}[data-bs-theme=dark] .bf-alerta.vm i{color:#F2A08A}
[data-bs-theme=dark] .bf-alerta.az{background:rgba(96,165,250,.14)}[data-bs-theme=dark] .bf-alerta.az i{color:#8FB8FF}
[data-bs-theme=dark] .bf-alerta.vd{background:rgba(156,208,122,.12)}[data-bs-theme=dark] .bf-alerta.vd i{color:var(--bf-verde-folha)}
.bf-progress{height:8px;border-radius:99px;background:var(--bf-pan2);overflow:hidden}.bf-progress i{display:block;height:100%;border-radius:99px;background:var(--bf-verde-500)}

/* portaria - alvos grandes para uso no celular */
.portaria .form-control,.portaria .form-select{font-size:1.05rem;padding:.7rem .8rem}
.portaria .btn-lg{padding:.85rem 1rem;font-size:1.05rem}
#leitorQr{width:100%;max-width:420px;margin:0 auto}

/* impressão */
@media print{.no-print,.bf-side,.bf-top,footer,.bf-pal{display:none!important}body{background:#fff}.bf-main{padding:0;max-width:none}.card{box-shadow:none}.vale-cupom{page-break-inside:avoid;border:1px dashed #333}}
.vale-cupom{border:1px dashed #999;border-radius:6px;padding:10px;margin-bottom:10px;background:#fff;color:#111}
.vale-cupom .codigo{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;font-size:1.05rem}
.vale-cupom canvas,.vale-cupom img{display:block;margin:0 auto}
.ticket{max-width:340px;margin:0 auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}
.ticket hr{border-top:1px dashed #333;margin:.4rem 0}

/* gráficos: o container define a altura, o canvas apenas preenche */
.grafico{position:relative;width:100%}.grafico canvas{position:absolute;inset:0;width:100%!important;height:100%!important}

/* logotipo em barras/placas (mantido para impressos e portal) */
.bf-logo{height:40px;width:auto;max-width:220px;display:block;object-fit:contain}
.bf-logo-placa{background:#fff;border-radius:8px;padding:4px 8px;display:inline-block;line-height:0}.bf-logo-placa .bf-logo{height:30px}
.bf-navbar{background:var(--bf-verde);border-bottom:3px solid var(--bf-ocre)}
.bf-badge-portal{background:var(--bf-ocre);color:#fff;font-size:.6rem;letter-spacing:.06em}

/* faixa da instância de demonstração (.demo) */
.bf-demo-faixa{background:#fff3cd;color:#5c4400;border-bottom:1px solid #e6cf7a;font-size:.85rem;padding:.45rem 1rem;text-align:center}
[data-bs-theme=dark] .bf-demo-faixa{background:#3A3010;color:#F3E2A0;border-color:#6B5A1E}[data-bs-theme=dark] .bf-demo-faixa code{background:#2A2308;color:#F3E2A0;border-color:#6B5A1E}
.bf-demo-faixa code{background:#fff;border:1px solid #e6cf7a;border-radius:4px;padding:0 .3rem;color:#5c4400}
.bf-demo-acessos{display:flex;flex-wrap:wrap;gap:.35rem 1rem;justify-content:center;margin-top:.25rem}

/* marca em texto (instância com nome da empresa e sem logo enviado) */
.bf-wordmark{display:inline-flex;align-items:center;gap:10px;color:#fff}
.bf-wordmark .bf-selo{width:34px;height:34px;border-radius:10px;background:var(--bf-verde-500);display:grid;place-items:center;font:800 12px Sora;letter-spacing:.04em;box-shadow:inset 0 -3px 0 var(--bf-ocre)}
.bf-wordmark b{font:700 15px Sora;letter-spacing:.01em}

/* auditoria de telas: contraste no escuro, faixa demo, mobile */
[data-bs-theme=dark] .alert-light{--bs-alert-bg:var(--bf-pan2);--bs-alert-color:var(--bf-ink);--bs-alert-border-color:var(--bf-line)}
[data-bs-theme=dark] .btn-outline-secondary{--bs-btn-color:#C9D6CD;--bs-btn-border-color:#5B6E63;--bs-btn-hover-bg:#2A3D32;--bs-btn-hover-border-color:#7A8F84;--bs-btn-hover-color:#fff}
[data-bs-theme=dark] .text-danger{color:#F2A08A!important}[data-bs-theme=dark] .text-success{color:#8FD3A5!important}
[data-bs-theme=dark] .text-warning{color:#F3D27A!important}
[data-bs-theme=dark] .bg-light,[data-bs-theme=dark] .table-light{background:var(--bf-pan2)!important;color:var(--bf-ink)}
body:has(>.bf-demo-faixa) .bf-side{height:auto;max-height:100vh}
@media (max-width:575.98px){
  .kpi .valor{white-space:nowrap;overflow:visible;font-size:1.05rem;letter-spacing:-.01em}
  .kpi .rotulo{white-space:normal;font-size:.62rem}
  .row>.col-4:has(>.kpi){flex:0 0 100%;max-width:100%}
  .row>.col-4:has(>.kpi) .kpi .card-body{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
  .row>.col-4:has(>.kpi) .kpi .valor{margin-top:0}
  .btn-group.flex-wrap>.btn{margin-bottom:4px}
}

/* ---------------------------------------------------------------- celular: portaria
   O porteiro trabalha em pé, com uma mão, às vezes de luva. No celular a tela some com
   o que ele não usa e o botão de registrar fica sempre ao alcance do polegar. */
@media (max-width:575.98px){
  /* topo em uma linha só (em telas de 320 px o botão de tema caía para a segunda) */
  .bf-top{gap:8px;padding:10px 12px 0}
  .bf-main{padding:10px 12px 32px}
  .bf-top-brand{font-size:.95rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bf-ic{width:36px;height:36px;border-radius:10px}
  .bf-titulo h1{font-size:1.2rem}

  /* a busca por atalho não serve a quem usa o celular: só ocupa espaço na portaria */
  body.perfil-portaria .bf-search{display:none}

  /* alvos maiores e campos que não disparam zoom no iPhone (fonte < 16px faz o Safari
     aproximar a tela ao focar o campo, e o porteiro perde o enquadramento) */
  .portaria .form-control,.portaria .form-select{font-size:16px;padding:.8rem .8rem}
  .portaria .btn-check+.btn{padding:.7rem .3rem;font-size:.95rem}
  .portaria .card-header{font-size:.95rem}

  /* botão de registrar sempre visível, sem precisar rolar a tela toda */
  .portaria .barra-registrar{position:sticky;bottom:0;z-index:5;padding:10px 0 12px;margin-top:8px;
    background:linear-gradient(to top,var(--bf-bg) 72%,transparent);}
  .portaria .barra-registrar .btn{box-shadow:0 6px 20px rgba(0,0,0,.18)}
}
