/* ========================================================================== 
   GLOBAL STYLESHEET 
   ========================================================================== */

/* ==========================================================================
   Base Typography & Fonts
   ========================================================================== */
/* Apply Gilroy as the default site font */
@font-face {
    font-family: Gilroy;
    font-weight: 400;
    src: url(Gilroy-Black.otf);
}

@font-face {
    font-family: Gilroy;
    font-weight: bold;
    src: url(Gilroy-Medium.otf);
}

@font-face {
    font-family: Gilroy;
    font-weight: 700;
    src: url(Gilroy-Medium.otf);
}

@font-face {
    font-family: Gilroy;
    font-weight: 600;
    src: url(Gilroy-Black.otf);
}

@font-face {
    font-family: Gilroy;
    src: url(Gilroy.otf);
}

body,
html {
  font-family: Gilroy, sans-serif;
}

/* Ensure headings, strong/text elements use Gilroy as well */
h1,
h2,
h3,
h4,
h5,
h6,
strong,
label,
select,
option,
input,
textarea,
p {
  font-family: Gilroy, sans-serif !important;
}

button {
  font-family: Gilroy, sans-serif !important;
}

/* If you want all anchor tags bold and Gilroy */
a {
  font-family: Gilroy, sans-serif;
  font-weight: bold !important;
  text-decoration-color: inherit;
}

.svg-bg-custom {
  background-image: url("data:image/svg+xml,%3Csvg width='241' height='211' viewBox='0 0 241 211' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_467_457)'%3E%3Cpath d='M126.858 0H65.1318C64.6935 0.0275 64.28 0.2127 63.9675 0.5213C63.6551 0.8299 63.4648 1.2411 63.4319 1.6791C63.4319 35.265 35.7608 61.7151 1.7058 62.5541C1.2675 62.5815 0.854 62.7667 0.5415 63.0753C0.229 63.3839 0.0388 63.7951 0.0059 64.233V125.108C0.0388 125.546 0.229 125.957 0.5415 126.266C0.854 126.574 1.2675 126.76 1.7058 126.787C71.0948 125.947 127.287 70.53 128.138 2.0981C128.242 1.8779 128.291 1.6351 128.278 1.3917C128.266 1.1482 128.193 0.9117 128.066 0.7034C127.939 0.4951 127.763 0.3216 127.553 0.1985C127.342 0.0753 127.104 0.0065 126.861 0' fill='%23D9D9D6'/%3E%3C/g%3E%3Cg clip-path='url(%23clip1_467_457)'%3E%3Cpath d='M239.3 109H177.697C177.259 109.014 176.846 109.108 176.535 109.265C176.223 109.423 176.033 109.632 176 109.855V210.144C176.033 210.367 176.223 210.577 176.535 210.734C176.846 210.891 177.259 210.985 177.697 210.999H239.297C239.735 210.985 240.148 210.891 240.459 210.734C240.771 210.577 240.961 210.367 240.994 210.144V109.855C240.961 109.632 240.771 109.423 240.459 109.265C240.148 109.108 239.735 109.014 239.297 109' fill='%23D9D9D6'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_467_457'%3E%3Crect width='128.248' height='126.789' fill='white'/%3E%3C/clipPath%3E%3CclipPath id='clip1_467_457'%3E%3Crect width='65' height='102' fill='white' transform='translate(176 109)'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: left;
  background-size: auto;
}

/* ==========================================================================
   Navbar / Navigation (GLOBAL)
   ========================================================================== */

.nav-name::after {
  margin-right: 10px;
}

.username {
  padding-left: 10px;
}

.navbar-dark .navbar-nav .show.dropdown-menu {
  background-color: #D9D9D6;
}

.navbar-dark .navbar-nav .show.dropdown-menu li a {
  color: #191817;
  font-weight: bold;
}

.nav-link.dropdown-toggle:hover,
.nav-link.dropdown-toggle:focus {
  text-decoration-color: white;
}

.nav-link.dropdown-toggle:hover::after,
.nav-link.dropdown-toggle:focus::after {
  color: #ffffff;
}

.nav-item.weblink,
.nav-item.dropdown {
  margin-right: 4.5px;
  margin-left: 4.5px;
}

.dropdown-toggle:hover::after,
.dropdown-toggle:focus::after {
  color: #ffffff;
}

.nav-link {
  color: black;
  font-weight: bold;
}



/* ==========================================================================
   Form Elements (GLOBAL)
   ========================================================================== */
/* Bold labels and indicate required */
.form-label {
  font-weight: bold;
}

.form-label.required::after {
  content: " *";
  color: #dc3545;
  margin-left: 0.25em;
}

/* Inputs and selects */
.form-control,
.form-select {
  width: 100%;
  padding: 10px;
  font-size: 14px;
  border: 2px solid #b5b5b5 !important;
  border-radius: 10px;
  box-shadow: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  font-family: Gilroy, sans-serif;
}

.form-control:focus,
.form-select:focus {
  border-color: #675ca8 !important;
  box-shadow: 0 0 0 0.2rem rgba(103, 92, 168, 0.25) !important;
  outline: none;
}

/* Prevent textarea resizing */
textarea {
  resize: none;
  font-family: Gilroy, sans-serif;
}

/* Read‐only plaintext fields */
.form-control-plaintext {
  width: 100%;
  padding: 10px;
  font-size: 14px;
  color: #555;
  background-color: transparent;
  border: none;
  font-family: Gilroy, sans-serif;
}

/* Highlight invalid fields */
.is-invalid {
  border-color: #dc3545 !important;
}

.is-invalid:focus {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important;
}

/* ==========================================================================
   Buttons (GLOBAL)
   ========================================================================== */
/* Smaller buttons (e.g. file‐select) */
.btn-sm {
  padding: 6px 12px;
  font-size: 12px;
  font-family: Gilroy, sans-serif;
}

/* Light button inside file-upload widget */
.custom-file-upload>button {
  background-color: #fff;
  border: 2px solid #b5b5b5;
  border-radius: 25px;
  font-family: Gilroy, sans-serif;
  cursor: pointer;
  transition: background-color 0.2s, border-color 0.2s;
}

.custom-file-upload>button:hover {
  background-color: #f1f1f1;
}

/* ==========================================================================
   File‐Upload List (GLOBAL)
   ========================================================================== */
#file-list {
  margin-top: 0.5rem;
  padding: 0;
  list-style: none;
}

