/**
 * Fee Portal — single place for brand colour (buttons, primary actions).
 * Change --fp-primary here → applies across app + login.
 */
:root {
  --fp-primary: #2f5287;
  --fp-primary-hover: #2f5287;
  --fp-primary-active: #27456f;
  --fp-on-primary: #ffffff;
}

/* Primary actions: Bootstrap variants used across portal → one brand colour */
.fee-portal-app .btn-danger,
.fee-portal-app .btn-danger.disabled,
.fee-portal-app .btn-primary,
.fee-portal-app .btn-secondary,
.fee-portal-app .btn-success,
.fee-portal-app .btn-warning,
.fee-portal-app .btn-info,
.login-simple-page .btn-danger,
.login-simple-page .btn-primary,
.login-simple-page .btn-secondary,
.login-simple-page .btn-success,
.login-simple-page .btn-warning,
.login-simple-page .btn-info,
.fee-portal-app .btn-portal-primary,
.login-simple-page .btn-portal-primary {
  background-color: var(--fp-primary) !important;
  border-color: var(--fp-primary) !important;
  color: var(--fp-on-primary) !important;
  box-shadow: none !important;
}

.fee-portal-app .btn-danger:hover,
.fee-portal-app .btn-primary:hover,
.fee-portal-app .btn-secondary:hover,
.fee-portal-app .btn-success:hover,
.fee-portal-app .btn-warning:hover,
.fee-portal-app .btn-info:hover,
.login-simple-page .btn-danger:hover,
.login-simple-page .btn-primary:hover,
.login-simple-page .btn-secondary:hover,
.login-simple-page .btn-success:hover,
.login-simple-page .btn-warning:hover,
.login-simple-page .btn-info:hover,
.fee-portal-app .btn-portal-primary:hover,
.login-simple-page .btn-portal-primary:hover {
  background-color: var(--fp-primary-hover) !important;
  border-color: var(--fp-primary-hover) !important;
  color: var(--fp-on-primary) !important;
}

/* Remove Bootstrap’s red/yellow/etc. focus rings behind unified brand buttons */
.fee-portal-app .btn:focus,
.fee-portal-app .btn.focus,
.fee-portal-app .btn:active:focus,
.fee-portal-app .btn:not(:disabled):not(.disabled):active,
.fee-portal-app a.btn:focus,
.fee-portal-app a.btn:active {
  box-shadow: none !important;
}

.fee-portal-app .btn:focus-visible {
  outline: 2px solid var(--fp-primary);
  outline-offset: 2px;
}

.login-simple-page .btn:focus,
.login-simple-page .btn.focus,
.login-simple-page .btn:active:focus,
.login-simple-page a.btn:focus {
  box-shadow: none !important;
}

.login-simple-page .btn:focus-visible {
  outline: 2px solid var(--fp-primary);
  outline-offset: 2px;
}

.fee-portal-app .btn-danger:active,
.fee-portal-app .btn-primary:active,
.fee-portal-app .btn-secondary:active,
.fee-portal-app .btn-success:active,
.fee-portal-app .btn-warning:active,
.fee-portal-app .btn-info:active,
.login-simple-page .btn-danger:active,
.login-simple-page .btn-primary:active,
.login-simple-page .btn-secondary:active,
.login-simple-page .btn-success:active,
.login-simple-page .btn-warning:active,
.login-simple-page .btn-info:active,
.fee-portal-app .btn-portal-primary:active,
.login-simple-page .btn-portal-primary:active {
  background-color: var(--fp-primary-active) !important;
  border-color: var(--fp-primary-active) !important;
}

/* Outline buttons → brand border / hover fill */
.fee-portal-app .btn-outline-danger,
.fee-portal-app .btn-outline-primary,
.fee-portal-app .btn-outline-secondary,
.login-simple-page .btn-outline-primary,
.login-simple-page .btn-outline-secondary {
  color: var(--fp-primary) !important;
  border-color: var(--fp-primary) !important;
  background: transparent !important;
}
.fee-portal-app .btn-outline-danger:hover,
.fee-portal-app .btn-outline-primary:hover,
.fee-portal-app .btn-outline-secondary:hover,
.login-simple-page .btn-outline-primary:hover,
.login-simple-page .btn-outline-secondary:hover {
  background-color: var(--fp-primary) !important;
  border-color: var(--fp-primary) !important;
  color: var(--fp-on-primary) !important;
}

/* Sidebar active / brand accents (optional, subtle) */
.portal-sidebar .active > a {
  border-left-color: var(--fp-primary) !important;
}

/* DataTables Excel button — left column, align start */
.portal-dt-buttons .dt-buttons {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-start;
}

