/* ============================================================
   KIPUS — MODERN SIDEBAR
   Requires kipus.css (design tokens & BS5 overrides).
   ============================================================ */

/* ── Global font: text/ui elements only, never icon elements ─ */
.main-sidebar a,
.main-sidebar li,
.main-sidebar p,
.main-sidebar span:not([class*="fa-"]):not([class*="fas"]):not([class*="far"]):not([class*="fab"]):not([class*="fal"]):not([class*="fad"]):not([class*="nav-icon"]),
.main-sidebar div,
.main-sidebar input,
.main-sidebar button,
.main-sidebar label {
  font-family: var(--font-main) !important;
}

/* ── Sidebar container ───────────────────────────────── */
.main-sidebar,
.main-sidebar.sidebar-light-primary {
  background-color: var(--sb-bg) !important;
  border-right: 1px solid var(--sb-border) !important;
  box-shadow: none !important;
}

body:not(.sidebar-collapse) .main-sidebar {
  width: var(--sb-width) !important;
}

.sidebar-mini.sidebar-collapse .main-sidebar {
  width: 4.6rem !important;
}

.sidebar-mini.sidebar-collapse .main-sidebar:hover {
  width: var(--sb-width) !important;
}

/* ── Brand / Logo area ───────────────────────────────── */
.main-sidebar .brand-link,
.main-sidebar .kp-brand-link {
  background: var(--sb-bg) !important;
  border-bottom: 1px solid var(--sb-border) !important;
  padding: 0.9rem 1.1rem !important;
  display: flex !important;
  align-items: center !important;
  text-decoration: none !important;
  transition: background 0.15s ease !important;
}

.main-sidebar .kp-brand-link:hover {
  background: var(--item-hover) !important;
}

.main-sidebar .kp-brand-icon {
  width: 36px !important;
  height: 36px !important;
  border: 1px solid var(--sb-border) !important;
}

.main-sidebar .kp-brand-icon .brand-image {
  width: 24px !important;
  height: 24px !important;
  float: none !important;
}

.main-sidebar .kp-brand-name {
  color: var(--tx-primary) !important;
  font-size: 0.93rem !important;
  letter-spacing: -0.015em !important;
}

.main-sidebar .kp-brand-name b {
  color: var(--kp-red) !important;
}

.main-sidebar .kp-brand-sub {
  color: var(--tx-muted) !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.01em !important;
}

/* ── Sidebar scrollable body ─────────────────────────── */
.main-sidebar .sidebar {
  padding: 0.5rem 0 1rem !important;
  overflow-x: hidden !important;
}

.main-sidebar .sidebar::-webkit-scrollbar { width: 3px; }
.main-sidebar .sidebar::-webkit-scrollbar-thumb {
  background: #e0e3e8;
  border-radius: 2px;
}

/* ── User panel ──────────────────────────────────────── */
.kp-user-panel {
  padding: 0.85rem 1.1rem !important;
  border-bottom: 1px solid var(--sb-border) !important;
}

.kp-user-avatar {
  width: 33px !important;
  height: 33px !important;
  background: var(--kp-red) !important;
}

.kp-avatar-img {
  width: 33px !important;
  height: 33px !important;
  object-fit: cover !important;
}

.kp-avatar-initial {
  font-size: 0.78rem !important;
}

.kp-user-info {
  gap: 2px !important;
}

.kp-user-name {
  color: var(--tx-primary) !important;
  font-size: 0.82rem !important;
}

.kp-user-role {
  color: var(--tx-muted) !important;
  font-size: 0.7rem !important;
}

/* ── Search ──────────────────────────────────────────── */
.main-sidebar .form-inline {
  padding: 0.65rem 0.85rem !important;
}

.main-sidebar .input-group[data-widget="sidebar-search"] {
  border: 1px solid var(--sb-border) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.main-sidebar .input-group[data-widget="sidebar-search"]:focus-within {
  border-color: var(--kp-red) !important;
  box-shadow: 0 0 0 3px var(--kp-red-ring) !important;
}

.main-sidebar .form-control-sidebar {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--tx-primary) !important;
  font-size: 0.8rem !important;
  padding: 0.42rem 0.7rem !important;
  height: auto !important;
}

.main-sidebar .form-control-sidebar::placeholder { color: var(--tx-muted) !important; }
.main-sidebar .form-control-sidebar:focus { box-shadow: none !important; }

.main-sidebar .btn-sidebar {
  background: transparent !important;
  border: none !important;
  color: var(--tx-muted) !important;
  padding: 0.42rem 0.6rem !important;
}

.main-sidebar .btn-sidebar:hover { color: var(--kp-red) !important; }

/* ── Search Results ──────────────────────────────────── */
.sidebar-search-results .list-group {
  border: 1px solid var(--sb-border) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background: var(--sb-bg) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
}

.sidebar-search-results .list-group-item {
  background: var(--sb-bg) !important;
  border-color: var(--sb-border) !important;
  color: var(--tx-primary) !important;
  padding: 0.5rem 0.75rem !important;
  text-decoration: none !important;
  transition: background 0.12s ease !important;
}

