/*! Bootstrap 5.3 Local Minimal Bundle for SGA-NTI */
:root {
  --bs-primary: #1b5e20;
  --bs-primary-hover: #144417;
  --bs-secondary: #5c6bc0;
  --bs-success: #2e7d32;
  --bs-info: #0288d1;
  --bs-warning: #ed6c02;
  --bs-danger: #d32f2f;
  --bs-light: #f8f9fa;
  --bs-dark: #212529;
  --bs-body-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

*, ::after, ::before { box-sizing: border-box; }
body {
  margin: 0;
  font-family: var(--bs-body-font);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #212529;
  background-color: #f4f6f8;
}

/* Container & Grid */
.container, .container-fluid { width: 100%; padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; }
@media (min-width: 576px) { .container { max-width: 540px; } }
@media (min-width: 768px) { .container { max-width: 720px; } }
@media (min-width: 992px) { .container { max-width: 960px; } }
@media (min-width: 1200px) { .container { max-width: 1140px; } }

.row { display: flex; flex-wrap: wrap; margin-right: -15px; margin-left: -15px; }
.col, .col-12, .col-md-3, .col-md-4, .col-md-6, .col-md-8, .col-md-9, .col-md-12, .col-lg-3, .col-lg-4, .col-lg-6 {
  position: relative; width: 100%; padding-right: 15px; padding-left: 15px;
}
@media (min-width: 768px) {
  .col-md-3 { flex: 0 0 25%; max-width: 25%; }
  .col-md-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-md-6 { flex: 0 0 50%; max-width: 50%; }
  .col-md-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-md-9 { flex: 0 0 75%; max-width: 75%; }
  .col-md-12 { flex: 0 0 100%; max-width: 100%; }
}

/* Typography & Links */
h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 0.5rem; font-weight: 600; line-height: 1.2; color: #1b5e20; }
a { color: var(--bs-primary); text-decoration: none; }
a:hover { color: var(--bs-primary-hover); text-decoration: underline; }

/* Navbar */
.navbar { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; padding: 0.75rem 1rem; background-color: #1b5e20; color: white; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.navbar-brand { display: inline-block; padding-top: .3125rem; padding-bottom: .3125rem; font-size: 1.25rem; font-weight: bold; color: white !important; text-decoration: none; }
.navbar-nav { display: flex; flex-direction: row; padding-left: 0; margin-bottom: 0; list-style: none; gap: 15px; }
.nav-link { display: block; padding: .5rem 0; color: rgba(255,255,255,0.85); font-weight: 500; }
.nav-link:hover, .nav-link.active { color: white; text-decoration: none; }

/* Cards & Tables */
.card { position: relative; display: flex; flex-direction: column; min-width: 0; word-wrap: break-word; background-color: #fff; background-clip: border-box; border: 1px solid rgba(0,0,0,.125); border-radius: .375rem; margin-bottom: 1.5rem; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.card-header { padding: .75rem 1.25rem; margin-bottom: 0; background-color: #f1f8e9; border-bottom: 1px solid rgba(0,0,0,.125); font-weight: bold; color: #1b5e20; }
.card-body { flex: 1 1 auto; padding: 1.25rem; }
.card-title { margin-bottom: .75rem; font-size: 1.25rem; }

.table-responsive { display: block; width: 100%; overflow-x: auto; }
.table { width: 100%; margin-bottom: 1rem; color: #212529; border-collapse: collapse; background-color: white; }
.table th, .table td { padding: .75rem; vertical-align: top; border-top: 1px solid #dee2e6; text-align: left; }
.table thead th { vertical-align: bottom; border-bottom: 2px solid #dee2e6; background-color: #e8f5e9; color: #1b5e20; font-weight: 600; }
.table-striped tbody tr:nth-of-type(odd) { background-color: rgba(0,0,0,.02); }
.table-hover tbody tr:hover { background-color: rgba(0,0,0,.05); }

/* Buttons & Badges */
.btn { display: inline-block; font-weight: 500; color: #212529; text-align: center; vertical-align: middle; cursor: pointer; user-select: none; background-color: transparent; border: 1px solid transparent; padding: .375rem .75rem; font-size: 0.95rem; line-height: 1.5; border-radius: .25rem; transition: color .15s, background-color .15s; }
.btn-primary { color: #fff; background-color: #1b5e20; border-color: #1b5e20; }
.btn-primary:hover { background-color: #144417; border-color: #144417; }
.btn-outline-primary { color: #1b5e20; border-color: #1b5e20; }
.btn-outline-primary:hover { color: #fff; background-color: #1b5e20; }
.btn-secondary { color: #fff; background-color: #6c757d; border-color: #6c757d; }
.btn-secondary:hover { background-color: #5a6268; }
.btn-sm { padding: .25rem .5rem; font-size: .875rem; border-radius: .2rem; }

.badge { display: inline-block; padding: .35em .65em; font-size: 75%; font-weight: 700; line-height: 1; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: .25rem; }
.bg-success { background-color: #2e7d32 !important; color: white; }
.bg-warning { background-color: #ed6c02 !important; color: white; }
.bg-danger { background-color: #d32f2f !important; color: white; }
.bg-info { background-color: #0288d1 !important; color: white; }
.bg-secondary { background-color: #6c757d !important; color: white; }
.bg-dark { background-color: #212529 !important; color: white; }

/* Forms */
.form-label { margin-bottom: .5rem; font-weight: 500; font-size: 0.9rem; color: #333; }
.form-control, .form-select { display: block; width: 100%; padding: .375rem .75rem; font-size: 0.95rem; font-weight: 400; line-height: 1.5; color: #495057; background-color: #fff; border: 1px solid #ced4da; border-radius: .25rem; }
.form-control:focus, .form-select:focus { border-color: #81c784; outline: 0; box-shadow: 0 0 0 .2rem rgba(46,125,50,.25); }

/* Pagination */
.pagination { display: flex; padding-left: 0; list-style: none; border-radius: .25rem; margin: 1rem 0; gap: 4px; }
.page-item .page-link { position: relative; display: block; padding: .375rem .75rem; color: #1b5e20; background-color: #fff; border: 1px solid #dee2e6; border-radius: .25rem; text-decoration: none; }
.page-item.active .page-link { color: #fff; background-color: #1b5e20; border-color: #1b5e20; }
.page-item.disabled .page-link { color: #6c757d; pointer-events: none; background-color: #fff; border-color: #dee2e6; }

/* Alerts */
.alert { position: relative; padding: .75rem 1.25rem; margin-bottom: 1rem; border: 1px solid transparent; border-radius: .25rem; }
.alert-info { color: #055160; background-color: #cff4fc; border-color: #b6effb; }
.alert-warning { color: #664d03; background-color: #fff3cd; border-color: #ffecb5; }
.alert-danger { color: #842029; background-color: #f8d7da; border-color: #f5c2c7; }
.alert-success { color: #0f5132; background-color: #d1e7dd; border-color: #badbcc; }

/* Utilities */
.mb-2 { margin-bottom: .5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }
.mt-3 { margin-top: 1rem !important; }
.mt-4 { margin-top: 1.5rem !important; }
.me-2 { margin-right: .5rem !important; }
.d-flex { display: flex !important; }
.justify-content-between { justify-content: space-between !important; }
.align-items-center { align-items: center !important; }
.text-muted { color: #6c757d !important; }
.text-center { text-align: center !important; }
.shadow-sm { box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important; }
