/* ═══ 19/10/2026 — VISUAL "JANELA" NOS OUTROS MÓDULOS (dono: "faz o mesmo nos outros módulos, mantendo as cores tema de cada um")
   O Fiscal já tem o seu (fiscal.css). Aqui o mesmo desenho para Malharia, Linha, Terceirizados, Tecelagem e Financeiro, só que
   pintado com as variáveis --bg-* que CADA módulo já define (style.css / linha.css / terceirizados.css / tecelagem.css):
   · menu lateral claro (bg-50) e FLUTUANTE (margem 10 px, cantos redondos, sombra), seções como barras (bg-100), item ativo = cartão branco;
   · topbar flutuante, cor sólida (bg-800) — o logo na mesma cor;
   · botão Início como cartão (casinha num círculo) — ativo = cor sólida do módulo;
   · blocos das telas (cartões, atalhos, KPIs) flutuando com a mesma sombra;
   · degradê do fundo de cima (claro) para baixo (escuro).
   No celular (≤768 px) o menu é uma gaveta: sem margem/raio. O clique no logo (fechar menus + tela inicial) está em js/menu-janela.js. ═══ */

/* ── menu lateral ── */
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar { background: var(--bg-50); margin: 10px 0 10px 10px; border-radius: 10px; box-shadow: 0 14px 40px rgba(0, 0, 0, .35), 0 0 0 1px rgba(0, 0, 0, .08); }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-logo { border-bottom: 0; cursor: pointer; }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-logo:hover .logo-box { filter: brightness(1.12); }
body[data-modulo]:not([data-modulo="fiscal"]) .logo-box { background: var(--bg-800); border-radius: 10px 10px 0 0; }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-section { background: var(--bg-100); color: var(--bg-900); border-top: 1px solid var(--bg-200); border-bottom: 1px solid var(--bg-200); margin-top: 6px; padding: 7px 14px 6px; font-size: 12px; }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-section:hover { color: var(--bg-700); background: var(--bg-200); }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-section .acc-arrow { opacity: .8; }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item { color: var(--bg-900); border-left-color: transparent; }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item:hover { background: var(--bg-100); color: var(--bg-900); }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item.active { background: #fff; color: var(--bg-900); font-weight: 700; border-left-color: var(--bg-700); box-shadow: inset 0 1px 0 var(--bg-200), inset 0 -1px 0 var(--bg-200); }
/* ícones coloridos (feitos para o fundo escuro) ficam um pouco mais fortes no fundo claro */
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item svg { filter: brightness(.72) saturate(1.35); }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item.active svg { filter: brightness(.6) saturate(1.5); }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar::-webkit-scrollbar { width: 6px; }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar::-webkit-scrollbar-thumb { background: var(--bg-300); border-radius: 3px; }

/* ── botão Início (cartão branco; casinha num círculo na cor do módulo; ativo = cor sólida) ── */
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="inicio"],
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="terc-inicio"],
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="tec-inicio"],
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="fin-inicio"] {
  margin: 10px 10px 6px; border-radius: 10px; background: #fff; border: 1px solid var(--bg-200); padding: 7px 12px; gap: 10px; font-weight: 700;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .14); transition: background .15s, box-shadow .15s, transform .15s; }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="inicio"] .sidebar-emoji,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="terc-inicio"] .sidebar-emoji,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="tec-inicio"] .sidebar-emoji,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="fin-inicio"] .sidebar-emoji { width: 30px; min-width: 30px; height: 30px; line-height: 30px; border-radius: 50%; background: var(--bg-800); font-size: 16px; }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="inicio"]:hover,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="terc-inicio"]:hover,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="tec-inicio"]:hover,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="fin-inicio"]:hover { background: var(--bg-50); box-shadow: 0 8px 20px rgba(0, 0, 0, .2); transform: translateY(-1px); }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="inicio"].active,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="terc-inicio"].active,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="tec-inicio"].active,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="fin-inicio"].active { background: var(--bg-800); color: #fff; border-color: var(--bg-800); box-shadow: 0 8px 20px rgba(0, 0, 0, .3); }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="inicio"].active .sidebar-emoji,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="terc-inicio"].active .sidebar-emoji,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="tec-inicio"].active .sidebar-emoji,
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar-item[data-page="fin-inicio"].active .sidebar-emoji { background: #fff; }
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar.collapsed .sidebar-item[data-page="inicio"],
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar.collapsed .sidebar-item[data-page="terc-inicio"],
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar.collapsed .sidebar-item[data-page="tec-inicio"],
body[data-modulo]:not([data-modulo="fiscal"]) .sidebar.collapsed .sidebar-item[data-page="fin-inicio"] { margin: 8px 6px; padding: 6px; justify-content: center; }

/* ── topbar flutuante, cor sólida do módulo ── */
body[data-modulo]:not([data-modulo="fiscal"]) .topbar { background: var(--bg-800); margin: 10px 10px 0 10px; border-radius: 10px; box-shadow: 0 14px 40px rgba(0, 0, 0, .35), 0 0 0 1px rgba(0, 0, 0, .08); }

/* ── blocos das telas flutuando ── */
body[data-modulo]:not([data-modulo="fiscal"]) #page-content .card,
body[data-modulo]:not([data-modulo="fiscal"]) #page-content .terc-kpi,
body[data-modulo]:not([data-modulo="fiscal"]) .inicio-atalho { border-radius: 10px; box-shadow: 0 10px 30px rgba(0, 0, 0, .28), 0 0 0 1px rgba(0, 0, 0, .06); }
body[data-modulo]:not([data-modulo="fiscal"]) .inicio-atalho:hover { box-shadow: 0 16px 40px rgba(0, 0, 0, .38), 0 0 0 3px var(--bg-300); }
body[data-modulo]:not([data-modulo="fiscal"]) .inicio-tela { border-radius: 14px; box-shadow: 0 14px 40px rgba(0, 0, 0, .35), 0 0 0 1px rgba(0, 0, 0, .08); }

/* ── degradê do fundo: claro em cima, escuro embaixo (mesmas cores de cada módulo, só a direção mudou) ── */
body[data-modulo="malharia"], body[data-modulo="linha"] { background: linear-gradient(180deg, var(--bg-100) 0%, var(--bg-200) 55%, var(--bg-300) 100%) fixed; }
body[data-modulo="financeiro"] { background: linear-gradient(180deg, #dbeef4 0%, #b8dee9 55%, #93cddd 100%) fixed; }
body[data-modulo="terceirizados"] { background: linear-gradient(180deg, #ded3cd 0%, #c2b0a3 52%, #9c8475 100%) fixed; }
body[data-modulo="tecelagem"] { background: linear-gradient(180deg, #eeeeee 0%, #e0e0e0 50%, #bdbdbd 100%) fixed; }

/* ── celular: o menu é uma gaveta fixa; a topbar volta a encostar nas bordas ── */
@media (max-width: 768px) {
  body[data-modulo]:not([data-modulo="fiscal"]) .sidebar, body[data-modulo="fiscal"] .sidebar { margin: 0; border-radius: 0; }
  body[data-modulo]:not([data-modulo="fiscal"]) .logo-box, body[data-modulo="fiscal"] .sidebar .logo-box { border-radius: 0; }
  body[data-modulo]:not([data-modulo="fiscal"]) .topbar, body[data-modulo="fiscal"] .topbar { margin: 0; border-radius: 0; }
}

/* ── 19/10 (2ª rodada) — tela inicial sem rolagem: a topbar flutuante (10 px de margem) + o recheio da .content (24 px em cima e embaixo)
   somam 110 px; o painel inicial media 100vh − 100px e sobrava 10 px → barra de rolagem. Vale para TODOS os módulos (Fiscal incluído). ── */
body[data-modulo] .inicio-tela { min-height: calc(100vh - 112px); }
@media (max-width: 768px) { body[data-modulo] .inicio-tela { min-height: 0; } }
