@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&display=swap');

/* ============================================================================
   BDx — My BDx portal skin (Vercel/Linear reskin)
   Target stack: AdminLTE 3 (Bootstrap 4) + jQuery + DataTables
   Author: xumu.agency  |  Load LAST, after style.css / stylenew.css
   Version: 2.10 — blue overlay fix, OTP card centring
   ----------------------------------------------------------------------------
   This is an OVERRIDE layer. It touches no markup and no JS. Remove the one
   <link> to fully revert. !important is used on properties the framework sets
   inline or with high specificity — same defensive pattern used elsewhere.

   Confidence key in comments:
     [LOGIN]   verified against exported login HTML — exact selectors
     [ALTE]    AdminLTE 3 standard classes — stable, high confidence
     [VERIFY]  custom/instance class — confirm against live dashboard DOM
   ============================================================================ */

:root{
  --color-primary:#13171a;
  --color-primary2:#0c0f11;
  --color-white:#ffffff;
  --color-secondary:#dcf42c;
  --color-secondary2:#cfe81f;

  --bdx-lime:#dcf42c;
  --bdx-lime-hover:#cfe81f;
  --bdx-blue:#2d43e8;
  --bdx-ink:#13171a;
  --bdx-offwhite:#f4f3ef;
  --bdx-grey:#6b7280;
  --bdx-border:#e5e7eb;
  --bdx-border-soft:#eef0f2;
  --bdx-ink-2:#3a4046;
  --bdx-page:#fafafa;
  --bdx-rail:#13171a;
  --bdx-rail-text:#9aa0a6;
  --bdx-rail-border:#20262b;
  --bdx-radius:5px;
  --bdx-radius-lg:8px;
  --bdx-shadow-sm:0 1px 2px rgba(19,23,26,.04), 0 1px 3px rgba(19,23,26,.06);
  --bdx-shadow-md:0 4px 12px rgba(19,23,26,.08);
  --bdx-ring:0 0 0 3px rgba(45,67,232,.18);
  --bdx-sans:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --bdx-mono:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}

/* Global type — Geist everywhere, tightened tracking ------------------------ */
body,.wrapper,.content-wrapper,.main-sidebar,.main-header,
.card,.btn,.form-control,input,select,textarea,button,
table,.dataTables_wrapper,.modal,h1,h2,h3,h4,h5,h6,p,a,label,span,div{
  font-family:var(--bdx-sans) !important;
  letter-spacing:-0.006em;
}
body{ -webkit-font-smoothing:antialiased; }

/* ============================================================================
   1. LOGIN  [LOGIN]
   ============================================================================ */

/* Kill the circuit/login_bg image → clean, precise surface */
body.bg-login{
  background:radial-gradient(120% 120% at 50% -10%, #ffffff 0%, var(--bdx-page) 55%) !important;
  position:relative;
}
/* faint precision grid, masked to centre (replaces decorative art) */
body.bg-login::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(var(--bdx-border-soft) 1px,transparent 1px),
    linear-gradient(90deg,var(--bdx-border-soft) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 0%,transparent 80%);
          mask-image:radial-gradient(70% 60% at 50% 40%,#000 0%,transparent 80%);
  opacity:.7;
}
body.bg-login .header,
body.bg-login .login-section{ position:relative; z-index:1; }

/* logo — centred above the login panel, enlarged (swap login_logo.png for
   bdx-logo-dark.svg; the new wordmark has no "we understand asia" tagline) */
body.bg-login .header{ text-align:center !important; }
body.bg-login .header .logo{ display:inline-block !important; padding:34px 0 6px !important; }
body.bg-login .logo img{ max-width:190px !important; height:auto !important; }

/* centre the card, remove forced 84.7vh */
body.bg-login .login-section{ height:auto !important; min-height:82vh; padding:24px; }
body.bg-login .login-box{ width:100%; max-width:400px; }

/* neutralise the 3D flip-card perspective + the translucent cyan pane */
body.bg-login .card-container{ perspective:none !important; margin-bottom:0 !important; }
body.bg-login .card-container .card{
  background:#ffffff !important;
  border:1px solid var(--bdx-border) !important;
  border-radius:var(--bdx-radius-lg) !important;
  box-shadow:var(--bdx-shadow-sm) !important;
  transform:none !important; transition:none !important;
}
body.bg-login .front{
  position:relative !important; background:transparent !important;
  box-shadow:none !important; backface-visibility:visible !important;
}
body.bg-login .login-card-body{ background:transparent !important; padding:30px 32px !important; }

/* heading (was white 32px on cyan) → dark, quieter */
body.bg-login h3.txt-white,
body.bg-login .login-card-body h3{
  color:var(--bdx-ink) !important;
  font-weight:600 !important; font-size:20px !important;
  padding-bottom:20px !important; text-align:left !important; line-height:1.25;
}

/* inputs + selects */
body.bg-login .form-label-group{ margin-bottom:14px !important; position:relative; }
body.bg-login .form-control{
  height:40px !important; padding:0 12px !important;
  font-size:13.5px !important; color:var(--bdx-ink) !important;
  background:#fff !important; border:1px solid var(--bdx-border) !important;
  border-radius:var(--bdx-radius) !important; box-shadow:none !important;
  transition:border-color .12s, box-shadow .12s !important;
}
body.bg-login select.form-control{
  appearance:none;-webkit-appearance:none;padding-right:34px !important;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>") !important;
  background-repeat:no-repeat !important;background-position:right 11px center !important;
}
@supports (appearance: base-select){
  body.bg-login select.form-control{
    appearance:base-select !important;
    background-image:none !important;
    padding-right:12px !important;
  }
}
body.bg-login .form-control::placeholder{ color:#aab0b6 !important; }
body.bg-login .form-control:focus,
body.bg-login select.form-control:focus,
body.bg-login select.form-control:focus-visible,
body.bg-login select.form-control:open{
  border-color:var(--bdx-blue) !important; box-shadow:var(--bdx-ring) !important; outline:none !important;
}

/* show/hide eye — was position:top:-30px; keep it inside the field */
body.bg-login .showhide{
  /* position:absolute !important; top:50% !important; right:12px !important; */
  position:absolute !important; top:28% !important; right:12px !important;
  transform:translateY(-50%) !important; color:var(--bdx-grey) !important;
  font-size:14px !important; cursor:pointer;
}
body.bg-login .showhide .fa-eye,
body.bg-login .showhide i{ color:var(--bdx-grey) !important; }

/* forgot-password link */
body.bg-login .reset-btn{ margin-top:8px; }
body.bg-login .reset-password,
body.bg-login .reset-btn a{
  color:var(--bdx-blue) !important; font-size:12.5px !important; font-weight:500 !important;
}
body.bg-login .reset-password:hover{ text-decoration:underline; }

/* language radios → segmented pills */
body.bg-login .language-container{
  display:flex !important; gap:6px !important; flex-wrap:wrap;
  margin:16px 0 !important; padding:0 !important;
}
body.bg-login .language-container .form-check{
  padding:0 !important; margin:0 !important;
}
body.bg-login .language-container .form-check-input{
  position:absolute !important; opacity:0 !important; pointer-events:none;
}
body.bg-login .language-container .form-check-label{
  display:inline-block; cursor:pointer;
  font-size:12px !important; font-weight:500 !important; color:var(--bdx-grey) !important;
  border:1px solid var(--bdx-border); border-radius:999px; padding:5px 11px;
  transition:.12s; background:#fff;
}
body.bg-login .language-container .form-check-input:checked + .form-check-label{
  color:var(--bdx-ink) !important; border-color:var(--bdx-ink); background:var(--bdx-offwhite);
}

/* captcha row (.full-bg-white span label + #math_captcha) */
body.bg-login .full-bg-white{
  background:transparent !important; display:flex !important; align-items:center; gap:10px;
  margin-bottom:18px !important;
}
body.bg-login .full-bg-white span{ display:flex !important; align-items:center; gap:10px; width:100%; }
body.bg-login .full-bg-white label[for="math_captcha"]{
  font-family:var(--bdx-mono) !important; color:var(--bdx-ink-2) !important;
  background:var(--bdx-offwhite) !important; border:1px solid var(--bdx-border);
  border-radius:var(--bdx-radius); padding:9px 12px !important; margin:0 !important; white-space:nowrap;
}
body.bg-login #math_captcha{
  flex:1; height:40px; padding:0 12px; font-size:13.5px;
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius) !important; background:#fff !important;
}
body.bg-login #math_captcha:focus{ border-color:var(--bdx-blue) !important; box-shadow:var(--bdx-ring) !important; outline:none; }

/* Login button (.submit-btn .btn.btn-primary.btn-user.btn-block) → lime */
body.bg-login .submit-btn .btn-user,
body.bg-login .submit-btn .btn-primary{
  height:40px !important; background:var(--bdx-lime) !important; color:var(--bdx-ink) !important;
  border:1px solid var(--bdx-lime) !important; border-radius:var(--bdx-radius) !important;
  font-weight:600 !important; font-size:14px !important; box-shadow:none !important; transition:.12s !important;
}
body.bg-login .submit-btn .btn-user:hover,
body.bg-login .submit-btn .btn-primary:hover{
  background:var(--bdx-lime-hover) !important; border-color:var(--bdx-lime-hover) !important; color:var(--bdx-ink) !important;
}

