/* =====================================================================
   Fenix 2.0 - Tema (claro = padrao / escuro)
   Base neutra (cinzas suaves) e azul apenas como cor de destaque.
   Todas as cores ficam nas variaveis abaixo.
   ===================================================================== */
:root,
:root[data-theme="light"] {
  --f-bg: #f3f4f6;
  --f-surface: #ffffff;
  --f-surface-2: #f8f9fb;
  --f-surface-3: #eef0f3;
  --f-sidebar: #ffffff;
  --f-border: #e3e6eb;
  --f-border-forte: #cfd5dd;
  --f-text: #1f2530;
  --f-text-2: #424a57;
  --f-muted: #6c7480;
  --f-primary: #2f6fde;
  --f-primary-strong: #2459b8;
  --f-primary-soft: #edf3fd;
  --f-on-primary: #ffffff;
  --f-card-1: #eaf1fd;   /* azul */
  --f-card-2: #e5f5ef;   /* verde */
  --f-card-3: #fdf3e1;   /* ambar */
  --f-card-4: #f9e8ec;   /* rosa */
  --f-ico-1: #2f6fde; --f-ico-2: #23966b; --f-ico-3: #c27c0e; --f-ico-4: #c2465f;
  --f-serie-1: #2f6fde;
  --f-serie-2: #9fb8dc;
  --f-warn-soft: #fdf3e1;
  --f-danger-soft: #fbe9ea;
  --f-danger: #c63d3d;
  --f-success: #23966b;
  --f-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 2px 8px rgba(16, 24, 40, .05);
  --f-foco: 0 0 0 3px rgba(47, 111, 222, .18);
  --f-radius: 12px;
  --f-radius-sm: 8px;
  --f-seta: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236c7480' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  color-scheme: light;
}
:root[data-theme="dark"] {
  --f-bg: #131519;
  --f-surface: #1b1e24;
  --f-surface-2: #21252c;
  --f-surface-3: #272b33;
  --f-sidebar: #171a1f;
  --f-border: #2b3038;
  --f-border-forte: #3a404a;
  --f-text: #e4e7ec;
  --f-text-2: #c5cad2;
  --f-muted: #959ca8;
  --f-primary: #6b9cf0;
  --f-primary-strong: #93b7f5;
  --f-primary-soft: #232f44;
  --f-on-primary: #10141b;
  --f-card-1: #1f2a3d;
  --f-card-2: #1c2f2a;
  --f-card-3: #322b1d;
  --f-card-4: #33222a;
  --f-ico-1: #8bb2f5; --f-ico-2: #6fd1a9; --f-ico-3: #e7b462; --f-ico-4: #ec8ea2;
  --f-serie-1: #6b9cf0;
  --f-serie-2: #4b5a72;
  --f-warn-soft: #322b1d;
  --f-danger-soft: #3a2326;
  --f-danger: #f08c8c;
  --f-success: #6fd1a9;
  --f-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 14px rgba(0, 0, 0, .22);
  --f-foco: 0 0 0 3px rgba(107, 156, 240, .25);
  --f-seta: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23959ca8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  color-scheme: dark;
}

/* ---------------- base ---------------- */
html, body { background: var(--f-bg) !important; color: var(--f-text); }
body.f-body, .f-shell, .f-shell input, .f-shell select, .f-shell textarea, .f-shell button, .f-shell table,
body.f-quadro, body.f-quadro input, body.f-quadro select, body.f-quadro textarea, body.f-quadro table {
  font-family: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
}
body.f-body { margin: 0; font-size: 13px; }
.f-shell a, body.f-quadro a { color: var(--f-primary); text-decoration: none; }
.f-shell a:hover, body.f-quadro a:hover { color: var(--f-primary-strong); text-decoration: underline; }
.f-shell * { box-sizing: border-box; }

