:root {
  color-scheme: light;
  --segd-blue: #1557a0;
  --segd-blue-dark: #103f72;
  --segd-blue-hover: #285b8d;
  --segd-blue-active: #ffffff;
  --segd-text: #19324a;
  --segd-muted: #526579;
  --segd-surface: #ffffff;
  --segd-background: #f4f7fb;
  --sidebar: 260px;
  --topbar: 64px;
}

html,
body {
  background: var(--segd-background);
  color: var(--segd-text);
}

.text-secondary { color: var(--segd-muted) !important; }
.btn-primary { background-color: var(--segd-blue) !important; border-color: var(--segd-blue) !important; }
.btn-primary:hover,
.btn-primary:focus { background-color: var(--segd-blue-dark) !important; border-color: var(--segd-blue-dark) !important; }
.btn-outline-primary { color: var(--segd-blue); border-color: var(--segd-blue); }
.btn-outline-primary:hover,
.btn-outline-primary:focus { color: #fff; background-color: var(--segd-blue); border-color: var(--segd-blue); }
.btn-outline-secondary { color: #46586a; border-color: #667788; }
.btn-outline-secondary:hover,
.btn-outline-secondary:focus { color: #fff; background-color: #46586a; border-color: #46586a; }

.card { background: var(--segd-surface); border: 0; border-radius: 14px; box-shadow: 0 3px 18px rgba(22, 50, 79, .07); color: var(--segd-text); }
.card h1,
.card h2,
.card h3,
.card-header { color: var(--segd-text); }
.card-footer { border-color: #dfe6ed; }
.card-footer.bg-white { background-color: var(--segd-surface) !important; color: var(--segd-text); }
.stat { min-height: 112px; }
.chart-container { height: 300px; }
.table { --bs-table-color: var(--segd-text); --bs-table-bg: var(--segd-surface); }
.table > :not(caption) > * > * { padding: .8rem; }
.table-sort { color: inherit; text-decoration: none; white-space: nowrap; }
.table-sort:hover,
.table-sort:focus { color: var(--segd-blue); text-decoration: underline; }

.topbar { height: var(--topbar); background: var(--segd-blue); color: #fff; display: flex; align-items: center; padding: 0 1.25rem; margin-left: var(--sidebar); z-index: 1025; }
.topbar .text-white-50 { color: #dbe8f5 !important; }
.topbar .btn-light { color: #17324d; background: #fff; border-color: #fff; }
.topbar .btn-light:hover,
.topbar .btn-light:focus { color: #10263b; background: #e8f0f8; border-color: #e8f0f8; }
.dropdown-item { color: var(--segd-text); }
.dropdown-item.active,
.dropdown-item:active { color: #fff; background-color: var(--segd-blue); }

.sidebar {
  --bs-offcanvas-bg: var(--segd-blue-dark);
  --bs-offcanvas-color: #fff;
}
.offcanvas.sidebar,
.offcanvas-lg.sidebar,
.sidebar.offcanvas-lg,
.sidebar.offcanvas-start {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--sidebar) !important;
  background: var(--segd-blue-dark) !important;
  background-color: var(--segd-blue-dark) !important;
  color: #fff !important;
  border-right: 0;
  z-index: 1030;
}
.sidebar .offcanvas-header { background-color: var(--segd-blue-dark); color: #fff; }
.sidebar-brand { padding: 1.25rem 1.5rem; border-bottom: 1px solid rgba(255, 255, 255, .22); }
.brand,
.brand:visited { font-size: 1.35rem; font-weight: 800; color: #fff; text-decoration: none; }
.brand:hover,
.brand:focus { color: #fff; text-decoration: underline; text-underline-offset: .2rem; }
.sidebar-brand small { display: block; color: #c7d8e9; }
.sidebar .nav { height: calc(100vh - 85px); }
.sidebar .nav-link { color: #edf5fc; border-radius: 9px; margin-bottom: .2rem; padding: .7rem .9rem; transition: background-color .15s ease, color .15s ease; }
.sidebar .nav-link:hover,
.sidebar .nav-link:focus { color: #fff; background-color: var(--segd-blue-hover); outline: 2px solid transparent; }
.sidebar .nav-link.active,
.sidebar .nav-link.active:hover,
.sidebar .nav-link.active:focus { color: var(--segd-blue-dark); background-color: var(--segd-blue-active); font-weight: 700; box-shadow: inset 4px 0 0 #f2b134; }
.panel-main { margin-left: var(--sidebar); }
.form-label { font-weight: 600; font-size: .9rem; color: var(--segd-text); }
.form-control,
.form-select { color: var(--segd-text); background-color: #fff; border-color: #7a8998; }
.form-text { color: var(--segd-muted); }

.login-page { background: #edf3fa; }
.login { max-width: 420px; margin: 9vh auto; }
.login .card { border-radius: 18px; box-shadow: 0 20px 50px rgba(22, 50, 79, .13); }
.login-brand { color: var(--segd-blue); }

.public-page { margin: 0; font-family: system-ui, sans-serif; background: #f5f8fc; color: var(--segd-text); }
.hero { min-height: 100vh; display: grid; place-items: center; text-align: center; padding: 2rem; }
.hero-box { max-width: 760px; background: #fff; padding: 4rem; border-radius: 24px; box-shadow: 0 20px 60px rgba(22, 50, 79, .1); }
.hero-box h1 { font-size: clamp(2rem, 6vw, 4rem); margin: .3em; }
.hero-box p { font-size: 1.2rem; color: var(--segd-muted); }
.hero-button { display: inline-block; margin-top: 1rem; padding: .8rem 1.4rem; background: var(--segd-blue); color: #fff; text-decoration: none; border-radius: 9px; }
.hero-button:hover,
.hero-button:focus { background: var(--segd-blue-dark); color: #fff; }

@page { size: A4 landscape; margin: 15mm; }
.report-pdf { background: #fff; color: #172b3f; font-family: "DejaVu Sans", sans-serif; font-size: 10px; }
.report-pdf h1 { color: var(--segd-blue); }
.report-pdf table { border-collapse: collapse; width: 100%; color: #172b3f; background: #fff; }
.report-pdf th,
.report-pdf td { border: 1px solid #9aa7b4; padding: 6px; text-align: left; }
.report-pdf th { background: #e5eef7; }

@media (max-width: 991.98px) {
  .topbar { margin-left: 0; }
  .panel-main { margin-left: 0; }
  .sidebar .nav { height: calc(100vh - 65px); }
  .table { min-width: 720px; }
}

@media (max-width: 767px) {
  .stat .fs-4 { font-size: 1.1rem !important; }
  .panel-main { padding-bottom: 5rem; }
  .card-body { padding: 1rem; }
}
