:root {
  --ae-primary: #3157d5;
  --ae-primary-rgb: 49, 87, 213;
  --ae-bg: #f5f7fb;
  --ae-text: #182230;
  --ae-muted: #667085;
  --ae-border: #e4e7ec;
}

* { box-sizing: border-box; }

html, body { min-height: 100%; }

body {
  background: var(--ae-bg);
  color: var(--ae-text);
  font-family: "Public Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  margin: 0;
}

a { color: var(--ae-primary); text-decoration: none; }
a:hover { color: #2444ad; }

.btn-primary {
  --bs-btn-bg: var(--ae-primary);
  --bs-btn-border-color: var(--ae-primary);
  --bs-btn-hover-bg: #2448bf;
  --bs-btn-hover-border-color: #2448bf;
}

.layout-wrapper, .layout-container, .layout-page, .content-wrapper { min-height: 100vh; }
.layout-container, .layout-page, .content-wrapper { display: flex; flex-direction: column; }
.layout-page, .content-wrapper { flex: 1 1 auto; min-width: 0; }

.container-xxl { width: 100%; }

.layout-navbar {
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid var(--ae-border);
  box-shadow: 0 2px 12px rgba(16, 24, 40, .04);
  min-height: 68px;
  position: sticky;
  top: 0;
  z-index: 1030;
}

.layout-navbar .container-xxl { min-height: 68px; }
.app-brand-link { align-items: center; color: var(--ae-text); display: inline-flex; }
.app-brand-link:hover { color: var(--ae-text); }
.app-brand-text { font-size: 1.05rem; letter-spacing: -.02em; }

.ae-brand-badge {
  align-items: center;
  background: linear-gradient(135deg, #3157d5, #6f56d9);
  border-radius: 10px;
  box-shadow: 0 8px 18px rgba(var(--ae-primary-rgb), .22);
  color: #fff;
  display: inline-flex;
  font-size: .78rem;
  font-weight: 800;
  height: 34px;
  justify-content: center;
  letter-spacing: -.04em;
  width: 34px;
}

.layout-menu-horizontal {
  background: #fff;
  border-bottom: 1px solid var(--ae-border);
  box-shadow: 0 4px 14px rgba(16, 24, 40, .035);
  overflow-x: auto;
}

.menu-inner {
  align-items: stretch;
  display: flex;
  gap: .25rem;
  list-style: none;
  margin: 0;
  min-width: max-content;
  padding: .55rem 0;
}

.menu-link {
  align-items: center;
  border-radius: .5rem;
  color: #475467;
  display: flex;
  font-size: .875rem;
  font-weight: 600;
  gap: .45rem;
  padding: .65rem .8rem;
  white-space: nowrap;
}

.menu-link:hover { background: #f2f4f7; color: var(--ae-text); }
.menu-item.active .menu-link { background: #eef2ff; color: var(--ae-primary); }
.menu-icon { font-size: 1.15rem; }

.content-wrapper > .container-xxl:not(.pt-3) { flex: 1 0 auto; }
.content-footer { color: var(--ae-muted); font-size: .85rem; margin-top: auto; }
.footer-container { border-top: 1px solid var(--ae-border); }

.card { border-color: var(--ae-border); border-radius: .75rem; }
.form-control, .form-select { border-color: #d0d5dd; }
.form-control:focus, .form-select:focus {
  border-color: #8098ec;
  box-shadow: 0 0 0 .2rem rgba(var(--ae-primary-rgb), .12);
}

.bg-label-primary { background: #eef2ff !important; color: #3448b5 !important; }
.bg-label-secondary { background: #f2f4f7 !important; color: #475467 !important; }
.bg-label-success { background: #ecfdf3 !important; color: #027a48 !important; }
.bg-label-danger { background: #fef3f2 !important; color: #b42318 !important; }
.bg-label-warning { background: #fffaeb !important; color: #b54708 !important; }
.bg-label-info { background: #eff8ff !important; color: #175cd3 !important; }
.text-muted { color: var(--ae-muted) !important; }

.select2-container .select2-selection--single {
  border: 1px solid #d0d5dd;
  height: 38px;
  padding: .3rem .5rem;
}
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 36px; }

@media (max-width: 767.98px) {
  .layout-navbar { min-height: 60px; }
  .layout-navbar .container-xxl { min-height: 60px; }
  .app-brand-text { max-width: 48vw !important; font-size: .9rem; }
  .footer-container { gap: .4rem; text-align: center; }
}