/* ---------------- estrutura ---------------- */
.f-shell { display: flex; min-height: 100vh; }
.f-sidebar {
  width: 260px; flex: 0 0 260px; background: var(--f-sidebar);
  border-right: 1px solid var(--f-border); display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh; overflow-y: auto; padding: 18px 12px; scrollbar-width: thin;
}
.f-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.f-logo { display: flex; align-items: center; gap: 10px; padding: 4px 10px 20px; color: var(--f-text) !important; text-decoration: none !important; }
.f-logo-marca { width: 34px; height: 34px; border-radius: 9px; background: var(--f-primary); display: grid; place-items: center; color: #fff; }
.f-logo-marca .f-ico { width: 18px; height: 18px; }
.f-logo-nome { font-size: 17px; font-weight: 700; letter-spacing: -.2px; }
.f-logo-nome small { display: block; font-size: 11px; font-weight: 500; color: var(--f-muted); letter-spacing: 0; }

/* ---------------- menu (sanfona com niveis) ---------------- */
.f-nav-sec { font-size: 10.5px; text-transform: uppercase; letter-spacing: .09em; color: var(--f-muted); padding: 14px 12px 6px; font-weight: 600; }
.f-nav, .f-nav ul { list-style: none; margin: 0; padding: 0; }
.f-nav li { margin: 1px 0; }
.f-nav-link {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 8px 10px; border-radius: var(--f-radius-sm); border: 0; background: transparent;
  color: var(--f-text-2) !important; font: inherit; font-size: 13.5px; font-weight: 500; text-align: left;
  cursor: pointer; text-decoration: none !important; transition: background .12s, color .12s;
}
.f-nav-link:hover { background: var(--f-surface-3); color: var(--f-text) !important; }
.f-nav-link:focus-visible { outline: none; box-shadow: var(--f-foco); }
.f-nav-link.f-ativo { background: var(--f-primary-soft); color: var(--f-primary-strong) !important; font-weight: 600; }
.f-nav-link .f-ico { color: var(--f-muted); }
.f-nav-link.f-ativo .f-ico, .f-nav li.f-no-ativo > .f-nav-link .f-ico { color: var(--f-primary); }
.f-nav li.f-no-ativo > .f-nav-link { color: var(--f-text) !important; font-weight: 600; }
.f-nav .f-seta { margin-left: auto; width: 15px; height: 15px; flex: 0 0 15px; transition: transform .18s; opacity: .7; }
.f-nav li.f-aberto > .f-nav-link .f-seta { transform: rotate(90deg); }
.f-nav ul { display: none; }
.f-nav li.f-aberto > ul { display: block; }
/* nivel 2 */
.f-nav-n2 { margin: 2px 0 4px 19px !important; padding-left: 9px !important; border-left: 1px solid var(--f-border) !important; }
.f-nav-n2 .f-nav-link { font-size: 13px; padding: 7px 10px; }
/* nivel 3 */
.f-nav-n3 { margin: 1px 0 4px 12px !important; padding-left: 9px !important; border-left: 1px dashed var(--f-border) !important; }
.f-nav-n3 .f-nav-link { font-size: 12.5px; padding: 6px 10px; color: var(--f-muted) !important; }
.f-nav-n3 .f-nav-link.f-ativo { color: var(--f-primary-strong) !important; }
.f-ico { width: 18px; height: 18px; flex: 0 0 18px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.f-oculto { display: none !important; }
.f-nav.f-buscando ul { display: block; }

.f-backup { margin: 18px 4px 4px; padding: 14px; border-radius: var(--f-radius); background: var(--f-surface-2); border: 1px solid var(--f-border); color: var(--f-text); font-size: 12px; }
.f-backup strong { display: block; font-size: 13px; margin-bottom: 2px; }
.f-backup span { color: var(--f-muted); }
.f-shell .f-backup input[type=submit] { margin: 10px 0 0 !important; width: 100%; }

/* ---------------- barra superior ---------------- */
.f-topbar {
  display: flex; align-items: center; gap: 14px; padding: 14px 28px; position: sticky; top: 0; z-index: 20;
  background: var(--f-bg); border-bottom: 1px solid transparent;
}
.f-titulo-pag { font-size: 19px; font-weight: 700; letter-spacing: -.3px; color: var(--f-text); min-width: 0; }
.f-titulo-pag * { font-size: inherit !important; color: inherit !important; font-family: inherit !important; }
.f-busca {
  margin-left: auto; display: flex; align-items: center; gap: 8px; background: var(--f-surface);
  border: 1px solid var(--f-border); border-radius: 999px; padding: 0 14px; height: 38px; width: 260px; color: var(--f-muted);
}
.f-busca:focus-within { border-color: var(--f-primary); box-shadow: var(--f-foco); }
.f-shell .f-busca input[type=text] {
  border: 0 !important; background: transparent !important; box-shadow: none !important; outline: none;
  color: var(--f-text) !important; margin: 0 !important; padding: 0 !important; width: 100%; height: auto !important; font-size: 13px !important;
}
.f-btn-icone {
  width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--f-border); background: var(--f-surface);
  color: var(--f-text-2); display: grid; place-items: center; cursor: pointer; transition: background .12s;
}
.f-btn-icone:hover { background: var(--f-surface-3); }
.f-btn-icone .f-ico-sol { display: none; }
:root[data-theme="dark"] .f-btn-icone .f-ico-sol { display: block; }
:root[data-theme="dark"] .f-btn-icone .f-ico-lua { display: none; }
.f-usuario { display: flex; align-items: center; gap: 10px; }
.f-usuario-txt { text-align: right; line-height: 1.25; }
.f-usuario-txt strong { display: block; font-size: 13.5px; color: var(--f-text); }
.f-usuario-txt span { font-size: 11.5px; color: var(--f-muted); }
.f-avatar {
  width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--f-surface-3);
  color: var(--f-text) !important; font-weight: 700; font-size: 13px; position: relative; text-decoration: none !important; border: 1px solid var(--f-border);
}
.f-avatar::after { content: ""; position: absolute; right: -1px; bottom: 0; width: 10px; height: 10px; border-radius: 50%; background: var(--f-success); border: 2px solid var(--f-bg); }
.f-menu-mob { display: none; }

