/*
 * ICAISF dashboard theme.
 * Applies a consistent portal shell to copied source pages without changing behavior.
 */
:root {
  --icaisf-navy: #0f2740;
  --icaisf-blue: #1f5f8b;
  --icaisf-sky: #4c95bf;
  --icaisf-mist: #eaf2f7;
  --icaisf-ink: #163047;
  --icaisf-muted: #63778a;
  --icaisf-border: #d5e0e9;
  --icaisf-surface: #ffffff;
  --icaisf-surface-2: #f7fafc;
  --icaisf-accent: #d19b3d;
  --icaisf-success: #1f8a52;
  --icaisf-warn: #b8741a;
  --icaisf-danger: #c53a32;
  --icaisf-shadow-sm: 0 10px 24px rgba(15, 39, 64, 0.07);
  --icaisf-shadow: 0 20px 44px rgba(15, 39, 64, 0.1);
}

html,
body {
  min-height: 100%;
}

body.home-page {
  background:
    radial-gradient(circle at top left, rgba(76, 149, 191, 0.12), transparent 28%),
    linear-gradient(180deg, #eef5f9 0%, #f8fbfd 24%, #eef4f8 100%);
  color: var(--icaisf-ink);
}

body.home-page a {
  color: var(--icaisf-blue);
  transition: color 0.18s ease;
}

body.home-page a:hover {
  color: var(--icaisf-navy);
}

/* Removed "position: relative; z-index: 1" here on purpose. The real public
   homepage uses body.index-page (see index.html etc.), not body.home-page, so
   this selector never matched its intended target — it only ever matched the
   dashboard admin pages, which reuse "home-page" as a leftover body class.
   Creating a stacking context on <main> there trapped every Bootstrap modal
   (z-index 1050+) behind the modal backdrop, which is a sibling of <body> at
   z-index 1040 and sits outside that stacking context, making dialogs like
   Add Room render but be completely unclickable. */
body.home-page .container,
body.home-page .container-fluid {
  max-width: 1380px;
}

body.home-page h1,
body.home-page h2,
body.home-page h3,
body.home-page h4,
body.home-page h5,
body.home-page h6 {
  color: var(--icaisf-navy);
}

body.home-page .dashboard-shell-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: #143a52;
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 12px 30px rgba(8, 27, 44, 0.18);
}

body.home-page .dashboard-shell-footer {
  background: #0f2230;
  color: #d7e3ea;
  margin-top: 40px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

body.home-page .dashboard-shell-header-inner,
body.home-page .dashboard-shell-footer-inner {
  max-width: 1400px;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

body.home-page .dashboard-shell-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  color: #fff;
  text-decoration: none;
}

body.home-page .dashboard-shell-logo {
  height: 52px;
  width: auto;
  display: block;
}

body.home-page .dashboard-shell-kicker {
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.78;
}

body.home-page .dashboard-shell-title {
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.2;
}

body.home-page .dashboard-shell-nav,
body.home-page .dashboard-shell-footer-links {
  display: flex;
  align-items: center;
  gap: 10px 14px;
  flex-wrap: wrap;
}

body.home-page .dashboard-shell-nav a,
body.home-page .dashboard-shell-footer-links a {
  color: inherit;
  text-decoration: none;
  font-weight: 600;
}

body.home-page .dashboard-shell-footer-copy {
  font-size: 0.92rem;
}

body.home-page .dashboard-shell-footer-copy span {
  opacity: 0.82;
}

body.home-page .card,
body.home-page .auth-card,
body.home-page .admin-surface-card,
body.home-page .admin-side-menu,
body.home-page .participant-directory-card,
body.home-page .program-summary-card,
body.home-page .metric-card {
  border: 1px solid var(--icaisf-border);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--icaisf-shadow-sm);
}