#file-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

#file-list li span {
  display: inline-block;
  max-width: calc(100% - 40px);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

#file-list li button {
  flex-shrink: 0;
}

#file-error {
  color: #dc3545;
  margin-top: 0.25rem;
  display: none;
}

/* ==========================================================================
   Table Striped Background Transparency (GLOBAL)
   ========================================================================== */
.table.table-striped {
  --bs-table-striped-bg: rgba(0, 0, 0, 0.00);
}

/* ==========================================================================
   Loading Overlay & Spinner (GLOBAL)
   ========================================================================== */
#overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.7);
  z-index: 1040;
}

#loading-spinner {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1050;
  background-color: rgba(255, 255, 255, 0.9);
  padding: 1rem;
  border-radius: 0.5rem;
  text-align: center;
}

#loading-spinner .spinner-border {
  width: 4rem;
  height: 4rem;
}

#loading-text {
  margin-top: 0.5rem;
  font-size: 1.25rem;
  font-weight: bold;
}

/* ==========================================================================
   Responsive Tweaks (GLOBAL)
   ========================================================================== */
@media (max-width: 767px) {
  .row>[class*="col-"] {
    margin-bottom: 1rem;
  }
}

/* ==========================================================================
   TABS (NAV-PILLS – GLOBAL)
   ========================================================================== */

.nav-pills .nav-item {
  margin-right: .5rem;
}

.nav-pills .nav-link,
.nav-pills .nav-link:visited {
  background-color: #2e008b !important;
  color: #fff !important;
  border-radius: .25rem;
  transition: background-color .2s ease;
  -webkit-tap-highlight-color: transparent;
}

.nav-pills .nav-link:hover,
.nav-pills .nav-link:focus,
.nav-pills .nav-link:focus-visible {
  background-color: #000 !important;
  color: #fff !important;
  outline: none !important;
  box-shadow: none !important;
}

.nav-pills .nav-link.active {
  background-color: #000 !important;
  color: #fff !important;
}

/* ==========================================================================
   PAGINATION (GLOBAL)
   ========================================================================== */

.pagination {
  display: flex;
  justify-content: center;
  gap: 4px;
  margin-top: 20px;
}

.pagination .page-link {
  border: 1px solid #2e008b;
  border-radius: 4px;
  padding: 6px 12px;
  background-color: #2e008b;
  color: #fff;
  font-weight: 700;
  transition: background-color .2s ease;
}

.pagination .page-link:hover {
  background-color: #000;
  color: #fff;
}

.pagination .page-item.active .page-link {
  background-color: #000;
  border-color: #000;
  color: #fff;
}

.pagination .page-item.disabled .page-link,
.pagination .page-item.disabled span.page-link {
  background-color: transparent;
  border: none;
  color: #000;
  font-weight: bold;
  cursor: default;
}

/* ==========================================================================
   PLACEHOLDER RESET (GLOBAL)
   ========================================================================== */
::placeholder {
  color: #d3d3d3 !important;
  opacity: 1 !important;
}

:-ms-input-placeholder {
  color: #d3d3d3 !important;
}

::-ms-input-placeholder {
  color: #d3d3d3 !important;
}