/* ---------------- conteudo ---------------- */
.f-conteudo { padding: 4px 28px 28px; flex: 1 1 auto; }
.f-card { background: var(--f-surface); border: 1px solid var(--f-border); border-radius: var(--f-radius); box-shadow: var(--f-shadow); }
.f-card-pagina { padding: 22px 24px; overflow-x: auto; }
.f-card-pagina:has(.f-painel) { background: transparent; border: 0; box-shadow: none; padding: 0; }
.f-rodape { padding: 12px 28px 20px; color: var(--f-muted); font-size: 12px; display: flex; justify-content: space-between; }

/* ---------------- conteudo das paginas antigas ---------------- */
.f-conteudo, .f-conteudo td, .f-conteudo th, .f-conteudo div, .f-conteudo p, .f-conteudo span, .f-conteudo li, .f-conteudo label,
.f-conteudo .txt, .f-conteudo .Fonte_Principal, .f-conteudo .texto_principal, .f-conteudo .label, .f-conteudo .textos-home {
  font-family: "Plus Jakarta Sans", "Segoe UI", system-ui, Arial, sans-serif; color: var(--f-text);
}
.f-conteudo td, .f-conteudo th { font-size: 12.5px; padding: 5px 7px; vertical-align: middle; }
.f-conteudo table { border-collapse: collapse; }
.f-conteudo table table td, .f-conteudo table table th { padding: 4px 6px; }
/* rotulos e cabecalhos de tabela: neutros */
.f-conteudo .Barra, .f-conteudo .Tab_titulo, .f-conteudo .titulo_bc, .f-conteudo .label_titulo {
  background: var(--f-surface-2) !important; color: var(--f-text-2) !important; font-weight: 600; font-size: 12px;
  padding: 8px 10px; border: 0 !important; border-bottom: 1px solid var(--f-border) !important;
}
.f-conteudo .Barra *, .f-conteudo .Tab_titulo *, .f-conteudo .titulo_bc *, .f-conteudo .label_titulo * { color: inherit !important; font-weight: inherit; }
.f-conteudo th.Barra, .f-conteudo td.Barra { letter-spacing: .01em; }
/* titulo de secao */
.f-conteudo .Barra_erro {
  background: transparent !important; color: var(--f-text) !important; font-weight: 700; font-size: 14px;
  padding: 10px 2px 8px; border: 0 !important; border-bottom: 1px solid var(--f-border) !important; margin: 4px 0 8px;
}
.f-conteudo .titulo, .f-conteudo .Titulo, .f-conteudo .Titulo_rel { color: var(--f-text) !important; font-weight: 700; font-size: 15px; }
.f-conteudo .Top2, .f-conteudo .sessao { background: transparent !important; border-color: var(--f-border) !important; box-shadow: none !important; }
.f-conteudo .group, .f-conteudo fieldset {
  background: var(--f-surface) !important; border: 1px solid var(--f-border) !important; border-radius: var(--f-radius) !important;
  box-shadow: none !important; padding: 12px 14px 14px !important; margin: 0 0 14px !important;
}
.f-conteudo .group h2, .f-conteudo legend {
  background: transparent !important; color: var(--f-text) !important; text-shadow: none !important; box-shadow: none !important;
  font-size: 13.5px !important; font-weight: 700 !important; padding: 0 6px !important; margin: 0 0 8px !important;
}
.f-conteudo .txt_red, .f-conteudo font[color="#FF0000" i] { color: var(--f-danger) !important; }
.f-conteudo .TXT_Negrito { font-weight: 700; }
.f-conteudo div.bra, .f-conteudo div.int { border: 0 !important; background: transparent !important; }
.f-conteudo hr { border: 0; border-top: 1px solid var(--f-border); margin: 10px 0; }

