/* Phosphor icon shim — remaps mdi-* glyphs to Phosphor Icons app-wide */
@import url("icons-phosphor.css");

:root {
  --brand-blue: #c1272d;
  --brand-blue-dark: #d63031;
  --brand-blue-darker: #a61f2b;
  --brand-blue-soft: rgba(193, 39, 45, 0.12);
  --brand-blue-soft-strong: rgba(193, 39, 45, 0.18);
  --brand-gold: #2980b9;
  --brand-gold-dark: #1b5e9f;
  --brand-gold-soft: rgba(41, 128, 185, 0.18);
  --brand-silver: #c5ccd6;
  --brand-silver-light: #e5e9f1;
  --brand-ink: #0f172a;
  --brand-muted: #6b7280;
  --brand-line: #e5e7eb;

  --blue: var(--brand-blue);
  --blue2: var(--brand-blue-dark);
  --blue-600: var(--brand-blue);
  --blue-800: var(--brand-blue-dark);
  --gold: var(--brand-gold);
  --gold-700: var(--brand-gold-dark);
  --silver: var(--brand-silver);
  --silver-200: var(--brand-silver-light);
  --ink: var(--brand-ink);
  --muted: var(--brand-muted);
  --line: var(--brand-line);

  --sidebar-text: #111827;
  --sidebar-muted: #64748b;
  --sidebar-icon: #475569;
  --sidebar-hover: var(--brand-blue);
  --sidebar-active: var(--brand-blue-dark);
  --sidebar-bg-hover: var(--brand-blue-soft);
  --sidebar-bg-active: var(--brand-blue-soft-strong);
  --sidebar-bullet: #9aa4b8;
  --sidebar-bullet-hov: var(--brand-blue);
  --sidebar-bullet-act: var(--brand-blue-dark);
  --sidebar-avatar-size: 36px;

  --bs-primary: var(--brand-blue);
  --bs-primary-rgb: 193, 39, 45;
  --bs-link-color: var(--brand-blue);
  --bs-link-hover-color: var(--brand-blue-dark);
  --bs-link-active-color: var(--brand-blue-dark);
  --bs-btn-hover-bg: var(--brand-blue-dark);
  --bs-btn-hover-border-color: var(--brand-blue-dark);
  --bs-btn-active-bg: var(--brand-blue-dark);
  --bs-btn-active-border-color: var(--brand-blue-dark);

  /* Force Karla as the app-wide sans-serif (overrides template's Roboto) */
  --bs-font-sans-serif: "Karla", ui-sans-serif, system-ui, -apple-system,
    "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bs-body-font-family: "Karla", ui-sans-serif, system-ui, -apple-system,
    "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ===========================================================================
   Global Karla override
   The bundled admin template (vertical-light/style.css) hard-codes "Roboto"
   on headings, cards, nav, buttons and utility classes, which beats the
   per-page body font rule. Force Karla everywhere except icon fonts and
   intentional monospace. custom.css loads after the template, so this wins.
   ========================================================================= */
body,
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
p, a, span, label, li, td, th, div,
button, input, select, textarea, optgroup,
.btn, .nav, .navbar, .card, .card-title, .card-subtitle, .card-description,
.dropdown-menu, .table, .form-control, .form-select, .form-label,
.badge, .alert, .modal, .breadcrumb, .pagination,
[class*="fw-"], .text-muted, .small {
  font-family: "Karla", ui-sans-serif, system-ui, -apple-system, "Segoe UI",
    Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

/* Keep icon fonts and deliberate monospace untouched */
.mdi, .mdi::before, [class^="ph-"], [class*=" ph-"], i[class*="icon"],
.material-icons, code, pre, kbd, samp, .text-monospace, .font-monospace {
  font-family: revert !important;
}

.sidebar .nav,
.nav-profile-text,
.nav-profile-text .fw-medium,
.nav-profile-text .fw-normal {
  font-family: "Karla", ui-sans-serif, system-ui, -apple-system, "Segoe UI",
    Roboto, "Helvetica Neue", Arial, sans-serif !important;
}
.nav-profile-image img {
  width: var(--sidebar-avatar-size);
  height: var(--sidebar-avatar-size);
  border-radius: 50%;
  box-shadow: 0 6px 16px rgba(2, 6, 23, 0.12);
  object-fit: cover;
  display: block;
}
.nav-profile-text .fw-medium {
  color: #0f172a;
  font-weight: 600;
}
.nav-profile-text .fw-normal {
  color: var(--sidebar-muted);
  font-weight: 400;
}

.sidebar .nav .nav-item > .nav-link {
  color: var(--sidebar-text);
  background: transparent;
  border-radius: 8px;
  transition: color 0.15s ease, background-color 0.15s ease;
}
.sidebar .nav .nav-item > .nav-link .menu-icon {
  color: var(--sidebar-icon);
}
.sidebar .nav .nav-item > .nav-link .menu-title {
  color: var(--sidebar-text);
}

.sidebar .nav .nav-item > .nav-link:hover {
  background: var(--sidebar-bg-hover);
  color: var(--sidebar-hover);
}
.sidebar .nav .nav-item > .nav-link:hover .menu-icon,
.sidebar .nav .nav-item > .nav-link:hover .menu-title {
  color: var(--sidebar-hover);
}

.sidebar .nav .nav-item .collapse .sub-menu {
  background: transparent !important;
  padding-left: 1.25rem;
}

.sidebar .nav .sub-menu .nav-item .nav-link {
  position: relative;
  color: var(--sidebar-text);
  background: transparent;
  padding-left: 1.25rem;
  transition: color 0.15s ease, background-color 0.15s ease;
}

.sidebar .nav .sub-menu .nav-item .nav-link:visited {
  color: var(--sidebar-text);
}

.sidebar .nav .sub-menu .nav-item .nav-link::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 9999px;
  background: var(--sidebar-bullet) !important;
  border: 1px solid var(--sidebar-bullet) !important;
  position: absolute;
  left: 0.25rem;
  top: 50%;
  transform: translateY(-50%);
}

.sidebar .nav .sub-menu .nav-item .nav-link:hover,
.sidebar .nav .sub-menu .nav-item .nav-link:focus {
  color: var(--sidebar-hover) !important;
  background: transparent !important;
  text-decoration: none;
}
.sidebar .nav .sub-menu .nav-item .nav-link:hover::before,
.sidebar .nav .sub-menu .nav-item .nav-link:focus::before {
  background: var(--sidebar-bullet-hov) !important;
  border-color: var(--sidebar-bullet-hov) !important;
}
.sidebar .nav .sub-menu .nav-item .nav-link.active,
.sidebar .nav .sub-menu .nav-item .nav-link.active:hover,
.sidebar .nav .sub-menu .nav-item .nav-link.active:focus {
  color: var(--sidebar-active) !important;
  font-weight: 600;
}
.sidebar .nav .sub-menu .nav-item .nav-link.active::before {
  background: var(--sidebar-bullet-act) !important;
  border-color: var(--sidebar-bullet-act) !important;
}

.sidebar .nav .nav-item .menu-arrow {
  color: #94a3b8;
}
.sidebar .nav .nav-item > .nav-link:hover .menu-arrow {
  color: var(--sidebar-hover);
}
.sidebar .nav .nav-item.active > .nav-link .menu-arrow {
  color: var(--sidebar-active);
}

#sidebar .nav .nav-item.nav-profile .nav-profile-image {
  width: var(--sidebar-avatar-size);
  height: var(--sidebar-avatar-size);
  min-width: var(--sidebar-avatar-size);
  min-height: var(--sidebar-avatar-size);
  border-radius: 50%;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: #fff;
}
#sidebar .nav .nav-item.nav-profile .nav-profile-image img {
  width: 100%;
  height: 100%;
  border-radius: 50% !important;
  box-shadow: 0 0 0 2px rgba(193, 39, 45, 0.22),
    0 0 10px 3px rgba(193, 39, 45, 0.35);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  object-fit: cover;
}

