/* ── CRF Data Asset Rating – custom styles ─────────────────────────────── */

/* CIA impact level badge colours */
.cia-badge-low {
  background-color: #198754 !important; /* Bootstrap success green */
  color: #fff;
}

.cia-badge-medium {
  background-color: #fd7e14 !important; /* Bootstrap orange */
  color: #fff;
}

.cia-badge-high {
  background-color: #dc3545 !important; /* Bootstrap danger red */
  color: #fff;
}

.cia-badge-na {
  background-color: #6c757d !important; /* Bootstrap secondary grey */
  color: #fff;
}

/* CIA select dropdowns – colour the selected value */
.cia-select option[value="Low"]    { color: #198754; font-weight: 600; }
.cia-select option[value="Medium"] { color: #fd7e14; font-weight: 600; }
.cia-select option[value="High"]   { color: #dc3545; font-weight: 600; }
.cia-select option[value="N/A"]    { color: #6c757d; font-weight: 600; }

.cia-select.level-low    { border-color: #198754; box-shadow: 0 0 0 .15rem rgba(25,135,84,.15); }
.cia-select.level-medium { border-color: #fd7e14; box-shadow: 0 0 0 .15rem rgba(253,126,20,.15); }
.cia-select.level-high   { border-color: #dc3545; box-shadow: 0 0 0 .15rem rgba(220,53,69,.15); }
.cia-select.level-na     { border-color: #6c757d; box-shadow: 0 0 0 .15rem rgba(108,117,125,.15); }

/* Saving spinner overlay on select */
.cia-select.saving {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%230d6efd' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1zm0 1.5a5.5 5.5 0 1 1 0 11 5.5 5.5 0 0 1 0-11z' opacity='.25'/%3E%3Cpath d='M8 2.5a5.5 5.5 0 0 1 5.5 5.5h-1.5A4 4 0 0 0 8 4V2.5z'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 8 8' to='360 8 8' dur='.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .5rem center;
  background-size: 1rem;
}

/* Table improvements */
.table td, .table th {
  vertical-align: middle;
}

.crf-sortable-header {
  cursor: pointer;
}

.crf-sortable-header:focus-visible {
  outline: 2px solid rgba(13, 110, 253, 0.45);
  outline-offset: -2px;
}

.crf-sortable-header::after {
  content: '↕';
  display: inline-block;
  margin-left: 0.25rem;
  min-width: 0.9rem;
  text-align: center;
  color: var(--bs-secondary-color, #6c757d);
}

.crf-sortable-header[data-sort-state="asc"]::after {
  content: '▴';
}

.crf-sortable-header[data-sort-state="desc"]::after {
  content: '▾';
}

/* Navbar active indicator */
.navbar-nav .nav-link.active {
  font-weight: 600;
}

/* Login card */
.card.login-card {
  border-radius: 1rem;
}

/* Progress bar animation */
.progress-bar {
  transition: width .4s ease-in-out;
}

/* Footer */
footer {
  background-color: #f8f9fa;
}

@media (min-width: 1200px) {
  .sticky-assign-col {
    position: sticky;
    right: 0;
    z-index: 2;
    background-color: #fff;
    box-shadow: -8px 0 12px -12px rgba(0, 0, 0, 0.45);
    min-width: 18rem;
  }

  thead .sticky-assign-col {
    z-index: 3;
    background-color: var(--bs-table-bg, #f8f9fa);
  }

  .new-azure-tags-col {
    min-width: 18rem;
    max-width: 28rem;
  }

  .new-azure-tags-col .badge {
    white-space: normal;
  }
}

/* ── Global loading overlay ────────────────────────────────────────────── */
.crf-loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(2px);
}

.crf-loading-overlay.d-none {
  display: none !important;
}

.crf-loading-box {
  padding: 1.75rem 2.25rem;
  background: #fff;
  border-radius: 0.75rem;
  box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.18);
}

/* Keep key rating context visible while scrolling long asset lists. */
.sticky-guidance-card {
  position: sticky;
  top: var(--crf-sticky-top, 4.25rem);
  z-index: 1020;
  background: #fff;
}

.sticky-guidance-header {
  background: #fff;
}

.sticky-guidance-core {
  background: #fff;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.sticky-assets-card .table-responsive {
  overflow: visible;
}

.sticky-assets-table thead th {
  position: sticky;
  top: calc(var(--crf-sticky-top, 4.25rem) + var(--crf-guidance-sticky-height, 3rem));
  z-index: 1015;
  background: var(--bs-table-bg, #f8f9fa);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
}

@media (max-width: 991.98px) {
  .sticky-guidance-card {
    top: var(--crf-sticky-top, 3.75rem);
  }

  .sticky-guidance-core {
    padding-top: 0;
    padding-bottom: 0;
  }

  .sticky-assets-card .table-responsive {
    overflow-x: auto;
  }

  .sticky-assets-table thead th {
    position: static;
  }
}