.sidebar-search-results .list-group-item:hover,
.sidebar-search-results .list-group-item:focus {
  background: var(--item-hover) !important;
  color: var(--tx-primary) !important;
  outline: none !important;
}

.sidebar-search-results .search-title {
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  color: var(--tx-primary) !important;
}

.sidebar-search-results .search-path {
  font-size: 0.7rem !important;
  color: var(--tx-muted) !important;
}

.sidebar-search-results strong.text-light {
  color: var(--kp-red) !important;
  font-weight: 700 !important;
}

/* ── Section headers ─────────────────────────────────── */
.main-sidebar .nav-sidebar .nav-header {
  color: var(--tx-muted) !important;
  font-size: 0.64rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  padding: 1.1rem 1.1rem 0.35rem !important;
  background: transparent !important;
}

/* ── Nav items ───────────────────────────────────────── */
.main-sidebar .nav-sidebar {
  padding: 0 !important;
}

.main-sidebar .nav-sidebar > .nav-item {
  padding: 1px 0.65rem !important;
  margin: 0 !important;
}

/* ── Nav link base ───────────────────────────────────── */
.main-sidebar .nav-sidebar .nav-link {
  border-radius: var(--item-radius) !important;
  padding: 0.56rem 0.75rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.65rem !important;
  color: #374151 !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: background 0.12s ease, color 0.12s ease !important;
  font-size: 0.925rem !important;
  font-weight: 400 !important;
  position: relative !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

.main-sidebar .nav-sidebar .nav-link:hover {
  background-color: var(--item-hover) !important;
  color: var(--tx-primary) !important;
}

.main-sidebar .nav-sidebar .nav-link.active,
.main-sidebar .nav-sidebar .nav-link.active:hover {
  background-color: var(--kp-red-alpha) !important;
  color: var(--kp-red) !important;
  font-weight: 500 !important;
  box-shadow: none !important;
}

/* Left accent rail */
.main-sidebar .nav-sidebar > .nav-item > .nav-link.active::before {
  content: '' !important;
  position: absolute !important;
  left: -0.65rem !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 3px !important;
  height: 55% !important;
  background: var(--kp-red) !important;
  border-radius: 0 3px 3px 0 !important;
}

/* Nav icon */
.main-sidebar .nav-sidebar .nav-icon {
  font-size: 1rem !important;
  width: 1.15rem !important;
  text-align: center !important;
  flex-shrink: 0 !important;
  color: var(--tx-muted) !important;
  transition: color 0.12s ease !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.main-sidebar .nav-treeview .nav-link .nav-icon {
  display: none !important;
}

.main-sidebar .nav-sidebar .nav-link:hover .nav-icon { color: var(--tx-secondary) !important; }
.main-sidebar .nav-sidebar .nav-link.active .nav-icon { color: var(--kp-red) !important; }

/* Nav text <p> */
.main-sidebar .nav-sidebar .nav-link p {
  flex: 1 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
}

/* ── Badges ──────────────────────────────────────────── */
.main-sidebar .nav-sidebar .badge,
.main-sidebar .nav-sidebar .right.badge {
  font-family: var(--font-mono) !important;
  font-size: 0.6rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  border-radius: 5px !important;
  padding: 2px 6px !important;
  margin-left: auto !important;
  line-height: 1.6 !important;
}

.main-sidebar .nav-sidebar .badge-danger,
.main-sidebar .nav-sidebar .badge.bg-danger  { background: #fde8e8 !important; color: var(--kp-red) !important; }
.main-sidebar .nav-sidebar .badge-success,
.main-sidebar .nav-sidebar .badge.bg-success  { background: #d1fae5 !important; color: #065f46 !important; }
.main-sidebar .nav-sidebar .badge-primary,
.main-sidebar .nav-sidebar .badge.bg-primary  { background: #dbeafe !important; color: #1d4ed8 !important; }
.main-sidebar .nav-sidebar .badge-secondary,
.main-sidebar .nav-sidebar .badge.bg-secondary { background: #f3f4f6 !important; color: var(--tx-secondary) !important; }
.main-sidebar .nav-sidebar .badge-warning,
.main-sidebar .nav-sidebar .badge.bg-warning  { background: #fef3c7 !important; color: #92400e !important; }

/* Treeview arrow */
.main-sidebar .nav-sidebar .right {
  margin-left: auto !important;
  font-size: 0.7rem !important;
  color: var(--tx-muted) !important;
  transition: transform 0.2s ease !important;
}

/* ── Treeview children ───────────────────────────────── */
.main-sidebar .nav-treeview {
  padding: 2px 0 4px 0.5rem !important;
}

.main-sidebar .nav-treeview > .nav-item {
  padding: 1px 0.65rem !important;
}

.main-sidebar .nav-treeview .nav-link {
  font-size: 0.88rem !important;
  padding: 0.44rem 0.75rem !important;
  color: var(--tx-secondary) !important;
  border-radius: var(--item-radius) !important;
}

.main-sidebar .nav-treeview .nav-link::before { display: none !important; }

.main-sidebar .nav-treeview .nav-link.active {
  color: var(--kp-red) !important;
  background: transparent !important;
  font-weight: 500 !important;
}

/* ============================================================
   DARK MODE — sidebar component overrides
   ============================================================ */

[data-bs-theme="dark"] .main-sidebar,
[data-bs-theme="dark"] .main-sidebar.sidebar-light-primary {
  background-color: #111318 !important;
  border-right-color: #1e2025 !important;
}

[data-bs-theme="dark"] .main-sidebar .brand-link,
[data-bs-theme="dark"] .main-sidebar .kp-brand-link {
  background: #111318 !important;
  border-bottom-color: #1e2025 !important;
}

[data-bs-theme="dark"] .main-sidebar .kp-brand-icon {
  background: #1d2128 !important;
  border-color: #2d333b !important;
}

[data-bs-theme="dark"] .main-sidebar .nav-sidebar .nav-link { color: #cdd5df !important; }

[data-bs-theme="dark"] .main-sidebar .nav-sidebar .nav-link.active,
[data-bs-theme="dark"] .main-sidebar .nav-sidebar .nav-link.active:hover {
  background-color: rgba(153, 27, 27, 0.18) !important;
  color: #f87171 !important;
}

[data-bs-theme="dark"] .main-sidebar .nav-sidebar .nav-link.active .nav-icon { color: #f87171 !important; }

[data-bs-theme="dark"] .main-sidebar .nav-sidebar > .nav-item > .nav-link.active::before { background: #f87171 !important; }

[data-bs-theme="dark"] .main-sidebar .nav-treeview .nav-link { color: #8b949e !important; }
[data-bs-theme="dark"] .main-sidebar .nav-treeview .nav-link.active { color: #f87171 !important; }

[data-bs-theme="dark"] .main-sidebar .sidebar::-webkit-scrollbar-thumb { background: #444c56; }

[data-bs-theme="dark"] .kp-user-panel { border-bottom-color: #1e2025 !important; }

[data-bs-theme="dark"] .main-sidebar .input-group[data-widget="sidebar-search"] {
  border-color: #2d333b !important;
  background: #0d0f13 !important;
}

[data-bs-theme="dark"] .main-sidebar .form-control-sidebar { color: #e6edf3 !important; }

[data-bs-theme="dark"] .sidebar-search-results .list-group {
  background: #0d0f13 !important;
  border-color: #2d333b !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4) !important;
}

[data-bs-theme="dark"] .sidebar-search-results .list-group-item {
  background: #0d0f13 !important;
  border-color: #2d333b !important;
  color: #e6edf3 !important;
}

[data-bs-theme="dark"] .sidebar-search-results .list-group-item:hover,
[data-bs-theme="dark"] .sidebar-search-results .list-group-item:focus { background: rgba(255, 255, 255, 0.07) !important; }

[data-bs-theme="dark"] .sidebar-search-results .search-title { color: #e6edf3 !important; }
[data-bs-theme="dark"] .sidebar-search-results .search-path  { color: #6e7681 !important; }
[data-bs-theme="dark"] .sidebar-search-results strong.text-light { color: #f87171 !important; }

/* ── Sidebar mini (collapsed) ─────────────────────────── */

.sidebar-mini.sidebar-collapse .main-sidebar .kp-brand-link {
  justify-content: center !important;
  padding: 0.9rem 0 !important;
}
.sidebar-mini.sidebar-collapse .main-sidebar .kp-brand-text { display: none !important; }

.sidebar-mini.sidebar-collapse .main-sidebar:hover .kp-brand-link {
  justify-content: flex-start !important;
  padding: 0.9rem 1.1rem !important;
}
.sidebar-mini.sidebar-collapse .main-sidebar:hover .kp-brand-text { display: flex !important; }

.sidebar-mini.sidebar-collapse .main-sidebar .kp-user-panel {
  justify-content: center !important;
  padding: 0.85rem 0 !important;
}
.sidebar-mini.sidebar-collapse .main-sidebar .kp-user-info { display: none !important; }

.sidebar-mini.sidebar-collapse .main-sidebar:hover .kp-user-panel {
  justify-content: flex-start !important;
  padding: 0.85rem 1.1rem !important;
}
.sidebar-mini.sidebar-collapse .main-sidebar:hover .kp-user-info { display: flex !important; }

.sidebar-mini.sidebar-collapse .main-sidebar .form-inline { display: none !important; }
.sidebar-mini.sidebar-collapse .main-sidebar:hover .form-inline { display: block !important; }

.sidebar-mini.sidebar-collapse .main-sidebar .nav-sidebar > .nav-item { padding: 1px 0.4rem !important; }
.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item { padding: 1px 0.65rem !important; }

.sidebar-mini.sidebar-collapse .main-sidebar .nav-header { display: none !important; }
.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-header { display: block !important; }

/* Menu retraído com seção aberta: os subitens não têm ícone, então o submenu
   expandido virava um vão em branco entre os ícones. Retraído esconde o
   submenu; no hover o sidebar re-expande (regra acima) e o submenu volta. */
.sidebar-mini.sidebar-collapse .main-sidebar .nav-sidebar .nav-item > .nav-treeview { display: none !important; }
.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-item.menu-open > .nav-treeview { display: block !important; }
