/* Admin and JailAdmin areas: the public site's colour scheme (theme.css) applied to the MDB admin markup.
   Loaded after overrides.css/search.css/admin-navigation.css. Token values mirror theme.css (a regression
   check keeps them identical); public component rules are not loaded here, so admin forms stay compact. */
:root {
  --jx-navy: #0b2545;
  --jx-blue: #1565c0;
  --jx-blue-dark: #0d47a1;
  --jx-link: #1660b8;
  --jx-sky: #9cc9ff;
  --jx-ink: #1d3346;
  --jx-muted: #4d6475;
  --jx-line: #dfe7f0;
  --jx-field: #c5d3e2;
  --jx-surface: #f4f7fb;
  --jx-tint: #e8f1fc;
  --jx-radius: 16px;
  --jx-radius-sm: 10px;
  --jx-shadow: 0 6px 24px rgba(11, 37, 69, .06);
  --jx-shadow-lg: 0 18px 48px rgba(11, 37, 69, .18);
  --jx-ring: 0 0 0 4px rgba(21, 101, 192, .15);
  --jx-band: linear-gradient(140deg, #0b2545 0%, #123f6e 60%, #1a5aa8 100%);
  --jx-cta: #1565c0;
  --jx-cta-hover: #0d47a1;
  --jx-cta-shadow: 0 6px 16px rgba(21, 101, 192, .28);
}

body { background: var(--jx-surface); color: var(--jx-ink); }
a { color: var(--jx-link); }
a:hover { color: var(--jx-blue-dark); }
.blue-text, .text-primary { color: var(--jx-blue) !important; }
.blue-text.text-darken-2, .blue-text.text-darken-3 { color: var(--jx-navy) !important; }

/* ---------- Header ---------- */
.navbar.bg-primary { background: var(--jx-navy) !important; box-shadow: 0 1px 0 rgba(255, 255, 255, .06), 0 6px 20px rgba(3, 18, 38, .2); }
.navbar-dark .navbar-nav .nav-link { color: rgba(255, 255, 255, .9); font-weight: 500; transition: color .15s, box-shadow .15s; }
.navbar-dark .navbar-nav .nav-link:is(:hover, :focus-visible, [aria-expanded=true]) { color: #fff; box-shadow: inset 0 -3px 0 var(--jx-sky); }
.navbar .dropdown-menu { background: #fff; border: 1px solid var(--jx-line); border-radius: 12px; box-shadow: var(--jx-shadow-lg); padding: 8px; }
.navbar .dropdown-menu a.dropdown-item { color: var(--jx-ink); border-radius: 8px; padding: 9px 14px; }
.navbar .dropdown-menu a.dropdown-item:is(:hover, :focus) { background: var(--jx-surface); color: var(--jx-blue-dark); }
.navbar button.nav-link { border: 0; background: transparent; }

/* Header facility search (same popover and results as the public header) */
.navbar .search-item { position: relative; }
.navbar .jail-search-wrap[hidden] { display: none !important; }
.navbar.search-open .jail-search-wrap { position: absolute; top: calc(100% + 8px); right: 0; z-index: 1060; display: block; width: min(500px, calc(100vw - 24px)); margin: 0; padding: 14px; overflow: visible; transform: none; background: #fff; border: 1px solid var(--jx-line); border-radius: 14px; box-shadow: var(--jx-shadow-lg); }
.navbar .search-label { display: block; margin: 0 0 6px; font-size: .85rem; font-weight: 600; color: var(--jx-muted); }
.navbar.search-open .jail-search { height: 44px; padding: 0 14px; opacity: 1; border: 1.5px solid var(--jx-field); border-radius: 10px; color: var(--jx-ink); }
.navbar.search-open .jail-search:focus { border-color: var(--jx-blue); box-shadow: var(--jx-ring); }
.navbar.search-open li.nav-item:not(.search-item) { opacity: 1; }
.jail-search-results { position: static; margin-top: 8px; padding: 6px; background: #fff; border: 1px solid var(--jx-line); border-radius: 12px; box-shadow: var(--jx-shadow-lg); max-height: min(60vh, 400px); overflow-y: auto; text-align: left; }
.jail-search-results ul { margin: 0; padding: 0; list-style: none; }
.jail-search-results li + li { margin-top: 2px; }
.jail-search-results a, .jail-search-results ul a { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 8px; color: var(--jx-ink); font-size: .95rem; line-height: 1.4; white-space: normal; text-decoration: none; }
.jail-search-results a > i { flex: none; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 9px; background: var(--jx-tint); color: var(--jx-blue); font-size: 13px; }
.jail-search-results a > i.fa-map-marker-alt { background: #fdecea; color: #c62828; }
.jail-search-results a strong { color: var(--jx-navy); }
.jail-search-results ul a:hover, .jail-search-results a[aria-selected=true] { background: var(--jx-surface); }
.jail-search-results a[aria-selected=true] { box-shadow: inset 0 0 0 2px var(--jx-blue); }
.search-status { color: var(--jx-muted); font-size: .85rem; }
.search-status:not(:empty) { padding-top: 6px; }

/* ---------- Page header band and title ---------- */
.section.blue.darken-3 { background: var(--jx-band) !important; color: #fff; }
.section.blue .breadcrumb-item > a { color: #cfe3ff; }
.section.blue .breadcrumb-item:last-child > a { color: #fff; }
.admin-page-title { margin: 0 0 22px; color: var(--jx-navy) !important; font-size: clamp(1.4rem, 1.15rem + .8vw, 1.85rem); font-weight: 700; line-height: 1.25; text-transform: none !important; }
section.paddingtb80 { padding: 32px 0 48px; }

/* ---------- Buttons ---------- */
.btn { border-radius: var(--jx-radius-sm); box-shadow: none; font-weight: 600; }
.btn-primary { background-color: var(--jx-cta) !important; color: #fff !important; }
.btn-primary:is(:hover, :focus, :active) { background-color: var(--jx-cta-hover) !important; box-shadow: var(--jx-cta-shadow); }
.btn-secondary { background-color: var(--jx-tint) !important; color: var(--jx-blue-dark) !important; }
.btn-secondary:is(:hover, :focus, :active) { background-color: #d3e4f8 !important; color: var(--jx-navy) !important; box-shadow: none; }
.btn-danger { background-color: #c62828 !important; color: #fff !important; }
.btn-danger:is(:hover, :focus, :active) { background-color: #a91f1f !important; box-shadow: 0 6px 16px rgba(198, 40, 40, .25); }
.btn-outline-primary { color: var(--jx-blue) !important; border-color: var(--jx-blue) !important; }
.btn-outline-secondary { color: var(--jx-muted) !important; border-color: var(--jx-field) !important; }
.btn-outline-secondary:is(:hover, :focus) { background-color: var(--jx-surface) !important; color: var(--jx-navy) !important; }
.btn-outline-danger { color: #c62828 !important; border-color: #c62828 !important; }
.btn-link { color: var(--jx-link) !important; }

/* ---------- Forms ---------- */
.form-control, select.form-control { border: 1px solid var(--jx-field); border-radius: 8px; color: var(--jx-ink); }
.form-control:focus { border-color: var(--jx-blue); box-shadow: var(--jx-ring); }
.form-outline .form-control:focus ~ .form-notch :is(.form-notch-leading, .form-notch-middle, .form-notch-trailing) { border-color: var(--jx-blue) !important; }
.form-outline .form-control:focus ~ .form-label { color: var(--jx-blue); }
.form-check-input:checked { background-color: var(--jx-blue); border-color: var(--jx-blue); }
.form-check-input:checked:focus::before, .form-check-input[type=checkbox]:checked:focus { box-shadow: var(--jx-ring); }
.form-switch .form-check-input:checked[type=checkbox]::after { background-color: var(--jx-blue); }
.form-check-input:focus { box-shadow: var(--jx-ring); }
label, .form-label { color: var(--jx-ink); }
input.pending { box-shadow: 0 0 0 3px #ffe066; }

/* ---------- Tables, tabs, cards, alerts, modals ---------- */
.table { color: var(--jx-ink); background: #fff; }
.table thead th, .table > :not(caption) > tr > th { color: var(--jx-navy); font-weight: 600; }
.table thead th { background: var(--jx-surface); border-bottom-color: var(--jx-line); }
.table td, .table th { border-color: var(--jx-line); vertical-align: middle; }
.table-hover > tbody > tr:hover > * { background: var(--jx-surface); }
@media (max-width: 767.98px) { section.paddingtb80 .table { display: block; max-width: 100%; overflow-x: auto; } } /* wide admin tables scroll instead of overflowing */
.nav-tabs { border-bottom: 1px solid var(--jx-line); }
.nav-tabs .nav-link { color: var(--jx-muted); font-weight: 600; border-bottom: 3px solid transparent; }
.nav-tabs .nav-link:hover { color: var(--jx-blue-dark); background: transparent; }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { color: var(--jx-blue-dark); border-color: var(--jx-blue); background: transparent; }
.card { border: 1px solid var(--jx-line); border-radius: var(--jx-radius); box-shadow: var(--jx-shadow); }
.alert { border-radius: 12px; }
.modal-content { border: 0; border-radius: var(--jx-radius); box-shadow: var(--jx-shadow-lg); }
.modal-title { color: var(--jx-navy); font-weight: 700; }
.page-link { color: var(--jx-link); }
.page-item.active .page-link { background-color: var(--jx-blue); }
.badge.bg-primary, .badge-primary { background-color: var(--jx-blue) !important; }

/* ---------- Employee sign-in (Areas/Admin/Views/Home/Login.cshtml) ---------- */
.admin-login { display: flex; justify-content: center; padding: clamp(8px, 4vw, 40px) 0; }
.admin-login-card { width: 100%; max-width: 440px; padding: clamp(24px, 5vw, 40px); background: #fff; border: 1px solid var(--jx-line); border-top: 4px solid var(--jx-navy); border-radius: 18px; box-shadow: 0 24px 60px rgba(11, 37, 69, .12); }
.admin-login-head { margin-bottom: 20px; text-align: center; }
.admin-login-icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 14px; border-radius: 16px; background: var(--jx-band); color: #fff; font-size: 22px; box-shadow: 0 10px 24px rgba(11, 37, 69, .25); }
.admin-login-title { margin: 0; color: var(--jx-navy); font-size: 1.6rem; font-weight: 700; line-height: 1.2; }
.admin-login-lede { margin: 6px 0 0; color: var(--jx-muted); font-size: .95rem; }
.admin-login-warning { display: flex; gap: 12px; margin-bottom: 22px; padding: 14px 16px; background: #fdf0ef; border: 1px solid #f3c7c3; border-left: 4px solid #c62828; border-radius: 10px; color: #6b1d1d; font-size: .875rem; line-height: 1.5; }
.admin-login-warning i { flex: none; margin-top: 2px; color: #c62828; font-size: 1rem; }
.admin-login-warning strong { display: block; margin-bottom: 2px; color: #8e1b1b; }
.admin-login-error { margin-bottom: 18px; font-size: .9rem; }
.admin-login .form-label { margin-bottom: 6px; font-size: .9rem; font-weight: 600; }
.admin-login .form-control { height: 46px; padding: 0 14px; font-size: 1rem; border-radius: 10px; }
.admin-login-submit { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 48px; font-size: 1rem; text-transform: none; letter-spacing: .01em; }
.admin-login-submit i { font-size: .85em; transition: transform .15s; }
.admin-login-submit:hover i { transform: translateX(3px); }

/* ---------- Admin dashboard (Areas/Admin/Views/Home/Index.cshtml) ---------- */
.admin-home-lede { margin: -12px 0 24px; color: var(--jx-muted); }
.admin-home-grid { display: grid; gap: 20px; }
@media (min-width: 992px) { .admin-home-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.admin-tool { margin: 0; height: 100%; }
.admin-tool .card-body { padding: 24px; }
.admin-tool-title { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; color: var(--jx-navy); font-size: 1.1rem; font-weight: 700; }
.admin-tool-icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 11px; background: var(--jx-tint); color: var(--jx-blue); font-size: 15px; }
.admin-tool .form-label { display: block; margin-bottom: 6px; font-size: .875rem; font-weight: 600; color: var(--jx-muted); }
.admin-tool .form-control { height: 44px; border-radius: 10px; }
.admin-tool-form { display: grid; gap: 12px; align-items: end; }
@media (min-width: 576px) { .admin-tool-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; } }
.admin-tool-form .btn { height: 44px; margin: 0; }
/* search.css collapses .jail-search-wrap for the header; here it is an ordinary full-width field */
.admin-home-search.jail-search-wrap { position: relative; display: block; width: 100%; margin: 0; overflow: visible; transition: none; }
.admin-home-search .jail-search { padding: 0 14px; opacity: 1; }
.admin-home-search .jail-search-results { position: absolute; top: 100%; left: 0; right: 0; z-index: 20; }
.admin-home-search .jail-search-results[hidden] { display: none; }
.admin-home .select2-container--default .select2-selection--single { height: 44px; border: 1px solid var(--jx-field); border-radius: 10px; }
.admin-home .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 42px; padding-left: 14px; color: var(--jx-ink); }
.admin-home .select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; right: 8px; }
.admin-home .select2-container--default.select2-container--focus .select2-selection--single,
.admin-home .select2-container--default.select2-container--open .select2-selection--single { border-color: var(--jx-blue); box-shadow: var(--jx-ring); }
.select2-dropdown { border-color: var(--jx-line); border-radius: 10px; overflow: hidden; box-shadow: var(--jx-shadow-lg); }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: var(--jx-blue); }
.admin-stat { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; padding: 14px 16px; border-radius: 12px; text-decoration: none; }
.admin-stat.is-alert { background: #fff6e5; border: 1px solid #f5d9a8; color: #7a4b00; }
.admin-stat.is-alert:hover { background: #ffefcf; color: #5c3800; }
.admin-stat-value { font-size: 2rem; font-weight: 700; line-height: 1; color: #b26a00; }
.admin-stat-label { font-weight: 600; }
.admin-stat-label i { margin-left: 4px; font-size: .85em; }
.admin-stat.is-clear { background: #eaf7ef; border: 1px solid #c7e8d3; color: #1f6a3c; }
.admin-stat.is-clear i { color: #2e8b57; }
.admin-tool-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.admin-home-subhead { margin: 36px 0 14px; color: var(--jx-muted); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.admin-quick-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.admin-quick-links a { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: #fff; border: 1px solid var(--jx-line); border-radius: 12px; color: var(--jx-ink); font-weight: 600; text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.admin-quick-links a i { color: var(--jx-blue); width: 18px; text-align: center; }
.admin-quick-links a:hover { border-color: #b6cfec; box-shadow: var(--jx-shadow); transform: translateY(-1px); color: var(--jx-blue-dark); }
.admin-home-notice { margin: 32px 0 0; color: var(--jx-muted); font-size: .85rem; }
.admin-home-notice i { margin-right: 6px; }
@media (prefers-reduced-motion: reduce) { .admin-quick-links a:hover { transform: none; } }

/* ---------- Footer ---------- */
.admin-footer { margin-top: 48px; padding: 20px 0; background: var(--jx-navy) !important; color: rgba(255, 255, 255, .72) !important; font-size: .875rem; }
.admin-footer a { color: rgba(255, 255, 255, .86) !important; }
.admin-footer a:hover { color: #fff !important; }