#sidebar .nav .nav-item.nav-profile .nav-profile-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: 10px;
}
#sidebar .nav .nav-item.nav-profile .nav-profile-text .fw-medium {
  font-size: 1rem;
}
#sidebar .nav .nav-item.nav-profile .nav-profile-text .fw-normal {
  font-size: 0.77rem;
}

#sidebar.sidebar-textonly .nav .nav-item.active,
#sidebar.sidebar-textonly .nav .nav-item.active > .nav-link,
#sidebar.sidebar-textonly .nav .nav-item .nav-link.active {
  background: transparent !important;
  box-shadow: none !important;
}

#sidebar.sidebar-textonly .nav .nav-item.active > .nav-link .menu-title,
#sidebar.sidebar-textonly .nav .nav-item .nav-link.active .menu-title,
#sidebar.sidebar-textonly .nav .nav-item.active > .nav-link .menu-icon,
#sidebar.sidebar-textonly .nav .nav-item .nav-link.active .menu-icon {
  color: black;
}
#sidebar.sidebar-textonly .nav .nav-item > .nav-link:hover,
#sidebar.sidebar-textonly .nav .nav-item > .nav-link:focus {
  background: transparent !important;
}

#sidebar.sidebar-textonly .nav .nav-item > .nav-link:hover .menu-title,
#sidebar.sidebar-textonly .nav .nav-item > .nav-link:hover .menu-icon,
#sidebar.sidebar-textonly .nav .nav-item > .nav-link:hover .menu-arrow {
  color: var(--brand-blue) !important;
}