body.home-page .card-header,
body.home-page .auth-card .card-header,
body.home-page .admin-surface-card .card-header {
  background: linear-gradient(135deg, var(--icaisf-navy) 0%, #173a5f 100%);
  border-color: transparent;
  color: #fff;
  font-weight: 700;
  border-radius: 18px 18px 0 0 !important;
}

body.home-page .alert {
  border-radius: 14px;
  border-width: 1px;
}

body.home-page .alert-info {
  background: #edf6fb;
  border-color: #c6deed;
  color: #1e4a67;
}

body.home-page .alert-success {
  background: #edf8f2;
  border-color: #cce8d7;
  color: #195738;
}

body.home-page .alert-warning {
  background: #fff8e9;
  border-color: #efd8a9;
  color: #805617;
}

body.home-page .alert-danger {
  background: #fff0ef;
  border-color: #efc0bc;
  color: #8f2d27;
}

body.home-page .btn-primary,
body.home-page .btn-brand,
body.home-page .btn-auth,
body.home-page .header-get-a-quote .btn-primary,
body.home-page .participant-page-btn.btn-primary,
body.home-page .participant-page-btn.btn-outline-primary:hover {
  background: linear-gradient(135deg, var(--icaisf-blue) 0%, #174f79 100%);
  border-color: #174f79;
  color: #fff;
  box-shadow: 0 10px 18px rgba(31, 95, 139, 0.18);
}

body.home-page .btn-primary:hover,
body.home-page .btn-primary:focus,
body.home-page .btn-brand:hover,
body.home-page .btn-auth:hover,
body.home-page .btn-auth:focus,
body.home-page .header-get-a-quote .btn-primary:hover,
body.home-page .participant-page-btn.btn-primary:hover {
  background: linear-gradient(135deg, #184c73 0%, var(--icaisf-navy) 100%);
  border-color: var(--icaisf-navy);
  color: #fff;
}

body.home-page .btn-outline-primary,
body.home-page .participant-page-btn.btn-outline-primary,
body.home-page .btn-outline-secondary {
  border-radius: 12px;
  border-color: #b6cad8;
  color: var(--icaisf-blue);
  background: #fff;
}

body.home-page .btn-outline-primary:hover,
body.home-page .btn-outline-primary:focus,
body.home-page .btn-outline-secondary:hover,
body.home-page .btn-outline-secondary:focus {
  border-color: var(--icaisf-blue);
  background: #eef5fa;
  color: var(--icaisf-navy);
}

body.home-page .form-control,
body.home-page .custom-select,
body.home-page select.form-control,
body.home-page .form-select,
body.home-page textarea.form-control {
  min-height: 44px;
  border-color: #c9d8e4;
  border-radius: 12px;
  /* background-color, not the "background" shorthand: the shorthand resets
     background-image too, which silently deletes the dropdown-arrow icon
     that .form-select relies on (see dashboard-inline.css), leaving a
     <select> that renders with a border but no arrow at all. */
  background-color: #fbfdfe;
  color: var(--icaisf-ink);
}

body.home-page textarea.form-control {
  min-height: auto;
}

body.home-page .form-control:focus,
body.home-page .custom-select:focus,
body.home-page .form-select:focus {
  border-color: var(--icaisf-sky);
  box-shadow: 0 0 0 0.18rem rgba(76, 149, 191, 0.18);
}

body.home-page .table {
  color: var(--icaisf-ink);
}

body.home-page .table thead th,
body.home-page .table-primary th {
  background: #edf5fb;
  color: var(--icaisf-navy);
  border-color: #d8e6f0;
  font-weight: 700;
}

body.home-page .table td,
body.home-page .table th {
  border-color: #e4edf4;
}

body.home-page .modal-content {
  border: 1px solid var(--icaisf-border);
  border-radius: 18px;
  box-shadow: var(--icaisf-shadow);
}

body.home-page .modal-header {
  background: linear-gradient(135deg, var(--icaisf-navy) 0%, #173a5f 100%);
  color: #fff;
  border-bottom: 0;
  border-radius: 18px 18px 0 0;
}

body.home-page .modal-header .close,
body.home-page .modal-header .modal-title,
body.home-page .modal-header .participant-manage-subtitle {
  color: #fff;
}

body.home-page .modal-footer {
  border-top-color: #e5edf3;
}

body.home-page .admin-side-menu {
  overflow: hidden;
}

body.home-page .admin-menu-group {
  border-bottom: 1px solid #e3ebf2;
}

body.home-page .admin-menu-group:last-child {
  border-bottom: 0;
}

body.home-page .admin-menu-toggle {
  width: 100%;
  border: 0;
  background: linear-gradient(180deg, #f5f9fc 0%, #edf4f9 100%);
  color: var(--icaisf-navy);
  text-align: left;
  font-weight: 800;
  font-size: 0.95rem;
  padding: 13px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  line-height: 1.2;
}

body.home-page .admin-menu-toggle:hover,
body.home-page .admin-menu-toggle:focus {
  background: linear-gradient(180deg, #edf4f9 0%, #e4eef6 100%);
  color: #102c47;
  text-decoration: none;
  outline: none;
}

body.home-page .admin-menu-toggle:not(.collapsed) {
  background: linear-gradient(135deg, rgba(31, 95, 139, 0.14) 0%, rgba(76, 149, 191, 0.09) 100%);
  color: var(--icaisf-navy);
}

body.home-page .admin-menu-toggle.has-activity {
  box-shadow: inset 4px 0 0 var(--icaisf-accent);
}

body.home-page .admin-menu-parent-badge,
body.home-page .admin-side-menu .badge.badge-danger {
  background: var(--icaisf-accent);
  color: #fff;
}

body.home-page .admin-side-menu .list-group-item {
  border: 0;
  border-radius: 0;
  padding: 10px 16px 10px 20px;
  color: #33546f;
  font-weight: 600;
  background: transparent;
}

body.home-page .admin-side-menu .list-group-item:hover,
body.home-page .admin-side-menu .list-group-item:focus {
  background: #f2f7fb;
  color: var(--icaisf-navy);
}

body.home-page .admin-side-menu .list-group-item.active {
  background: linear-gradient(90deg, rgba(31, 95, 139, 0.16) 0%, rgba(31, 95, 139, 0.05) 100%);
  color: var(--icaisf-navy);
  border-left: 4px solid var(--icaisf-blue);
  padding-left: 16px;
}

body.home-page .ccidsa-top-action-btn,
body.home-page .ccidsa-control-select,
body.home-page .ccidsa-filter-pill {
  border-radius: 14px;
}

body.home-page .ccidsa-top-action-btn {
  min-height: 48px;
  padding: 0.68rem 1rem;
  border: 1px solid #cfdae4;
  background: #fff;
  color: #27465f;
  font-size: 0.95rem;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(15, 39, 64, 0.05);
}

body.home-page .ccidsa-top-action-btn:hover,
body.home-page .ccidsa-top-action-btn:focus {
  background: #eef5fa;
  border-color: #92b6cb;
  color: var(--icaisf-navy);
}

body.home-page .ccidsa-control-select {
  min-height: 44px;
  padding: 0.5rem 2.1rem 0.5rem 0.8rem;
  border: 1px solid #bfd1df;
  background-color: #fff;
  color: #223549;
  font-size: 0.98rem;
}

body.home-page .ccidsa-control-select:focus {
  border-color: var(--icaisf-sky);
  box-shadow: 0 0 0 0.15rem rgba(76, 149, 191, 0.18);
}

body.home-page .ccidsa-filter-pill {
  min-height: 46px;
  padding: 0.52rem 1.1rem;
  border: 2px solid rgba(31, 95, 139, 0.22);
  background: #fff;
  color: var(--icaisf-blue);
  font-size: 0.97rem;
  font-weight: 800;
}

body.home-page .ccidsa-filter-pill:hover,
body.home-page .ccidsa-filter-pill:focus {
  background: #eef5fa;
  color: var(--icaisf-navy);
  border-color: rgba(31, 95, 139, 0.45);
}

body.home-page .ccidsa-filter-pill.is-active {
  background: linear-gradient(135deg, var(--icaisf-blue) 0%, #174f79 100%);
  border-color: #174f79;
  color: #fff !important;
}

body.home-page .participant-directory-card,
body.home-page article.participant-directory-card {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

body.home-page .participant-directory-card:hover,
body.home-page article.participant-directory-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--icaisf-shadow);
}

body.home-page .badge,
body.home-page .status-badge {
  border-radius: 999px;
}

@media (max-width: 991px) {
  body.home-page main.container {
    padding-left: 14px;
    padding-right: 14px;
  }

  body.home-page .dashboard-shell-header .container-fluid,
  body.home-page .dashboard-shell-footer .container-fluid {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}
