/* =====================================================================
   DCCAP Unified Design System  (assets/css/dccap-theme.css)
   ---------------------------------------------------------------------
   Single source of truth for the DCCAP visual identity.
   Loaded globally via the shared header/navbar includes.
   Built on top of Bootstrap 5 — it overrides Bootstrap tokens so every
   existing .btn / .card / .form-control / .alert / .table adopts the
   DCCAP identity WITHOUT needing per-page markup changes.
   Palette derived from the existing app so there is no visual jump.
   ===================================================================== */

:root {
  /* ---- Brand colors ---- */
  --dccap-primary:        #0d47a1;
  --dccap-primary-dark:   #0a3880;
  --dccap-primary-light:  #eff4fc;
  --dccap-secondary:      #00bcd4;
  --dccap-accent:         #22c55e;
  --dccap-ai:             #6366f1;
  --dccap-danger:         #dc2626;
  --dccap-warning:        #f59e0b;
  --dccap-success:        #16a34a;

  /* ---- Surfaces & text ---- */
  --dccap-dark:           #061b36;
  --dccap-bg:             #f8fafc;
  --dccap-surface:        #ffffff;
  --dccap-text:           #1e293b;
  --dccap-text-muted:     #64748b;
  --dccap-border:         #e2e8f0;

  /* ---- Typography ---- */
  --dccap-font-body:      'Cairo', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --dccap-font-heading:   var(--dccap-font-body);
  --dccap-fs-base:        1rem;
  --dccap-fw-normal:      400;
  --dccap-fw-medium:      500;
  --dccap-fw-semibold:    600;
  --dccap-fw-bold:        700;
  --dccap-lh-base:        1.6;

  /* ---- Spacing scale ---- */
  --dccap-space-1: .25rem;
  --dccap-space-2: .5rem;
  --dccap-space-3: 1rem;
  --dccap-space-4: 1.5rem;
  --dccap-space-5: 2.5rem;

  /* ---- Radius ---- */
  --dccap-radius-sm: .5rem;
  --dccap-radius:    .75rem;
  --dccap-radius-lg: 1.25rem;
  --dccap-radius-pill: 999px;

  /* ---- Shadows ---- */
  --dccap-shadow-sm: 0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.10);
  --dccap-shadow:    0 4px 6px -1px rgba(15,23,42,.08), 0 2px 4px -2px rgba(15,23,42,.06);
  --dccap-shadow-lg: 0 12px 30px rgba(15,23,42,.12);

  /* ---- Map Bootstrap 5 tokens onto the DCCAP identity ---- */
  --bs-primary:            var(--dccap-primary);
  --bs-primary-rgb:        13, 71, 161;
  --bs-link-color:         var(--dccap-primary);
  --bs-link-color-rgb:     13, 71, 161;
  --bs-link-hover-color:   var(--dccap-primary-dark);
  --bs-body-font-family:   var(--dccap-font-body);
  --bs-body-color:         var(--dccap-text);
  --bs-border-radius:      var(--dccap-radius-sm);
  --bs-border-color:       var(--dccap-border);
}

/* ---------- Base ---------- */
body {
  font-family: var(--dccap-font-body);
  color: var(--dccap-text);
  line-height: var(--dccap-lh-base);
}
h1,h2,h3,h4,h5,h6 { font-family: var(--dccap-font-heading); font-weight: var(--dccap-fw-bold); color: var(--dccap-text); }
a { color: var(--dccap-primary); }
a:hover { color: var(--dccap-primary-dark); }

/* ---------- Buttons ---------- */
.btn-primary {
  --bs-btn-bg: var(--dccap-primary);
  --bs-btn-border-color: var(--dccap-primary);
  --bs-btn-hover-bg: var(--dccap-primary-dark);
  --bs-btn-hover-border-color: var(--dccap-primary-dark);
  --bs-btn-active-bg: var(--dccap-primary-dark);
  --bs-btn-active-border-color: var(--dccap-primary-dark);
  --bs-btn-disabled-bg: var(--dccap-primary);
  --bs-btn-disabled-border-color: var(--dccap-primary);
}
.btn-outline-primary {
  --bs-btn-color: var(--dccap-primary);
  --bs-btn-border-color: var(--dccap-primary);
  --bs-btn-hover-bg: var(--dccap-primary);
  --bs-btn-hover-border-color: var(--dccap-primary);
  --bs-btn-active-bg: var(--dccap-primary);
}
.btn { border-radius: var(--dccap-radius-sm); font-weight: var(--dccap-fw-semibold); }

/* ---------- Forms ---------- */
.form-control, .form-select {
  border-color: var(--dccap-border);
  border-radius: var(--dccap-radius-sm);
}
.form-control:focus, .form-select:focus {
  border-color: var(--dccap-primary);
  box-shadow: 0 0 0 .2rem rgba(13,71,161,.15);
}

/* ---------- Cards ---------- */
.card {
  border: 1px solid var(--dccap-border);
  border-radius: var(--dccap-radius-lg);
  box-shadow: var(--dccap-shadow-sm);
}

/* ---------- Alerts ---------- */
.alert { border-radius: var(--dccap-radius); }

/* ---------- Tables ---------- */
.table { --bs-table-hover-bg: var(--dccap-primary-light); }
.table thead th {
  background: var(--dccap-primary-light);
  color: var(--dccap-primary-dark);
  font-weight: var(--dccap-fw-semibold);
  border-bottom: 2px solid var(--dccap-border);
}
/* Keep wide tables from breaking the page on small screens */
.table-responsive { -webkit-overflow-scrolling: touch; }

/* ---------- Badges ---------- */
.badge.text-bg-primary, .badge.bg-primary { background-color: var(--dccap-primary) !important; }

/* ---------- Modals ---------- */
.modal-content { border-radius: var(--dccap-radius-lg); border: none; box-shadow: var(--dccap-shadow-lg); }
.modal-header { border-bottom: 1px solid var(--dccap-border); }
.modal-footer { border-top: 1px solid var(--dccap-border); }

/* ---------- Reusable DCCAP component classes ---------- */
.dccap-btn        { border-radius: var(--dccap-radius-sm); font-weight: var(--dccap-fw-semibold); padding: .6rem 1.15rem; }
.dccap-btn-primary{ background: var(--dccap-primary); color:#fff; border:none; }
.dccap-btn-primary:hover { background: var(--dccap-primary-dark); color:#fff; }
.dccap-card       { background: var(--dccap-surface); border:1px solid var(--dccap-border); border-radius: var(--dccap-radius-lg); box-shadow: var(--dccap-shadow-sm); }
.dccap-muted      { color: var(--dccap-text-muted); }

/* ---------- Global responsive guards ---------- */
html, body { overflow-x: hidden; }              /* kill accidental horizontal scroll */
img { max-width: 100%; height: auto; }          /* images never overflow their box */
.container, .container-fluid { width: 100%; }
@media (max-width: 575.98px) {
  h1 { font-size: 1.7rem; }
  h2 { font-size: 1.4rem; }
  .btn { padding-block: .55rem; }               /* larger touch targets */
}