#sidebar.sidebar-textonly .nav .sub-menu .nav-item .nav-link:hover,
#sidebar.sidebar-textonly .nav .sub-menu .nav-item .nav-link:focus {
  background: transparent !important;
  color: var(--brand-blue) !important;
}
#sidebar.sidebar-textonly .nav .sub-menu .nav-item .nav-link:hover::before,
#sidebar.sidebar-textonly .nav .sub-menu .nav-item .nav-link:focus::before {
  background: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
}
#sidebar,
#sidebar *,
.main-panel,
.main-panel *,
.content-wrapper,
.content-wrapper *,
.navbar,
.navbar * {
  font-family: "Karla", ui-sans-serif, system-ui, -apple-system, "Segoe UI",
    Roboto, Arial, sans-serif !important;
}
.sidebar .nav .nav-item.active > .nav-link {
  background: none;
  color: var(--sidebar-text);
}
.sidebar .nav .nav-item.active > .nav-link .menu-icon {
  color: #000000;
}
.sidebar .nav .nav-item.active > .nav-link .menu-title {
  color: var(--sidebar-text);
}
.sidebar .sub-menu .nav-link {
  color: #1f2937 !important; /* slate-800 */
  display: flex;
  align-items: center;
  padding-left: 1.25rem;
}
.sidebar .sub-menu .nav-link::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #94a3b8;
  border: 1px solid #94a3b8;
  position: absolute;
  left: 0.4rem;
  top: 50%;
  transform: translateY(-50%);
}
.sidebar .sub-menu .nav-link:hover {
  color: var(--brand-blue) !important;
}
.sidebar .sub-menu .nav-link:hover::before {
  background: var(--brand-blue);
  border-color: var(--brand-blue);
}
/* Fix Tailwind vs Bootstrap collapse (scope to the left sidebar only) */
#sidebar .collapse {
  visibility: visible !important;
}
#sidebar .collapse:not(.show) {
  display: none;
} /* keep closed menus hidden */
#sidebar .collapsing {
  height: 0;
  overflow: hidden;
  transition: height 0.35s ease;
}
#notifBadge.d-none {
  display: none !important;
}