/* cores antigas de fundo -> equivalentes suaves */
.f-conteudo table[bgcolor="#000000" i] { background-color: var(--f-border) !important; }
.f-conteudo [bgcolor="#FFFFFF" i], .f-conteudo [bgcolor="white" i] { background-color: var(--f-surface) !important; }
.f-conteudo [bgcolor="#EFEFEF" i], .f-conteudo [bgcolor="#F5F5F5" i], .f-conteudo [bgcolor="#F4F4F4" i],
.f-conteudo [bgcolor="#F3F3F3" i], .f-conteudo [bgcolor="#F2F2F2" i], .f-conteudo [bgcolor="#EDFAF8" i] { background-color: var(--f-surface-2) !important; }
.f-conteudo [bgcolor="#E0D983" i], .f-conteudo [bgcolor="#FFFF80" i], .f-conteudo [bgcolor="#F8F5AB" i],
.f-conteudo [bgcolor="#FFBC79" i] { background-color: var(--f-warn-soft) !important; }
.f-conteudo [bgcolor="#F1B4A9" i], .f-conteudo [bgcolor="#FFC4C8" i], .f-conteudo [bgcolor="#FF8282" i],
.f-conteudo [bgcolor="#FFDDE0" i], .f-conteudo [bgcolor="#FF0000" i] { background-color: var(--f-danger-soft) !important; }
.f-conteudo [bgcolor="#D5DEEC" i], .f-conteudo [bgcolor="#94AFCD" i], .f-conteudo [bgcolor="#D8E6F5" i],
.f-conteudo [bgcolor="#E9EEF5" i] { background-color: var(--f-surface-3) !important; }
.f-conteudo [style*="background-color:#4F7E88" i] { background-color: var(--f-surface-3) !important; color: var(--f-text) !important; }
:root[data-theme="dark"] .f-conteudo [bgcolor] { background-color: var(--f-surface-2); }
:root[data-theme="dark"] .f-conteudo font[color="#000000" i], :root[data-theme="dark"] .f-conteudo font[color="#003399" i] { color: inherit !important; }
.f-conteudo table[border="1"] td, .f-conteudo table[border="1"] th { border: 1px solid var(--f-border) !important; }
/* tabelas com borda: so linhas horizontais (mais leve) */
.f-conteudo table[border="1"] { border: 1px solid var(--f-border) !important; border-radius: var(--f-radius-sm); }
.f-conteudo table[border="1"] td, .f-conteudo table[border="1"] th { border-left: 0 !important; border-right: 0 !important; }
.f-conteudo .Barra_erro:empty, .f-conteudo .Barra:empty { display: none; }
/* rotulos de formulario (texto acima do campo) */
.f-conteudo td.label, .f-conteudo .label { font-size: 12px; font-weight: 600; color: var(--f-text-2) !important; }
.f-conteudo td.label { padding: 8px 10px 6px; }
/* linhas de listagem: destaque ao passar o mouse */
.f-conteudo tr[onmouseover]:hover td, .f-conteudo table[border="1"] tr:hover td { background-color: var(--f-surface-3) !important; }

