@font-face {
	font-family: 'GillSansCustom';
	src: local('Gill Sans'), local('GillSans'), local('Gill Sans MT');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

:root {
	--brand-primary: #2c3f8f;
	--brand-primary-600: #223375;
	--brand-primary-400: #3e52a6;
	--brand-accent: #f5b301;
	--surface-soft: #f6f8fb;
}
body { font-family: 'GillSansCustom', "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; background: var(--surface-soft); }

/* Prefer condensed for headings if present */
h1, h2, h3, h4, h5, h6 { font-family: 'GillSansCustomCondensed','GillSansCustom', "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; font-weight: 700; }

/* Sidebar */
.col-md-2.bg-white.border-end { background: var(--brand-primary) !important; border-right-color: rgba(255,255,255,.12) !important; }
.col-md-2 .text-muted { color: rgba(255,255,255,.8) !important; }
.col-md-2 strong { color: #fff; font-family: 'GillSansCustomCondensed','GillSansCustom', "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif; }
.nav.flex-column .nav-link { color: #e6ecff; border-radius: .5rem; }
.nav.flex-column .nav-link:hover { color: #fff; background: rgba(255,255,255,.12); }
.nav.flex-column .nav-link.active { color: #fff !important; background: linear-gradient(90deg, rgba(255,255,255,.2), rgba(255,255,255,.1)); font-weight: 700; }
/* Submenu items */
.nav.flex-column .nav-item .nav.flex-column { margin-top: .25rem; }
.nav.flex-column .nav-item .nav.flex-column .nav-link { padding-left: 1.5rem; font-size: .9em; color: rgba(255,255,255,.75); }
.nav.flex-column .nav-item .nav.flex-column .nav-link:hover { color: #fff; background: rgba(255,255,255,.1); }
.nav.flex-column .nav-item .nav.flex-column .nav-link.active { color: #fff !important; background: rgba(255,255,255,.15); font-weight: 600; }

/* KPI Cards */
.card-kpi { min-height: 110px; background: linear-gradient(135deg, var(--brand-primary-400), var(--brand-primary)); color: #fff; }
.card-kpi .text-muted { color: rgba(255,255,255,.85) !important; }

/* General */
.placeholder-chart { height: 300px; }
.table thead th { white-space: nowrap; background: #eef2ff; color: #2a2f45; }
.app-footer hr { opacity: .15; }
.app-footer { color: #6c757d; background: #f8fafc; padding-bottom: 1rem; }
/* Subtle shadow and rounded corners for a modern look */
.card { border-radius: .6rem; box-shadow: 0 .25rem .85rem rgba(0,0,0,.05); }
.btn { border-radius: .45rem; }
/* Primary accents */
.text-primary { color: var(--brand-primary) !important; }
.border-primary { border-color: var(--brand-primary) !important; }
.bg-primary { background-color: var(--brand-primary) !important; }
.btn-primary{ background-color: var(--brand-primary); border-color: var(--brand-primary); }
.btn-outline-primary{ color: var(--brand-primary); border-color: var(--brand-primary); }
.btn-outline-primary:hover{ background-color: var(--brand-primary); border-color: var(--brand-primary); color: #fff; }

/* Login card accent */
.card.shadow-sm .card-body h5 { color: var(--brand-primary); }

/* Force family across UI controls */
html, body, .btn, .form-control, .nav-link, .card, .table, label, input, select, textarea { font-family: 'GillSansCustom', "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }

.brand-logo-wrap{ background:#fff; padding:6px 10px; border-radius:8px; display:inline-block; box-shadow:0 .1rem .3rem rgba(0,0,0,.06); }

/* Footer placement */
.app-main { padding-bottom: 72px; }
.app-footer { position: fixed; left: 0; right: 0; bottom: 0; background: #f8fafc; border-top: 1px solid rgba(0,0,0,.06); z-index: 10; }

/* Chips and Pills */
.filter-pills .pill { display:inline-block; padding:.35rem .75rem; border:1px solid rgba(0,0,0,.12); border-radius:999px; background:#fff; color:#334155; margin-right:.5rem; cursor:pointer; }
.filter-pills .pill.active { background: var(--brand-primary); color:#fff; border-color: var(--brand-primary); }
.filter-chips .chip { display:inline-flex; align-items:center; gap:.35rem; padding:.25rem .5rem; background:#eef2ff; color:#334155; border-radius:999px; margin-right:.5rem; font-size:.8rem; }
.filter-chips .chip .x { cursor:pointer; opacity:.6; }

/* KPI sparkline */
.kpi-spark { height: 36px; }

/* Print styles */
@media print {
	.col-md-2.d-none.d-md-block { display: none !important; }
	.app-main { padding: 0 !important; }
	.btn, .filter-pills, .filter-chips, .nav, .card-header .nav-tabs, .card-header .btn { display: none !important; }
	.card { box-shadow: none !important; border: 0; }
	.card-header { border-bottom: 1px solid #e5e7eb; }
	.table { font-size: 12px; }
	.print-header { display: block !important; margin-bottom: 12px; }
}
.print-header { display: none; }

/* Chip stacks */
.chip-stack { display:inline-flex; align-items:center; gap:4px; }
.chip-stack .chip { background:#eef2ff; border-radius:999px; padding:.1rem .4rem; font-size:.75rem; }
.chip-stack .more { background:#e2e8f0; border-radius:999px; padding:.1rem .4rem; font-size:.75rem; }

/* KPI deltas */
.kpi-delta { font-size:.8rem; opacity:.85; }

/* Skeleton loaders */
.skel { background: linear-gradient(90deg,#f3f4f6 25%, #e5e7eb 37%, #f3f4f6 63%); background-size: 400% 100%; animation: skel 1.2s ease-in-out infinite; border-radius:4px; }
@keyframes skel { 0%{ background-position: 100% 50%; } 100%{ background-position: 0 50%; } }
.skel-line { height: 12px; margin-bottom:8px; }
.skel-box { height: 160px; }

/* Dashboard fixes */
.nowrap { white-space: nowrap; }