/* validation error text */
body.bg-login .error,body.bg-login .error5,
body.bg-login [id^="error"]{ color:#f04438 !important; font-size:12px !important; }


/* ============================================================================
   2. APP SHELL — sidebar  [ALTE]
   Currently sidebar-dark-navy (active #001f3f). Reskin to deep ink + lime.
   ============================================================================ */
.main-sidebar,
.main-sidebar.sidebar-dark-navy,
.sidebar-dark-navy{
  background-color:var(--bdx-rail) !important;
  border-right:1px solid var(--bdx-rail-border) !important;
}
.brand-link{
  background:var(--bdx-rail) !important;
  border-bottom:1px solid var(--bdx-rail-border) !important;
  color:#fff !important; font-weight:600 !important; letter-spacing:-0.02em;
}
.brand-link .brand-image{ opacity:1; }

/* user panel (roger.proeis / SIN1) */
.user-panel{ border-bottom:1px solid var(--bdx-rail-border) !important; }
.user-panel .info a,.user-panel .info{ color:#e6e8ea !important; font-weight:500; }

/* nav items — NOTE: no horizontal margin. The sidebar's OverlayScrollbars
   .os-content already applies 8px side padding; adding side margins to a
   100%-width link overflows and spawns a horizontal scrollbar. */
.nav-sidebar .nav-link{
  color:var(--bdx-rail-text) !important; border-radius:6px !important;
  margin:1px 0 !important; padding:.55rem .7rem !important; font-size:13px !important; font-weight:500 !important;
}
.nav-sidebar .nav-link .nav-icon{ color:var(--bdx-rail-text) !important; opacity:.85; }
.nav-sidebar .nav-link:hover{
  background:rgba(255,255,255,.05) !important; color:#e6e8ea !important;
}
/* active — override the navy fill with subtle bg + lime edge */
.nav-sidebar > .nav-item > .nav-link.active,
.sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,
.sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active{
  background:rgba(255,255,255,.06) !important; color:#fff !important;
  box-shadow:inset 3px 0 0 var(--bdx-lime) !important;
}
.nav-sidebar > .nav-item > .nav-link.active .nav-icon{ color:#fff !important; }
/* open treeview parent */
.nav-sidebar .nav-treeview .nav-link{ font-size:12.5px !important; color:var(--bdx-rail-text) !important; }

/* sidebar language radios (bottom) — keep on one line so 中文 doesn't stack */
.main-sidebar .icheck-primary,.main-sidebar [type="radio"]{ accent-color:var(--bdx-lime); }
.main-sidebar .form-check-label,
.main-sidebar .language-container label,
.main-sidebar label{ white-space:nowrap !important; }
.main-sidebar .language-container,
.main-sidebar .form-check-inline{ display:inline-flex !important; align-items:center !important; }

/* logout button */
.btn-logout,.sidebar .btn-danger,.sidebar a[href*="logout"]{
  background:transparent !important; border:1px solid var(--bdx-rail-border) !important;
  color:var(--bdx-rail-text) !important; border-radius:6px !important; font-weight:500 !important;
}
.btn-logout:hover,.sidebar a[href*="logout"]:hover{
  border-color:#3a4248 !important; color:#fff !important; background:rgba(255,255,255,.04) !important;
}


/* ============================================================================
   3. TOPBAR (navbar) + content  [ALTE]
   ============================================================================ */
.main-header.navbar{
  background:#fff !important; border-bottom:1px solid var(--bdx-border) !important; box-shadow:none !important;
}
.main-header .nav-link{ color:var(--bdx-ink-2) !important; }
.main-header .nav-link:hover{ background:var(--bdx-offwhite) !important; border-radius:6px; }

/* "Switch Data Center" button (top-right) [VERIFY class] */
.main-header .btn,
.navbar .switch-dc,
a[href*="switch"]{
  /* border:1px solid var(--bdx-border) !important; 
  background:#fff !important;
  color:var(--bdx-ink-2) !important; 
  border-radius:var(--bdx-radius) !important;
  font-size:12.5px !important; 
  font-weight:500 !important; box-shadow:none !important; */

  background: var(--bdx-lime) !important;
  border-color: var(--bdx-lime) !important;
  color: var(--bdx-ink) !important;
  border-radius:var(--bdx-radius) !important;
  font-size:12.5px !important; 
  font-weight:500 !important; box-shadow:none !important;
}
.main-header .btn:hover{ 
  /* border-color:#d5d9de !important; background:#fafafa !important;  */
  background: var(--bdx-lime-hover) !important;
  border-color: var(--bdx-lime-hover) !important;
}

.content-wrapper{ background:var(--bdx-page) !important; }
.content-header h1,.content-header .h1{ font-size:22px !important; font-weight:600 !important; letter-spacing:-0.025em; }


/* ============================================================================
   4. CARDS / PANELS  [ALTE]
   ============================================================================ */
.card{
  /* background:#fff !important; 
  border:1px solid var(--bdx-border) !important;
  border-radius:var(--bdx-radius-lg) !important; 
  box-shadow:var(--bdx-shadow-sm) !important; */
  background:#fff !important; 
  border-radius:var(--bdx-radius-lg) !important; 

  border: 1px solid #13171a61 !important;
  box-shadow: 0 1px 2px rgba(19, 23, 26, .04), 0 1px 3px rgba(19, 23, 26, .06) !important;
}
.card-header{
  background:#fff !important; border-bottom:1px solid var(--bdx-border-soft) !important; padding:15px 18px !important;
}
.card-title{ font-size:14px !important; font-weight:600 !important; letter-spacing:-0.01em; }
.card-tools .btn-tool{ color:var(--bdx-grey) !important; }
.card-body{ padding:18px !important; }


/* ============================================================================
   5. BUTTONS + FORM CONTROLS  [ALTE]
   Primary CTA (Generate, Take Survey, etc.) → lime
   ============================================================================ */
.btn{
  border-radius:var(--bdx-radius) !important; font-weight:500 !important; font-size:13.5px !important;
  box-shadow:none !important; letter-spacing:-0.01em;
}
.btn-primary,.btn-navy,.bg-navy{
  background:var(--bdx-lime) !important; border-color:var(--bdx-lime) !important; color:var(--bdx-ink) !important; font-weight:600 !important;
}
.btn-primary:hover,.btn-primary:focus{
  background:var(--bdx-lime-hover) !important; border-color:var(--bdx-lime-hover) !important; color:var(--bdx-ink) !important;
}
.btn-secondary,.btn-default,.btn-outline-secondary{
  background:#fff !important; border:1px solid var(--bdx-border) !important; color:var(--bdx-ink) !important;
}
.btn-secondary:hover,.btn-default:hover{ background:#fafafa !important; border-color:#d5d9de !important; }
.btn-info{ background:var(--bdx-blue) !important; border-color:var(--bdx-blue) !important; }

/* NOTE: height is deliberately NOT forced globally — doing so breaks
   Bootstrap's .form-control-sm / .custom-select-sm (DataTables uses them). */
.form-control:not([type="radio"]):not([type="checkbox"]),.custom-select,.select2-selection{
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius) !important;
  color:var(--bdx-ink) !important; box-shadow:none !important;
}
.form-control:not(.form-control-sm):not(.form-control-lg):not([type="radio"]):not([type="checkbox"]),
.custom-select:not(.custom-select-sm):not(.custom-select-lg){
  height:calc(2.25rem + 2px) !important;
}
.form-control-sm,.custom-select-sm{
  height:calc(1.8125rem + 2px) !important; padding:.25rem 1.75rem .25rem .5rem !important;
  font-size:12.5px !important; line-height:1.5 !important;
}
.form-control:not([type="radio"]):not([type="checkbox"]):focus,.custom-select:focus{
  border-color:var(--bdx-blue) !important; box-shadow:var(--bdx-ring) !important;
}


/* ============================================================================
   6. TABLES + DataTables  [ALTE]
   ============================================================================ */
.table{ color:var(--bdx-ink-2) !important; }
.table thead th,
table.dataTable thead th,
table.dataTable thead td{
  background:#fbfbfc !important; color:var(--bdx-grey) !important;
  text-transform:uppercase !important; font-size:11px !important; font-weight:600 !important;
  letter-spacing:.05em !important; border-bottom:1px solid var(--bdx-border) !important; border-top:0 !important;
  padding:11px 16px !important; white-space:nowrap;
}
.table td,table.dataTable tbody td{
  border-top:1px solid var(--bdx-border-soft) !important; padding:13px 16px !important;
  font-size:13px !important; vertical-align:middle; font-variant-numeric:tabular-nums;
}
.table-bordered,.table-bordered td,.table-bordered th{ border-color:var(--bdx-border-soft) !important; }
.table-hover tbody tr:hover{ background:#fcfcfd !important; }
.table thead th{ border:0 !important; }

/* Ensure bottom border of tables and their last row is always visible */
.table,
.table-bordered,
table.dataTable,
table.tableBorder,
.table-responsive > .table,
.table-responsive > .table-bordered{
  border-bottom:1px solid var(--bdx-border-soft) !important;
}
.table tbody tr:last-child td,
.table tbody tr:last-child th,
.table tfoot tr:last-child td,
.table tfoot tr:last-child th,
table.dataTable tbody tr:last-child td,
table.dataTable tbody tr:last-child th,
table.tableBorder tbody tr:last-child td,
table.tableBorder tbody tr:last-child th{
  border-bottom:1px solid var(--bdx-border-soft) !important;
}

/* PDF form links → mono (R-443187.pdf etc.) */
.table a[href$=".pdf"],.table a[href*="/pdf"]{
  font-family:var(--bdx-mono) !important; font-size:12.5px !important; color:var(--bdx-blue) !important;
}

/* DataTables chrome */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info{ color:var(--bdx-grey) !important; font-size:12.5px !important; }
.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input{
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius) !important;
  height:34px; padding:0 10px; color:var(--bdx-ink) !important;
}
.dataTables_wrapper .dataTables_filter input:focus{ border-color:var(--bdx-blue) !important; box-shadow:var(--bdx-ring) !important; outline:none; }
/* REMOVED in v2.9 — these targeted the <li>, not the <a>, and were the cause of
   the doubled pagination boxes. Superseded by the .page-link rules in V28.5 and
   the <li> reset in V29.2. Kept only as this note so the history is legible. */


/* ============================================================================
   7. STATUS BADGES  [ALTE / VERIFY]
   AdminLTE badges: .badge-success / -danger / -secondary; or plain text
   ============================================================================ */
.badge{
  font-weight:500 !important; font-size:11.5px !important; padding:4px 9px !important;
  border-radius:999px !important; border:1px solid transparent;
}
.badge-success,.badge.approved{ background:#f0fdf4 !important; color:#166534 !important; border-color:#dcfce7; }
.badge-danger,.badge.rejected{ background:#fef3f2 !important; color:#b42318 !important; border-color:#fee4e2; }
.badge-secondary,.badge.closed{ background:#f3f4f6 !important; color:var(--bdx-grey) !important; border-color:#eceef0; }
.badge-warning{ background:#fffbeb !important; color:#92400e !important; border-color:#fef3c7; }


/* ============================================================================
   8. MODALS (survey "Your Opinion Counts")  [VERIFY]
   Covers Bootstrap .modal and SweetAlert2 (.swal2) — one will apply
   ============================================================================ */
.modal-content,.swal2-popup{
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius-lg) !important;
  box-shadow:var(--bdx-shadow-md) !important;
}
.modal-header,.swal2-header{ border-bottom:0 !important; }
.modal-title,.swal2-title{ font-size:17px !important; font-weight:600 !important; color:var(--bdx-ink) !important; }
.modal-footer,.swal2-actions{ border-top:0 !important; }
.swal2-confirm,.swal2-styled.swal2-confirm{
  background:var(--bdx-lime) !important; color:var(--bdx-ink) !important; border-radius:var(--bdx-radius) !important; font-weight:600 !important;
}


/* ============================================================================
   9. EMPTY STATE ("Data not available..!")  [VERIFY]
   Usually a single <td> / row of text; soften it.
   ============================================================================ */
.dataTables_empty,.table td.text-center:only-child{
  color:var(--bdx-grey) !important; font-size:13px !important; padding:36px 16px !important;
}

/* misc: kill AdminLTE heavy elevation */
.elevation-1,.elevation-2,.elevation-3,.elevation-4{ box-shadow:var(--bdx-shadow-sm) !important; }
.text-primary{ color:var(--bdx-blue) !important; }
a{ color:var(--bdx-blue); }


/* ============================================================================
   ===  PHASE 2 CORRECTIONS  ==================================================
   Written against the live rendered DOM (10 pages). Everything below is
   verified against real markup, not inferred.
   Confirmed stack detail: body is `sidebar-mini layout-fixed`, sidebar is
   `.main-sidebar.sidebar-dark-primary.elevation-4`, the sidebar scroll area is
   OverlayScrollbars (`.os-host` → `.os-content`, 8px side padding), and the
   tables are DataTables **Bootstrap-4 integration** (`.dt-bootstrap4`).
   ============================================================================ */

/* ---------------------------------------------------------------------------
   P2.1  Sidebar: kill the horizontal scrollbar
   Cause: OverlayScrollbars gives .os-content 8px side padding; any child at
   100% width plus side margins overflows horizontally.
   --------------------------------------------------------------------------- */
/* Do NOT set overflow-x on .os-viewport — OverlayScrollbars manages that
   element itself (inline `overflow-y:scroll`), and overriding it defeats its
   native-scrollbar hiding, which is what exposed the grey bar on the right
   edge. Constrain .sidebar and .os-content only, and hide native bars
   explicitly on the viewport. */
.main-sidebar .sidebar,
.main-sidebar .os-content{ overflow-x:hidden !important; }
.main-sidebar .os-viewport{
  scrollbar-width:none !important; -ms-overflow-style:none !important;
}
.main-sidebar .os-viewport::-webkit-scrollbar{
  width:0 !important; height:0 !important; display:none !important;
}
.main-sidebar .os-host-scrollbar-horizontal-hidden > .os-scrollbar-horizontal{ display:none !important; }
.main-sidebar .os-scrollbar-horizontal{ display:none !important; }
/* keep OverlayScrollbars' own vertical bar subtle on the dark rail */
.main-sidebar .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle{
  background:rgba(255,255,255,.16) !important; border-radius:999px !important;
}
.main-sidebar .os-scrollbar-vertical > .os-scrollbar-track{ background:transparent !important; }
.main-sidebar .os-scrollbar-vertical{ width:6px !important; }
/* nothing inside the rail may exceed the content box */
.main-sidebar .nav-sidebar,
.main-sidebar .nav-sidebar > .nav-item,
.main-sidebar .nav-sidebar .nav-link,
.main-sidebar .user-panel{ max-width:100% !important; box-sizing:border-box !important; }
.main-sidebar .nav-sidebar .nav-link p,
.main-sidebar .nav-sidebar .nav-link span{
  overflow:hidden !important; text-overflow:ellipsis !important; min-width:0 !important;
}

/* ---------------------------------------------------------------------------
   P2.2  Sidebar: full height, always
   The rail must fill the viewport and never end mid-page.
   --------------------------------------------------------------------------- */
html,body{ background:var(--bdx-page) !important; }
body.layout-fixed .wrapper .main-sidebar,
.main-sidebar{
  position:fixed !important; top:0 !important; bottom:0 !important; left:0 !important;
  height:100vh !important; min-height:100vh !important;
  display:flex !important; flex-direction:column !important;
  overflow:hidden !important; box-shadow:none !important;
}
.main-sidebar .sidebar{ flex:1 1 auto !important; min-height:0 !important; }
/* belt-and-braces: paint the rail column behind the sidebar so any gap at the
   bottom of a long page still reads as sidebar, never as bare grey */
body.sidebar-mini .wrapper::before{
  content:"" !important; position:fixed !important; top:0 !important; bottom:0 !important; left:0 !important;
  width:250px !important; background:var(--bdx-rail) !important; z-index:0 !important; pointer-events:none !important;
}
body.sidebar-collapse .wrapper::before{ width:4.6rem !important; }
@media (max-width:991.98px){ body .wrapper::before{ display:none !important; } }

/* ---------------------------------------------------------------------------
   P2.3  Sidebar: treeview (Support / Reports / User Guides submenus)
   AdminLTE paints open parents with a grey block — replace with a quiet state.
   --------------------------------------------------------------------------- */
.nav-sidebar > .nav-item.menu-open > .nav-link,
.nav-sidebar > .nav-item.has-treeview.menu-open > .nav-link{
  background:rgba(255,255,255,.04) !important; color:#e6e8ea !important;
}
.nav-sidebar .nav-treeview{
  background:transparent !important; padding-left:10px !important;
  margin-left:10px !important; border-left:1px solid var(--bdx-rail-border) !important;
}
.nav-sidebar .nav-treeview > .nav-item > .nav-link,
.nav-sidebar .nav-treeview > .nav-item > a {
  font-size: 12.5px !important;
  padding: .4rem .6rem !important;
  color: var(--bdx-rail-text) !important;
  display: flex !important;
  align-items: center !important;
  border-radius: var(--bdx-radius, 4px) !important;
  margin-bottom: 2px !important;
  text-decoration: none !important;
  font-weight: 400 !important;
  transition: background-color .15s ease, color .15s ease !important;
}

.nav-sidebar .nav-treeview > .nav-item > .nav-link span,
.nav-sidebar .nav-treeview > .nav-item > .nav-link p,
.nav-sidebar .nav-treeview > .nav-item > a span,
.nav-sidebar .nav-treeview > .nav-item > a p {
  font-size: 12.5px !important;
  color: inherit !important;
  margin-bottom: 0 !important;
  font-weight: 400 !important;
}

.nav-sidebar .nav-treeview > .nav-item > .nav-link .nav-icon,
.nav-sidebar .nav-treeview > .nav-item > a .nav-icon {
  font-size: 11px !important;
  color: var(--bdx-rail-text) !important;
  margin-right: .5rem !important;
  width: 1.25rem !important;
  text-align: center !important;
  opacity: .85 !important;
  transition: color .15s ease !important;
}

.nav-sidebar .nav-treeview > .nav-item > .nav-link:hover,
.nav-sidebar .nav-treeview > .nav-item > a:hover {
  background: rgba(255, 255, 255, .05) !important;
  color: #fff !important;
}

.nav-sidebar .nav-treeview > .nav-item > .nav-link:hover .nav-icon,
.nav-sidebar .nav-treeview > .nav-item > a:hover .nav-icon,
.nav-sidebar .nav-treeview > .nav-item > .nav-link:hover span,
.nav-sidebar .nav-treeview > .nav-item > a:hover span,
.nav-sidebar .nav-treeview > .nav-item > .nav-link:hover p,
.nav-sidebar .nav-treeview > .nav-item > a:hover p {
  color: #fff !important;
}

.nav-sidebar .nav-treeview > .nav-item > .nav-link.active,
.nav-sidebar .nav-treeview > .nav-item > a.active {
  background: rgba(255, 255, 255, .06) !important;
  color: #fff !important;
  box-shadow: inset 2px 0 0 var(--bdx-lime) !important;
}
/* the ▸ / ▾ caret */
.nav-sidebar .nav-link > .right,
.nav-sidebar .nav-link p > .right,
.nav-sidebar .nav-link span > .right{ color:var(--bdx-rail-text) !important; opacity:.6 !important; }

/* ---------------------------------------------------------------------------
   P2.4  Sidebar: COLLAPSED state (sidebar-mini → sidebar-collapse)
   Icon rail only; labels must hide cleanly, not clip mid-word.
   --------------------------------------------------------------------------- */
body.sidebar-collapse .main-sidebar,
body.sidebar-collapse .main-sidebar .brand-link{ overflow:hidden !important; }
body.sidebar-collapse:not(.sidebar-mini-md) .main-sidebar .nav-sidebar .nav-link{
  padding:.55rem .85rem !important;
}
/* hide text cleanly while collapsed */
body.sidebar-collapse .main-sidebar:not(:hover) .nav-sidebar .nav-link p,
body.sidebar-collapse .main-sidebar:not(:hover) .nav-sidebar .nav-link > span,
body.sidebar-collapse .main-sidebar:not(:hover) .brand-text,
body.sidebar-collapse .main-sidebar:not(:hover) .user-panel .info{
  opacity:0 !important; visibility:hidden !important; width:0 !important;
  margin:0 !important; padding:0 !important; overflow:hidden !important;
}
/* the language radio block is meaningless as an icon rail — hide it collapsed */
body.sidebar-collapse .main-sidebar:not(:hover) .icheck-primary,
body.sidebar-collapse .main-sidebar:not(:hover) .main-sidebar-lang{
  opacity:0 !important; visibility:hidden !important; height:0 !important; overflow:hidden !important;
}
/* on hover-expand, restore instantly without layout jump */
body.sidebar-collapse .main-sidebar:hover{ width:250px !important; }
body.sidebar-collapse .main-sidebar .nav-icon{ margin-right:0 !important; }
body.sidebar-collapse .main-sidebar:hover .nav-icon{ margin-right:.5rem !important; }

/* ---------------------------------------------------------------------------
   P2.5  Sidebar: language radios (English / Chinese / Bahasa)
   CORRECTED in v2.1. Real markup is:
     li.nav-item > a.nav-link > fieldset > div.form-check
       > input.form-check-input[type=radio] + label.form-check-label
   (v2.0 targeted .icheck-primary, which has zero live instances in this build.)
   Note the block sits INSIDE an <a class="nav-link">, so nav-link rules apply
   to its wrapper — hence the reset below.
   --------------------------------------------------------------------------- */
/* NOTE: the :has() rule is isolated deliberately. If it shared a comma list
   with the fallback below, a browser without :has() support would discard the
   entire rule (an invalid selector in a list invalidates the whole list). */
.main-sidebar .nav-link > fieldset{
  background:transparent !important; cursor:default !important;
}
.main-sidebar .nav-item > .nav-link:has(fieldset){
  background:transparent !important; cursor:default !important;
}
.main-sidebar .nav-link > fieldset{ padding:2px 0 2px 8px !important; margin:0 !important; }
.main-sidebar .nav-link fieldset .form-check{
  display:flex !important; align-items:center !important; gap:8px !important;
  padding:0 !important; margin:0 0 2px 0 !important; min-height:22px !important; max-width:100% !important;
}
.main-sidebar .nav-link fieldset .form-check-input{
  position:static !important; margin:0 !important; flex:none !important;
  width:13px !important; height:13px !important; accent-color:var(--bdx-lime) !important;
}
.main-sidebar .nav-link fieldset .form-check-label{
  white-space:nowrap !important; font-size:12.5px !important; line-height:1.4 !important;
  color:var(--bdx-rail-text) !important; margin:0 !important; padding:0 !important; cursor:pointer !important;
}
.main-sidebar .nav-link fieldset .form-check-input:checked ~ .form-check-label{ color:#fff !important; }

/* ---------------------------------------------------------------------------
   P2.6  DataTables — Bootstrap-4 integration
   Real markup: ul.pagination > li.paginate_button.page-item > a.page-link
   (styling MUST target .page-link, not .paginate_button)
   --------------------------------------------------------------------------- */
.dataTables_wrapper .pagination{ margin:0 !important; gap:4px !important; flex-wrap:wrap !important; }
.dataTables_wrapper .pagination .page-item{ margin:0 !important; }
.dataTables_wrapper .pagination .page-item .page-link{
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius) !important;
  background:#fff !important; color:var(--bdx-ink-2) !important;
  padding:6px 12px !important; font-size:12.5px !important; font-weight:500 !important;
  line-height:1.4 !important; min-width:34px !important; text-align:center !important; box-shadow:none !important;
}
.dataTables_wrapper .pagination .page-item .page-link:hover{
  background:#fafafa !important; border-color:#d5d9de !important; color:var(--bdx-ink) !important;
}
.dataTables_wrapper .pagination .page-item.active .page-link{
  background:var(--bdx-ink) !important; border-color:var(--bdx-ink) !important; color:#fff !important;
}
.dataTables_wrapper .pagination .page-item.disabled .page-link{
  background:#fff !important; border-color:var(--bdx-border) !important; color:#c3c7cc !important; cursor:not-allowed !important;
}
/* "Show [10] entries" — real markup is a label wrapping the select */
.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label{
  display:flex !important; align-items:center !important; gap:8px !important;
  font-weight:400 !important; color:var(--bdx-grey) !important; font-size:12.5px !important; margin-bottom:0 !important;
}
.dataTables_wrapper .dataTables_length select{
  width:auto !important; min-width:72px !important;
  display:inline-flex !important; align-items:center !important; justify-content:space-between !important;
  vertical-align:middle !important;
  padding:.25rem 1.75rem .25rem .5rem !important; height:calc(1.8125rem + 2px) !important;
}
.dataTables_wrapper .dataTables_filter input{
  width:220px !important; max-width:100% !important; margin-left:0 !important;
  height:calc(1.8125rem + 2px) !important;
}
.dataTables_wrapper .dataTables_info{ padding-top:0 !important; }
.dataTables_wrapper .row{ align-items:center !important; }
.dataTables_wrapper .row:last-child{ margin-top:14px !important; }
/* sort arrows */
table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after{ opacity:.35 !important; }

/* horizontal scroll on wide tables — keep it inside the card, not the page */
.dataTables_wrapper .dataTables_scrollBody,
.table-responsive{ border-radius:var(--bdx-radius) !important; }

/* ---------------------------------------------------------------------------
   P2.7  Footer
   Real markup: <footer class="main-footer"><strong>Copyright …
   --------------------------------------------------------------------------- */
.main-footer{
  background:#fff !important; border-top:1px solid var(--bdx-border) !important;
  color:var(--bdx-grey) !important; padding:14px 22px !important; font-size:12.5px !important;
}
.main-footer strong{ font-weight:400 !important; color:var(--bdx-grey) !important; }
.main-footer a{ color:var(--bdx-ink-2) !important; font-weight:500 !important; }
.main-footer a:hover{ color:var(--bdx-blue) !important; }

/* ---------------------------------------------------------------------------
   P2.8  Buttons: the remaining framework colours
   btn-info (Download Sample Excel, table row actions) reads as stock Bootstrap
   cyan — demote to a neutral secondary so lime stays the single primary signal.
   --------------------------------------------------------------------------- */
.btn-info,.btn-info:not(:disabled):not(.disabled){
  background:#fff !important; border:1px solid var(--bdx-border) !important;
  color:var(--bdx-ink) !important; font-weight:500 !important;
}
.btn-info:hover{ background:#fafafa !important; border-color:#d5d9de !important; color:var(--bdx-ink) !important; }
.btn-success{
  background:var(--bdx-lime) !important; border-color:var(--bdx-lime) !important;
  color:var(--bdx-ink) !important; font-weight:600 !important;
}
.btn-success:hover{ background:var(--bdx-lime-hover) !important; border-color:var(--bdx-lime-hover) !important; }
.btn-tool{ color:var(--bdx-grey) !important; background:transparent !important; box-shadow:none !important; }
.btn-tool:hover{ color:var(--bdx-ink) !important; }
.btn-sm{ font-size:12.5px !important; padding:.25rem .65rem !important; }

/* ---------------------------------------------------------------------------
   P2.9  Forms (Bulk Upload, AF1/AF2, Site Access)
   These use .table-bordered as a layout grid with heavy blue rules.
   Soften the rules; keep the structure intact.
   --------------------------------------------------------------------------- */
.card-body .table-bordered,
.card-body .table-bordered th,
.card-body .table-bordered td,
form .table-bordered,form .table-bordered th,form .table-bordered td{
  border-color:var(--bdx-border) !important;
}
form .table-bordered td,form .table-bordered th{ padding:10px 14px !important; }
/* Label column reads as a label, not a heading.
   IMPORTANT: excluded from cells that carry their own inline background or
   colour. Several forms use `<td style="background-color:#002060;color:white">`
   as a section bar; an !important colour here would beat the inline white and
   render the text invisible on navy. */
form .table-bordered td:first-child:not([style*="background"]):not([style*="color"]){
  color:var(--bdx-ink-2) !important; font-weight:500 !important;
}
/* the outer double border around embedded forms */
.card .card-body > table,
.card .card-body > div > table{ border:1px solid var(--bdx-border) !important; }
/* file inputs */
input[type="file"]{
  font-size:12.5px !important; padding:7px 10px !important;
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius) !important; background:#fff !important;
}
/* the "Dashboard" blue heading inside AF1 */
.card-body h4,.card-body .h4{ font-size:15px !important; font-weight:600 !important; color:var(--bdx-ink) !important; }

/* ---------------------------------------------------------------------------
   P2.10  Control sidebar ("Switch Data Center" / "Switch Customer" slide-out)
   --------------------------------------------------------------------------- */
.control-sidebar,.control-customer-sidebar,.control-sidebar-dark{
  background:var(--bdx-rail) !important; color:var(--bdx-rail-text) !important;
}
.control-customer-sidebar .p-2{ font-size:13px !important; }
.control-sidebar a,.control-customer-sidebar a{ color:var(--bdx-rail-text) !important; }
.control-sidebar a:hover,.control-customer-sidebar a:hover{ color:#fff !important; }

/* ---------------------------------------------------------------------------
   P2.11  Permit To Work — DELIBERATELY LEFT LARGELY ALONE
   This page is legacy pasted content: Google-Docs export classes (.c51/.c34…)
   with hardcoded INLINE styles (background-color:#002060 header bars) and a
   colour-coded risk matrix (green/yellow/orange/red).
   The matrix colours are FUNCTIONAL SAFETY SIGNAL — they must not be restyled.
   We therefore only tidy the container and controls, and leave the document
   body as-is. Properly rebranding this page is a template job, not a CSS job.
   --------------------------------------------------------------------------- */
.card-body input[type="date"],.card-body input[type="time"]{
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius) !important;
  padding:6px 10px !important; font-family:var(--bdx-mono) !important; font-size:13px !important;
}
.card-body textarea{ border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius) !important; }


/* ============================================================================
   ===  v2.1 — REMAINING COMPONENT COVERAGE  ==================================
   Audit of all 10 captured pages surfaced these unstyled surfaces.
   ============================================================================ */

/* ---------------------------------------------------------------------------
   V21.1  SELECT2  — the largest remaining gap (used on Bulk Upload:
   "Select Organization" / "Select Caller"). Select2 replaces the native
   <select> with its own DOM, so form-control rules never reach it.
   Real markup: span.select2-container--default > .selection >
                .select2-selection--single > .select2-selection__rendered
   --------------------------------------------------------------------------- */
.select2-container--default .select2-selection--single{
  height:calc(2.25rem + 2px) !important;
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius) !important;
  background:#fff !important; outline:none !important; transition:border-color .12s, box-shadow .12s !important;
}
.select2-container--default .select2-selection--single:hover{ border-color:#d5d9de !important; }
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--single{
  border-color:var(--bdx-blue) !important; box-shadow:var(--bdx-ring) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:calc(2.25rem) !important; padding-left:12px !important; padding-right:34px !important;
  color:var(--bdx-ink) !important; font-size:13.5px !important; font-family:var(--bdx-sans) !important;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder{
  color:#aab0b6 !important;
}
/* arrow — replace the CSS-triangle with a chevron matching native selects */
.select2-container--default .select2-selection--single .select2-selection__arrow{
  height:calc(2.25rem) !important; right:10px !important; width:16px !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b{
  border:0 !important; margin:0 !important; left:0 !important; top:0 !important;
  width:16px !important; height:100% !important; transform:none !important;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>") no-repeat center center !important;
}
.select2-container--default .select2-selection--single .select2-selection__clear{
  color:var(--bdx-grey) !important; margin-right:8px !important;
}
/* the dropdown panel */
.select2-container--default .select2-dropdown{
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius-lg) !important;
  box-shadow:var(--bdx-shadow-md) !important; overflow:hidden !important; background:#fff !important;
}
.select2-container--default .select2-search--dropdown{ padding:8px !important; border-bottom:1px solid var(--bdx-border-soft) !important; }
.select2-container--default .select2-search--dropdown .select2-search__field{
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius) !important;
  padding:7px 10px !important; font-family:var(--bdx-sans) !important; font-size:13px !important; outline:none !important;
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus{
  border-color:var(--bdx-blue) !important; box-shadow:var(--bdx-ring) !important;
}
.select2-container--default .select2-results__options{ padding:4px !important; max-height:260px !important; }
.select2-container--default .select2-results__option{
  padding:8px 10px !important; border-radius:var(--bdx-radius) !important;
  font-size:13.5px !important; color:var(--bdx-ink-2) !important;
}
/* Active / Selected option (dark resting state by default, even on initial dropdown open) */
.select2-container--default .select2-results__option[aria-selected=true],
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option--selected {
  background-color: var(--bdx-ink, #13171a) !important;
  color: #ffffff !important;
}

/* Hover / Highlighted state (neon lime) - applies to unselected items when hovered / keyboard active */
.select2-container--default .select2-results__option--highlighted:not([aria-selected=true]):not([aria-selected="true"]),
.select2-container--default .select2-results__option:not([aria-selected=true]):not([aria-selected="true"]):hover {
  background-color: var(--bdx-lime, #dcf42c) !important;
  color: var(--bdx-ink, #13171a) !important;
}

/* When mouse explicitly hovers over an already selected item */
.select2-container--default .select2-results__option[aria-selected=true]:hover,
.select2-container--default .select2-results__option[aria-selected="true"]:hover,
.select2-container--default .select2-results__option--selected:hover {
  background-color: var(--bdx-lime, #dcf42c) !important;
  color: var(--bdx-ink, #13171a) !important;
}
.select2-container--default .select2-results__message{ color:var(--bdx-grey) !important; font-size:13px !important; }
/* multi-select pills and container */
.select2-container--default .select2-selection--multiple{
  border:1px solid var(--bdx-border) !important;
  border-radius:var(--bdx-radius) !important;
  min-height:calc(2.25rem + 2px) !important;
  background:#fff !important;
  outline:none !important;
  transition:border-color .12s, box-shadow .12s !important;
}
.select2-container--default .select2-selection--multiple:hover{
  border-color:#d5d9de !important;
}
.select2-container--default.select2-container--open .select2-selection--multiple,
.select2-container--default.select2-container--focus .select2-selection--multiple,
#content .select2-container--default.select2-container--open .select2-selection--multiple,
#content .select2-container--default.select2-container--focus .select2-selection--multiple{
  border-color:var(--bdx-blue) !important;
  box-shadow:var(--bdx-ring) !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered{
  padding:2px 6px !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice{
  background:var(--bdx-offwhite) !important;
  border:1px solid var(--bdx-border) !important;
  border-radius:999px !important;
  color:var(--bdx-ink) !important;
  font-size:12.5px !important;
  padding:2px 9px !important;
  margin-top:4px !important;
  margin-bottom:4px !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{
  color:var(--bdx-grey) !important;
  margin-right:4px !important;
  border:none !important;
  background:transparent !important;
  cursor:pointer !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{
  color:var(--bdx-ink) !important;
}

/* multi-select inline search field: eliminate inner shadow, border, background, and padding */
.select2-container--default .select2-selection--multiple .select2-search--inline,
.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field,
#content .select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field,
#content .select2-selection--multiple input.select2-search__field,
.select2-container .select2-selection--multiple .select2-search__field{
  background:transparent !important;
  background-color:transparent !important;
  border:none !important;
  border-color:transparent !important;
  border-radius:0 !important;
  outline:none !important;
  box-shadow:none !important;
  -webkit-box-shadow:none !important;
  padding:0 !important;
  margin-top:5px !important;
  margin-left:4px !important;
  height:auto !important;
  min-height:auto !important;
}

.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field:focus,
.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field:hover,
#content .select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field:focus,
#content .select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field:hover,
#content .select2-selection--multiple input.select2-search__field:focus,
#content .select2-selection--multiple input.select2-search__field:hover,
.select2-container .select2-selection--multiple .select2-search__field:focus,
.select2-container .select2-selection--multiple .select2-search__field:hover{
  background:transparent !important;
  background-color:transparent !important;
  border:none !important;
  border-color:transparent !important;
  outline:none !important;
  box-shadow:none !important;
  -webkit-box-shadow:none !important;
}

/* ---------------------------------------------------------------------------
   V21.2  ALERTS  (alert-info used for "Request Details :" blocks)
   --------------------------------------------------------------------------- */
.alert{
  border-radius:var(--bdx-radius-lg) !important; border:1px solid var(--bdx-border) !important;
  font-size:13px !important; padding:14px 16px !important; box-shadow:none !important;
}
.alert-info{ background:#f6f8ff !important; border-color:#e2e8ff !important; color:var(--bdx-ink-2) !important; }
.alert-success{ background:#f0fdf4 !important; border-color:#dcfce7 !important; color:#166534 !important; }
.alert-warning{ background:#fffbeb !important; border-color:#fef3c7 !important; color:#92400e !important; }
.alert-danger{ background:#fef3f2 !important; border-color:#fee4e2 !important; color:#b42318 !important; }
.alert label{ font-weight:600 !important; color:inherit !important; margin-bottom:4px !important; }
.alert a{ color:var(--bdx-blue) !important; font-weight:500 !important; }

/* ---------------------------------------------------------------------------
   V21.3  .tableBorder  — custom class on 15+ tables that no framework rule
   reaches. Bring it onto the same hairline system as .table.
   --------------------------------------------------------------------------- */
table.tableBorder,
table.tableBorder > thead > tr > th,
table.tableBorder > tbody > tr > td,
table.tableBorder > tbody > tr > th{
  border-color:var(--bdx-border) !important;
}
table.tableBorder{ border-collapse:collapse !important; width:100% !important; }
table.tableBorder > tbody > tr > td{ padding:11px 14px !important; font-size:13px !important; }
table.tableBorder > thead > tr > th{
  background:#fbfbfc !important; color:var(--bdx-grey) !important;
  font-size:11px !important; font-weight:600 !important; text-transform:uppercase !important;
  letter-spacing:.05em !important; padding:11px 14px !important;
}

/* ---------------------------------------------------------------------------
   V21.4  Zebra striping — replace heavy alternating fills with a hairline
   rhythm plus hover, matching the approved design.
   --------------------------------------------------------------------------- */
.table-striped > tbody > tr:nth-of-type(odd),
.table-striped > tbody > tr:nth-of-type(even),
table.dataTable.stripe > tbody > tr.odd,
table.dataTable.display > tbody > tr.odd{
  background-color:transparent !important;
}
.table-striped > tbody > tr:hover,
table.dataTable > tbody > tr:hover{ background-color:#fcfcfd !important; }
table.dataTable > tbody > tr.selected,
table.dataTable > tbody > tr.odd.selected{ background-color:var(--bdx-offwhite) !important; }

/* ---------------------------------------------------------------------------
   V21.5  Wide-table overflow — keep the scroll inside the card and give it a
   slim styled scrollbar instead of the chunky native one.
   --------------------------------------------------------------------------- */
.table-responsive,
.dataTables_wrapper .dataTables_scrollBody{
  overflow-x:auto !important; -webkit-overflow-scrolling:touch !important;
  scrollbar-width:thin !important; scrollbar-color:#cfd4d9 transparent !important;
}
.table-responsive::-webkit-scrollbar,
.dataTables_wrapper .dataTables_scrollBody::-webkit-scrollbar{ height:8px !important; }
.table-responsive::-webkit-scrollbar-track,
.dataTables_wrapper .dataTables_scrollBody::-webkit-scrollbar-track{ background:transparent !important; }
.table-responsive::-webkit-scrollbar-thumb,
.dataTables_wrapper .dataTables_scrollBody::-webkit-scrollbar-thumb{
  background:#cfd4d9 !important; border-radius:999px !important;
}
.table-responsive::-webkit-scrollbar-thumb:hover,
.dataTables_wrapper .dataTables_scrollBody::-webkit-scrollbar-thumb:hover{ background:#b6bcc2 !important; }
/* stop wide tables bleeding past the card edge */
.card > .card-body > .table-responsive,
.card > .table-responsive{ max-width:100% !important; }

/* ---------------------------------------------------------------------------
   V21.6  Loaders / spinners — pages hardcode #00008B, #05A8D0 and #3498db,
   giving three different off-brand blues. Unify on the brand blue.
   --------------------------------------------------------------------------- */
.loader,.lds-ring div,.spinner,.spinner-border{
  border-top-color:var(--bdx-blue) !important;
  border-right-color:rgba(45,67,232,.18) !important;
  border-bottom-color:rgba(45,67,232,.18) !important;
  border-left-color:rgba(45,67,232,.18) !important;
}
.spinner-border{ color:var(--bdx-blue) !important; }
.overlay,.overlay-wrapper .overlay{ background:rgba(255,255,255,.72) !important; }

/* ---------------------------------------------------------------------------
   V21.7  Bulk Upload page-level inline styles
   That page ships its own <style>: `#double{border-style:double}` and
   `.makeBlue{color:#256792}`. Bring both onto the system.
   --------------------------------------------------------------------------- */
#double{
  border-style:solid !important; border-width:1px !important;
  border-color:var(--bdx-border) !important; border-radius:var(--bdx-radius-lg) !important;
}
.makeBlue{ color:var(--bdx-blue) !important; }

/* ---------------------------------------------------------------------------
   V21.8  Modals — confirmed Bootstrap (.modal.fade > .modal-dialog >
   .modal-content). Includes the "Your Opinion Counts" survey.
   --------------------------------------------------------------------------- */
.modal-backdrop.show{ opacity:.28 !important; background:var(--bdx-ink) !important; }
.modal-content{ border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius-lg) !important; box-shadow:var(--bdx-shadow-md) !important; }
.modal-header{ border-bottom:1px solid var(--bdx-border-soft) !important; padding:16px 20px !important; }
.modal-body{ padding:20px !important; font-size:13.5px !important; color:var(--bdx-ink-2) !important; line-height:1.6 !important; }
.modal-footer{ border-top:1px solid var(--bdx-border-soft) !important; padding:14px 20px !important; }
.modal-header .close{ color:var(--bdx-grey) !important; text-shadow:none !important; opacity:1 !important; font-weight:400 !important; }
.modal-header .close:hover{ color:var(--bdx-ink) !important; }

/* ---------------------------------------------------------------------------
   V21.9  Validation / helper text  (.form-error, .text-danger)
   --------------------------------------------------------------------------- */
.form-error,.invalid-feedback,.text-danger{ color:#b42318 !important; }
.small.text-danger,.form-error{ font-size:12px !important; margin-top:4px !important; display:block !important; }
.form-control.is-invalid,.form-control.error{
  border-color:#f04438 !important; box-shadow:0 0 0 3px rgba(240,68,56,.14) !important;
}
/* keep the required-field asterisk quiet but visible */
label .text-danger,label span.text-danger{ font-weight:400 !important; }

/* ---------------------------------------------------------------------------
   V21.10  Responsive (< 992px) — the sidebar becomes a slide-over.
   UNVERIFIED: no mobile capture was available. Defensive only.
   --------------------------------------------------------------------------- */
@media (max-width:991.98px){
  .main-sidebar{ position:fixed !important; height:100vh !important; box-shadow:var(--bdx-shadow-md) !important; }
  .content-wrapper,.main-footer{ margin-left:0 !important; }
  .content{ padding:16px !important; }
  .card{ border-radius:var(--bdx-radius) !important; }
  .dataTables_wrapper .dataTables_filter input{ width:100% !important; }
  .dataTables_wrapper .dataTables_length label,
  .dataTables_wrapper .dataTables_filter label{ width:100% !important; }
  .main-header .btn{ font-size:12px !important; padding:.25rem .5rem !important; }
}

/* ---------------------------------------------------------------------------
   V21.11  Print — AF forms and Permit To Work are printed documents.
   Drop the chrome, keep the content legible and ink-efficient.
   --------------------------------------------------------------------------- */
@media print{
  .main-sidebar,.main-header,.main-footer,
  .control-sidebar,.control-customer-sidebar,
  .dataTables_length,.dataTables_filter,.dataTables_paginate,
  .btn,.card-tools,.wrapper::before{ display:none !important; }
  .content-wrapper{ margin:0 !important; background:#fff !important; }
  .card{ border:0 !important; box-shadow:none !important; break-inside:avoid !important; }
  .card-header{ border-bottom:1px solid #000 !important; }
  body{ background:#fff !important; font-size:11pt !important; }
  a{ color:#000 !important; text-decoration:none !important; }
  table{ break-inside:auto !important; }
  tr{ break-inside:avoid !important; break-after:auto !important; }
  thead{ display:table-header-group !important; }
}


/* ============================================================================
   ===  v2.2 — PHASE 2 FEEDBACK FIXES  ========================================
   Verified against the Phase 2 captures (12 pages incl. phone width + modal).
   ============================================================================ */

/* ---------------------------------------------------------------------------
   V22.1  Logout button rendering blue
   Real markup: <li class="nav-item logout" style="background-color:
   rgba(38,78,90,0.9); border-radius:.25rem .25rem 0 0"> <a class="nav-link">
   The colour is an INLINE style on the <li>, not on the link — which is why
   the earlier rule (targeting the <a>) never reached it.
   --------------------------------------------------------------------------- */
.main-sidebar .nav-item.logout,
.main-sidebar li.nav-item.logout{
  background-color:transparent !important;
  border:1px solid var(--bdx-rail-border) !important;
  border-radius:6px !important;
  margin:8px !important; width:calc(100% - 16px) !important; box-sizing:border-box !important;
  transition:.12s !important;
}
.main-sidebar .nav-item.logout:hover{
  background-color:rgba(255,255,255,.04) !important; border-color:#3a4248 !important;
}
.main-sidebar .nav-item.logout > .nav-link{
  color:var(--bdx-rail-text) !important; justify-content:center !important;
  display:flex !important; align-items:center !important; margin:0 !important;
}
.main-sidebar .nav-item.logout:hover > .nav-link,
.main-sidebar .nav-item.logout:hover .nav-icon,
.main-sidebar .nav-item.logout:hover p{ color:#fff !important; }
.main-sidebar .nav-item.logout .nav-icon{ color:var(--bdx-rail-text) !important; }
/* collapsed rail: icon only, no stretched box */
body.sidebar-collapse .main-sidebar:not(:hover) .nav-item.logout{
  margin:8px 6px !important; width:calc(100% - 12px) !important;
}

/* ---------------------------------------------------------------------------
   V22.2  Customer Feedback: Header, Layout, Spacing, and Controls
   --------------------------------------------------------------------------- */
/* Section Header Banner */
.form-wrapper-1 .card-header {
  background: #f0f4ff !important;
  border: 1px solid #dbeafe !important;
  border-left: 4px solid var(--bdx-blue) !important;
  border-radius: 8px !important;
  padding: 14px 18px !important;
  margin-bottom: 24px !important;
}
.form-wrapper-1 .card-header h4,
.form-wrapper-1 .card-header p {
  color: var(--bdx-blue) !important;
  font-weight: 700 !important;
  font-size: 15.5px !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* Individual Question Titles: Vibrant & High Contrast */
.form-wrapper-1 .card-body p {
  margin-top: 14px !important;
  margin-bottom: 10px !important;
  font-weight: 600 !important;
  font-size: 14.5px !important;
  color: var(--bdx-ink, #13171a) !important;
  line-height: 1.5 !important;
}

/* Appropriate Spacing Between Individual Questions */
.form-wrapper-1 .rating-stars {
  margin-bottom: 22px !important;
  padding-bottom: 16px !important;
  border-bottom: 1px dashed var(--bdx-border-soft, #eef0f2) !important;
}

/* Submit & Previous Buttons */
#nextBtn,#prevBtn,button#nextBtn,button#prevBtn{
  font-family:var(--bdx-sans) !important; font-size:13.5px !important; font-weight:600 !important;
  height:38px !important; padding:0 18px !important;
  border-radius:var(--bdx-radius) !important; border:1px solid transparent !important;
  cursor:pointer !important; transition:.12s !important; box-shadow:none !important;
  background:var(--bdx-lime) !important; color:var(--bdx-ink) !important;
}
#nextBtn:hover,#prevBtn:hover{
  background:var(--bdx-lime-hover) !important; border-color:var(--bdx-lime-hover) !important;
}
#prevBtn{
  background:#fff !important; color:var(--bdx-ink) !important; border-color:var(--bdx-border) !important;
}
#prevBtn:hover{ background:#fafafa !important; border-color:#d5d9de !important; }
/* Step indicator dots */
.step{ background-color:#d5d9de !important; border-radius:999px !important; }
.step.active{ background-color:var(--bdx-ink) !important; }
.step.finish{ background-color:var(--bdx-lime) !important; }

/* ---------------------------------------------------------------------------
   V22.3  Rating stars (Customer Feedback) - Vibrant & Visually Appealing
   --------------------------------------------------------------------------- */
.rating-stars ul{
  display:flex !important; flex-wrap:nowrap !important;
  gap:10px !important; margin:0 !important; padding:4px 0 !important;
}
.rating-stars ul > li.star{ padding-right:0 !important; margin:0 !important; cursor:pointer !important; }
.rating-stars ul > li.star > i.fa{
  font-size:2em !important;
  color:#d1d5db !important; opacity:1 !important;
  transition:color .15s ease, transform .15s ease !important;
  display:inline-block !important;
}
.rating-stars ul > li.star:hover > i.fa,
.rating-stars ul > li.star.hover > i.fa{
  color:#fbbf24 !important; opacity:1 !important;
  transform:scale(1.15) !important;
}
.rating-stars ul > li.star.selected > i.fa{
  color:#f59e0b !important; opacity:1 !important;
  filter:drop-shadow(0 2px 4px rgba(245,158,11,0.3)) !important;
}
@media (max-width:767.98px){
  .rating-stars ul > li.star > i.fa{ font-size:1.6em !important; }
  .rating-stars ul{ gap:6px !important; }
}

/* ---------------------------------------------------------------------------
   V22.3.1  Comments Section: Flush Left Alignment & Padding Removal
   --------------------------------------------------------------------------- */
/* Remove padding ONLY on the innermost .p-3 wrapping the comments textarea.
   Uses .form-wrapper-1 with nested card-body/has selectors to ensure outer
   card-body, tabs, and question containers keep their full normal padding. */
.form-wrapper-1 .card-body .card-body .p-3,
.form-wrapper-1 .card-body .card-body > .p-3,
.form-wrapper-1 .card-body.p-0 .card-body.p-0 .p-3,
.form-wrapper-1 .card-body.p-0 .card-body.p-0 > .p-3,
.form-wrapper-1 div.p-3:has(> div > textarea),
.form-wrapper-1 div.p-3:has(> textarea),
.form-wrapper-1 .p-3:has(> div > textarea),
.form-wrapper-1 .p-3:has(> textarea) {
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Ensure the direct container div immediately around textarea has zero offset and spans 100% */
.form-wrapper-1 .card-body .card-body div:has(> textarea),
.form-wrapper-1 div.p-3:has(> div > textarea) > div {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

/* Textarea styling & CSS-only placeholder simulation */
.form-wrapper-1 textarea.form-control,
.form-wrapper-1 textarea,
#regForm textarea.form-control,
#regForm textarea {
  height: auto !important;
  min-height: 130px !important;
  width: 100% !important;
  max-width: 100% !important;
  background-color: #ffffff !important;
  /* CSS-injected placeholder via SVG data URI */
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='550' height='24'><text x='0' y='16' fill='%2394a3b8' font-family='system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif' font-size='14'>Please share your feedback, comments, or suggestions here...</text></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: 16px 14px !important;
  border: 1.5px solid #b0b7c3 !important;
  border-radius: var(--bdx-radius-lg, 8px) !important;
  padding: 12px 16px !important;
  font-family: var(--bdx-sans) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: var(--bdx-ink, #13171a) !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) !important;
  resize: vertical !important;
  box-sizing: border-box !important;
  display: block !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-top: 8px !important;
  margin-bottom: 16px !important;
}

/* Remove CSS placeholder on focus or active typing */
.form-wrapper-1 textarea.form-control:focus,
.form-wrapper-1 textarea:focus,
.form-wrapper-1 textarea:active,
#regForm textarea.form-control:focus,
#regForm textarea:focus,
#regForm textarea:active {
  background-image: none !important;
  background-color: #ffffff !important;
  border-color: var(--bdx-blue) !important;
  box-shadow: 0 0 0 3px rgba(45, 67, 232, 0.18), 0 1px 3px rgba(0, 0, 0, 0.08) !important;
  outline: none !important;
  color: #13171a !important;
}

/* Native HTML placeholder styling */
.form-wrapper-1 textarea::placeholder,
#regForm textarea::placeholder {
  color: #94a3b8 !important;
  font-size: 14px !important;
  font-family: var(--bdx-sans) !important;
  font-weight: 400 !important;
  opacity: 1 !important;
}

/* ---------------------------------------------------------------------------
   V22.4  Phone width: form tables overflow and clip
   The AF forms use bare `<table width="100%" cellspacing="15" cellpadding="4">`
   with no .table-responsive wrapper, so at phone width the right-hand column
   is cut off. Scrolling is used rather than restacking, because restacking a
   two-column label/field table by CSS alone reorders these forms unpredictably.
   --------------------------------------------------------------------------- */
@media (max-width:767.98px){
  .card-body > table,
  .card-body > div > table,
  .card-body form table,
  form > table{
    display:block !important; width:100% !important;
    overflow-x:auto !important; -webkit-overflow-scrolling:touch !important;
    scrollbar-width:thin !important;
  }
  .card-body > table::-webkit-scrollbar,
  form > table::-webkit-scrollbar{ height:6px !important; }
  .card-body > table::-webkit-scrollbar-thumb,
  form > table::-webkit-scrollbar-thumb{ background:#cfd4d9 !important; border-radius:999px !important; }
  /* stop inputs forcing the table wider than the screen */
  .card-body input[type="text"],.card-body input[type="email"],
  .card-body input[type="date"],.card-body input[type="time"],
  .card-body select,.card-body textarea{ max-width:100% !important; }
  .content-header h1,.content-header .h1{ font-size:19px !important; }
  .card-body{ padding:14px !important; }
}

/* ---------------------------------------------------------------------------
   V22.5  Collapsed rail: hide the language radios completely
   v2.1 hid the labels but left the radio inputs visible as three bare dots.
   --------------------------------------------------------------------------- */
body.sidebar-collapse .main-sidebar:not(:hover) .nav-link > fieldset,
body.sidebar-collapse .main-sidebar:not(:hover) .nav-link fieldset .form-check,
body.sidebar-collapse .main-sidebar:not(:hover) .nav-link fieldset .form-check-input{
  opacity:0 !important; visibility:hidden !important;
  height:0 !important; margin:0 !important; padding:0 !important; overflow:hidden !important;
}

/* ---------------------------------------------------------------------------
   V22.6  Alert dismiss control (the "Report Generated Successfully" ×)
   --------------------------------------------------------------------------- */
.alert .close,.alert button.close{
  color:var(--bdx-grey) !important; opacity:1 !important; text-shadow:none !important;
  font-weight:400 !important; font-size:20px !important;
}
.alert .close:hover{ color:var(--bdx-ink) !important; }

/* ---------------------------------------------------------------------------
   V22.7  DataTables row-expand control (the ⊕ in Power Utilization)
   Stock Bootstrap primary blue; bring onto the brand blue.
   --------------------------------------------------------------------------- */
td .fa-plus-circle,td .fa-minus-circle,
td .btn-circle,.details-control{ color:var(--bdx-blue) !important; }


/* ============================================================================
   ===  v2.3 — ICON SET: FONT AWESOME → LUCIDE  ===============================
   The portal uses Font Awesome Free 5.13 and exactly 18 distinct icons.
   Rather than change any markup, each glyph is replaced by masking the <i>
   element's ::before with the official Lucide SVG. `<i class="fas fa-server">`
   stays exactly as it is and renders a Lucide icon.

   Source: lucide-static v1.27.0 (ISC licence), official SVGs, unmodified.

   Why ::before rather than the element: it preserves AdminLTE's own icon
   sizing/spacing (.nav-icon, .fa-fw) and keeps the .fa-spin animation working,
   since the element still spins and carries the pseudo-element with it.
   Sizing is em-based, so .fa-lg / .fa-2x continue to scale correctly.

   fa-star is DELIBERATELY EXCLUDED. It drives the Customer Feedback rating
   widget: a mask renders a silhouette, so an outline star would mask to an
   outline in both states and lose the filled/empty distinction that makes a
   star rating readable. Solid stars remain the correct affordance there.

   The whole block is wrapped in @supports. A browser without mask-image keeps
   Font Awesome rather than losing its icons — this fails soft, not hard.

   MAINTENANCE: any icon added to the portal later will still be Font Awesome
   and will not match. Migrating the 18 <i> elements to Lucide markup is the
   permanent fix; this is the zero-markup interim.
   ============================================================================ */

@supports ((-webkit-mask-image: url("data:image/svg+xml,%3Csvg%3E%3C/svg%3E")) or (mask-image: url("data:image/svg+xml,%3Csvg%3E%3C/svg%3E"))) {

  /* --- per-icon Lucide source (official lucide-static v1.27.0, ISC) --- */
  .fa-ticket-alt{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M2%209a3%203%200%200%201%200%206v2a2%202%200%200%200%202%202h16a2%202%200%200%200%202-2v-2a3%203%200%200%201%200-6V7a2%202%200%200%200-2-2H4a2%202%200%200%200-2%202Z%22%20%2F%3E%20%3Cpath%20d%3D%22M13%205v2%22%20%2F%3E%20%3Cpath%20d%3D%22M13%2017v2%22%20%2F%3E%20%3Cpath%20d%3D%22M13%2011v2%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-list-alt{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M3%205h.01%22%20%2F%3E%20%3Cpath%20d%3D%22M3%2012h.01%22%20%2F%3E%20%3Cpath%20d%3D%22M3%2019h.01%22%20%2F%3E%20%3Cpath%20d%3D%22M8%205h13%22%20%2F%3E%20%3Cpath%20d%3D%22M8%2012h13%22%20%2F%3E%20%3Cpath%20d%3D%22M8%2019h13%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-angle-left{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22m15%2018-6-6%206-6%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-caret-right{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22m9%2018%206-6-6-6%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-square{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Crect%20width%3D%2218%22%20height%3D%2218%22%20x%3D%223%22%20y%3D%223%22%20rx%3D%222%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-server{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Crect%20width%3D%2220%22%20height%3D%228%22%20x%3D%222%22%20y%3D%222%22%20rx%3D%222%22%20ry%3D%222%22%20%2F%3E%20%3Crect%20width%3D%2220%22%20height%3D%228%22%20x%3D%222%22%20y%3D%2214%22%20rx%3D%222%22%20ry%3D%222%22%20%2F%3E%20%3Cline%20x1%3D%226%22%20x2%3D%226.01%22%20y1%3D%226%22%20y2%3D%226%22%20%2F%3E%20%3Cline%20x1%3D%226%22%20x2%3D%226.01%22%20y1%3D%2218%22%20y2%3D%2218%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-check-square{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Crect%20width%3D%2218%22%20height%3D%2218%22%20x%3D%223%22%20y%3D%223%22%20rx%3D%222%22%20%2F%3E%20%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-bars{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M4%205h16%22%20%2F%3E%20%3Cpath%20d%3D%22M4%2012h16%22%20%2F%3E%20%3Cpath%20d%3D%22M4%2019h16%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-random{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22m18%2014%204%204-4%204%22%20%2F%3E%20%3Cpath%20d%3D%22m18%202%204%204-4%204%22%20%2F%3E%20%3Cpath%20d%3D%22M2%2018h1.973a4%204%200%200%200%203.3-1.7l5.454-8.6a4%204%200%200%201%203.3-1.7H22%22%20%2F%3E%20%3Cpath%20d%3D%22M2%206h1.972a4%204%200%200%201%203.6%202.2%22%20%2F%3E%20%3Cpath%20d%3D%22M22%2018h-6.041a4%204%200%200%201-3.3-1.8l-.359-.45%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-users{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%22%20%2F%3E%20%3Cpath%20d%3D%22M16%203.128a4%204%200%200%201%200%207.744%22%20%2F%3E%20%3Cpath%20d%3D%22M22%2021v-2a4%204%200%200%200-3-3.87%22%20%2F%3E%20%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-sign-out-alt{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22m16%2017%205-5-5-5%22%20%2F%3E%20%3Cpath%20d%3D%22M21%2012H9%22%20%2F%3E%20%3Cpath%20d%3D%22M9%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h4%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-minus{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M5%2012h14%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-refresh{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M3%2012a9%209%200%200%201%209-9%209.75%209.75%200%200%201%206.74%202.74L21%208%22%20%2F%3E%20%3Cpath%20d%3D%22M21%203v5h-5%22%20%2F%3E%20%3Cpath%20d%3D%22M21%2012a9%209%200%200%201-9%209%209.75%209.75%200%200%201-6.74-2.74L3%2016%22%20%2F%3E%20%3Cpath%20d%3D%22M8%2016H3v5%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-download{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M12%2015V3%22%20%2F%3E%20%3Cpath%20d%3D%22M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4%22%20%2F%3E%20%3Cpath%20d%3D%22m7%2010%205%205%205-5%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-eye{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M2.062%2012.348a1%201%200%200%201%200-.696%2010.75%2010.75%200%200%201%2019.876%200%201%201%200%200%201%200%20.696%2010.75%2010.75%200%200%201-19.876%200%22%20%2F%3E%20%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-check{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M20%206%209%2017l-5-5%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
  .fa-eye-slash{ --bdx-i:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22M10.733%205.076a10.744%2010.744%200%200%201%2011.205%206.575%201%201%200%200%201%200%20.696%2010.747%2010.747%200%200%201-1.444%202.49%22%20%2F%3E%20%3Cpath%20d%3D%22M14.084%2014.158a3%203%200%200%201-4.242-4.242%22%20%2F%3E%20%3Cpath%20d%3D%22M17.479%2017.499a10.75%2010.75%200%200%201-15.417-5.151%201%201%200%200%201%200-.696%2010.75%2010.75%200%200%201%204.446-5.143%22%20%2F%3E%20%3Cpath%20d%3D%22m2%202%2020%2020%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }

  /* --- shared mask rule: replaces the Font Awesome glyph --- */
  .fa-ticket-alt::before, .fa-list-alt::before, .fa-angle-left::before, .fa-caret-right::before, .fa-square::before, .fa-server::before, .fa-check-square::before, .fa-bars::before, .fa-random::before, .fa-users::before, .fa-sign-out-alt::before, .fa-minus::before, .fa-refresh::before, .fa-download::before, .fa-eye::before, .fa-check::before, .fa-eye-slash::before{
    content:"" !important;
    display:inline-block !important;
    width:1em !important; height:1em !important;
    background-color:currentColor !important;
    vertical-align:-0.125em !important;
    -webkit-mask-image:var(--bdx-i) !important; mask-image:var(--bdx-i) !important;
    -webkit-mask-repeat:no-repeat !important; mask-repeat:no-repeat !important;
    -webkit-mask-position:center !important; mask-position:center !important;
    -webkit-mask-size:contain !important; mask-size:contain !important;
  }

}


/* ============================================================================
   ===  v2.4 — PHONE-WIDTH FORMS: RESTACK RATHER THAN SCROLL  =================
   v2.2 made the AF form tables scroll horizontally so they stopped clipping.
   That stopped data being unreachable, but it is still poor to fill in: the
   label sits off-screen while you type into the field. This restacks each
   label/field pair vertically instead.

   WHY THIS IS SAFE — measured against the live captures:
     Equipment Removal : 29 rows → 7 one-cell, 22 two-cell (all label/field)
     AF1 Form          : 97 rows → 11 one-cell, 70 two-cell, 16 TEN-cell
   The ten-cell rows are the ADM/ACC/ARQ/RHS/CC/EQT/SHP/FAU/MTN/VEW permission
   grid, where the column layout carries meaning. Restacking those would destroy
   it. The same is true of the Permit To Work risk matrix. So the rule targets
   ONLY rows with no third cell, leaving every grid untouched.

   FALLBACK: this relies on :has(). A browser without support drops the whole
   block and keeps the v2.2 horizontal-scroll behaviour — degraded, not broken.
   The scroll rules are deliberately kept in a separate block for that reason.
   ============================================================================ */

@media (max-width:767.98px){

  /* rows with no third cell = label/field pairs → stack them */
  .card-body table tr:not(:has(> :nth-child(3))){
    display:block !important; width:100% !important;
    border-bottom:1px solid var(--bdx-border-soft) !important;
    padding:2px 0 8px !important;
  }
  .card-body table tr:not(:has(> :nth-child(3))) > td{
    display:block !important; width:100% !important; max-width:100% !important;
    border:0 !important; padding:4px 10px !important;
  }

  /* first cell becomes the label above its field */
  .card-body table tr:not(:has(> :nth-child(3))) > td:first-child{
    font-size:12px !important; font-weight:500 !important;
    color:var(--bdx-grey) !important; padding-bottom:0 !important;
    line-height:1.35 !important;
  }
  /* second cell is the control */
  .card-body table tr:not(:has(> :nth-child(3))) > td:nth-child(2){
    padding-top:2px !important;
  }
  .card-body table tr:not(:has(> :nth-child(3))) > td input,
  .card-body table tr:not(:has(> :nth-child(3))) > td select,
  .card-body table tr:not(:has(> :nth-child(3))) > td textarea{
    width:100% !important; max-width:100% !important; box-sizing:border-box !important;
  }

  /* once rows are stacked there is nothing to scroll — drop the scroll container
     so the form cannot also slide sideways */
  .card-body > table:has(tr:not(:has(> :nth-child(3)))),
  .card-body form table:has(tr:not(:has(> :nth-child(3)))){
    overflow-x:visible !important;
  }

  /* multi-cell grids (permission matrix, risk matrix) keep table layout and
     scroll on their own — they are meaningless stacked */
  .card-body table tr:has(> :nth-child(3)){ display:table-row !important; }
  .card-body table:has(tr > :nth-child(3)){
    display:block !important; overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }
}


/* ============================================================================
   ===  v2.6 — PHASE 2.5 FEEDBACK  ============================================
   Verified against the Phase 2.5 captures.
   ============================================================================ */

/* ---------------------------------------------------------------------------
   V26.1  Verify OTP — invisible text
   The skin is now loading on this page (thank you), which exposed two strings
   that were white-on-cyan in the old design and are now white-on-white:
     <h5 class="text-center text-white">2-Step Verification</h5>
     <span class="small" style="color:#fefefe">OTP is valid for only 5 Minutes</span>
   The first is Bootstrap's .text-white utility; the second is an inline style,
   so it needs !important to beat it.
   --------------------------------------------------------------------------- */
body.bg-login .text-white,
body.bg-login h5.text-white,
body.bg-login .login-card-body .text-white{
  color:var(--bdx-ink) !important;
}
body.bg-login h5.text-white{
  font-size:15px !important; font-weight:600 !important;
  letter-spacing:-.01em !important; margin:0 0 10px !important; text-align:left !important;
}
/* any near-white inline colour inside the login card — catches #fefefe, #fff, white */
body.bg-login .login-card-body [style*="color:#fefefe"],
body.bg-login .login-card-body [style*="color: #fefefe"],
body.bg-login .login-card-body [style*="color:#fff"],
body.bg-login .login-card-body [style*="color: #fff"],
body.bg-login .login-card-body [style*="color:white"],
body.bg-login .login-card-body [style*="color: white"]{
  color:var(--bdx-grey) !important;
}
body.bg-login .login-card-body p.small{
  font-size:13px !important; line-height:1.55 !important; color:var(--bdx-ink-2) !important;
  text-align:left !important; margin-bottom:18px !important;
}
body.bg-login .login-card-body p.small span.small{ font-size:12px !important; }

/* OTP: Submit / Back sit side by side — make Back the secondary action */
body.bg-login .submit-btn{ display:flex !important; gap:10px !important; }
body.bg-login .submit-btn .btn + .btn,
body.bg-login .submit-btn a.btn:last-child{
  background:#fff !important; color:var(--bdx-ink) !important;
  border-color:var(--bdx-border) !important;
}
body.bg-login .submit-btn .btn + .btn:hover{ background:#fafafa !important; border-color:#d5d9de !important; }

/* ---------------------------------------------------------------------------
   V26.2  Login / OTP logo is the WHITE asset (login_logo.png) on a light
   background, so it disappears. Darkening it in CSS is the no-markup fix.
   PREFERRED: point these templates at the dark logo asset instead — they
   already ship bdx-light-full.svg, so a bdx-dark-full.svg alongside it is the
   clean answer and this filter can then be deleted.
   --------------------------------------------------------------------------- */
body.bg-login .header .logo img,
body#landing-page .header .logo img{
  filter:brightness(0) !important;   /* renders any monochrome mark solid black */
  opacity:.92 !important;
}

/* give the login field a little more presence so it doesn't read as empty */
body.bg-login::before{ opacity:.9 !important; }

/* ---------------------------------------------------------------------------
   V26.3  Sidebar brand block — stray light edge on the top and left
   Defensive: strip every border, outline and shadow the framework or the asset
   could be contributing, and make sure the image sits on the rail colour.
   --------------------------------------------------------------------------- */
.main-sidebar .brand-link,
.main-sidebar a.brand-link{
  border-top:0 !important; border-left:0 !important; border-right:0 !important;
  outline:0 !important; box-shadow:none !important;
  background-color:var(--bdx-rail) !important;
  display:flex !important; align-items:center !important; gap:10px !important;
  padding:14px 16px !important;
}
.main-sidebar .brand-link:focus,
.main-sidebar .brand-link:active{ outline:0 !important; box-shadow:none !important; }
.main-sidebar .brand-image{
  border:0 !important; outline:0 !important; box-shadow:none !important;
  background:transparent !important; border-radius:0 !important;
  float:none !important; margin:0 !important; max-height:30px !important; width:auto !important;
  padding:0 !important;
}
.main-sidebar .brand-text{
  margin:0 !important; font-size:15px !important; font-weight:500 !important;
  color:var(--bdx-rail-text) !important; letter-spacing:-.01em !important;
}
/* the elevation class casts a shadow that can read as an edge against black */
.main-sidebar.elevation-4,.main-sidebar.elevation-3{ box-shadow:none !important; }

/* ---------------------------------------------------------------------------
   V26.4  Switch Data Center / Switch Customer slide-out
   Real markup: div.control-sidebar.control-sidebar-dark > div.p-2 rows, each
   holding a fa-square / fa-check-square icon and an <a>. Rows were rendering
   as pale boxes; this rebuilds them as a proper menu.
   --------------------------------------------------------------------------- */
.control-sidebar,.control-sidebar-dark,.control-customer-sidebar{
  background:var(--bdx-rail) !important;
  border-left:1px solid var(--bdx-rail-border) !important;
  box-shadow:-18px 0 40px rgba(0,0,0,.28) !important;
  padding:6px !important;
}
/* panel heading — the first .p-2 in each panel */
.control-sidebar > .p-2:first-child,
.control-customer-sidebar > .p-2:first-child{
  font-size:11px !important; font-weight:600 !important;
  letter-spacing:.10em !important; text-transform:uppercase !important;
  color:var(--bdx-rail-text) !important;
  padding:14px 12px 10px !important; margin-bottom:4px !important;
  border-bottom:1px solid var(--bdx-rail-border) !important;
}
/* every other row */
.control-sidebar > .p-2,
.control-customer-sidebar > .p-2{
  display:flex !important; align-items:center !important; gap:10px !important;
  padding:11px 12px !important; margin:2px 0 !important;
  border-radius:6px !important; background:transparent !important;
  font-size:13.5px !important; color:var(--bdx-rail-text) !important;
  transition:background .12s, color .12s !important;
}
.control-sidebar > .p-2:not(:first-child):hover,
.control-customer-sidebar > .p-2:not(:first-child):hover{
  background:rgba(255,255,255,.06) !important; color:#fff !important;
}
/* links inside rows must not carry their own box or colour */
.control-sidebar .p-2 a,
.control-customer-sidebar .p-2 a{
  background:transparent !important; border:0 !important; box-shadow:none !important;
  color:inherit !important; text-decoration:none !important;
  font-size:13.5px !important; padding:0 !important; margin:0 !important;
  display:inline !important; width:auto !important; flex:1 !important;
}
.control-sidebar .p-2:hover a,
.control-customer-sidebar .p-2:hover a{ color:#fff !important; }
.control-sidebar .p-2 i,
.control-customer-sidebar .p-2 i{
  color:var(--bdx-rail-text) !important; opacity:.7 !important; flex:none !important;
}
/* the currently selected data centre */
.control-sidebar .p-2:has(.fa-check-square),
.control-customer-sidebar .p-2:has(.fa-check-square){
  background:rgba(255,255,255,.07) !important; color:#fff !important;
}
.control-sidebar .p-2:has(.fa-check-square) i,
.control-customer-sidebar .p-2:has(.fa-check-square) i{
  color:var(--bdx-lime) !important; opacity:1 !important;
}

/* ---------------------------------------------------------------------------
   V26.5  Intermediate landing page  (body#landing-page.bg-login)
   The chooser between My BDx / SoftConnect / 360° View.
   NOTE: this page does NOT currently load the skin — see the changelog. These
   rules take effect as soon as the stylesheet link is added to that template.
   --------------------------------------------------------------------------- */
body#landing-page .landing-section{ padding:40px 24px !important; }
body#landing-page .box,
body#landing-page .box.with-backgroung{      /* their spelling, kept verbatim */
  background:#fff !important;
  border:1px solid var(--bdx-border) !important;
  border-radius:var(--bdx-radius-lg) !important;
  box-shadow:var(--bdx-shadow-sm) !important;
  padding:34px 28px !important; text-align:center !important;
  min-height:0 !important; transition:border-color .12s, box-shadow .12s !important;
}
body#landing-page .box:hover{
  border-color:#d5d9de !important; box-shadow:var(--bdx-shadow-md) !important;
}
body#landing-page .box-icon{ margin-bottom:20px !important; }
body#landing-page .box-icon img{
  max-height:46px !important; width:auto !important;
  filter:brightness(0) !important; opacity:.86 !important;
}
body#landing-page .box-title h2{
  font-size:20px !important; font-weight:600 !important;
  letter-spacing:-.02em !important; color:var(--bdx-ink) !important; margin:0 0 8px !important;
}
body#landing-page .box-content p{
  font-size:13.5px !important; color:var(--bdx-grey) !important; margin:0 0 20px !important;
}
body#landing-page .box-button a{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  height:38px !important; padding:0 20px !important;
  background:#fff !important; color:var(--bdx-ink) !important;
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius) !important;
  font-size:13.5px !important; font-weight:500 !important; text-decoration:none !important;
  transition:.12s !important;
}
body#landing-page .box-button a:hover{ background:#fafafa !important; border-color:#d5d9de !important; }
/* the primary card — My BDx */
body#landing-page .col-md-4:first-child .box{
  border-color:var(--bdx-ink) !important;
}
body#landing-page .col-md-4:first-child .box-button a{
  background:var(--bdx-lime) !important; border-color:var(--bdx-lime) !important;
  color:var(--bdx-ink) !important; font-weight:600 !important;
}
body#landing-page .col-md-4:first-child .box-button a:hover{
  background:var(--bdx-lime-hover) !important; border-color:var(--bdx-lime-hover) !important;
}


/* ============================================================================
   ===  v2.7 — LOGIN REDESIGN, CHOOSER, AND TABLE EMPHASIS  ===================
   Three things in this release:
     1. The login and OTP pages get the photographic treatment.
     2. The intermediate chooser page gets a proper hierarchy.
     3. Tables get their emphasis back (client note, point 2).

   ONE ASSET IS REQUIRED. Place the supplied background image at:
       /cp/assets/dist/img/login-bg.jpg
   If you put it elsewhere, change --bdx-login-bg below and nothing else.
   ============================================================================ */

:root{
  --bdx-login-bg: url("../img/login-bg.jpg");
  /* tuning — set for the supplied image, which is very dark already */
  --bdx-login-darken:   .30;
  --bdx-login-saturate: .45;
  --bdx-login-bright:  1.16;
  --bdx-login-contrast:1.06;
  --bdx-login-tint:     .13;
  --bdx-login-vignette: .58;
  --bdx-card-x:         70%;   /* card centre. 50% centres it. */
}

/* ---------------------------------------------------------------------------
   V27.1  Login + OTP: photographic background
   Replaces the light field introduced in v2.1. Four stacked layers on
   body.bg-login, all via pseudo-elements so no markup changes are needed.
   --------------------------------------------------------------------------- */
body.bg-login{
  background:#000 !important;
  position:relative !important;
  min-height:100vh !important;
}
/* layer 1 — the photograph, colour-corrected toward the brand palette */
body.bg-login::before{
  content:"" !important;
  position:fixed !important; inset:0 !important; z-index:0 !important;
  background-image:var(--bdx-login-bg) !important;
  background-size:cover !important;
  background-position:38% center !important;
  filter:saturate(var(--bdx-login-saturate)) brightness(var(--bdx-login-bright))
         contrast(var(--bdx-login-contrast)) !important;
  -webkit-mask-image:none !important; mask-image:none !important;
  opacity:1 !important;
}
/* layer 2 — flat scrim + corner vignette */
body.bg-login::after{
  content:"" !important;
  position:fixed !important; inset:0 !important; z-index:1 !important;
  background:
    rgba(5,7,10,var(--bdx-login-darken)),
    radial-gradient(108% 84% at 42% 48%, rgba(3,5,8,0) 34%, rgba(3,5,8,var(--bdx-login-vignette)) 100%) !important;
  pointer-events:none !important;
}
/* layer 3 — blue wash, unifies the chromatic edges. Uses the header as host so
   no extra element is needed; the header itself stays visible above it. */
body.bg-login .header{
  position:relative !important; z-index:3 !important;
  text-align:left !important; padding:0 !important;
}
body.bg-login .header::before{
  content:"" !important;
  position:fixed !important; inset:0 !important; z-index:-1 !important;
  background:var(--bdx-blue) !important;
  opacity:var(--bdx-login-tint) !important;
  mix-blend-mode:color !important; pointer-events:none !important;
}

/* the logo now sits on a DARK field, so the white asset is correct.
   This supersedes the v2.6 brightness(0) filter, which was only needed
   while the background was light. */
body.bg-login .header .logo{
  display:inline-block !important; padding:34px 0 0 44px !important;
}
body.bg-login .header .logo img,
body#landing-page .header .logo img{
  filter:none !important; opacity:1 !important;
  max-width:132px !important; height:auto !important;
}
/* NOTE: the #landing-page selector is repeated deliberately. The v2.6 rule that
   darkened this logo used an ID, which outranks a class-only selector — so the
   override has to match that specificity or the logo stays black on black. */
body#landing-page .header .logo{ padding:34px 0 0 44px !important; }

/* card sits right of centre, over the darkest part of the image */
body.bg-login .login-section{
  position:relative !important; z-index:4 !important;
  min-height:100vh !important; height:auto !important;
  display:flex !important; align-items:center !important;
  justify-content:flex-start !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
body.bg-login .login-box{
  width:100% !important; max-width:452px !important;
  margin-left:calc(var(--bdx-card-x) - 200px) !important;
  /* margin-left:calc(var(--bdx-card-x) - 226px) !important; */
  margin-right:0 !important;
}
body.bg-login .card-container,
body.bg-login .card-container .card,
body.bg-login .card-container .front{
  height:auto !important;
  min-height:auto !important;
}
body.bg-login .card-container .card{
  border-radius:12px !important;
  box-shadow:0 50px 120px rgba(0,0,0,.70), 0 10px 28px rgba(0,0,0,.40) !important;
  border:0 !important;
}
body.bg-login .login-card-body{ padding:42px 44px !important; }
/* a pool of dark behind the card so it lifts off the image */
body.bg-login .login-box::before{
  content:"" !important; position:absolute !important;
  left:50% !important; top:50% !important; transform:translate(-50%,-50%) !important;
  width:820px !important; height:860px !important; z-index:-1 !important;
  background:radial-gradient(closest-side, rgba(3,5,8,.80) 0%, rgba(3,5,8,.42) 50%, rgba(3,5,8,0) 100%) !important;
  filter:blur(10px) !important; pointer-events:none !important;
}
body.bg-login .login-box{ position:relative !important; }

/* footer text sits on the image */
body.bg-login .footer,body.bg-login .copyright{
  position:relative !important; z-index:4 !important;
  color:rgba(244,243,239,.40) !important; text-align:center !important; font-size:12px !important;
}

@media (max-width:760px){
  body.bg-login .login-section{ justify-content:center !important; min-height:0 !important; padding:24px 0 !important; }
  body.bg-login .login-box{ margin:0 auto !important; max-width:420px !important; padding:0 18px !important; }
  body.bg-login .login-card-body{ padding:30px 24px !important; }
  body.bg-login .header .logo{ padding:26px 0 0 22px !important; }
  body.bg-login .login-box::before{ width:520px !important; height:700px !important; }
}

/* ---------------------------------------------------------------------------
   V27.2  Intermediate chooser page  (body#landing-page)
   Supersedes V26.5. My BDx becomes the primary card; the other two are quiet
   glass. Icons are swapped to Lucide by masking the existing <img>, the same
   technique used for the portal icon set in v2.3 — no markup change.
   --------------------------------------------------------------------------- */
body#landing-page .landing-section{
  position:relative !important; z-index:4 !important;
  min-height:82vh !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  padding:60px 24px !important;
}
body#landing-page .box,
body#landing-page .box.with-backgroung{
  position:relative !important;
  background:rgba(244,243,239,.05) !important;
  border:1px solid rgba(244,243,239,.12) !important;
  border-radius:14px !important;
  backdrop-filter:blur(16px) saturate(130%) !important;
  -webkit-backdrop-filter:blur(16px) saturate(130%) !important;
  box-shadow:none !important;
  padding:32px 30px 30px !important;
  text-align:left !important; min-height:0 !important;
  display:flex !important; flex-direction:column !important;
}
body#landing-page .box-title h2{
  font-size:19px !important; font-weight:600 !important; letter-spacing:-.022em !important;
  color:var(--bdx-offwhite) !important; margin:0 0 7px !important;
}
body#landing-page .box-content p{
  font-size:13px !important; line-height:1.5 !important;
  color:rgba(244,243,239,.50) !important; margin:0 !important;
}
body#landing-page .box-button{ margin-top:auto !important; padding-top:24px !important; }
body#landing-page .box-button a{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  height:38px !important; padding:0 18px !important;
  background:transparent !important; color:var(--bdx-offwhite) !important;
  border:1px solid rgba(244,243,239,.22) !important; border-radius:var(--bdx-radius) !important;
  font-size:13.5px !important; font-weight:500 !important; text-decoration:none !important;
  transition:.12s !important;
}
body#landing-page .box-button a:hover{
  background:rgba(244,243,239,.08) !important; border-color:rgba(244,243,239,.34) !important;
}

/* icon: hide the bitmap, mask a Lucide glyph onto the container */
body#landing-page .box-icon{
  width:46px !important; height:46px !important; border-radius:12px !important;
  background:rgba(244,243,239,.07) !important;
  border:1px solid rgba(244,243,239,.13) !important;
  margin:0 0 22px !important; position:relative !important;
  display:grid !important; place-items:center !important;
}
body#landing-page .box-icon img{ opacity:0 !important; width:0 !important; height:0 !important; }
body#landing-page .box-icon::after{
  content:"" !important; position:absolute !important;
  width:22px !important; height:22px !important;
  background-repeat:no-repeat !important; background-position:center !important;
  background-size:contain !important;
}

/* --- the primary card --- */
body#landing-page .row > div:nth-child(1) .box{
  background:#fff !important; border-color:#fff !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  box-shadow:0 40px 90px rgba(0,0,0,.62), 0 8px 22px rgba(0,0,0,.36) !important;
}
body#landing-page .row > div:nth-child(1) .box-title h2{ color:var(--bdx-ink) !important; }
body#landing-page .row > div:nth-child(1) .box-content p{ color:var(--bdx-grey) !important; }
body#landing-page .row > div:nth-child(1) .box-icon{
  background:var(--bdx-ink) !important; border-color:var(--bdx-ink) !important;
}
body#landing-page .row > div:nth-child(1) .box-button a{
  background:var(--bdx-lime) !important; border-color:var(--bdx-lime) !important;
  color:var(--bdx-ink) !important; font-weight:600 !important;
}
body#landing-page .row > div:nth-child(1) .box-button a:hover{
  background:var(--bdx-lime-hover) !important; border-color:var(--bdx-lime-hover) !important;
}
/* "Your portal" marker, added without markup */
body#landing-page .row > div:nth-child(1) .box::before{
  content:"Your portal" !important;
  position:absolute !important; top:18px !important; right:18px !important;
  font-family:var(--bdx-mono) !important; font-size:10px !important;
  letter-spacing:.12em !important; text-transform:uppercase !important; font-weight:500 !important;
  padding:4px 10px !important; border-radius:99px !important;
  background:var(--bdx-offwhite) !important; color:var(--bdx-grey) !important;
  border:1px solid var(--bdx-border) !important;
}

@media (max-width:760px){
  body#landing-page .landing-section{ padding:40px 18px !important; min-height:0 !important; }
  body#landing-page .box{ padding:26px 24px 24px !important; margin-bottom:14px !important; }
}

/* ---------------------------------------------------------------------------
   V27.3  Table emphasis  (client note, point 2)
   The concern is fair: an eleven-column, fifty-row table is harder to scan
   with a quiet header than it was with a filled navy one. Rather than reinstate
   colour fills, emphasis is rebuilt from contrast, weight and structure — which
   is what actually made the old version scannable.
   --------------------------------------------------------------------------- */
/* header: darker, heavier, stronger rule, and it stays put while you scroll */
.table thead th,
table.dataTable thead th,
table.dataTable thead td{
  color:var(--bdx-ink) !important;
  font-weight:600 !important;
  font-size:11.5px !important;
  background:#f7f8f9 !important;
  border-bottom:2px solid #d9dde1 !important;
  position:sticky !important; top:0 !important; z-index:2 !important;
}
/* first column anchors each row */
.table tbody td:first-child,
table.dataTable tbody td:first-child{
  color:var(--bdx-ink) !important; font-weight:500 !important;
}
/* row separation a touch stronger than the hairline */
.table tbody td,table.dataTable tbody td{ border-top-color:#eceef0 !important; }
.table tbody tr:last-child td,
.table tbody tr:last-child th,
table.dataTable tbody tr:last-child td,
table.dataTable tbody tr:last-child th{
  border-bottom-color:#eceef0 !important;
}
.table tbody tr:hover td,table.dataTable tbody tr:hover td{ background:#f6f8ff !important; }

/* section headings inside cards read as headings again */
.card-header .card-title{ font-size:15.5px !important; font-weight:600 !important; color:var(--bdx-ink) !important; }
.card-body > h4,.card-body > .h4,.card-body > div > h4{
  font-size:16px !important; font-weight:600 !important; color:var(--bdx-ink) !important;
  padding-bottom:10px !important; margin-bottom:16px !important;
  border-bottom:1px solid var(--bdx-border) !important;
}

/* long tables get banding back — only where it earns its keep */
.table.table-striped tbody tr:nth-of-type(odd) td,
table.dataTable.table-striped tbody tr:nth-of-type(odd) td{
  background:#fcfcfd !important;
}

/* numeric columns align and use tabular figures so they compare down the column */
.table td.text-right,.table th.text-right,
table.dataTable td.text-right,table.dataTable th.text-right{
  text-align:right !important; font-variant-numeric:tabular-nums !important;
}

/* NOTE ON STATUS COLUMNS
   The largest remaining scannability win needs one markup change: status values
   render as bare text (<td>closed</td>), so there is no element to style. Wrap
   the value in a span and the pills below activate immediately:
       <td><span class="bdx-status">closed</span></td>                          */
.bdx-status{
  display:inline-flex !important; align-items:center !important; gap:6px !important;
  font-size:11.5px !important; font-weight:500 !important;
  padding:4px 10px !important; border-radius:99px !important;
  text-transform:capitalize !important; border:1px solid transparent !important;
  background:#f3f4f6 !important; color:var(--bdx-grey) !important; border-color:#eceef0 !important;
}
.bdx-status::before{ content:"" !important; width:5px !important; height:5px !important; border-radius:50% !important; background:currentColor !important; }
.bdx-status[data-state="approved"],.bdx-status[data-state="closed-won"]{ background:#f0fdf4 !important; color:#166534 !important; border-color:#dcfce7 !important; }
.bdx-status[data-state="rejected"]{ background:#fef3f2 !important; color:#b42318 !important; border-color:#fee4e2 !important; }
.bdx-status[data-state="new"],.bdx-status[data-state="open"]{ background:#fffbeb !important; color:#92400e !important; border-color:#fef3c7 !important; }


/* ============================================================================
   ===  v2.8 — v2.7 FEEDBACK  =================================================
   ============================================================================
   IMPORTANT — STYLESHEET LOAD ORDER
   The v2.7 captures show four stylesheets loading in the <body>, AFTER this
   skin: OverlayScrollbars.min.css, dataTables.bootstrap4.min.css,
   responsive.bootstrap4.min.css and bootstrap.min.css.

   That is the root cause of several items in this round — the sidebar
   scrollbar, the DataTables pagination and the form control colours are all
   governed by files that now load after us. Every rule below is written
   defensively with !important so it wins anyway, but the clean fix is to move
   the bdx-portal-skin.css <link> to the END of the <body>, after those four.
   If you do that, this stylesheet becomes far more robust to future changes.
   ============================================================================ */

/* ---------------------------------------------------------------------------
   V28.1  Login / OTP — the scrollbars
   Cause: the v2.7 glow was an absolutely positioned pseudo-element 820x860px
   inside a 452px .login-box. It extended past the viewport on all four sides
   and produced both scrollbars. It is now folded into the fixed background
   layer instead, so it cannot affect layout at all.
   --------------------------------------------------------------------------- */
body.bg-login,
body#landing-page.bg-login{
  overflow-x:hidden !important;
}
/* remove the offending element outright */
body.bg-login .login-box::before{ content:none !important; display:none !important; }

/* the glow now lives in the fixed scrim layer */
body.bg-login::after{
  background:
    radial-gradient(closest-side at var(--bdx-card-x) 50%,
      rgba(3,5,8,.80) 0%, rgba(3,5,8,.42) 46%, rgba(3,5,8,0) 100%),
    rgba(5,7,10,var(--bdx-login-darken)),
    radial-gradient(108% 84% at 42% 48%, rgba(3,5,8,0) 34%, rgba(3,5,8,var(--bdx-login-vignette)) 100%) !important;
}
/* the fixed layers must never be scroll hosts */
body.bg-login::before,body.bg-login::after,
body.bg-login .header::before{ pointer-events:none !important; }

/* ---------------------------------------------------------------------------
   V28.2  White logo, no tagline  (login / OTP / chooser)
   Two new assets are supplied:
       bdx-logo-white.svg       wordmark only, white  ← recommended
       bdx-logo-white-full.svg  wordmark + DATA CENTERS, white
   Point the three templates at one of them and the rules below simply size it.
   Until then, the filter converts whatever is there to solid white so nothing
   is invisible in the meantime.
   --------------------------------------------------------------------------- */
body.bg-login .header .logo img,
body#landing-page .header .logo img{
  /* brightness(0) crushes to black, invert(1) flips to white — works for any
     monochrome asset, including the dark SVG and the PNG with the tagline */
  filter:brightness(0) invert(1) !important;
  opacity:1 !important;
  width:auto !important; max-width:150px !important;
  height:auto !important; 
  /* max-height:46px !important; */
}
/* once a white asset is in place, delete the filter above — it is a no-op on
   white artwork but costs a repaint. */
body.bg-login .header .logo,
body#landing-page .header .logo{
  padding:30px 0 0 40px !important; display:inline-block !important;
}
@media (max-width:760px){
  body.bg-login .header .logo,
  body#landing-page .header .logo{ padding:22px 0 0 20px !important; }
  body.bg-login .header .logo img{ max-width:118px !important; }
}

/* ---------------------------------------------------------------------------
   V28.3  Chooser icons
   Cause: the v2.7 data URIs were double-encoded — the stroke colour resolved to
   "%2313171a" rather than "#13171a", which is invalid, so the glyph drew
   nothing and the tiles rendered as empty squares. Re-encoded correctly, and
   all three glyphs are now white (the primary card's ink square previously
   carried an ink glyph, i.e. dark on dark).
   --------------------------------------------------------------------------- */
body#landing-page .box-icon{
  width:46px !important; height:46px !important; border-radius:12px !important;
  display:grid !important; place-items:center !important;
  position:relative !important; overflow:hidden !important;
  margin:0 0 22px !important;
  background:rgba(244,243,239,.07) !important;
  border:1px solid rgba(244,243,239,.13) !important;
}
body#landing-page .box-icon img,
body#landing-page .box-icon img.img-front{
  opacity:0 !important; width:0 !important; height:0 !important;
  position:absolute !important; pointer-events:none !important;
}
body#landing-page .box-icon::after{
  content:"" !important; position:absolute !important;
  left:50% !important; top:50% !important;
  transform:translate(-50%,-50%) !important;
  width:22px !important; height:22px !important;
  background-repeat:no-repeat !important; background-position:center !important;
  background-size:contain !important;
}
body#landing-page .row > div:nth-child(1) .box-icon::after{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23f4f3ef%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Crect%20width%3D%2220%22%20height%3D%228%22%20x%3D%222%22%20y%3D%222%22%20rx%3D%222%22%20ry%3D%222%22%20%2F%3E%20%3Crect%20width%3D%2220%22%20height%3D%228%22%20x%3D%222%22%20y%3D%2214%22%20rx%3D%222%22%20ry%3D%222%22%20%2F%3E%20%3Cline%20x1%3D%226%22%20x2%3D%226.01%22%20y1%3D%226%22%20y2%3D%226%22%20%2F%3E%20%3Cline%20x1%3D%226%22%20x2%3D%226.01%22%20y1%3D%2218%22%20y2%3D%2218%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
body#landing-page .row > div:nth-child(2) .box-icon::after{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23f4f3ef%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%20%2F%3E%20%3Cpath%20d%3D%22M12%202a14.5%2014.5%200%200%200%200%2020%2014.5%2014.5%200%200%200%200-20%22%20%2F%3E%20%3Cpath%20d%3D%22M2%2012h20%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
body#landing-page .row > div:nth-child(3) .box-icon::after{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23f4f3ef%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%20%3Cpath%20d%3D%22m15.194%2013.707%203.814%201.86-1.86%203.814%22%20%2F%3E%20%3Cpath%20d%3D%22M16.47214%207.52786%20A%205%2010%200%201%200%2013%2021.79796%22%20%2F%3E%20%3Cpath%20d%3D%22M21.79796%2011%20A%2010%205%200%201%200%2019%2015.57071%22%20%2F%3E%20%3C%2Fsvg%3E") !important; }
/* primary card: ink square, white glyph */
body#landing-page .row > div:nth-child(1) .box-icon{
  background:var(--bdx-ink) !important; border-color:var(--bdx-ink) !important;
}

/* ---------------------------------------------------------------------------
   V28.4  Table + card headers — stronger emphasis
   You have asked for this twice, so this delivers it properly: a solid dark
   header rather than a light fill. It uses the brand near-black rather than
   the old navy, which gives equal or greater contrast than the previous theme
   while staying on palette.
   --------------------------------------------------------------------------- */
.table thead th,
table.dataTable thead th,
table.dataTable thead td,
.table > thead > tr > th{
  background:var(--bdx-ink) !important;
  color:var(--bdx-offwhite) !important;
  font-weight:600 !important;
  font-size:11.5px !important;
  letter-spacing:.05em !important;
  text-transform:uppercase !important;
  border-bottom:0 !important;
  border-top:0 !important;
  border-color:rgba(244,243,239,.14) !important;
  padding:13px 16px !important;
  position:sticky !important; top:0 !important; z-index:2 !important;
}
/* sort arrows have to be legible on the dark fill */
table.dataTable thead th.sorting:after,table.dataTable thead th.sorting:before,
table.dataTable thead th.sorting_asc:after,table.dataTable thead th.sorting_asc:before,
table.dataTable thead th.sorting_desc:after,table.dataTable thead th.sorting_desc:before,
table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after{
  color:var(--bdx-offwhite) !important; opacity:.55 !important;
}
table.dataTable thead th.sorting_asc:after,table.dataTable thead th.sorting_desc:after{ opacity:1 !important; }
/* rounded top corners on the first/last header cell inside a card */
.card .table thead tr th:first-child,
.card table.dataTable thead tr th:first-child{ border-top-left-radius:6px !important; }
.card .table thead tr th:last-child,
.card table.dataTable thead tr th:last-child{ border-top-right-radius:6px !important; }

/* card headers: filled, with a stronger rule */
.card-header{
  background:#f4f5f6 !important;
  /* border-bottom:1px solid #dfe3e7 !important; */
  border-bottom: 1px solid #13171a61 !important;
  padding:14px 18px !important;
}
.card-header .card-title,.card-header h3.card-title{
  font-size:15px !important; font-weight:600 !important;
  color:var(--bdx-ink) !important; letter-spacing:-.01em !important;
}
/* in-card section headings ("Dashboard", "Status Overview") */
.card-body > h4,.card-body > .h4,.card-body > div > h4,
.card-body > h3,.card-body > div > h3{
  font-size:16px !important; font-weight:600 !important;
  color:var(--bdx-ink) !important;
  padding-bottom:10px !important; margin-bottom:16px !important;
  border-bottom:2px solid var(--bdx-ink) !important; display:block !important;
}

/* ---------------------------------------------------------------------------
   V28.5  DataTables — search alignment and pagination
   Real markup: .dataTables_filter > label > input   (DataTables puts the input
   INSIDE the label, and right-aligns the block). v2.1 set the label to flex,
   which killed that alignment and left a gap on the right.
   --------------------------------------------------------------------------- */
.dataTables_wrapper .dataTables_filter{ text-align:right !important; }
.dataTables_wrapper .dataTables_filter label{
  display:inline-flex !important; align-items:center !important;
  justify-content:flex-end !important; gap:10px !important;
  width:auto !important; margin-bottom:0 !important;
  font-weight:500 !important; color:var(--bdx-ink-2) !important; font-size:12.5px !important;
}
.dataTables_wrapper .dataTables_filter input{
  width:240px !important; max-width:100% !important; margin:0 !important;
  height:34px !important; padding:0 12px !important;
  border:1px solid var(--bdx-border) !important; border-radius:var(--bdx-radius) !important;
}
.dataTables_wrapper .dataTables_length label{
  display:inline-flex !important; align-items:center !important; gap:10px !important;
  margin-bottom:0 !important; font-weight:500 !important;
  color:var(--bdx-ink-2) !important; font-size:12.5px !important;
}

/* pagination — a single connected control rather than loose boxes */
.dataTables_wrapper .dataTables_paginate{ padding-top:0 !important; }
.dataTables_wrapper .pagination{
  margin:0 !important; gap:0 !important;
  display:inline-flex !important; align-items:center !important;
  border:1px solid var(--bdx-border) !important;
  border-radius:var(--bdx-radius) !important; overflow:hidden !important;
  background:#fff !important;
}
.dataTables_wrapper .pagination .page-item{ margin:0 !important; }
.dataTables_wrapper .pagination .page-item + .page-item{
  border-left:1px solid var(--bdx-border) !important;
}
.dataTables_wrapper .pagination .page-item .page-link{
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
  background:#fff !important; color:var(--bdx-ink-2) !important;
  padding:0 14px !important; height:34px !important; line-height:34px !important;
  font-size:12.5px !important; font-weight:500 !important;
  min-width:38px !important; text-align:center !important;
}
.dataTables_wrapper .pagination .page-item .page-link:hover{
  background:var(--bdx-offwhite) !important; color:var(--bdx-ink) !important;
}
.dataTables_wrapper .pagination .page-item.active .page-link{
  background:var(--bdx-ink) !important; color:#fff !important; font-weight:600 !important;
}
.dataTables_wrapper .pagination .page-item.disabled .page-link{
  background:#fafafa !important; color:#c3c7cc !important; cursor:not-allowed !important;
}
.dataTables_wrapper .pagination .page-item .page-link:focus{
  box-shadow:none !important; outline:none !important;
}
@media (max-width:760px){
  .dataTables_wrapper .dataTables_filter{ text-align:left !important; margin-top:10px !important; }
  .dataTables_wrapper .dataTables_filter label{ width:100% !important; justify-content:flex-start !important; }
  .dataTables_wrapper .dataTables_filter input{ flex:1 !important; width:auto !important; }
}

/* ---------------------------------------------------------------------------
   V28.6  Form controls — selected, hover and focus colours
   Applies to every select on the site, including the DataTables page-length
   control. See the note at the end of this block about native dropdown lists.
   --------------------------------------------------------------------------- */
.form-control:focus,.custom-select:focus,
select:focus,input:not(.select2-search__field):focus,textarea:focus,
.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus{
  border-color:var(--bdx-blue) !important;
  box-shadow:0 0 0 3px rgba(45,67,232,.18) !important;
  outline:none !important;
}
.form-control:hover:not(:focus),.custom-select:hover:not(:focus),
select:hover:not(:focus){ border-color:#c9ced4 !important; }

/* text selection highlight, so the blue matches the brand */
::selection{ background:rgba(45,67,232,.22) !important; color:var(--bdx-ink) !important; }

/* ==========================================================================
   GLOBAL DROPDOWN & SELECT STYLING (Native <select>, Select2, Bootstrap Dropdowns)
   - Active / Selected = Dark Ink (#13171a) with White Text (#ffffff)
   - Hover / Highlighted = Neon Lime (#dcf42c) with Dark Text (#13171a)
   ========================================================================== */

/* 1. Native <select>, .form-select, .custom-select Options */
select option,
.form-select option,
.custom-select option,
.dataTables_length select option,
body.bg-login select option,
body.bg-login select.form-control option {
  background-color: #ffffff !important;
  color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
  padding: 6px 10px !important;
}

/* Native Select: Selected / Checked option (Dark Ink resting state by default) */
select option:checked,
select option:checked:focus,
select option[selected],
.form-select option:checked,
.form-select option:checked:focus,
.form-select option[selected],
.custom-select option:checked,
.custom-select option:checked:focus,
.custom-select option[selected],
select:focus > option:checked,
body.bg-login select option:checked,
body.bg-login select option:checked:focus,
body.bg-login select option[selected],
body.bg-login select:focus > option:checked {
  background: var(--color-primary, var(--bdx-ink, #13171a)) linear-gradient(0deg, var(--color-primary, var(--bdx-ink, #13171a)), var(--color-primary, var(--bdx-ink, #13171a))) !important;
  background-color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
  color: var(--color-white, #ffffff) !important;
  font-weight: 500 !important;
}

/* Native Select: Hover option (Neon Lime with Dark Text - only on explicit mouse hover) */
select option:hover,
.form-select option:hover,
.custom-select option:hover,
select option:checked:hover,
select option[selected]:hover,
body.bg-login select option:hover,
body.bg-login select option:checked:hover,
body.bg-login select option[selected]:hover {
  background: var(--color-secondary, var(--bdx-lime, #dcf42c)) linear-gradient(0deg, var(--color-secondary, var(--bdx-lime, #dcf42c)), var(--color-secondary, var(--bdx-lime, #dcf42c))) !important;
  background-color: var(--color-secondary, var(--bdx-lime, #dcf42c)) !important;
  color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
}

/* DataTables length dropdown: Selected / Checked option stays Dark Ink with White Text, even when hovered */
.dataTables_length select option:checked,
.dataTables_length select option:checked:hover,
.dataTables_length select option:checked:focus,
.dataTables_length select option:checked:active,
.dataTables_length select option[selected],
.dataTables_length select option[selected]:hover,
.dataTables_length select option[selected]:focus,
.dataTables_length select option[selected]:active,
.dataTables_wrapper .dataTables_length select option:checked,
.dataTables_wrapper .dataTables_length select option:checked:hover,
.dataTables_wrapper .dataTables_length select option:checked:focus,
.dataTables_wrapper .dataTables_length select option:checked:active,
.dataTables_wrapper .dataTables_length select option[selected],
.dataTables_wrapper .dataTables_length select option[selected]:hover,
.dataTables_wrapper .dataTables_length select option[selected]:focus,
.dataTables_wrapper .dataTables_length select option[selected]:active,
select[name="dataTable_length"] option:checked,
select[name="dataTable_length"] option:checked:hover,
select[name="dataTable_length"] option:checked:focus,
select[name="dataTable_length"] option:checked:active,
select[name="dataTable_length"] option[selected],
select[name="dataTable_length"] option[selected]:hover,
select[name="dataTable_length"] option[selected]:focus,
select[name="dataTable_length"] option[selected]:active {
  background: var(--color-primary, var(--bdx-ink, #13171a)) linear-gradient(0deg, var(--color-primary, var(--bdx-ink, #13171a)), var(--color-primary, var(--bdx-ink, #13171a))) !important;
  background-color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
  color: #ffffff !important;
  font-weight: 500 !important;
}

/* Modern Chromium (Chrome / Edge 135+) Customizable Select Opt-in:
   Enables CSS control over native option hover, active, and selected-active states */
@supports (appearance: base-select) {
  select:not([multiple]),
  body.bg-login select,
  body.bg-login select.form-control,
  body.bg-login select:not([multiple]),
  ::picker(select) {
    appearance: base-select !important;
  }

  select:not([multiple]),
  body.bg-login select,
  body.bg-login select.form-control {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
    cursor: pointer;
  }

  select:not([multiple]):focus,
  select:not([multiple]):focus-visible,
  select:not([multiple]):open,
  body.bg-login select:focus,
  body.bg-login select:focus-visible,
  body.bg-login select:open,
  body.bg-login select.form-control:focus,
  body.bg-login select.form-control:focus-visible,
  body.bg-login select.form-control:open {
    border-color: var(--bdx-blue) !important;
    box-shadow: var(--bdx-ring) !important;
    outline: none !important;
  }

  ::picker-icon {
    margin-left: auto;
    font-size: 0.7rem;
    color: #6b7280;
    transition: transform 0.15s ease-in-out;
  }

  select:open::picker-icon {
    transform: rotate(180deg);
  }

  /* DataTables Length Select in modern Chromium (appearance: base-select) */
  .dataTables_wrapper .dataTables_length select {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    vertical-align: middle !important;
    background-image: none !important;
    padding: .25rem .6rem .25rem .65rem !important;
  }
  .dataTables_wrapper .dataTables_length select::picker-icon {
    margin-left: auto !important;
    font-size: 0.7rem !important;
    color: #6b7280 !important;
    display: inline-block !important;
    position: static !important;
    vertical-align: middle !important;
    line-height: 1 !important;
  }

  ::picker(select) {
    background-color: #ffffff !important;
    border: 1px solid #ced4da !important;
    border-radius: 4px !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15) !important;
    padding: 4px 0 !important;
  }

  select:not([multiple]) option,
  body.bg-login select option,
  body.bg-login select.form-control option {
    font-family: inherit;
    padding: 7px 14px !important;
    background-color: #ffffff !important;
    color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
    cursor: pointer !important;
  }

  /* 1. Active / Selected option: Stays Dark Ink (#13171a) with White Text on initial dropdown open & focus */
  select:not([multiple]) option:checked,
  select:not([multiple]) option:checked:focus,
  body.bg-login select option:checked,
  body.bg-login select option:checked:focus,
  body.bg-login select.form-control option:checked,
  body.bg-login select.form-control option:checked:focus {
    background-color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
    color: #ffffff !important;
  }
  select:not([multiple]) option:checked::checkmark,
  select:not([multiple]) option:checked:focus::checkmark,
  body.bg-login select option:checked::checkmark,
  body.bg-login select option:checked:focus::checkmark,
  body.bg-login select.form-control option:checked::checkmark,
  body.bg-login select.form-control option:checked:focus::checkmark {
    color: #ffffff !important;
  }

  /* 2. Hover / Highlighted unselected option: Neon Lime (#dcf42c) with Dark Text (#13171a) */
  select:not([multiple]) option:not(:checked):hover,
  body.bg-login select option:not(:checked):hover,
  body.bg-login select.form-control option:not(:checked):hover {
    background-color: var(--color-secondary, var(--bdx-lime, #dcf42c)) !important;
    color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
  }

  /* 3. Selected-Active: ONLY when mouse explicitly hovers over the selected option */
  select:not([multiple]) option:checked:hover,
  body.bg-login select option:checked:hover,
  body.bg-login select.form-control option:checked:hover {
    background-color: var(--color-secondary, var(--bdx-lime, #dcf42c)) !important;
    color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
  }
  select:not([multiple]) option:checked:hover::checkmark,
  body.bg-login select option:checked:hover::checkmark,
  body.bg-login select.form-control option:checked:hover::checkmark {
    color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
  }

  /* DataTables length dropdown: Selected option on hover in Chromium base-select */
  .dataTables_length select option:checked,
  .dataTables_length select option:checked:hover,
  .dataTables_length select option:checked:focus,
  .dataTables_length select option:checked:active,
  .dataTables_length select option[selected],
  .dataTables_length select option[selected]:hover,
  .dataTables_wrapper .dataTables_length select option:checked,
  .dataTables_wrapper .dataTables_length select option:checked:hover,
  .dataTables_wrapper .dataTables_length select option:checked:focus,
  .dataTables_wrapper .dataTables_length select option:checked:active,
  .dataTables_wrapper .dataTables_length select option[selected],
  .dataTables_wrapper .dataTables_length select option[selected]:hover,
  select[name="dataTable_length"] option:checked,
  select[name="dataTable_length"] option:checked:hover,
  select[name="dataTable_length"] option:checked:focus,
  select[name="dataTable_length"] option:checked:active,
  select[name="dataTable_length"] option[selected],
  select[name="dataTable_length"] option[selected]:hover {
    background: var(--color-primary, var(--bdx-ink, #13171a)) !important;
    background-color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
    color: #ffffff !important;
  }
  .dataTables_length select option:checked::checkmark,
  .dataTables_length select option:checked:hover::checkmark,
  .dataTables_wrapper .dataTables_length select option:checked::checkmark,
  .dataTables_wrapper .dataTables_length select option:checked:hover::checkmark,
  select[name="dataTable_length"] option:checked::checkmark,
  select[name="dataTable_length"] option:checked:hover::checkmark {
    color: #ffffff !important;
  }
}

/* 2. Select2 Dropdowns */
/* Active / Selected option (dark resting state by default, even on initial dropdown open) */
.select2-container--default .select2-results__option[aria-selected=true],
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option--selected {
  background-color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
  color: var(--color-white, #ffffff) !important;
}

/* Hover / Highlighted state (neon lime) - applies to unselected items when hovered / keyboard active */
.select2-container--default .select2-results__option--highlighted:not([aria-selected=true]):not([aria-selected="true"]),
.select2-container--default .select2-results__option:not([aria-selected=true]):not([aria-selected="true"]):hover {
  background-color: var(--color-secondary, var(--bdx-lime, #dcf42c)) !important;
  color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
}

/* When mouse explicitly hovers over an already selected item */
.select2-container--default .select2-results__option[aria-selected=true]:hover,
.select2-container--default .select2-results__option[aria-selected="true"]:hover,
.select2-container--default .select2-results__option--selected:hover {
  background-color: var(--color-secondary, var(--bdx-lime, #dcf42c)) !important;
  color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
}

/* 3. Bootstrap Dropdown Menus (.dropdown-item) */
.dropdown-item.active,
.dropdown-item:active {
  background-color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
  color: var(--color-white, #ffffff) !important;
}
.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--color-secondary, var(--bdx-lime, #dcf42c)) !important;
  color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
}
.dropdown-item.active:hover,
.dropdown-item:active:hover {
  background-color: var(--color-secondary, var(--bdx-lime, #dcf42c)) !important;
  color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
}

/* 4. Flatpickr Month Dropdowns */
.flatpickr-monthDropdown-months option:checked,
.flatpickr-monthDropdown-months option[selected] {
  background: var(--color-primary, var(--bdx-ink, #13171a)) linear-gradient(0deg, var(--color-primary, var(--bdx-ink, #13171a)), var(--color-primary, var(--bdx-ink, #13171a))) !important;
  color: #fff !important;
}
.flatpickr-monthDropdown-months option:hover,
.flatpickr-monthDropdown-months option:focus {
  background: var(--color-secondary, var(--bdx-lime, #dcf42c)) linear-gradient(0deg, var(--color-secondary, var(--bdx-lime, #dcf42c)), var(--color-secondary, var(--bdx-lime, #dcf42c))) !important;
  color: var(--color-primary, var(--bdx-ink, #13171a)) !important;
}

/* ---------------------------------------------------------------------------
   V28.7  Sidebar scrollbar
   OverlayScrollbars.min.css reloads in the <body> after this skin, so its own
   theme was winning. These rules are scoped hard and use !important to sit on
   top of it, and the native scrollbar underneath is suppressed as well.
   --------------------------------------------------------------------------- */
.main-sidebar .os-viewport,
.main-sidebar .sidebar,
.main-sidebar .os-content{
  scrollbar-width:none !important; -ms-overflow-style:none !important;
}
.main-sidebar .os-viewport::-webkit-scrollbar,
.main-sidebar .sidebar::-webkit-scrollbar,
.main-sidebar .os-content::-webkit-scrollbar{
  width:0 !important; height:0 !important; display:none !important;
}
/* OverlayScrollbars' own bar — slim, translucent, only while scrolling */
.main-sidebar .os-scrollbar.os-scrollbar-vertical{
  width:8px !important; padding:2px !important; right:0 !important;
  background:transparent !important;
}
.main-sidebar .os-scrollbar.os-scrollbar-vertical .os-scrollbar-track{
  background:transparent !important; border-radius:99px !important;
}
.main-sidebar .os-scrollbar.os-scrollbar-vertical .os-scrollbar-handle{
  background:rgba(244,243,239,.18) !important;
  border-radius:99px !important; width:4px !important; margin:0 auto !important;
  transition:background .15s !important;
}
.main-sidebar:hover .os-scrollbar.os-scrollbar-vertical .os-scrollbar-handle{
  background:rgba(244,243,239,.30) !important;
}
.main-sidebar .os-scrollbar.os-scrollbar-vertical .os-scrollbar-handle:hover,
.main-sidebar .os-scrollbar.os-scrollbar-vertical .os-scrollbar-handle:active{
  background:rgba(244,243,239,.48) !important;
}
.main-sidebar .os-scrollbar.os-scrollbar-horizontal,
.main-sidebar .os-scrollbar-corner{ display:none !important; }

/* main content scrollbars, for consistency */
.content-wrapper{ scrollbar-width:thin !important; scrollbar-color:#cfd4d9 transparent !important; }
.content-wrapper::-webkit-scrollbar{ width:10px !important; height:10px !important; }
.content-wrapper::-webkit-scrollbar-track{ background:transparent !important; }
.content-wrapper::-webkit-scrollbar-thumb{ background:#cfd4d9 !important; border-radius:99px !important; border:3px solid #fafafa !important; }
.content-wrapper::-webkit-scrollbar-thumb:hover{ background:#b6bcc2 !important; }


/* ============================================================================
   ===  v2.9 — v2.8 FEEDBACK  =================================================
   ============================================================================
   ON STYLESHEET PLACEMENT — REVISED ADVICE
   Our v2.8 note suggested moving this file to the end of <body>. That was the
   right instinct for the cascade but the wrong trade: a stylesheet in <body> is
   not render-blocking, so the page paints once unstyled and again when the skin
   arrives — the flash you saw.

   KEEP THIS FILE IN <head>, LAST. It is render-blocking there, so there is no
   flash. The cascade is handled instead by !important, which every rule here
   already carries and which beats a normal declaration regardless of order.

   THE REAL FIX, when convenient: move the four stylesheets currently loaded in
   <body> — OverlayScrollbars, dataTables.bootstrap4, responsive.bootstrap4 and
   bootstrap.min — up into <head>, ABOVE this file. Stylesheets in <body> are
   the cause of the residual flash you are still seeing on internal pages, and
   that is true independently of anything in this skin. Once they are in <head>,
   placement and cascade are both correct and the flash goes entirely.
   ============================================================================ */

/* ---------------------------------------------------------------------------
   V29.1  Logo rendering at 0px
   Cause: the supplied SVG carried a viewBox but no intrinsic width/height
   attributes. With width:auto/height:auto an <img> then has no size to resolve
   and several engines collapse it to zero. Fixed in two places — the asset now
   carries explicit dimensions, and the height below is explicit, not auto.
   Re-download bdx-logo-white-full.svg with this release.

   SIZED FOR THE FULL LOCKUP (bdx-logo-white-full.svg — "BDx" over
   "DATA CENTERS"). That is a 1.75:1 stacked mark whose lower third is the
   DATA CENTERS line, so it needs more height than a wordmark would: at 42px
   that line falls to roughly 7px cap height and stops being legible. 52px puts
   it near 9px, which reads cleanly. If the mark is ever swapped for a
   wordmark-only version, these heights should come back down.
   --------------------------------------------------------------------------- */
body.bg-login .header .logo img,
body#landing-page .header .logo img{
  display:block !important;
  /* height:52px !important;         
  width:auto !important;
  max-width:220px !important;
  max-height:52px !important;
  min-height:52px !important; */
  object-fit:contain !important;
  filter:none !important;          
  opacity:1 !important;
  width: 132px !important;
  max-width: 132px !important;
  height: auto !important;
}
body.bg-login .header,
body#landing-page .header{ position:relative !important; z-index:5 !important; }
body.bg-login .header .logo,
body#landing-page .header .logo{
  display:inline-block !important; padding:30px 0 0 40px !important;
}
body.bg-login .header .logo a,
body#landing-page .header .logo a{ display:inline-block !important; line-height:0 !important; }

/* centred on mobile */
@media (max-width:760px){
  body.bg-login .header,
  body#landing-page .header{ text-align:center !important; }
  body.bg-login .header .logo,
  body#landing-page .header .logo{
    display:block !important; padding:26px 0 0 !important; text-align:center !important;
  }
  body.bg-login .header .logo a,
  body#landing-page .header .logo a{ display:inline-block !important; }
  body.bg-login .header .logo img,
  body#landing-page .header .logo img{
    margin:0 auto !important; height:44px !important;
    min-height:44px !important; 
    max-height:44px !important;
  }
}

/* ---------------------------------------------------------------------------
   V29.2  Pagination — the <li> reset
   Cause: a rule from the very first release styled `.paginate_button`, which is
   the <li>, giving every page its own border, radius, padding and 2px margins.
   The v2.8 connected control was drawn correctly on the <a> inside, but each
   one sat in that older box — the doubled outlines you marked. The old rule is
   now deleted and the <li> is explicitly neutralised.
   --------------------------------------------------------------------------- */
.dataTables_wrapper .dataTables_paginate .paginate_button,
.dataTables_wrapper .pagination li.paginate_button,
.dataTables_wrapper .pagination .page-item{
  border:0 !important; border-radius:0 !important;
  padding:0 !important; margin:0 !important;
  background:transparent !important; box-shadow:none !important;
  float:none !important; display:block !important;
}
/* hairline divider between pages, drawn on the item, not a full border */
.dataTables_wrapper .pagination .page-item + .page-item{
  border-left:1px solid var(--bdx-border) !important;
}

/* the group */
.dataTables_wrapper .dataTables_paginate{
  padding-top:0 !important; margin:0 !important; float:none !important;
  text-align:right !important;
}
.dataTables_wrapper .pagination{
  display:inline-flex !important; align-items:stretch !important;
  margin:0 !important; padding:0 !important; gap:0 !important;
  border:1px solid var(--bdx-border) !important;
  border-radius:var(--bdx-radius) !important;
  background:#fff !important; overflow:hidden !important;
  list-style:none !important; vertical-align:middle !important;
}
/* the control itself */
.dataTables_wrapper .pagination .page-item .page-link,
.dataTables_wrapper .pagination li.paginate_button > a.page-link{
  display:flex !important; align-items:center !important; justify-content:center !important;
  border:0 !important; border-radius:0 !important; box-shadow:none !important; outline:none !important;
  background:#fff !important; color:var(--bdx-ink-2) !important;
  height:36px !important; line-height:1 !important;
  padding:0 15px !important; min-width:40px !important;
  font-size:12.5px !important; font-weight:500 !important;
  margin:0 !important; text-decoration:none !important;
  transition:background .12s, color .12s !important;
}
.dataTables_wrapper .pagination .page-item .page-link:hover{
  background:var(--bdx-offwhite) !important; color:var(--bdx-ink) !important;
}
.dataTables_wrapper .pagination .page-item.active .page-link,
.dataTables_wrapper .pagination li.paginate_button.active > a.page-link{
  background:var(--bdx-ink) !important; color:#fff !important; font-weight:600 !important;
}
.dataTables_wrapper .pagination .page-item.disabled .page-link,
.dataTables_wrapper .pagination li.paginate_button.disabled > a.page-link{
  background:#fafafa !important; color:#c3c7cc !important; cursor:default !important;
}
.dataTables_wrapper .pagination .page-item.disabled .page-link:hover{
  background:#fafafa !important; color:#c3c7cc !important;
}
/* Previous / Next read as words, page numbers as numbers */
.dataTables_wrapper .pagination .page-item.previous .page-link,
.dataTables_wrapper .pagination .page-item.next .page-link{
  padding:0 16px !important; font-weight:500 !important;
}
/* the info line and the control share a baseline */
.dataTables_wrapper .dataTables_info{
  padding-top:9px !important; margin:0 !important;
  color:var(--bdx-grey) !important; font-size:12.5px !important;
}
@media (max-width:760px){
  .dataTables_wrapper .dataTables_paginate{ text-align:center !important; margin-top:12px !important; }
  .dataTables_wrapper .dataTables_info{ text-align:center !important; }
  .dataTables_wrapper .pagination .page-item .page-link{ padding:0 11px !important; min-width:34px !important; }
}


/* ============================================================================
   ===  v2.10 — v2.9 FEEDBACK  ================================================
   ============================================================================ */

/* ---------------------------------------------------------------------------
   V210.1  Blue overlay on the login / OTP / chooser pages
   Ours, introduced in v2.9.

   The blue wash was hosted on `.header::before` with mix-blend-mode:color and
   z-index:-1 — i.e. behind the header but INSIDE the header's stacking context.
   That worked while the header sat at z-index 3, below .login-section at 4.
   v2.9 raised the header to z-index 5 (to guarantee the logo sat above the
   background layers), which lifted its whole stacking context — wash included —
   above the card. Hence the tint over everything.

   Fixed properly rather than by re-ordering: the tint is now a background layer
   INSIDE the photo element, composited with background-blend-mode. Blending
   between background layers of a single element cannot escape that element, so
   this can never overlay content again regardless of z-index.
   --------------------------------------------------------------------------- */
body.bg-login::before{
  background-image:
    linear-gradient(rgba(45,67,232,var(--bdx-login-tint)), rgba(45,67,232,var(--bdx-login-tint))),
    var(--bdx-login-bg) !important;
  background-blend-mode:color, normal !important;
  background-size:cover, cover !important;
  background-position:38% center, 38% center !important;
  background-repeat:no-repeat, no-repeat !important;
}
/* the old wash layer is removed outright */
body.bg-login .header::before,
body#landing-page .header::before{
  content:none !important; display:none !important;
  background:none !important; mix-blend-mode:normal !important;
}
/* header sits above the background layers (0 and 1) but below the content (4).
   Positioned absolute on desktop so it does not consume vertical height or push .login-section down */
body.bg-login .header,
body#landing-page .header{
  position:absolute !important; top:0 !important; left:0 !important; width:100% !important;
  z-index:10 !important; pointer-events:none !important;
  background:transparent !important; mix-blend-mode:normal !important;
}
body.bg-login .header .logo a,
body#landing-page .header .logo a{
  pointer-events:auto !important;
}

/* ---------------------------------------------------------------------------
   V210.2  Verify OTP & Login card: true viewport vertical centring
   --------------------------------------------------------------------------- */
body.bg-login .login-section{
  display:flex !important;
  flex-direction:row !important;      /* explicit — the page CSS says column */
  flex-wrap:nowrap !important;
  align-items:center !important;      /* true vertical centring in viewport */
  justify-content:flex-start !important;
  min-height:100vh !important; height:auto !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
body.bg-login .login-box{
  margin-top:0 !important; margin-bottom:0 !important;
  align-self:center !important;
}
body.bg-login .card-container,
body.bg-login .card-container .card,
body.bg-login .card-container .front{
  height:auto !important;
  min-height:auto !important;
}
@media (max-width:760px){
  body.bg-login .header,
  body#landing-page .header{
    position:relative !important;
    top:auto !important; left:auto !important;
    pointer-events:auto !important;
  }
  body.bg-login .login-section{
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    min-height:0 !important; padding:24px 0 !important;
  }
  body.bg-login .login-box{ margin:0 auto !important; }
}

/* ---------------------------------------------------------------------------
   V210.3  Mobile logo alignment — made structural
   v2.9 centred the logo with text-align on the header and .logo, which relies
   on the anchor staying inline-level all the way down. That did not hold in
   practice, and static inspection of the page CSS does not explain why — so
   rather than chase it, the centring is now done with flexbox at both levels.
   Flex placement does not depend on the display type of descendants, so it
   cannot be defeated by an inline/block change further down the chain.
   Floats and auto margins are neutralised for the same reason.
   --------------------------------------------------------------------------- */
@media (max-width:760px){
  body.bg-login .header,
  body#landing-page .header{
    display:flex !important;
    flex-direction:row !important;
    justify-content:center !important;
    align-items:center !important;
    width:100% !important; max-width:100% !important;
    float:none !important; text-align:center !important;
    padding:0 !important; margin:0 !important;
  }
  body.bg-login .header .logo,
  body#landing-page .header .logo{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    width:100% !important; max-width:100% !important;
    float:none !important; text-align:center !important;
    padding:26px 0 0 !important; margin:0 !important;
  }
  body.bg-login .header .logo a,
  body#landing-page .header .logo a{
    display:inline-flex !important;
    justify-content:center !important;
    float:none !important;
    margin:0 !important; padding:0 !important; line-height:0 !important;
  }
  body.bg-login .header .logo img,
  body#landing-page .header .logo img{
    display:block !important;
    margin:0 !important;              /* flex handles placement, not margins */
    float:none !important;
    height:44px !important; min-height:44px !important; max-height:44px !important;
    width:auto !important; max-width:200px !important;
  }
}




span.ml-2 > i.fa-info-circle {
    color: var(--bdx-blue) !important;
}

.table td.text-anchor,
.table td.text-anchor *,
.table td.text-anchor a,
.table td.text-anchor a:link,
.table td.text-anchor a:visited,
.table td.text-anchor u,
.table td u {
    font-weight: bold;
    font-size: 0.85rem;
    color: var(--bdx-blue) !important;
    text-decoration: none !important;
    text-decoration-line: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
}
.table td.text-anchor a:hover,
.table td.text-anchor a:focus,
.table td.text-anchor a:active,
.table td.text-anchor *:hover {
    text-decoration: none !important;
    text-decoration-line: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    color: var(--color-primary) !important;
}


/* ============================================================================
   V22.5  Forms inside #content (AF1, AF2, Access Request, Support Tickets)
   Rebrands legacy inline styles & navy blue (#002060, #256792, #00008b)
   to the new BDx Neon Lime (#dcf42c) & Deep Ink (#13171a) design system.
   ============================================================================ */

/* 1. Main Container #content: well-defined border and subtle elevated shadow */
#content,
div#content {
  border: 1.5px solid #b8c0cb !important;
  border-radius: var(--bdx-radius-lg, 8px) !important;
  background-color: #ffffff !important;
  box-shadow: 0 4px 18px rgba(19, 23, 26, 0.07), 0 1px 3px rgba(19, 23, 26, 0.04) !important;
  padding: 24px !important;
  font-family: var(--bdx-sans) !important;
  box-sizing: border-box !important;
}

/* 2. Standard Data Table Body Cells: soft ink text and brand font */
#content table:not(#AuthorizationCategoryTable):not([id*="AuthorizationCategory"]):not([id*="CategoryTable"]) tbody tr:not([style*="background"]):not([style*="002060" i]):not([style*="00008b" i]):not([style*="256792" i]) td:not([style*="background"]):not([colspan]) {
  font-family: var(--bdx-sans) !important;
  font-size: 13px !important;
  color: var(--bdx-ink-2, #3a4046) !important;
}

/* 3. Table Borders inside #content: soften from heavy dark blue to brand border */
#content table,
#content .tableBorder,
#content table.table-bordered,
#content table td,
#content table th,
#content .tdBorder,
#content table tbody tr:last-child td,
#content table tbody tr:last-child th {
  border-color: var(--bdx-border, #e5e7eb) !important;
}

/* 4. Legacy Navy Blue Table Header Rows, Columns & Category Section Bars */
#content [style*="002060" i],
#content [style*="256792" i],
#content [style*="001f3f" i],
#content [style*="0c163b" i],
#content [style*="00008b" i]:not(button):not(input),
#content tr[style*="background"],
#content tr[style*="background"] td,
#content tr[style*="background"] th,
#content tr[style*="002060" i] td,
#content tr[style*="002060" i] th,
#content tr[style*="00008b" i] td,
#content tr[style*="00008b" i] th,
#content tr[style*="256792" i] td,
#content tr[style*="256792" i] th,
#content td.tdBorder[style*="background"],
#content th.tdBorder,
#content .tableBorder th,
#content table thead th,
#content table thead td {
  background-color: var(--bdx-ink, #13171a) !important;
  background: var(--bdx-ink, #13171a) !important;
  color: #ffffff !important;
  border-color: #2b333a !important;
  font-family: var(--bdx-sans) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
}

/* Section Header Category Bars (spanning colspan): add neon lime indicator */
#content td[colspan][style*="background"],
#content td.tdBorder[colspan][style*="background"],
#content .tableBorder td[colspan][style*="background"],
#content tr[style*="background"] td[colspan] {
  background-color: var(--bdx-ink, #13171a) !important;
  background: var(--bdx-ink, #13171a) !important;
  color: #ffffff !important;
  border-left: 4px solid var(--bdx-lime, #dcf42c) !important;
  padding: 10px 14px !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
}

/* 4. Primary Submit Buttons (Neon Lime & Deep Ink) */
#content #btn-submit,
#content button[type="submit"],
#content input[type="submit"],
#content [id*="btn-submit"],
#content [style*="00008b" i][type="submit"],
#content button[style*="00008b" i] {
  background: var(--bdx-lime, #dcf42c) !important;
  color: var(--bdx-ink, #13171a) !important;
  border: 1px solid var(--bdx-lime, #dcf42c) !important;
  border-radius: var(--bdx-radius-lg, 8px) !important;
  font-family: var(--bdx-sans) !important;
  font-size: 14.5px !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  padding: 12px 32px !important;
  cursor: pointer !important;
  display: inline-block !important;
  text-align: center !important;
  box-shadow: 0 2px 6px rgba(220, 244, 44, 0.25) !important;
  transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease !important;
}

#content #btn-submit:hover,
#content button[type="submit"]:hover,
#content input[type="submit"]:hover,
#content [id*="btn-submit"]:hover,
#content button[style*="00008b" i]:hover {
  background: var(--bdx-lime-hover, #cfe81f) !important;
  border-color: var(--bdx-lime-hover, #cfe81f) !important;
  color: var(--bdx-ink, #13171a) !important;
  box-shadow: 0 4px 14px rgba(220, 244, 44, 0.45) !important;
  transform: translateY(-1px) !important;
}

#content #btn-submit:active,
#content button[type="submit"]:active,
#content input[type="submit"]:active {
  transform: translateY(0) !important;
  box-shadow: 0 1px 4px rgba(220, 244, 44, 0.2) !important;
}

/* 5. Secondary Buttons (Save Draft, Add User, etc.) */
#content #btn-save,
#content [id*="btn-save"],
#content button:not(#btn-submit):not([type="submit"]):not([style*="00008b" i]),
#content input[type="button"],
#content .btn:not(.btn-primary):not(#btn-submit) {
  background: #ffffff !important;
  color: var(--bdx-ink, #13171a) !important;
  border: 1.5px solid var(--bdx-border, #e5e7eb) !important;
  border-radius: var(--bdx-radius-lg, 8px) !important;
  font-family: var(--bdx-sans) !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  padding: 9px 20px !important;
  cursor: pointer !important;
  display: inline-block;
  text-align: center !important;
  box-shadow: 0 1px 2px rgba(19, 23, 26, 0.05) !important;
  transition: all 0.15s ease !important;
}

/* Respect inline display:none for toggle elements */
#content button[style*="display:none" i],
#content button[style*="display: none" i] {
  display: none !important;
}

#content #btn-save:hover,
#content [id*="btn-save"]:hover,
#content button:not(#btn-submit):not([type="submit"]):not([style*="00008b" i]):hover,
#content input[type="button"]:hover,
#content .btn:not(.btn-primary):not(#btn-submit):hover {
  background: var(--bdx-offwhite, #f4f3ef) !important;
  border-color: var(--bdx-ink, #13171a) !important;
  color: var(--bdx-ink, #13171a) !important;
  transform: translateY(-1px) !important;
}

/* 6. Form Controls & Inputs: Off-white idle, Pure White on Focus */
#content input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not(.select2-search__field),
#content select,
#content textarea,
#content .form-control:not([type="radio"]):not([type="checkbox"]) {
  background-color: #f8fafc !important;
  border: 1.5px solid #d1d5db !important;
  border-radius: var(--bdx-radius, 5px) !important;
  padding: 7px 11px !important;
  font-family: var(--bdx-sans) !important;
  font-size: 13px !important;
  color: var(--bdx-ink, #13171a) !important;
  box-sizing: border-box !important;
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease !important;
}

#content input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not(.select2-search__field):hover,
#content select:hover,
#content textarea:hover,
#content .form-control:not([type="radio"]):not([type="checkbox"]):hover {
  background-color: #f1f4f8 !important;
  border-color: #9ca3af !important;
}

#content input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not(.select2-search__field):focus,
#content select:focus,
#content textarea:focus,
#content .form-control:not([type="radio"]):not([type="checkbox"]):focus {
  background-color: #ffffff !important;
  border-color: var(--bdx-blue, #2d43e8) !important;
  box-shadow: 0 0 0 3px rgba(45, 67, 232, 0.18), 0 1px 2px rgba(0, 0, 0, 0.05) !important;
  outline: none !important;
  color: var(--bdx-ink, #13171a) !important;
}

#content input[type="file"] {
  background-color: #f8fafc !important;
  border: 1.5px solid #d1d5db !important;
  border-radius: var(--bdx-radius, 5px) !important;
  padding: 6px 10px !important;
  font-family: var(--bdx-sans) !important;
  font-size: 12.5px !important;
  color: var(--bdx-ink, #13171a) !important;
}

/* 7. Checkboxes & Radio Buttons - Modern BDX Portal Styling & HTML2Canvas PDF Support */
#content input[type="radio"],
input[type="radio"],
input[type="radio"].form-control,
.form-control[type="radio"],
.form-check-input[type="radio"],
.form-check input[type="radio"] {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  width: 17px !important;
  height: 17px !important;
  min-width: 17px !important;
  max-width: 17px !important;
  min-height: 17px !important;
  max-height: 17px !important;
  border: 1.5px solid #d1d5db !important;
  border-radius: 50% !important;
  background-color: #ffffff !important;
  cursor: pointer !important;
  display: inline-block !important;
  vertical-align: -3px !important;
  margin: 0 6px 0 0 !important;
  padding: 0 !important;
  line-height: normal !important;
  outline: none !important;
  box-sizing: border-box !important;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease !important;
  position: relative !important;
  flex-shrink: 0 !important;
  box-shadow: none !important;
}

#content input[type="radio"]:hover,
input[type="radio"]:hover,
input[type="radio"].form-control:hover,
.form-control[type="radio"]:hover,
.form-check-input[type="radio"]:hover,
.form-check input[type="radio"]:hover {
  border-color: #9ca3af !important;
}

#content input[type="radio"]:focus,
#content input[type="radio"]:focus-visible,
input[type="radio"]:focus,
input[type="radio"]:focus-visible,
input[type="radio"].form-control:focus,
.form-control[type="radio"]:focus,
.form-check-input[type="radio"]:focus,
.form-check-input[type="radio"]:focus-visible,
.form-check input[type="radio"]:focus,
.form-check input[type="radio"]:focus-visible {
  outline: none !important;
  border-color: var(--color-primary, #13171a) !important;
  box-shadow: 0 0 0 3px rgba(19, 23, 26, 0.15) !important;
}

#content input[type="radio"]:checked,
input[type="radio"]:checked,
input[type="radio"].form-control:checked,
.form-control[type="radio"]:checked,
.form-check-input[type="radio"]:checked,
.form-check input[type="radio"]:checked {
  border-color: var(--color-primary, #13171a) !important;
  background-color: var(--color-primary, #13171a) !important;
  box-shadow: inset 0 0 0 3.5px #ffffff !important;
}

#content input[type="radio"]:disabled,
input[type="radio"]:disabled,
input[type="radio"].form-control:disabled,
.form-control[type="radio"]:disabled,
.form-check-input[type="radio"]:disabled,
.form-check input[type="radio"]:disabled {
  background-color: #f3f4f6 !important;
  border-color: #e5e7eb !important;
  cursor: not-allowed !important;
  opacity: 0.6 !important;
}

#content input[type="checkbox"],
input[type="checkbox"],
input[type="checkbox"].form-control,
.form-control[type="checkbox"] {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  max-width: 16px !important;
  min-height: 16px !important;
  max-height: 16px !important;
  border: 1.5px solid var(--bdx-border, #d1d5db) !important;
  border-radius: 3.5px !important;
  background-color: #ffffff !important;
  cursor: pointer !important;
  display: inline-block !important;
  vertical-align: middle !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: normal !important;
  outline: none !important;
  box-sizing: border-box !important;
  transition: all 0.15s ease !important;
  accent-color: var(--bdx-lime, #dcf42c) !important;
}

#content input[type="checkbox"]:hover,
input[type="checkbox"]:hover,
input[type="checkbox"].form-control:hover,
.form-control[type="checkbox"]:hover {
  border-color: #9ca3af !important;
}

#content input[type="checkbox"]:checked,
input[type="checkbox"]:checked,
input[type="checkbox"].form-control:checked,
.form-control[type="checkbox"]:checked {
  background-color: var(--bdx-lime, #dcf42c) !important;
  border-color: var(--bdx-lime-hover, #cfe81f) !important;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEhSURBVFhH7ZUtEsIwEIUrcYV0kpAgwhGQSCSSI3AEJJJbIJEcgSMgkUiOUImEbLPMhDQdKLA15JvZKTP7mveaP7JEIvEXMDGa4s9uyaUcM6HPhdS3QqqScz7EFj1gXgh9ceaPUmts05Lnps+kOj2bQ41mKKHDGNOzX3qsmQu1QwkdzlwfQnMm1B4ltIBRaG7rAMFQ0g5Ys3dftmu+Dc1hH3xkDi/5x2fAh3NsRbGaTcwcNiNK2mE3zOJpMKGuTSFsb+Vrq7LHD44hStoDFwaY+oPGQjCpl77GlSq/Mn8QG9wPAc8wJJhzrifVAL+gKQSseWyGSC6a+DTX69VG/YpXIaCPUjqaQtipX6GEnnoItcFWd8Bau4ung3+2RCJBT5bdAUISmYltIZvkAAAAAElFTkSuQmCC") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 12px 12px !important;
}

/* 7.1 Elimination of Extra Adjoining Black Checkboxes / Injected Elements in Authorization Category Table */
/* Scoped strictly to data rows and cells containing checkboxes, NEVER table headers */
#content #AuthorizationCategoryTable tr:not(:first-child) td,
#content #AuthorizationCategoryTable td:has(> input[type="checkbox"]),
#content #AuthorizationCategoryTable td.tdBorder:has(> input[type="checkbox"]),
#content table[id*="AuthorizationCategory"] tr:not(:first-child) td,
#content table[id*="AuthorizationCategory"] td:has(> input[type="checkbox"]),
#content table[id*="AuthorizationCategory"] td.tdBorder:has(> input[type="checkbox"]),
#content table[id*="CategoryTable"] tr:not(:first-child) td,
#content table[id*="CategoryTable"] td.tdBorder:has(> input[type="checkbox"]),
#content #add_customer_div td:has(> input[id^="chk_"]),
#AuthorizationCategoryTable tr:not(:first-child) td,
#AuthorizationCategoryTable td:has(> input[type="checkbox"]),
#AuthorizationCategoryTable td.tdBorder:has(> input[type="checkbox"]),
table[id*="AuthorizationCategory"] tr:not(:first-child) td,
table[id*="AuthorizationCategory"] td:has(> input[type="checkbox"]),
table[id*="AuthorizationCategory"] td.tdBorder:has(> input[type="checkbox"]),
table[id*="CategoryTable"] tr:not(:first-child) td,
table[id*="CategoryTable"] td.tdBorder:has(> input[type="checkbox"]) {
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  text-align: center !important;
  vertical-align: middle !important;
}

#AuthorizationCategoryTable tr:not(:first-child) td > *:not(input[type="checkbox"]):not(i.fa-check):not(.fa-check),
#AuthorizationCategoryTable td:has(> input[type="checkbox"]) > *:not(input[type="checkbox"]):not(i.fa-check):not(.fa-check),
#AuthorizationCategoryTable td.tdBorder:has(> input[type="checkbox"]) > *:not(input[type="checkbox"]):not(i.fa-check):not(.fa-check),
table[id*="AuthorizationCategory"] tr:not(:first-child) td > *:not(input[type="checkbox"]):not(i.fa-check):not(.fa-check),
table[id*="AuthorizationCategory"] td:has(> input[type="checkbox"]) > *:not(input[type="checkbox"]):not(i.fa-check):not(.fa-check),
table[id*="AuthorizationCategory"] td.tdBorder:has(> input[type="checkbox"]) > *:not(input[type="checkbox"]):not(i.fa-check):not(.fa-check),
table[id*="CategoryTable"] tr:not(:first-child) td > *:not(input[type="checkbox"]):not(i.fa-check):not(.fa-check),
table[id*="CategoryTable"] td.tdBorder:has(> input[type="checkbox"]) > *:not(input[type="checkbox"]):not(i.fa-check):not(.fa-check),
#content #add_customer_div td:has(> input[id^="chk_"]) > *:not(input[type="checkbox"]):not(i.fa-check):not(.fa-check) {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  max-width: 0 !important;
  max-height: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  opacity: 0 !important;
  position: absolute !important;
  left: -9999px !important;
  border: none !important;
  background: transparent !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
}

#AuthorizationCategoryTable tr:not(:first-child) td::before,
#AuthorizationCategoryTable tr:not(:first-child) td::after,
#AuthorizationCategoryTable td:has(> input[type="checkbox"])::before,
#AuthorizationCategoryTable td:has(> input[type="checkbox"])::after,
table[id*="AuthorizationCategory"] tr:not(:first-child) td::before,
table[id*="AuthorizationCategory"] tr:not(:first-child) td::after,
table[id*="AuthorizationCategory"] td:has(> input[type="checkbox"])::before,
table[id*="AuthorizationCategory"] td:has(> input[type="checkbox"])::after,
table[id*="CategoryTable"] tr:not(:first-child) td::before,
table[id*="CategoryTable"] tr:not(:first-child) td::after,
table[id*="CategoryTable"] td.tdBorder:has(> input[type="checkbox"])::before,
table[id*="CategoryTable"] td.tdBorder:has(> input[type="checkbox"])::after,
#AuthorizationCategoryTable input::before,
#AuthorizationCategoryTable input::after,
table[id*="AuthorizationCategory"] input::before,
table[id*="AuthorizationCategory"] input::after,
#content input[id^="chk_"]::before,
#content input[id^="chk_"]::after,
input[id^="chk_"]::before,
input[id^="chk_"]::after,
#content input[type="checkbox"]::before,
#content input[type="checkbox"]::after,
input[type="checkbox"]::before,
input[type="checkbox"]::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  border: none !important;
  background: transparent !important;
}

/* 7.3 Checked Checkbox in Generated PDF (Injected on Form Submit) & Unchecked Element Suppression */
#content i.fa-check,
#content .fa-check,
#content .form-check i.fa-check,
#content .form-check .fa-check,
#content .form-check-inline i.fa-check,
#content .form-check-inline .fa-check,
#content td i.fa-check,
#content td .fa-check,
#AuthorizationCategoryTable td i.fa-check,
#AuthorizationCategoryTable td .fa-check,
table[id*="CategoryTable"] td i.fa-check,
table[id*="CategoryTable"] td .fa-check {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 16px !important;
  height: 16px !important;
  max-width: 16px !important;
  max-height: 16px !important;
  border-radius: 3.5px !important;
  background-color: var(--bdx-lime, #dcf42c) !important;
  border: 1.5px solid var(--bdx-lime-hover, #cfe81f) !important;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEhSURBVFhH7ZUtEsIwEIUrcYV0kpAgwhGQSCSSI3AEJJJbIJEcgSMgkUiOUImEbLPMhDQdKLA15JvZKTP7mveaP7JEIvEXMDGa4s9uyaUcM6HPhdS3QqqScz7EFj1gXgh9ceaPUmts05Lnps+kOj2bQ41mKKHDGNOzX3qsmQu1QwkdzlwfQnMm1B4ltIBRaG7rAMFQ0g5Ys3dftmu+Dc1hH3xkDi/5x2fAh3NsRbGaTcwcNiNK2mE3zOJpMKGuTSFsb+Vrq7LHD44hStoDFwaY+oPGQjCpl77GlSq/Mn8QG9wPAc8wJJhzrifVAL+gKQSseWyGSC6a+DTX69VG/YpXIaCPUjqaQtipX6GEnnoItcFWd8Bau4ung3+2RCJBT5bdAUISmYltIZvkAAAAAElFTkSuQmCC") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 12px 12px !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
  position: relative !important;
  margin: 0 auto !important;
}

#content td:has(i.fa-check),
#content td:has(.fa-check),
#AuthorizationCategoryTable td:has(i.fa-check),
#AuthorizationCategoryTable td:has(.fa-check),
table[id*="CategoryTable"] td:has(i.fa-check),
table[id*="CategoryTable"] td:has(.fa-check) {
  text-align: center !important;
  vertical-align: middle !important;
  height: 28px !important;
  min-height: 28px !important;
}

#content i.fa-check::before,
#content .fa-check::before,
#content .form-check i.fa-check::before,
#content .form-check .fa-check::before,
#content td i.fa-check::before,
#content td .fa-check::before,
#AuthorizationCategoryTable td i.fa-check::before,
#AuthorizationCategoryTable td .fa-check::before,
table[id*="CategoryTable"] td i.fa-check::before,
table[id*="CategoryTable"] td .fa-check::before {
  content: none !important;
  display: none !important;
}

/* Ensure inputs hidden by JS on submit are not forced visible */
#content input[style*="display:none" i],
#content input[style*="display: none" i] {
  display: none !important;
  visibility: hidden !important;
}

/* When form is submitted and fa-check is injected, hide remaining unchecked inputs and broken icons in that container */
#content .form-check:has(i.fa-check) input,
#content .form-check:has(.fa-check) input,
#content .form-check:has(i.fa-check) .fa-info-circle,
#content .form-check:has(.fa-check) .fa-info-circle,
#content .form-check:has(i.fa-check) i[class*="info"],
#content .form-check:has(.fa-check) i[class*="info"],
#content td:has(i.fa-check) input,
#content td:has(.fa-check) input {
  display: none !important;
  visibility: hidden !important;
}

/* When submitted form has fa-check inside inline form-check, align labels and checkmark cleanly */
#content .form-check:has(i.fa-check),
#content .form-check:has(.fa-check) {
  display: inline-flex !important;
  align-items: center !important;
}

/* When NO was checked (No input is hidden by JS): Yes [✓] No */
#content .form-check:has(input[value="No"][style*="display:none" i]) .form-check-label:first-of-type,
#content .form-check:has(input[value="No"][style*="display: none" i]) .form-check-label:first-of-type,
#content .form-check:has(input:last-of-type[style*="display:none" i]) .form-check-label:first-of-type,
#content .form-check:has(input:last-of-type[style*="display: none" i]) .form-check-label:first-of-type {
  order: 0 !important;
  margin-right: 20px !important;
}
#content .form-check:has(input[value="No"][style*="display:none" i]) i.fa-check,
#content .form-check:has(input[value="No"][style*="display: none" i]) i.fa-check,
#content .form-check:has(input[value="No"][style*="display:none" i]) .fa-check,
#content .form-check:has(input[value="No"][style*="display: none" i]) .fa-check,
#content .form-check:has(input:last-of-type[style*="display:none" i]) i.fa-check,
#content .form-check:has(input:last-of-type[style*="display: none" i]) i.fa-check,
#content .form-check:has(input:last-of-type[style*="display:none" i]) .fa-check,
#content .form-check:has(input:last-of-type[style*="display: none" i]) .fa-check {
  order: 1 !important;
  margin-right: 6px !important;
  margin-left: 0 !important;
}
#content .form-check:has(input[value="No"][style*="display:none" i]) .form-check-label:last-of-type,
#content .form-check:has(input[value="No"][style*="display: none" i]) .form-check-label:last-of-type,
#content .form-check:has(input:last-of-type[style*="display:none" i]) .form-check-label:last-of-type,
#content .form-check:has(input:last-of-type[style*="display: none" i]) .form-check-label:last-of-type {
  order: 2 !important;
}

/* When YES was checked (Yes input is hidden by JS): [✓] Yes No */
#content .form-check:has(input[value="Yes"][style*="display:none" i]) i.fa-check,
#content .form-check:has(input[value="Yes"][style*="display: none" i]) i.fa-check,
#content .form-check:has(input[value="Yes"][style*="display:none" i]) .fa-check,
#content .form-check:has(input[value="Yes"][style*="display: none" i]) .fa-check,
#content .form-check:has(input:first-of-type[style*="display:none" i]) i.fa-check,
#content .form-check:has(input:first-of-type[style*="display: none" i]) i.fa-check,
#content .form-check:has(input:first-of-type[style*="display:none" i]) .fa-check,
#content .form-check:has(input:first-of-type[style*="display: none" i]) .fa-check {
  order: -1 !important;
  margin-right: 6px !important;
  margin-left: 0 !important;
}
#content .form-check:has(input[value="Yes"][style*="display:none" i]) .form-check-label:first-of-type,
#content .form-check:has(input[value="Yes"][style*="display: none" i]) .form-check-label:first-of-type,
#content .form-check:has(input:first-of-type[style*="display:none" i]) .form-check-label:first-of-type,
#content .form-check:has(input:first-of-type[style*="display: none" i]) .form-check-label:first-of-type {
  order: 0 !important;
  margin-right: 20px !important;
}
#content .form-check:has(input[value="Yes"][style*="display:none" i]) .form-check-label:last-of-type,
#content .form-check:has(input[value="Yes"][style*="display: none" i]) .form-check-label:last-of-type,
#content .form-check:has(input:first-of-type[style*="display:none" i]) .form-check-label:last-of-type,
#content .form-check:has(input:first-of-type[style*="display: none" i]) .form-check-label:last-of-type {
  order: 1 !important;
}

/* 7.2 Authorization Category & Table Header Crisp White Text Restoration */
#AuthorizationCategoryTable tr:first-child td,
#AuthorizationCategoryTable tr:first-child th,
#AuthorizationCategoryTable tr:first-of-type td,
#AuthorizationCategoryTable tr:first-of-type th,
#AuthorizationCategoryTable thead td,
#AuthorizationCategoryTable thead th,
#AuthorizationCategoryTable th,
#AuthorizationCategoryTable tr[style*="002060" i] td,
#AuthorizationCategoryTable tr[style*="002060" i] th,
#AuthorizationCategoryTable tr[style*="background"] td,
#AuthorizationCategoryTable tr[style*="background"] th,
table[id*="AuthorizationCategory"] tr:first-child td,
table[id*="AuthorizationCategory"] tr:first-child th,
table[id*="AuthorizationCategory"] tr:first-of-type td,
table[id*="AuthorizationCategory"] tr:first-of-type th,
table[id*="AuthorizationCategory"] thead td,
table[id*="AuthorizationCategory"] thead th,
table[id*="AuthorizationCategory"] th,
table[id*="AuthorizationCategory"] tr[style*="002060" i] td,
table[id*="AuthorizationCategory"] tr[style*="002060" i] th,
table[id*="AuthorizationCategory"] tr[style*="background"] td,
table[id*="AuthorizationCategory"] tr[style*="background"] th,
table[id*="CategoryTable"] tr:first-child td,
table[id*="CategoryTable"] tr:first-child th,
table[id*="CategoryTable"] tr:first-of-type td,
table[id*="CategoryTable"] tr:first-of-type th,
table[id*="CategoryTable"] thead td,
table[id*="CategoryTable"] thead th,
table[id*="CategoryTable"] th,
table[id*="CategoryTable"] tr[style*="002060" i] td,
table[id*="CategoryTable"] tr[style*="002060" i] th,
table[id*="CategoryTable"] tr[style*="background"] td,
table[id*="CategoryTable"] tr[style*="background"] th,
#content tr[style*="002060" i] td,
#content tr[style*="002060" i] th,
#content tr[style*="00008b" i] td,
#content tr[style*="00008b" i] th,
#content tr[style*="256792" i] td,
#content tr[style*="256792" i] th,
#content tr[style*="background"] td,
#content tr[style*="background"] th,
#content .tableBorder th,
#content table thead th,
#content table thead td {
  display: table-cell !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #ffffff !important;
  background-color: var(--bdx-ink, #13171a) !important;
  background: var(--bdx-ink, #13171a) !important;
  font-family: var(--bdx-sans) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  text-align: center !important;
  vertical-align: middle !important;
  letter-spacing: -0.01em !important;
}

/* Ensure child elements/tags inside header cells remain visible and crisp white */
#AuthorizationCategoryTable tr:first-child td *,
#AuthorizationCategoryTable tr:first-child th *,
#AuthorizationCategoryTable thead td *,
#AuthorizationCategoryTable thead th *,
#AuthorizationCategoryTable tr[style*="002060" i] td *,
#AuthorizationCategoryTable tr[style*="background"] td *,
table[id*="AuthorizationCategory"] tr:first-child td *,
table[id*="AuthorizationCategory"] tr:first-child th *,
table[id*="AuthorizationCategory"] thead td *,
table[id*="AuthorizationCategory"] thead th *,
table[id*="AuthorizationCategory"] tr[style*="002060" i] td *,
table[id*="AuthorizationCategory"] tr[style*="background"] td *,
table[id*="CategoryTable"] tr:first-child td *,
table[id*="CategoryTable"] tr:first-child th *,
table[id*="CategoryTable"] thead td *,
table[id*="CategoryTable"] thead th *,
#content tr[style*="002060" i] td *,
#content tr[style*="00008b" i] td *,
#content tr[style*="256792" i] td *,
#content tr[style*="background"] td * {
  display: inline !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #ffffff !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: inherit !important;
}


/* 8. Comprehensive AF-Forms Universal Styling (AF1, AF2, SHP, EQT, RHS, SHS, AF1 Vendor, Vendor AF2) */

/* 8.1 Section Banners (.c51) - Deep Ink Background with Neon Lime Accent */
#content .c51,
.c51,
#content span.c51,
span.c51 {
  background-color: var(--bdx-ink, #13171a) !important;
  background: var(--bdx-ink, #13171a) !important;
  color: #ffffff !important;
  font-family: var(--bdx-sans) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: -0.01em !important;
  border-left: 4px solid var(--bdx-lime, #dcf42c) !important;
  padding: 8px 14px !important;
  border-radius: var(--bdx-radius, 5px) !important;
  display: inline-block !important;
  position: relative !important;
  /* width: auto !important; */
  width: 100% !important;
  min-width: 280px !important;
  box-sizing: border-box !important;
  line-height: 1.4 !important;
  box-shadow: 0 1px 3px rgba(19, 23, 26, 0.08) !important;
}

#content .c51 *,
.c51 * {
  color: #ffffff !important;
}

/* 8.2 Form Labels & Text Elements */
#content .c19,
#content .c59,
#content .c42,
#content .c32,
#content .c33,
#content .c21,
#content .c0,
#content .c6,
#content .c22,
#content .c25,
#content .c26,
#content .c35,
#content .c66,
#content .c73,
#content .c74,
#content .makeBlue {
  color: var(--bdx-ink, #13171a) !important;
  font-family: var(--bdx-sans) !important;
}

#content .c59 {
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

#content .c42,
#content .c21 {
  font-weight: 600 !important;
}

#content .c19,
#content .c0,
#content .c22,
#content .c32,
#content .c33 {
  font-weight: 500 !important;
  font-size: 13px !important;
}

/* 8.3 Delivery Items Table (SHP Form #itemsTable) */
#content #itemsTable,
table#itemsTable {
  border-collapse: collapse !important;
  width: 100% !important;
  margin-top: 10px !important;
  border: 1px solid var(--bdx-border, #e5e7eb) !important;
  border-radius: var(--bdx-radius, 5px) !important;
  overflow: hidden !important;
}

#content #itemsTable tr:first-child td,
#content #itemsTable tr:first-child th,
#content #itemsTable th,
table#itemsTable tr:first-child td,
table#itemsTable tr:first-child th,
table#itemsTable th {
  background-color: var(--bdx-ink, #13171a) !important;
  background: var(--bdx-ink, #13171a) !important;
  color: #ffffff !important;
  font-family: var(--bdx-sans) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-align: center !important;
  padding: 10px 8px !important;
  border: 1px solid #2b333a !important;
}

#content #itemsTable tr:not(:first-child) td,
table#itemsTable tr:not(:first-child) td {
  border: 1px solid var(--bdx-border, #e5e7eb) !important;
  padding: 6px !important;
  font-family: var(--bdx-sans) !important;
  font-size: 12.5px !important;
  color: var(--bdx-ink-2, #3a4046) !important;
}

/* 8.4 Add / Remove Action Buttons across all forms (#add_customer, #add_visitor, #delete_visitor) */
#content #add_customer,
#content #add_visitor,
#content button[id*="add_customer"],
#content button[id*="add_visitor"] {
  background: #ffffff !important;
  color: var(--bdx-ink, #13171a) !important;
  border: 1.5px solid var(--bdx-border, #e5e7eb) !important;
  border-radius: var(--bdx-radius, 5px) !important;
  padding: 8px 20px !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  height: 38px !important;
  cursor: pointer !important;
  box-shadow: 0 1px 2px rgba(19, 23, 26, 0.05) !important;
  transition: all 0.15s ease !important;
  width: auto !important;
  min-width: 150px !important;
  display: inline-block !important;
}

#content #add_customer:hover,
#content #add_visitor:hover,
#content button[id*="add_customer"]:hover,
#content button[id*="add_visitor"]:hover {
  background: var(--bdx-offwhite, #f4f3ef) !important;
  border-color: var(--bdx-ink, #13171a) !important;
  transform: translateY(-1px) !important;
}

#content #delete_visitor,
#content button[id*="delete_visitor"] {
  background: #ffffff !important;
  color: #b91c1c !important;
  border: 1.5px solid #fca5a5 !important;
  border-radius: var(--bdx-radius, 5px) !important;
  padding: 8px 20px !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  height: 38px !important;
  cursor: pointer !important;
  box-shadow: 0 1px 2px rgba(19, 23, 26, 0.05) !important;
  transition: all 0.15s ease !important;
  width: auto !important;
  min-width: 150px !important;
}

#content #delete_visitor:hover,
#content button[id*="delete_visitor"]:hover {
  background: #fef2f2 !important;
  border-color: #ef4444 !important;
  color: #991b1b !important;
  transform: translateY(-1px) !important;
}

/* 8.5 Form Inputs, Selects, and Textareas */
#content input[type="text"],
#content input[type="email"],
#content input[type="date"],
#content input[type="time"],
#content input[type="number"],
#content select,
#content textarea,
#content .select2-container--default .select2-selection--single {
  border: 1.5px solid var(--bdx-border, #e5e7eb) !important;
  border-radius: var(--bdx-radius, 5px) !important;
  background-color: #ffffff !important;
  color: var(--bdx-ink, #13171a) !important;
  font-family: var(--bdx-sans) !important;
  font-size: 13px !important;
  padding: 7px 12px !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
  box-sizing: border-box !important;
}

#content input:not(.select2-search__field):focus,
#content select:focus,
#content textarea:focus {
  border-color: var(--bdx-ink, #13171a) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(19, 23, 26, 0.1) !important;
}


/* 9. Radio Buttons & Form-Check Alignment & Spacing inside #content */
#content .form-check,
#content .form-check-inline,
#content .form-inline .form-check {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding-left: 0 !important;
  margin-right: 1.5rem !important;
}

#content input[type="radio"],
#content input[type="radio"].form-control,
#content .form-control[type="radio"],
#content .form-check-input[type="radio"],
input[type="radio"].form-control,
.form-control[type="radio"] {
  position: relative !important;
  margin-top: 0 !important;
  margin-right: 7px !important;
  margin-left: 0 !important;
  flex-shrink: 0 !important;
}

#content .form-check-label,
#content .form-check label {
  font-family: var(--bdx-sans) !important;
  font-size: 13px !important;
  color: var(--bdx-ink, #13171a) !important;
  font-weight: 400 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  margin-bottom: 0 !important;
  user-select: none !important;
}

/* Ensure subsequent radio options have generous separation and don't stick together */
#content label + input[type="radio"],
#content label + .form-check-input,
#content .form-check-label + .form-check-input,
#content .form-check-input + .form-check-label + .form-check-input,
#content input[type="radio"]:not(:first-of-type),
#content .form-check-input:not(:first-of-type),
#content span:has(> input[type="radio"]):not(:first-child),
#content span:has(> input[type="radio"]) + span:has(> input[type="radio"]) {
  margin-left: 20px !important;
}

#content span:has(> input[type="radio"]) {
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
}

/* ============================================================================
   V22.6  Tooltips & Popovers Rebranding (Legacy Cyan #05A8D0 -> Deep Ink #13171a)
   Bootstrap tooltips are dynamically attached directly to <body> by JavaScript
   (Popper.js), which is why selectors scoped under #content cannot reach them.
   ============================================================================ */

/* Tooltip container visibility */
.tooltip,
.tooltip.show,
div.tooltip {
  opacity: 1 !important;
  z-index: 999999 !important;
}

/* Tooltip body (Neon Lime #dcf42c background with Deep Ink #13171a text) */
.tooltip .tooltip-inner,
.tooltip-inner,
div.tooltip-inner,
body .tooltip-inner,
[role="tooltip"] .tooltip-inner,
.ui-tooltip,
.tippy-box {
  background-color: var(--bdx-lime, #dcf42c) !important;
  background: var(--bdx-lime, #dcf42c) !important;
  color: var(--bdx-ink, #13171a) !important;
  font-family: var(--bdx-sans, "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  padding: 8px 12px !important;
  border-radius: var(--bdx-radius, 6px) !important;
  box-shadow: 0 4px 18px rgba(19, 23, 26, 0.22), 0 1px 4px rgba(19, 23, 26, 0.12) !important;
  border: 1px solid rgba(19, 23, 26, 0.14) !important;
  max-width: 290px !important;
  text-align: left !important;
  letter-spacing: normal !important;
}

/* ============================================================================
   Tooltip Arrows - Neon Lime (#dcf42c)
   Defeats af2_form.php line 118 (.tooltip .arrow::before) with high specificity.
   ============================================================================ */

/* Base override for ALL tooltip arrows regardless of placement class */
html body .tooltip .arrow::before,
html body div.tooltip .arrow::before,
html body .tooltip .arrow::after,
html body .tooltip .arrow,
html body .tooltip-arrow,
.tooltip .arrow::before,
.tooltip .arrow,
.tooltip-arrow,
[role="tooltip"] .arrow::before,
[role="tooltip"] .arrow,
[role="tooltip"] .tooltip-arrow {
  border-top-color: var(--bdx-lime, #dcf42c) !important;
  color: var(--bdx-lime, #dcf42c) !important;
}

/* Top Placement */
html body .tooltip.bs-tooltip-top .arrow::before,
html body .bs-tooltip-top .arrow::before,
html body .tooltip.top .tooltip-arrow,
html body .bs-tooltip-auto[x-placement^="top"] .arrow::before,
html body .bs-tooltip-auto[data-popper-placement^="top"] .arrow::before,
html body .tooltip[class*="top"] .arrow::before,
html body .tooltip[class*="top"] .tooltip-arrow {
  border-top-color: var(--bdx-lime, #dcf42c) !important;
}

/* Bottom Placement (covers both bottom border and top border) */
html body .tooltip.bs-tooltip-bottom .arrow::before,
html body .bs-tooltip-bottom .arrow::before,
html body .tooltip.bottom .tooltip-arrow,
html body .bs-tooltip-auto[x-placement^="bottom"] .arrow::before,
html body .bs-tooltip-auto[data-popper-placement^="bottom"] .arrow::before,
html body .tooltip[class*="bottom"] .arrow::before,
html body .tooltip[class*="bottom"] .tooltip-arrow {
  border-top-color: var(--bdx-lime, #dcf42c) !important;
  border-bottom-color: var(--bdx-lime, #dcf42c) !important;
}

/* Left Placement */
html body .tooltip.bs-tooltip-left .arrow::before,
html body .bs-tooltip-left .arrow::before,
html body .tooltip.left .tooltip-arrow,
html body .bs-tooltip-auto[x-placement^="left"] .arrow::before,
html body .bs-tooltip-auto[data-popper-placement^="left"] .arrow::before,
html body .tooltip[class*="left"] .arrow::before,
html body .tooltip[class*="left"] .tooltip-arrow {
  border-top-color: var(--bdx-lime, #dcf42c) !important;
  border-left-color: var(--bdx-lime, #dcf42c) !important;
}

/* Right Placement */
html body .tooltip.bs-tooltip-right .arrow::before,
html body .bs-tooltip-right .arrow::before,
html body .tooltip.right .tooltip-arrow,
html body .bs-tooltip-auto[x-placement^="right"] .arrow::before,
html body .bs-tooltip-auto[data-popper-placement^="right"] .arrow::before,
html body .tooltip[class*="right"] .arrow::before,
html body .tooltip[class*="right"] .tooltip-arrow {
  border-top-color: var(--bdx-lime, #dcf42c) !important;
  border-right-color: var(--bdx-lime, #dcf42c) !important;
}

/* Universal override for any element or attribute holding #05a8d0 inside tooltip */
.tooltip [style*="05a8d0" i],
.tooltip [style*="border" i],
[role="tooltip"] [style*="05a8d0" i] {
  border-top-color: var(--bdx-lime, #dcf42c) !important;
  border-bottom-color: var(--bdx-lime, #dcf42c) !important;
  border-left-color: var(--bdx-lime, #dcf42c) !important;
  border-right-color: var(--bdx-lime, #dcf42c) !important;
  background-color: var(--bdx-lime, #dcf42c) !important;
  color: var(--bdx-ink, #13171a) !important;
}

/* Popover styling (if popover variant is triggered) */
.popover,
.popover-body {
  background-color: var(--bdx-lime, #dcf42c) !important;
  color: var(--bdx-ink, #13171a) !important;
  border-color: rgba(19, 23, 26, 0.14) !important;
  font-family: var(--bdx-sans) !important;
  font-weight: 600 !important;
  border-radius: var(--bdx-radius, 6px) !important;
}
.popover-header {
  background-color: var(--bdx-lime-hover, #cfe81f) !important;
  color: var(--bdx-ink, #13171a) !important;
  border-bottom-color: rgba(19, 23, 26, 0.14) !important;
  font-weight: 700 !important;
}
.bs-popover-top .arrow::after,
.bs-popover-auto[x-placement^="top"] .arrow::after {
  border-top-color: var(--bdx-lime, #dcf42c) !important;
}
.bs-popover-bottom .arrow::after,
.bs-popover-auto[x-placement^="bottom"] .arrow::after {
  border-bottom-color: var(--bdx-lime, #dcf42c) !important;
}
.bs-popover-left .arrow::after,
.bs-popover-auto[x-placement^="left"] .arrow::after {
  border-left-color: var(--bdx-lime, #dcf42c) !important;
}
.bs-popover-right .arrow::after,
.bs-popover-auto[x-placement^="right"] .arrow::after {
  border-right-color: var(--bdx-lime, #dcf42c) !important;
}

/* Specific inline-style override for any legacy cyan tooltip */
.tooltip[style*="05a8d0" i],
.tooltip-inner[style*="05a8d0" i],
[role="tooltip"][style*="05a8d0" i] {
  background-color: var(--bdx-lime, #dcf42c) !important;
  background: var(--bdx-lime, #dcf42c) !important;
  color: var(--bdx-ink, #13171a) !important;
}

/* ============================================================================
   V22.7  Visitor Enable / Disable Buttons Alignment
   Vertically aligns the Enable/Disable action buttons with the "User X :" header,
   supporting both single-button state and dual-button inline display.
   ============================================================================ */

/* 1. Typography for Visitor Card Header ("User 2 :", "User 3 :", etc.) */
#content table[id*="VisitorTable"] td > p:first-of-type,
#content #add_customer_div table td > p:first-of-type,
#content #add_visitor_div table td > p:first-of-type,
#content table.tableBorder td:has(> button[onclick*="disable"]) > p:first-of-type,
#content table.tableBorder td:has(> button[onclick*="enable"]) > p:first-of-type,
#content table.tableBorder td:has(> button[id*="hide"]) > p:first-of-type,
#content table.tableBorder td:has(> button[id*="show"]) > p:first-of-type {
  font-weight: 700 !important;
  font-size: 15px !important;
  color: var(--bdx-ink, #13171a) !important;
  margin: 0 !important;
  line-height: 1.25 !important;
}

#content table[id*="VisitorTable"] td > p:nth-of-type(2),
#content #add_customer_div table td > p:nth-of-type(2),
#content #add_visitor_div table td > p:nth-of-type(2),
#content table.tableBorder td:has(> button[onclick*="disable"]) > p:nth-of-type(2),
#content table.tableBorder td:has(> button[onclick*="enable"]) > p:nth-of-type(2),
#content table.tableBorder td:has(> button[id*="hide"]) > p:nth-of-type(2),
#content table.tableBorder td:has(> button[id*="show"]) > p:nth-of-type(2) {
  font-weight: 500 !important;
  font-size: 13px !important;
  color: var(--bdx-grey, #6b7280) !important;
  margin: 2px 0 0 0 !important;
  line-height: 1.25 !important;
}

/* 2. Enable / Disable Buttons - Flush Right and Vertically Aligned with User Header */
#content table[id*="VisitorTable"] button[onclick*="disable"],
#content table[id*="VisitorTable"] button[onclick*="enable"],
#content #add_customer_div button[onclick*="disable"],
#content #add_customer_div button[onclick*="enable"],
#content #add_visitor_div button[onclick*="disable"],
#content #add_visitor_div button[onclick*="enable"],
#content table.tableBorder button[onclick*="disable"],
#content table.tableBorder button[onclick*="enable"],
#content table.tableBorder button[id*="hide"],
#content table.tableBorder button[id*="show"] {
  float: right !important;
  margin-top: -38px !important;
  margin-left: 8px !important;
  margin-right: 0 !important;
  margin-bottom: 0 !important;
  padding: 6px 16px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  height: 34px !important;
  line-height: 20px !important;
  border-radius: var(--bdx-radius, 5px) !important;
  border: 1.5px solid var(--bdx-border, #e5e7eb) !important;
  background: #ffffff !important;
  color: var(--bdx-ink, #13171a) !important;
  cursor: pointer !important;
  box-shadow: 0 1px 2px rgba(19, 23, 26, 0.05) !important;
  transition: all 0.15s ease !important;
}

#content table[id*="VisitorTable"] button[onclick*="disable"]:hover,
#content table[id*="VisitorTable"] button[onclick*="enable"]:hover,
#content #add_customer_div button[onclick*="disable"]:hover,
#content #add_customer_div button[onclick*="enable"]:hover,
#content #add_visitor_div button[onclick*="disable"]:hover,
#content #add_visitor_div button[onclick*="enable"]:hover,
#content table.tableBorder button[onclick*="disable"]:hover,
#content table.tableBorder button[onclick*="enable"]:hover,
#content table.tableBorder button[id*="hide"]:hover,
#content table.tableBorder button[id*="show"]:hover {
  background: var(--bdx-offwhite, #f4f3ef) !important;
  border-color: var(--bdx-ink, #13171a) !important;
  color: var(--bdx-ink, #13171a) !important;
  transform: translateY(-1px) !important;
}

/* Fallback: if the visitor cell only has 1 paragraph */
#content table[id*="VisitorTable"] td:not(:has(p:nth-of-type(2))) button[onclick*="disable"],
#content table[id*="VisitorTable"] td:not(:has(p:nth-of-type(2))) button[onclick*="enable"],
#content table[id*="VisitorTable"] td:not(:has(p:nth-of-type(2))) button[id*="hide"],
#content table[id*="VisitorTable"] td:not(:has(p:nth-of-type(2))) button[id*="show"],
#content #add_customer_div table td:not(:has(p:nth-of-type(2))) button[onclick*="disable"],
#content #add_customer_div table td:not(:has(p:nth-of-type(2))) button[onclick*="enable"],
#content #add_visitor_div table td:not(:has(p:nth-of-type(2))) button[onclick*="disable"],
#content #add_visitor_div table td:not(:has(p:nth-of-type(2))) button[onclick*="enable"],
#content table.tableBorder td:not(:has(p:nth-of-type(2))) button[onclick*="disable"],
#content table.tableBorder td:not(:has(p:nth-of-type(2))) button[onclick*="enable"],
#content table.tableBorder td:not(:has(p:nth-of-type(2))) button[id*="hide"],
#content table.tableBorder td:not(:has(p:nth-of-type(2))) button[id*="show"] {
  margin-top: -22px !important;
}

/* 3. Divider & Clean Spacing under User Header & Buttons */
#content table[id*="VisitorTable"] td > br,
#content #add_customer_div table td > br,
#content #add_visitor_div table td > br,
#content table.tableBorder td:has(> button[onclick*="disable"]) > br,
#content table.tableBorder td:has(> button[onclick*="enable"]) > br,
#content table.tableBorder td:has(> button[id*="hide"]) > br,
#content table.tableBorder td:has(> button[id*="show"]) > br {
  display: none !important;
}

#content table[id*="VisitorTable"] td > hr,
#content #add_customer_div table td > hr,
#content #add_visitor_div table td > hr,
#content table.tableBorder td:has(> button[onclick*="disable"]) > hr,
#content table.tableBorder td:has(> button[onclick*="enable"]) > hr,
#content table.tableBorder td:has(> button[id*="hide"]) > hr,
#content table.tableBorder td:has(> button[id*="show"]) > hr {
  clear: both !important;
  border: 0 !important;
  border-top: 1px solid var(--bdx-border, #e5e7eb) !important;
  margin: 14px 0 8px 0 !important;
  width: 100% !important;
}