/* Global theme overrides for Bootstrap 5 */
:root {
  /* Primary palette */
  --bs-primary: #0b3d91; /* dark navy */
  --bs-primary-rgb: 11, 61, 145;
  --bs-secondary: #6c757d;
  --bs-secondary-rgb: 108, 117, 125;
  --bs-success: #198754;
  --bs-info: #0dcaf0;
  --bs-warning: #ffc107;
  --bs-danger: #dc3545;
  --bs-light: #f8f9fa;
  /* Use a professional cyan for bg-dark surfaces like navbar */
  --bs-dark: #0891b2; /* cyan-600 */
  --bs-dark-rgb: 8, 145, 178;
  
  /* Body */
  --bs-body-bg: #f6f7fb;
  --bs-body-color: #2b2f33;
}

body {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Inter, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
  letter-spacing: 0.1px;
}

h1, h2, h3, h4, h5, h6 { color: #1f2429; }
hr { color: rgba(0,0,0,.08); }

.navbar-brand { font-weight: 600; letter-spacing: 0.2px; }

.card { border-radius: .6rem; border: 1px solid rgba(0,0,0,.08); }
.card-title { margin-bottom: .25rem; }

/* Compact, app-like sizing */
.btn { border-radius: .5rem; padding: .45rem .85rem; font-size: .92rem; }
.form-label { font-weight: 500; font-size: .92rem; }
.form-control, .form-select { border-radius: .5rem; padding: .4rem .6rem; font-size: .92rem; }
.input-group-text { font-size: .92rem; padding: .4rem .6rem; }

/* Compact utilities */
.compact-form .form-control, .compact-form .form-select { padding: .3rem .5rem; font-size: .9rem; }
.compact-form .form-label { font-size: .85rem; margin-bottom: .15rem; }

/* Navbar compact height and brand badge style */
.navbar { min-height: 44px; padding-top: .25rem; padding-bottom: .25rem; }
.navbar .navbar-brand.brand-badge {
  font-size: .8rem;
  letter-spacing: .3px;
  padding: .25rem .5rem;
  border-radius: .75rem;
  background: rgba(255,255,255,.15);
}

/* Make btn-sm and form-control-sm tighter across the app */
.btn-sm { padding: .25rem .5rem; font-size: .85rem; border-radius: .4rem; }
.form-control-sm, .form-select-sm { padding: .25rem .5rem; font-size: .85rem; border-radius: .4rem; }
.input-group-sm > .form-control, .input-group-sm > .form-select, .input-group-sm > .input-group-text { padding: .25rem .5rem; font-size: .85rem; }

/* Fine-tune primary button hover/focus for the dark navy */
.btn-primary:hover,
.btn-primary:focus { background-color: #0a357f; border-color: #0a357f; }
.btn-primary:focus { box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .25); }
.btn-outline-primary { color: var(--bs-primary); border-color: var(--bs-primary); }
.btn-outline-primary:hover { background: rgba(var(--bs-primary-rgb), .08); border-color: #0a357f; color: #0a357f; }

/* Tables */
.table { --bs-table-striped-bg: rgba(0, 0, 0, 0.02); background: #fff; }
.table th { background: rgba(0,0,0,.02); font-weight: 600; }
.table-sm > :not(caption) > * > * { padding: .35rem .5rem; }
.table.align-middle > :not(caption) > * > * { vertical-align: middle; }

/* Page container spacing */
.container { max-width: 1100px; }

/* Muted link styles */
.a-muted, .a-muted:link, .a-muted:visited { color: #5f6b7a; text-decoration: none; }
.a-muted:hover { color: var(--bs-primary); }

/* Print styles for reports */
@media print {
  :root { --bs-body-bg: #ffffff; --bs-body-color: #000000; }
  html, body { background: #fff !important; }
  .navbar, .btn, .alert { display: none !important; }
  .container { max-width: none; }
  .card { box-shadow: none !important; border: none; }
  .table { border: 1px solid #000; }
  .table th, .table td { border: 1px solid #000 !important; }
  .table th { background: #e9ecef !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  @page { margin: 12mm; }
}