/* Brand overrides for vendor themes */
.text-primary,
.link-primary {
  color: var(--brand-blue) !important;
}
.bg-primary {
  background-color: var(--brand-blue) !important;
}
.border-primary {
  border-color: var(--brand-blue) !important;
}
.btn-primary {
  background-color: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
}
.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--brand-blue-dark) !important;
  border-color: var(--brand-blue-dark) !important;
}
.btn-outline-primary {
  color: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background-color: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
  color: #fff !important;
}
.badge-primary {
  background-color: var(--brand-blue) !important;
}

/* === Centralized button styles === */
.btn-gold {
  background: #f59e0b;
  border: 1px solid #f59e0b;
  color: #111827;
  font-weight: 700;
}
.btn-gold:hover,
.btn-gold:focus {
  background: #d97706;
  border-color: #d97706;
  color: #fff;
}
.btn-blue {
  background: var(--brand-blue);
  border: 1px solid var(--brand-blue);
  color: #fff;
  font-weight: 700;
}
.btn-blue:hover,
.btn-blue:focus {
  background: var(--brand-blue-dark);
  border-color: var(--brand-blue-dark);
}
.btn-silver {
  background: #fff;
  border: 1px solid #c0c4cc;
  color: #111827;
  font-weight: 700;
}
.btn-silver:hover,
.btn-silver:focus {
  background: #f8fafc;
}
.btn-danger-soft {
  background: #fff5f5;
  color: #dc2626;
  border: 1px solid #fecaca;
  border-radius: 8px;
  font-size: .85rem;
  padding: .25rem .6rem;
}
.btn-danger-soft:hover {
  background: #fee2e2;
}
.btn-edit-soft {
  background: #eff6ff;
  color: #2563eb;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  font-size: .85rem;
  padding: .25rem .6rem;
}
.btn-edit-soft:hover {
  background: #dbeafe;
}

/* === Centralized input border === */
.form-control {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
}
.form-control:focus {
  border-color: var(--brand-blue);
  box-shadow: 0 0 0 3px rgba(193, 39, 45, .15);
  outline: 0;
}

/* === Breadcrumb utility === */
.breadcrumb-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .82rem;
  color: #64748b;
  margin-bottom: 8px;
}
.breadcrumb-bar a {
  color: #64748b;
  text-decoration: none;
  font-weight: 600;
}
.breadcrumb-bar a:hover {
  color: var(--brand-blue);
}
.breadcrumb-bar .sep {
  color: #cbd5e1;
}
.breadcrumb-bar .current {
  color: #334155;
  font-weight: 700;
}

/* === Empty state utility === */
.empty-state {
  text-align: center;
  padding: 40px 20px;
  color: #64748b;
}
.empty-state .empty-icon {
  font-size: 48px;
  color: #cbd5e1;
  margin-bottom: 12px;
}
.empty-state h5 {
  font-weight: 700;
  color: #475569;
  margin-bottom: 4px;
}
.empty-state p {
  font-size: .9rem;
  margin-bottom: 16px;
}

/* === Password strength meter utility === */
.pw-strength-bar {
  height: 6px;
  border-radius: 9999px;
  background: #e5e7eb;
  overflow: hidden;
}
.pw-strength-fill {
  height: 100%;
  width: 0%;
  border-radius: 9999px;
  transition: width .3s ease, background .3s ease;
}
.pw-strength-label {
  font-size: .78rem;
  font-weight: 700;
  margin-top: 4px;
  color: #64748b;
}
.pw-match {
  font-size: .82rem;
  font-weight: 600;
  margin-top: 6px;
  display: none;
}
.pw-match.show { display: block; }
.pw-match.ok { color: #16a34a; }
.pw-match.bad { color: #ef4444; }