/* ---------------- formularios ---------------- */
:is(.f-shell, .f-quadro) input[type=text], :is(.f-shell, .f-quadro) input[type=password], :is(.f-shell, .f-quadro) input[type=email],
:is(.f-shell, .f-quadro) input[type=number], :is(.f-shell, .f-quadro) input[type=date], :is(.f-shell, .f-quadro) input[type=file],
:is(.f-shell, .f-quadro) input:not([type]), :is(.f-shell, .f-quadro) select, :is(.f-shell, .f-quadro) textarea {
  background: var(--f-surface) !important; color: var(--f-text) !important;
  border: 1px solid var(--f-border-forte) !important; border-radius: var(--f-radius-sm) !important;
  box-shadow: none !important; padding: 0 10px !important; margin: 3px 4px !important; height: 34px;
  font-size: 13px !important; font-family: inherit; outline: none; vertical-align: middle; max-width: 100%;
  transition: border-color .12s, box-shadow .12s;
}
:is(.f-shell, .f-quadro) textarea { height: auto; min-height: 72px; padding: 8px 10px !important; line-height: 1.45; resize: vertical; }
:is(.f-shell, .f-quadro) select {
  -webkit-appearance: none; appearance: none; padding-right: 30px !important; cursor: pointer;
  background-image: var(--f-seta) !important; background-repeat: no-repeat !important; background-position: right 10px center !important;
}
:is(.f-shell, .f-quadro) select[multiple], :is(.f-shell, .f-quadro) select[size] { height: auto; padding: 6px !important; background-image: none !important; }
:is(.f-shell, .f-quadro) input:hover, :is(.f-shell, .f-quadro) select:hover, :is(.f-shell, .f-quadro) textarea:hover { border-color: var(--f-muted) !important; }
:is(.f-shell, .f-quadro) input:focus, :is(.f-shell, .f-quadro) select:focus, :is(.f-shell, .f-quadro) textarea:focus {
  border-color: var(--f-primary) !important; box-shadow: var(--f-foco) !important;
}
:is(.f-shell, .f-quadro) input[readonly], :is(.f-shell, .f-quadro) input[disabled], :is(.f-shell, .f-quadro) select[disabled], :is(.f-shell, .f-quadro) textarea[readonly] {
  background: var(--f-surface-3) !important; color: var(--f-muted) !important; cursor: default;
}
:is(.f-shell, .f-quadro) ::placeholder { color: var(--f-muted); opacity: .8; }
:is(.f-shell, .f-quadro) input[type=checkbox], :is(.f-shell, .f-quadro) input[type=radio] {
  accent-color: var(--f-primary); width: 16px; height: 16px; margin: 0 6px 0 4px; vertical-align: -3px; cursor: pointer;
}
/* botoes */
:is(.f-shell, .f-quadro) input[type=submit], :is(.f-shell, .f-quadro) button[type=submit], .f-shell .f-btn, body.f-quadro .f-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  background: var(--f-primary) !important; color: var(--f-on-primary) !important; border: 1px solid var(--f-primary) !important;
  border-radius: var(--f-radius-sm) !important; height: 34px; padding: 0 16px !important; margin: 3px 4px !important;
  font-family: inherit; font-weight: 600 !important; font-size: 13px !important; text-shadow: none !important; line-height: 1;
  cursor: pointer; box-shadow: none !important; text-decoration: none !important; vertical-align: middle;
  transition: background .12s, border-color .12s; position: static !important;
}
:is(.f-shell, .f-quadro) input[type=submit]:hover, .f-shell .f-btn:hover, body.f-quadro .f-btn:hover { background: var(--f-primary-strong) !important; border-color: var(--f-primary-strong) !important; }
:is(.f-shell, .f-quadro) input[type=button], :is(.f-shell, .f-quadro) input[type=reset], .f-shell .f-btn-sec, body.f-quadro .f-btn-sec {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--f-surface) !important; color: var(--f-text-2) !important; border: 1px solid var(--f-border-forte) !important;
  border-radius: var(--f-radius-sm) !important; height: 34px; padding: 0 14px !important; margin: 3px 4px !important;
  font-family: inherit; font-weight: 600 !important; font-size: 13px !important; text-shadow: none !important; box-shadow: none !important;
  cursor: pointer; text-decoration: none !important; vertical-align: middle; position: static !important;
}
:is(.f-shell, .f-quadro) input[type=button]:hover, :is(.f-shell, .f-quadro) input[type=reset]:hover, .f-shell .f-btn-sec:hover, body.f-quadro .f-btn-sec:hover {
  background: var(--f-surface-3) !important; color: var(--f-text) !important;
}
:is(.f-shell, .f-quadro) input[type=submit]:focus-visible, :is(.f-shell, .f-quadro) input[type=button]:focus-visible { box-shadow: var(--f-foco) !important; }
a:has(> .f-btn-sec), a:has(> .f-btn) { text-decoration: none !important; }
:is(.f-shell, .f-quadro) input[type=image] { border-radius: 6px; vertical-align: middle; }

