/* ============================================================
   tema.css  —  Tema único do sistema (sobre Bootstrap 5)
   Layout com sidebar recolhível + responsivo (mobile).
   A cor principal vem da variável --bib-cor (definida por área).
   ============================================================ */

:root{
  --bib-cor: #1d4ed8;
  --bib-sidebar-w: 256px;
  --bib-topbar-h: 56px;
  --bib-bg: #f1f5f9;
}

/* Cor principal do Bootstrap herdando a cor da área */
:root{
  --bs-primary: var(--bib-cor);
  --bs-primary-rgb: 29,78,216;
  --bs-link-color: var(--bib-cor);
  --bs-link-hover-color: var(--bib-cor);
}
.btn-primary{ --bs-btn-bg: var(--bib-cor); --bs-btn-border-color: var(--bib-cor);
  --bs-btn-hover-bg:#0f3aad; --bs-btn-hover-border-color:#0f3aad;
  --bs-btn-active-bg:#0f3aad; --bs-btn-active-border-color:#0f3aad; }
.text-primary{ color: var(--bib-cor) !important; }
.bg-primary{ background-color: var(--bib-cor) !important; }

body.bib-app{ background: var(--bib-bg); }

/* ---------- Topbar ---------- */
.bib-topbar{
  height: var(--bib-topbar-h);
  background:#fff;
  border-bottom:1px solid #e2e8f0;
  display:flex; align-items:center; justify-content:space-between;
}
.bib-topbar .navbar-brand i{ color: var(--bib-cor); }

/* ---------- Layout ---------- */
.bib-layout{ display:flex; min-height: calc(100vh - var(--bib-topbar-h)); }

.bib-sidebar{
  width: var(--bib-sidebar-w);
  flex: 0 0 var(--bib-sidebar-w);
  background:#0f172a;
  color:#cbd5e1;
  transition: margin-left .2s ease, width .2s ease;
  overflow-y:auto;
}
.bib-sidebar-inner{ padding:14px 10px; }

.bib-content{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
.bib-footer{ margin-top:auto; border-top:1px solid #e2e8f0; background:#fff; }

/* ---------- Menu ---------- */
.bib-nav-group{
  text-transform:uppercase; font-size:.68rem; letter-spacing:.06em;
  color:#64748b; padding:14px 12px 4px; font-weight:700;
}
.bib-nav-link{
  display:flex; align-items:center; gap:.7rem;
  padding:.55rem .75rem; margin:2px 0; border-radius:8px;
  color:#cbd5e1; text-decoration:none; font-size:.92rem; white-space:nowrap;
}
.bib-nav-link i{ font-size:1.05rem; width:1.3rem; text-align:center; flex:0 0 auto; }
.bib-nav-link:hover{ background:#1e293b; color:#fff; }
.bib-nav-link.active{ background: var(--bib-cor); color:#fff; font-weight:600; }

/* ---------- Sidebar recolhida (desktop) ---------- */
.bib-app.bib-collapsed .bib-sidebar{ width:64px; flex-basis:64px; }
.bib-app.bib-collapsed .bib-nav-link span,
.bib-app.bib-collapsed .bib-nav-group{ display:none; }
.bib-app.bib-collapsed .bib-nav-link{ justify-content:center; }

/* ---------- Backdrop (mobile) ---------- */
.bib-sidebar-backdrop{
  position:fixed; inset:0; background:rgba(15,23,42,.5);
  z-index:1040; display:none;
}

/* ---------- Cards / tabelas ---------- */
.card{ border-radius:12px; }
.table thead th{ background:#f8fafc; color:#1e293b; font-size:.82rem;
  text-transform:uppercase; letter-spacing:.03em; }
.table{ vertical-align:middle; }
.table-responsive{ border-radius:12px; }

/* ---------- Formulários ---------- */
.form-label{ font-weight:600; font-size:.9rem; color:#334155; }
.form-control, .form-select{ border-radius:8px; }

/* ============================================================
   Responsivo: em telas pequenas a sidebar vira gaveta (off-canvas)
   ============================================================ */
@media (max-width: 991.98px){
  .bib-sidebar{
    position:fixed; top:0; left:0; height:100vh; z-index:1045;
    margin-left: calc(-1 * var(--bib-sidebar-w));
  }
  .bib-app.bib-sidebar-open .bib-sidebar{ margin-left:0; }
  .bib-app.bib-sidebar-open .bib-sidebar-backdrop{ display:block; }
}
