:root {
  --bs-primary: #0f6cbd;
  --bs-primary-rgb: 15, 108, 189;
  --app-border: #dbe5ef;
  --app-sidebar-width: 17.5rem;
}

body {
  min-height: 100vh;
  font-family: "Manrope", "Segoe UI", sans-serif;
  color: #12223a;
  background: linear-gradient(180deg, #e9f2ff 0, #f4f7fb 18rem, #f4f7fb 100%);
}

h1, h2, h3, h4, h5, h6 { font-family: "Space Grotesk", "Segoe UI", sans-serif; letter-spacing: -0.02em; }
a { color: var(--bs-primary); }
.app-header { min-height: 4.5rem; box-shadow: 0 2px 12px rgb(18 34 58 / 4%); }
.app-topbar-mark { display: inline-flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border: 1px solid var(--app-border); border-radius: 0.75rem; }
.app-topbar-mark img { width: 1.75rem; height: 1.75rem; object-fit: contain; }
.app-product-name { color: #12223a; font-family: "Space Grotesk", "Segoe UI", sans-serif; font-size: 1.05rem; font-weight: 700; line-height: 1.1; }
.app-product-subtitle { color: #5b6b84; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.app-shell { display: flex; min-height: calc(100vh - 7.5rem); }
.app-sidebar { width: var(--app-sidebar-width); }
.app-sidebar-brand { color: #12223a; text-decoration: none; }
.app-sidebar-brand img { display: block; width: 9rem; height: auto; }
.app-sidebar-brand span { display: block; margin-top: 0.55rem; color: #5b6b84; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.app-nav-label { color: #5b6b84; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.app-sidebar .nav-link { border-radius: 0.65rem; color: #334865; font-weight: 700; padding: 0.7rem 0.8rem; }
.app-sidebar .nav-link:hover { background: #edf5fd; color: #09528f; }
.app-sidebar .nav-link.active { background: var(--bs-primary); color: #fff; box-shadow: 0 0.4rem 1rem rgb(15 108 189 / 18%); }
.app-main { flex: 1; min-width: 0; }
.app-content { max-width: 100rem; }
.app-page-header { margin-bottom: 1.75rem; }
.app-filter-bar, .app-empty-state { background: #fff; border: 1px solid var(--app-border); border-radius: var(--bs-border-radius-lg); }
.app-filter-bar { padding: 1rem; }
.app-empty-state { padding: 3.5rem 1.5rem; }
.card { border-color: var(--app-border); box-shadow: 0 0.35rem 1.25rem rgb(18 34 58 / 5%); }
.app-stat-card .display-6 { color: var(--bs-primary); font-size: 2rem; font-weight: 700; }
.table > :not(caption) > * > * { padding: 0.85rem 0.75rem; }
.table thead th { background: #f7faff; color: #5b6b84; font-size: 0.72rem; letter-spacing: 0.05em; text-transform: uppercase; }
.form-control, .form-select, .btn { border-radius: 0.65rem; }
.form-control, .form-select { border-color: #cdd9e5; min-height: 2.625rem; }
.form-control:focus, .form-select:focus { border-color: #6fb6f4; box-shadow: 0 0 0 0.25rem rgb(15 108 189 / 15%); }
.btn-primary { --bs-btn-bg: #0f6cbd; --bs-btn-border-color: #0f6cbd; --bs-btn-hover-bg: #09528f; --bs-btn-hover-border-color: #09528f; }
.app-lookup-options { max-height: min(16rem, 40vh); overflow-y: auto; }

@media (min-width: 992px) { .app-sidebar { position: sticky; top: 4.5rem; height: calc(100vh - 4.5rem); } }
@media (max-width: 991.98px) { .app-sidebar { width: min(88vw, var(--app-sidebar-width)); } }