/* ---------------- painel inicial ---------------- */
.f-painel { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 20px; }
.f-painel-col { display: grid; gap: 20px; align-content: start; min-width: 0; }
.f-ola { font-size: 14px; color: var(--f-muted); margin: 0 0 14px; }
.f-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.f-stat {
  border-radius: var(--f-radius); padding: 16px 18px; color: var(--f-text) !important; position: relative; display: block;
  background: var(--f-surface); border: 1px solid var(--f-border); box-shadow: var(--f-shadow);
  text-decoration: none !important; transition: transform .15s, border-color .15s;
}
.f-stat:hover { transform: translateY(-2px); border-color: var(--f-border-forte); }
.f-stat-ico { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; }
.f-stat-1 .f-stat-ico { background: var(--f-card-1); color: var(--f-ico-1); }
.f-stat-2 .f-stat-ico { background: var(--f-card-2); color: var(--f-ico-2); }
.f-stat-3 .f-stat-ico { background: var(--f-card-3); color: var(--f-ico-3); }
.f-stat-4 .f-stat-ico { background: var(--f-card-4); color: var(--f-ico-4); }
.f-stat-num { font-size: 26px; font-weight: 700; letter-spacing: -.5px; margin-top: 12px; color: var(--f-text); }
.f-stat-rot { font-size: 13px; color: var(--f-muted); }
.f-tag { position: absolute; right: 16px; top: 18px; display: inline-flex; align-items: center; font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 999px; background: var(--f-surface-3); color: var(--f-text-2); }
.f-tag-alerta { background: var(--f-danger-soft); color: var(--f-danger); }
.f-bloco { padding: 20px; }
.f-bloco-cab { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; gap: 10px; color: var(--f-muted); }
.f-bloco-cab h3 { margin: 0; font-size: 15px; font-weight: 700; color: var(--f-text); }
.f-bloco-cab span { color: var(--f-muted); font-size: 12px; }
.f-legenda { display: flex; gap: 16px; font-size: 12px; color: var(--f-muted); margin-bottom: 8px; }
.f-legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.f-grafico { display: grid; grid-template-columns: 34px 1fr; height: 230px; }
.f-grafico-eixo { display: flex; flex-direction: column; justify-content: space-between; font-size: 11px; color: var(--f-muted); padding-bottom: 22px; }
.f-grafico-area { position: relative; display: flex; align-items: flex-end; justify-content: space-around; border-bottom: 1px solid var(--f-border); margin-bottom: 22px;
  background-image: linear-gradient(var(--f-border) 1px, transparent 1px); background-size: 100% 25%; }