div.dataTables_wrapper div.dataTables_filter input {
  min-width: 12rem;
}

/* Fee payment wizard progress (payment.blade.php) */
.fee-portal-app #progressbar li.active {
  color: var(--fp-primary) !important;
}

/* Top header — same as primary buttons (overrides custom.css #6777ef) */
.fee-portal-app .portal-navbar-bg,
.fee-portal-app .portal-main-navbar {
  background-color: #2f5287 !important;
  border-color: #2f5287 !important;
}

.fee-portal-app .portal-sidebar-logo-wrap {
  background: var(--fp-primary) !important;
}

/* Laravel Bootstrap 5 pagination + DataTables (uses same .pagination) */
.fee-portal-app .pagination .page-link {
  color: var(--fp-primary);
  border-color: #dee2e6;
}

.fee-portal-app .pagination .page-item.active .page-link {
  background-color: var(--fp-primary);
  border-color: var(--fp-primary);
  color: var(--fp-on-primary);
}

.fee-portal-app .pagination .page-item.active .page-link:hover {
  background-color: var(--fp-primary-hover);
  border-color: var(--fp-primary-hover);
  color: var(--fp-on-primary);
}

.fee-portal-app .pagination .page-link:hover {
  color: var(--fp-primary-hover);
  background-color: rgba(59, 100, 166, 0.08);
  border-color: #dee2e6;
}

.fee-portal-app .pagination .page-item.disabled .page-link {
  color: #6c757d;
  background-color: #fff;
}

/* DataTables own paginate buttons (non-Bootstrap skin fallback) */
.fee-portal-app .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.fee-portal-app .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--fp-primary) !important;
  border-color: var(--fp-primary) !important;
  color: var(--fp-on-primary) !important;
}

.fee-portal-app .dataTables_wrapper .dataTables_paginate .paginate_button:not(.disabled):hover {
  background: var(--fp-primary-hover) !important;
  border-color: var(--fp-primary-hover) !important;
  color: var(--fp-on-primary) !important;
}

/* Student “Query Form” modal — above fixed sidebar (z-index 880) + correct submit colour */
.fee-portal-app .student-query-modal {
  z-index: 2000 !important;
}
.fee-portal-app .student-query-modal + .modal-backdrop,
body > .modal-backdrop.show {
  z-index: 1990 !important;
}

.fee-portal-app .student-query-modal .student-query-modal-body {
  max-height: min(70vh, 420px);
  overflow-y: auto;
}

.fee-portal-app .btn-portal-query-submit {
  background-color: var(--fp-primary-hover) !important;
  border-color: var(--fp-primary-hover) !important;
  color: #fff !important;
  font-weight: 600;
}
.fee-portal-app .btn-portal-query-submit:hover {
  background-color: var(--fp-primary-active) !important;
  border-color: var(--fp-primary-active) !important;
  color: #fff !important;
}

/* Replace student "danger" palette with brand blue tone */
.fee-portal-app .text-danger,
.fee-portal-app .text-danger-all *,
.fee-portal-app .text-danger-all *:before,
.fee-portal-app .text-danger-all *:after,
.login-simple-page .text-danger {
  color: var(--fp-primary-hover) !important;
}

.fee-portal-app .bg-danger,
.fee-portal-app .badge.badge-danger,
.fee-portal-app .alert.alert-danger,
.fee-portal-app .list-group-item-danger,
.login-simple-page .alert.alert-danger {
  background-color: var(--fp-primary-hover) !important;
  border-color: var(--fp-primary-hover) !important;
  color: var(--fp-on-primary) !important;
}

.fee-portal-app .card.card-danger {
  border-top-color: var(--fp-primary-hover) !important;
}

/* Success flash in student/login pages uses brand primary hover */
.fee-portal-app .alert.alert-success,
.login-simple-page .alert.alert-success {
  background-color: var(--fp-primary-hover) !important;
  border-color: var(--fp-primary-hover) !important;
  color: var(--fp-on-primary) !important;
}

/* Select2 alignment with Bootstrap controls */
.select2-container {
  width: 100% !important;
}

.select2-container .select2-selection--single {
  min-height: 42px !important;
  height: 42px !important;
  border: 1px solid #ced4da !important;
  border-radius: 4px !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 40px 0 0.75rem !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 40px !important;
  min-height: auto !important;
  margin-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  color: #495057 !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  top: 50% !important;
  transform: translateY(-50%) !important;
  min-height: 0 !important;
  height: 22px !important;
  right: 6px !important;
}

.select2-container--open .select2-dropdown {
  margin-top: 2px !important;
  z-index: 2100 !important;
}