.f-grafico-mes { display: flex; align-items: flex-end; gap: 5px; height: 100%; position: relative; }
.f-barra { width: 16px; border-radius: 5px 5px 2px 2px; min-height: 3px; position: relative; transition: opacity .15s; }
.f-barra-1 { background: var(--f-serie-1); } .f-barra-2 { background: var(--f-serie-2); }
.f-barra:hover { opacity: .8; }
.f-barra:hover::after { content: attr(data-v); position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);
  background: var(--f-surface); color: var(--f-text); border: 1px solid var(--f-border); box-shadow: var(--f-shadow);
  padding: 3px 8px; border-radius: 6px; font-size: 11px; white-space: nowrap; }
.f-grafico-mes small { position: absolute; bottom: -20px; left: 50%; transform: translateX(-50%); font-size: 11px; color: var(--f-muted); white-space: nowrap; }
.f-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.f-lista li { display: flex; gap: 14px; align-items: center; padding: 10px 12px; border-radius: var(--f-radius-sm); background: var(--f-surface-2); border: 1px solid var(--f-border); font-size: 13px; }
.f-lista li b { font-weight: 600; }
.f-lista .f-lista-hora { font-weight: 600; font-size: 12px; min-width: 52px; padding-right: 12px; border-right: 1px solid var(--f-border); color: var(--f-text-2); }
.f-lista small { display: block; color: var(--f-muted); font-size: 11.5px; }
.f-lista .f-a1 { border-left: 3px solid var(--f-ico-1); } .f-lista .f-a2 { border-left: 3px solid var(--f-ico-2); } .f-lista .f-a3 { border-left: 3px solid var(--f-ico-3); }
.f-vazio { color: var(--f-muted); font-size: 13px; padding: 8px 2px; }
.f-semana { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; gap: 4px; }
.f-semana div { padding: 8px 0; border-radius: 10px; font-size: 11px; color: var(--f-muted); }
.f-semana b { display: block; font-size: 16px; color: var(--f-text); margin-top: 4px; font-weight: 600; }
.f-semana .f-hoje { background: var(--f-primary); color: rgba(255,255,255,.85); }
.f-semana .f-hoje b { color: #fff; }
:root[data-theme="dark"] .f-semana .f-hoje, :root[data-theme="dark"] .f-semana .f-hoje b { color: var(--f-on-primary); }
.f-atalhos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.f-atalhos a { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: var(--f-radius-sm); background: var(--f-surface-2); border: 1px solid var(--f-border); color: var(--f-text) !important; font-size: 13px; font-weight: 500; text-decoration: none !important; }
.f-atalhos a .f-ico { color: var(--f-muted); }
.f-atalhos a:hover { border-color: var(--f-border-forte); background: var(--f-surface-3); }
.f-tabela { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.f-tabela th { text-align: left; color: var(--f-muted); font-weight: 600; padding: 8px 6px; border-bottom: 1px solid var(--f-border); }
.f-tabela td { padding: 9px 6px; border-bottom: 1px solid var(--f-border); }
.f-tabela tr:last-child td { border-bottom: 0; }
.f-aviso { padding: 12px 14px; border-radius: var(--f-radius-sm); background: var(--f-warn-soft); font-size: 13px; margin-bottom: 16px; }

/* ---------------- relatorios ---------------- */
.f-relato-filtro { width: 100%; border: 0; display: block; min-height: 120px; background: transparent; }
.f-relato-resultado { width: 100%; border: 1px solid var(--f-border); display: block; min-height: 70vh; background: #fff; border-radius: var(--f-radius-sm); }
.f-relato-tit { font-size: 12px; color: var(--f-muted); margin: 18px 0 8px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
html:has(> body.f-quadro) { background: var(--f-surface) !important; }
html body.f-quadro { background: var(--f-surface) !important; margin: 0; padding: 4px; }

/* ---------------- login ---------------- */
html:has(> body.f-login) { background: var(--f-bg) !important; }
html body.f-login { margin: 0; min-height: 100vh; background: var(--f-bg) !important; font-family: "Plus Jakarta Sans", "Segoe UI", system-ui, Arial, sans-serif !important; color: var(--f-text); }
body.f-login .container { max-width: none !important; width: 100%; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px 16px; }
body.f-login .container > .d-flex { display: flex; justify-content: center; width: 100%; height: auto !important; }
body.f-login .card { width: 400px !important; max-width: 100%; margin: 0 !important; height: auto !important; padding: 12px 8px;
  background: var(--f-surface) !important; border: 1px solid var(--f-border) !important; border-radius: 16px !important; box-shadow: var(--f-shadow); }
body.f-login .card-header, body.f-login .card-footer { background: transparent !important; border: 0 !important; }
body.f-login .card-header { padding: 18px 22px 8px; }
body.f-login .card-body { padding: 10px 22px; }
body.f-login .card-footer { padding: 6px 22px 14px; text-align: center; }
body.f-login .card-footer, body.f-login .card-footer * { color: var(--f-muted) !important; font-size: 12px; }
body.f-login .card-footer .d-flex { display: flex; justify-content: center; }
body.f-login .card-header h3 { color: var(--f-text) !important; font-weight: 700; font-size: 21px; display: flex; align-items: center; gap: 10px; margin: 0; }
body.f-login .card-header h3::before { content: ""; width: 32px; height: 32px; border-radius: 9px; flex: 0 0 32px; background: var(--f-primary); }
body.f-login .input-group { display: flex; align-items: stretch; width: 100%; margin-bottom: 14px; }
body.f-login .input-group-prepend { display: flex; }
body.f-login .input-group-prepend span { display: flex; align-items: center; justify-content: center; width: 44px; min-height: 42px;
  background: var(--f-surface-2) !important; color: var(--f-muted) !important; border: 1px solid var(--f-border-forte) !important; border-right: 0 !important; border-radius: 9px 0 0 9px !important; }
body.f-login .form-control { flex: 1 1 auto; width: 100%; height: 42px; padding: 0 12px; font-size: 14px; font-family: inherit; outline: none;
  background: var(--f-surface) !important; color: var(--f-text) !important; border: 1px solid var(--f-border-forte) !important; border-radius: 0 9px 9px 0 !important; }
body.f-login .form-control:focus { border-color: var(--f-primary) !important; box-shadow: var(--f-foco) !important; }
body.f-login .form-group:last-child { display: flex; justify-content: flex-end; }
body.f-login .login_btn { background: var(--f-primary) !important; color: var(--f-on-primary) !important; border: 0; border-radius: 9px; width: 100%; height: 42px; font-weight: 600; cursor: pointer; font-family: inherit; font-size: 14px; }
body.f-login .login_btn:hover { background: var(--f-primary-strong) !important; }
.f-tema-flutuante { position: fixed; top: 18px; right: 18px; z-index: 10; }

/* ---------------- responsivo ---------------- */
@media (max-width: 1200px) {
  .f-painel { grid-template-columns: 1fr; }
  .f-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .f-sidebar { position: fixed; left: 0; top: 0; z-index: 50; transform: translateX(-100%); transition: transform .2s; box-shadow: var(--f-shadow); }
  body.f-menu-aberto .f-sidebar { transform: none; }
  .f-menu-mob { display: grid; }
  .f-busca, .f-usuario-txt { display: none; }
  .f-topbar { padding: 12px 16px; }
  .f-conteudo { padding: 4px 16px 20px; }
  .f-titulo-pag { font-size: 17px; margin-right: auto; }
}
@media (max-width: 560px) {
  .f-stats, .f-atalhos { grid-template-columns: 1fr; }
  .f-barra { width: 9px; }
  .f-grafico-mes { gap: 3px; }
}
@media print {
  .f-sidebar, .f-topbar, .f-rodape { display: none !important; }
  .f-card { box-shadow: none; border: 0; }
  html, body { background: #fff !important; }
}
