/**
 * CWSA Elevexa-inspired UI skin — Phases A–D (overlay)
 * ---------------------------------------------------------------------------
 * Brand: CWSA indigo #2E236E + white + near-black (eye-friendly shades)
 * Safety: CSS overlay only. Scope body.cwsa-ui-v2 for rollback.
 * Print/invoice styles are intentionally left alone (Phase D = print reset only).
 * ---------------------------------------------------------------------------
 */

/* Login card page — soft canvas, never Ace grid / portal wash */
body.cwsa-ui-v2.cwsa-login-page {
  background: #eef1f6 !important;
  background-image: none !important;
}

body.cwsa-ui-v2 {
  /* CWSA primary indigo (screenshot) + soft tints */
  --cwsa-brand: #2e236e;
  --cwsa-brand-deep: #241b58;
  --cwsa-brand-deeper: #1a1445;
  --cwsa-brand-soft: #e8e4f5;
  --cwsa-brand-soft-2: #d4cdea;
  --cwsa-brand-ink: #1a1445;

  /* Soft indigo-tinted canvas (white / black friendly) */
  --cwsa-bg: #f3f1f8;
  --cwsa-surface: #ffffff;
  --cwsa-ink: #121218;
  --cwsa-muted: #5c5a6e;
  --cwsa-border: #e2deee;

  --cwsa-primary: var(--cwsa-brand);
  --cwsa-primary-strong: var(--cwsa-brand-deep);
  --cwsa-primary-soft: var(--cwsa-brand-soft);
  --cwsa-primary-ink: var(--cwsa-brand-ink);
  /* Row selection — soft tint only (never solid brand on dark text) */
  --cwsa-row-selected: #e8e4f5;
  --cwsa-row-selected-strong: #d4cdea;
  --cwsa-row-selected-ink: #241b58;

  /* Top bar = brand indigo; sidebar = soft wash + brand edge */
  --cwsa-sidebar: #f6f4fb;
  --cwsa-sidebar-solid: #f6f4fb;
  --cwsa-sidebar-hover: rgba(46, 35, 110, 0.08);
  --cwsa-sidebar-active: rgba(46, 35, 110, 0.14);
  --cwsa-nav: #2e236e;
  --cwsa-sidebar-border: #2e236e;

  --cwsa-danger: #dc2626;
  --cwsa-warning: #d97706;
  --cwsa-info: #0284c7;
  --cwsa-success: #16a34a;
  --cwsa-radius: 12px;
  --cwsa-radius-sm: 8px;
  --cwsa-shadow: 0 1px 2px rgba(36, 27, 88, 0.05), 0 10px 28px rgba(36, 27, 88, 0.08);
  --cwsa-shadow-sm: 0 1px 2px rgba(36, 27, 88, 0.06);
  --cwsa-navbar-h: 45px;

  background: var(--cwsa-bg) !important;
  color: var(--cwsa-ink);
  font-family: "Open Sans", "Segoe UI", Tahoma, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* -------------------------------------------------------------------------
   Top navbar — same Elevexa blue as left rail
   ------------------------------------------------------------------------- */
body.cwsa-ui-v2 .navbar,
body.cwsa-ui-v2 .navbar.navbar-default,
body.cwsa-ui-v2 .navbar.navbar-fixed-top {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 1040 !important;
  background: var(--cwsa-nav) !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: 0 8px 24px rgba(46, 35, 110, 0.28);
  min-height: var(--cwsa-navbar-h);
  margin: 0 !important;
}

body.cwsa-ui-v2 #main-container,
body.cwsa-ui-v2 .navbar-fixed-top + .main-container {
  padding-top: var(--cwsa-navbar-h) !important;
}

body.cwsa-ui-v2 .navbar .navbar-brand,
body.cwsa-ui-v2 .navbar .navbar-brand .sysname,
body.cwsa-ui-v2 .navbar .navbar-brand .sysname i {
  color: #ffffff !important;
  font-weight: 600;
}

body.cwsa-ui-v2 .navbar .navbar-brand:hover,
body.cwsa-ui-v2 .navbar .navbar-brand:focus {
  color: #f6f4fb !important;
}

/* Keep Reports / SMS / User profile Ace-aligned (top-right, vertically centered) */
body.cwsa-ui-v2 .navbar-buttons.navbar-header.pull-right {
  float: right !important;
  width: auto !important;
  border: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}

body.cwsa-ui-v2 .navbar .ace-nav {
  height: 100% !important;
  margin: 0 !important;
  float: none !important;
  text-align: left !important;
  background: transparent !important;
  border: 0 !important;
  letter-spacing: normal !important;
}

body.cwsa-ui-v2 .navbar .ace-nav > li {
  float: left !important;
  display: block !important;
  line-height: 45px !important;
  height: 45px !important;
  padding: 0 !important;
  border-left: 1px solid rgba(255, 255, 255, 0.18) !important;
  position: relative !important;
}

body.cwsa-ui-v2 .navbar .ace-nav > li > a {
  background: transparent !important;
  color: #ffffff !important;
  border-radius: 0 !important;
  margin: 0 !important;
  height: 100% !important;
  line-height: inherit !important;
  padding: 0 12px !important;
  display: block !important;
  text-align: center !important;
  min-width: 50px;
  transition: background 0.15s ease, color 0.15s ease;
}

body.cwsa-ui-v2 .navbar .ace-nav > li > a:hover,
body.cwsa-ui-v2 .navbar .ace-nav > li.open > a,
body.cwsa-ui-v2 .navbar .ace-nav > li > a:focus {
  background: rgba(255, 255, 255, 0.12) !important;
  color: #ffffff !important;
}

body.cwsa-ui-v2 .navbar .ace-nav > li.purple > a,
body.cwsa-ui-v2 .navbar .ace-nav > li.green > a,
body.cwsa-ui-v2 .navbar .ace-nav > li.light-blue > a,
body.cwsa-ui-v2 .navbar .ace-nav > li.grey > a {
  background: transparent !important;
}

body.cwsa-ui-v2 .navbar .ace-nav .user-info {
  line-height: 15px !important;
  top: 8px !important;
  color: #ffffff !important;
}

/* Ace caps .user-info at 100px, which clips a full name. */
@media (min-width: 992px) {
  body.cwsa-ui-v2 .navbar .ace-nav > li.light-blue > a {
    text-align: left !important;
  }

  body.cwsa-ui-v2 .navbar .ace-nav .user-info {
    max-width: 360px !important;
    width: auto !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
  }
}

body.cwsa-ui-v2 .navbar .ace-nav .nav-user-photo,
body.cwsa-ui-v2 .navbar .ace-nav .cwsa-user-avatar {
  margin: -4px 8px 0 0 !important;
  border: 2px solid rgba(255, 255, 255, 0.75) !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.2);
}

/* Initials avatar (replaces static user.jpg) */
body.cwsa-ui-v2 .navbar .ace-nav .cwsa-user-avatar,
body.cwsa-ui-v2 #cwsa_user_avatar.cwsa-user-avatar {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  background: linear-gradient(145deg, #7b6fb5 0%, #2e236e 55%, #1a1445 100%) !important;
  color: #ffffff !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  vertical-align: middle !important;
  overflow: hidden !important;
  object-fit: unset !important;
}

body.cwsa-ui-v2 .navbar-toggle .icon-bar {
  background: #ffffff !important;
}

/* -------------------------------------------------------------------------
   Sidebar / customer list
   ------------------------------------------------------------------------- */
/*
 * IMPORTANT: do not set position:relative on #main-container — that can leave
 * an empty painted rail while the real sidebar/customers disappear.
 * Settings menu lives in the top navbar (#li_cwsa_settings_nav).
 */
body.cwsa-ui-v2 #main-container {
  position: static;
  --cwsa-sidebar-w: 350px;
}

body.cwsa-ui-v2 #main-container::after {
  content: none !important;
  display: none !important;
}

/* Keep Ace fixed left sidebar with customers visible */
body.cwsa-ui-v2 #sidebar.sidebar,
body.cwsa-ui-v2 .sidebar.responsive,
body.cwsa-ui-v2 .sidebar.ace-save-state {
  position: fixed !important;
  left: 0 !important;
  top: 45px !important;
  bottom: 0 !important;
  width: 350px !important;
  z-index: 1026 !important;
  float: none !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

body.cwsa-ui-v2 #sidebar.menu-min {
  width: 43px !important;
}

body.cwsa-ui-v2 .main-content {
  margin-left: 350px !important;
}

body.cwsa-ui-v2 .sidebar.menu-min ~ .main-content,
body.cwsa-ui-v2 #main-container:has(> .sidebar.menu-min) > .main-content {
  margin-left: 43px !important;
}

@media (max-width: 991px) {
  body.cwsa-ui-v2 #sidebar.sidebar {
    position: absolute !important;
  }
  body.cwsa-ui-v2 .main-content {
    margin-left: 0 !important;
  }
}

/* Settings lives in the top navbar (ace-nav) */
body.cwsa-ui-v2 #li_cwsa_settings_nav > a {
  background: rgba(255, 255, 255, 0.12) !important;
}

body.cwsa-ui-v2 #li_cwsa_settings_nav.open > a,
body.cwsa-ui-v2 #li_cwsa_settings_nav > a:hover,
body.cwsa-ui-v2 #li_cwsa_settings_nav > a:focus {
  background: rgba(255, 183, 82, 0.95) !important;
  color: #ffffff !important;
}

body.cwsa-ui-v2 #cwsa_settings_menu {
  min-width: 260px !important;
  width: auto !important;
  padding-bottom: 8px !important;
}

body.cwsa-ui-v2 #cwsa_settings_menu .cwsa-settings-actions {
  padding: 10px 12px !important;
  background: #ffffff !important;
  white-space: nowrap !important;
}

body.cwsa-ui-v2 #cwsa_settings_menu .cwsa-settings-btns {
  display: flex !important;
  flex-wrap: nowrap !important;
  flex-direction: row !important;
  gap: 6px !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: max-content !important;
  white-space: nowrap !important;
}

body.cwsa-ui-v2 #cwsa_settings_menu .cwsa-settings-btns .btn {
  margin: 0 !important;
  min-width: 34px !important;
  flex: 0 0 auto !important;
}

body.cwsa-ui-v2 #cwsa_settings_menu .cwsa-settings-btns .btn .ace-icon,
body.cwsa-ui-v2 #cwsa_settings_menu .cwsa-settings-btns .btn .fa {
  color: #ffffff !important;
}

@media (max-width: 991px) {
  body.cwsa-ui-v2 #main-container::after {
    display: none;
  }
}

body.cwsa-ui-v2 .sidebar,
body.cwsa-ui-v2 .sidebar.responsive,
body.cwsa-ui-v2 .sidebar.ace-save-state {
  background: var(--cwsa-sidebar) !important;
  background-color: var(--cwsa-sidebar) !important;
  background-image: none !important;
  border-right: 3px solid var(--cwsa-sidebar-border) !important;
  box-shadow: none;
  color: var(--cwsa-ink);
}

body.cwsa-ui-v2 .sidebar::before,
body.cwsa-ui-v2 .sidebar::after {
  background: var(--cwsa-sidebar-solid) !important;
  background-color: var(--cwsa-sidebar-solid) !important;
  background-image: none !important;
  border-right: 3px solid var(--cwsa-sidebar-border) !important;
  top: 0 !important;
  bottom: 0 !important;
  height: auto !important;
  max-height: none !important;
}

body.cwsa-ui-v2 .sidebar .nav-list > li > a {
  color: var(--cwsa-ink) !important;
  background: transparent !important;
  border: 0 !important;
  font-weight: 500;
}

body.cwsa-ui-v2 .sidebar .nav-list > li > a:hover {
  background: var(--cwsa-sidebar-hover) !important;
  color: var(--cwsa-brand-ink) !important;
}

body.cwsa-ui-v2 .sidebar .nav-list > li.active > a,
body.cwsa-ui-v2 .sidebar .nav-list > li.open > a {
  background: var(--cwsa-sidebar-active) !important;
  color: var(--cwsa-brand-ink) !important;
  box-shadow: inset 3px 0 0 var(--cwsa-sidebar-border);
}

body.cwsa-ui-v2 .sidebar .nav-list > li .submenu {
  background: rgba(46, 35, 110, 0.04) !important;
  border: 0 !important;
}

body.cwsa-ui-v2 .sidebar .nav-list > li .submenu > li > a {
  color: var(--cwsa-muted) !important;
  border: 0 !important;
}

body.cwsa-ui-v2 .sidebar .nav-list > li .submenu > li > a:hover,
body.cwsa-ui-v2 .sidebar .nav-list > li .submenu > li.active > a {
  color: var(--cwsa-brand-ink) !important;
  background: var(--cwsa-sidebar-hover) !important;
}

body.cwsa-ui-v2 .sidebar-toggle {
  background: #ffffff !important;
  border-color: var(--cwsa-border) !important;
  color: var(--cwsa-brand) !important;
}

body.cwsa-ui-v2 .sidebar-shortcuts {
  background: transparent !important;
  border-bottom: 1px solid var(--cwsa-border) !important;
  padding: 10px 8px !important;
}

/* Customer search — same visibility as PC Readings tool-search */
body.cwsa-ui-v2 .sidebar .search-box,
body.cwsa-ui-v2 #txt_cus_search {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: 34px !important;
  line-height: 1.3 !important;
  margin: 0 !important;
  padding: 6px 12px 6px 32px !important;
  background-color: #ffffff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: 10px 50% !important;
  background-size: 14px 14px !important;
  border: 1.5px solid #a89fd4 !important;
  border-radius: var(--cwsa-radius-sm) !important;
  color: var(--cwsa-ink) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  box-shadow: 0 1px 2px rgba(36, 27, 88, 0.08) !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-sizing: border-box !important;
}

body.cwsa-ui-v2 .sidebar .search-box::placeholder,
body.cwsa-ui-v2 #txt_cus_search::placeholder {
  color: #64748b !important;
  opacity: 1 !important;
  font-weight: 500 !important;
}

body.cwsa-ui-v2 .sidebar .search-box:hover,
body.cwsa-ui-v2 #txt_cus_search:hover {
  border-color: #7b6fb5 !important;
  background-color: #f8fbff !important;
}

body.cwsa-ui-v2 .sidebar .search-box:focus,
body.cwsa-ui-v2 #txt_cus_search:focus {
  outline: none !important;
  border-color: var(--cwsa-primary) !important;
  background-color: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(46, 35, 110, 0.2) !important;
  color: var(--cwsa-ink) !important;
}

body.cwsa-ui-v2 .sidebar .wu-toolbar {
  background: transparent !important;
  border: 0 !important;
}

/* Toolbar buttons on light sidebar (exclude Ace settings cog) */
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn):not(.btn-app),
body.cwsa-ui-v2 #sidebar .btn.btn-white:not(.ace-settings-btn),
body.cwsa-ui-v2 #sidebar .btn.btn-white.btn-primary,
body.cwsa-ui-v2 #sidebar .btn.btn-white.btn-info,
body.cwsa-ui-v2 #sidebar .btn.btn-white.btn-warning,
body.cwsa-ui-v2 #sidebar .btn.btn-white.btn-success,
body.cwsa-ui-v2 #sidebar .btn.btn-white.btn-danger {
  background: #ffffff !important;
  background-image: none !important;
  border: 1px solid #d4cdea !important;
  color: #241b58 !important;
  box-shadow: var(--cwsa-shadow-sm) !important;
  opacity: 1 !important;
}

body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn):not(.btn-app):hover,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn):not(.btn-app):focus,
body.cwsa-ui-v2 #sidebar .btn.btn-white:not(.ace-settings-btn):hover,
body.cwsa-ui-v2 #sidebar .btn.btn-white:not(.ace-settings-btn):focus {
  background: #e8e4f5 !important;
  border-color: #a89fd4 !important;
  color: #1a1445 !important;
}

body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn):not(.btn-app) .ace-icon,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn):not(.btn-app) .fa,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn):not(.btn-app) i,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn) .blue,
body.cwsa-ui-v2 #sidebar .btn-white:not(.ace-settings-btn) .blue,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn) .red,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn) .orange,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn) .green {
  color: #241b58 !important;
}

body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn):hover .ace-icon,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn):hover .fa,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn):hover i,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn):hover .blue {
  color: #1a1445 !important;
}

body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn)[disabled],
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn).disabled,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn)[disabled]:hover {
  background: #f8fafc !important;
  border-color: #e2e8f0 !important;
  opacity: 1 !important;
  box-shadow: none !important;
}

body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn)[disabled] .ace-icon,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn).disabled .ace-icon,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn)[disabled] .fa,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn)[disabled] i,
body.cwsa-ui-v2 #sidebar .btn:not(.ace-settings-btn)[disabled] .blue {
  color: #94a3b8 !important;
}

body.cwsa-ui-v2 .sidebar .hr-dotted {
  border-color: var(--cwsa-border) !important;
}

/* Customer list on light sidebar — always visible */
body.cwsa-ui-v2 #sidebar #cus_list_scroll {
  display: block !important;
  visibility: visible !important;
  background: #ffffff !important;
  border: 1px solid var(--cwsa-border);
  border-radius: var(--cwsa-radius-sm);
  max-height: none !important;
  min-height: 320px !important;
  height: calc(100vh - 280px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

body.cwsa-ui-v2 #sidebar #tb_cus_list,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-striped,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-bordered,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-hover {
  display: table !important;
  visibility: visible !important;
  width: 100% !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #1c2434 !important;
  margin-bottom: 0;
  border-color: var(--cwsa-border) !important;
}

body.cwsa-ui-v2 #sidebar #tb_cus_list > thead > tr > th,
body.cwsa-ui-v2 #sidebar #tb_cus_list > thead > tr > td,
body.cwsa-ui-v2 #sidebar #tb_cus_list thead.thin-border-bottom > tr > th {
  background: #f5f9ff !important;
  background-color: #f5f9ff !important;
  color: var(--cwsa-muted) !important;
  border-color: var(--cwsa-border) !important;
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

body.cwsa-ui-v2 #sidebar #tb_cus_list > tbody > tr,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-striped > tbody > tr:nth-of-type(odd),
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-striped > tbody > tr:nth-of-type(even) {
  /* no display/visibility !important — breaks #txt_cus_search filter */
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #1c2434 !important;
  border-color: var(--cwsa-border) !important;
}

body.cwsa-ui-v2 #sidebar #tb_cus_list > tbody > tr > td {
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #1c2434 !important;
  border-color: var(--cwsa-border) !important;
}

body.cwsa-ui-v2 #sidebar #tb_cus_list.table-striped > tbody > tr:nth-of-type(odd),
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-striped > tbody > tr:nth-of-type(odd) > td {
  background: #fafcff !important;
  background-color: #fafcff !important;
}

body.cwsa-ui-v2 #sidebar #tb_cus_list > tbody > tr:hover,
body.cwsa-ui-v2 #sidebar #tb_cus_list > tbody > tr:hover > td,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-hover > tbody > tr:hover > td {
  background: var(--cwsa-primary-soft) !important;
  background-color: var(--cwsa-primary-soft) !important;
  color: var(--cwsa-primary-ink) !important;
}

/* Selected customer rows — soft blue, always readable (beats zebra stripe) */
body.cwsa-ui-v2 #sidebar #tb_cus_list > tbody > tr.rowselect,
body.cwsa-ui-v2 #sidebar #tb_cus_list > tbody > tr.rowselect > td,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-striped > tbody > tr.rowselect,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-striped > tbody > tr.rowselect > td,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-striped > tbody > tr.rowselect:nth-of-type(odd),
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-striped > tbody > tr.rowselect:nth-of-type(odd) > td,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-striped > tbody > tr.rowselect:nth-of-type(even),
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-striped > tbody > tr.rowselect:nth-of-type(even) > td,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-hover > tbody > tr.rowselect:hover,
body.cwsa-ui-v2 #sidebar #tb_cus_list.table-hover > tbody > tr.rowselect:hover > td {
  background: var(--cwsa-row-selected) !important;
  background-color: var(--cwsa-row-selected) !important;
  color: var(--cwsa-row-selected-ink) !important;
}

body.cwsa-ui-v2 #sidebar #tb_cus_list .cus_name,
body.cwsa-ui-v2 #sidebar #customerstbody,
body.cwsa-ui-v2 #sidebar #customerstbody.blue,
body.cwsa-ui-v2 #sidebar #customerstbody.blue .cus_name {
  color: #1c2434 !important;
  visibility: visible !important;
  opacity: 1 !important;
}

body.cwsa-ui-v2 #sidebar #tb_cus_list > tbody > tr.rowselect .cus_name,
body.cwsa-ui-v2 #sidebar #customerstbody > tr.rowselect .cus_name,
body.cwsa-ui-v2 #sidebar #customerstbody.blue > tr.rowselect .cus_name {
  color: var(--cwsa-row-selected-ink) !important;
}

/* Account Information name badge — Ace uses .white on light label-info (invisible) */
body.cwsa-ui-v2 #customer-account-info .namebadge .label-info,
body.cwsa-ui-v2 #customer-account-info .label.label-info.label-xlg,
body.cwsa-ui-v2 #div_cus_content_view .namebadge .label-info,
body.cwsa-ui-v2 #div_cus_content_view .label.label-info {
  background: #2e236e !important;
  background-color: #2e236e !important;
  color: #ffffff !important;
  border-color: #241b58 !important;
}

body.cwsa-ui-v2 #customer-account-info .namebadge .white,
body.cwsa-ui-v2 #customer-account-info .namebadge .user-title-label,
body.cwsa-ui-v2 #customer-account-info .namebadge .user-title-label span,
body.cwsa-ui-v2 #div_cus_content_view .namebadge .white,
body.cwsa-ui-v2 #div_cus_content_view .namebadge a,
body.cwsa-ui-v2 #div_cus_content_view .namebadge span.white {
  color: #ffffff !important;
  font-weight: 700;
  text-shadow: none;
}

body.cwsa-ui-v2 #customer-account-info .label.label-info .white,
body.cwsa-ui-v2 #div_cus_content_view .label.label-info .white {
  color: #ffffff !important;
}

/* Remove Ace ribbon ears (arrowed-in / arrowed-in-right) on name + Edit Profile */
body.cwsa-ui-v2 #customer-account-info .arrowed-in:before,
body.cwsa-ui-v2 #customer-account-info .arrowed-in:after,
body.cwsa-ui-v2 #customer-account-info .arrowed-in-right:before,
body.cwsa-ui-v2 #customer-account-info .arrowed-in-right:after,
body.cwsa-ui-v2 #div_cus_content_view .arrowed-in:before,
body.cwsa-ui-v2 #div_cus_content_view .arrowed-in:after,
body.cwsa-ui-v2 #div_cus_content_view .arrowed-in-right:before,
body.cwsa-ui-v2 #div_cus_content_view .arrowed-in-right:after,
body.cwsa-ui-v2 .cwsa-edit-profile-btn:before,
body.cwsa-ui-v2 .cwsa-edit-profile-btn:after {
  content: none !important;
  display: none !important;
  border: 0 !important;
}

body.cwsa-ui-v2 .cwsa-edit-profile-btn {
  border-radius: 6px !important;
  display: inline-block !important;
}

/* -------------------------------------------------------------------------
   Main canvas + breadcrumbs
   ------------------------------------------------------------------------- */
body.cwsa-ui-v2 .main-container,
body.cwsa-ui-v2 .main-content,
body.cwsa-ui-v2 .main-content-inner,
body.cwsa-ui-v2 .page-content {
  background: var(--cwsa-bg) !important;
}

body.cwsa-ui-v2 .main-container {
  min-height: 100vh;
}

body.cwsa-ui-v2 .main-content .breadcrumbs {
  background: var(--cwsa-surface) !important;
  border: 1px solid var(--cwsa-border) !important;
  border-radius: var(--cwsa-radius);
  box-shadow: var(--cwsa-shadow-sm);
  margin: 12px 12px 0 !important;
  padding: 8px 12px !important;
  min-height: auto !important;
}

body.cwsa-ui-v2 .breadcrumb > li,
body.cwsa-ui-v2 .breadcrumb > li > a {
  color: var(--cwsa-muted) !important;
}

body.cwsa-ui-v2 .page-content {
  padding: 12px 14px 28px !important;
}

/* Portal footer — same height as top bar (--cwsa-navbar-h: 45px), swatch #2c236a */
body.cwsa-ui-v2:not(.cwsa-login-page) .footer,
body.cwsa-ui-v2:not(.cwsa-login-page) #cwsa_portal_footer {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  visibility: visible !important;
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 1029 !important;
  height: var(--cwsa-navbar-h) !important;
  min-height: var(--cwsa-navbar-h) !important;
  max-height: var(--cwsa-navbar-h) !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: none !important;
  background: #2c236a !important;
  background-color: #2c236a !important;
  border: 0 !important;
  border-top: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

body.cwsa-ui-v2:not(.cwsa-login-page) .footer .footer-inner,
body.cwsa-ui-v2:not(.cwsa-login-page) .footer .footer-content {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: static !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  transform: none !important;
  -webkit-transform: none !important;
  text-align: center !important;
  background: #2c236a !important;
  background-color: #2c236a !important;
  border: 0 !important;
  border-top: 0 !important;
  box-shadow: none !important;
  padding: 0 14px !important;
  line-height: 1 !important;
  color: #ffffff !important;
  box-sizing: border-box !important;
}

body.cwsa-ui-v2:not(.cwsa-login-page) {
  padding-bottom: var(--cwsa-navbar-h) !important;
}

body.cwsa-ui-v2:not(.cwsa-login-page) .btn-scroll-up {
  bottom: calc(var(--cwsa-navbar-h) + 8px) !important;
}

body.cwsa-ui-v2:not(.cwsa-login-page) #cwsa_footer_copy,
body.cwsa-ui-v2:not(.cwsa-login-page) #cwsa_footer_copy .blue.bolder,
body.cwsa-ui-v2:not(.cwsa-login-page) .cwsa-portal-ver {
  color: #ffffff !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  margin-left: 0;
  white-space: nowrap;
}

/* -------------------------------------------------------------------------
   Cards / Ace widget boxes
   ------------------------------------------------------------------------- */
body.cwsa-ui-v2 .widget-box {
  background: var(--cwsa-surface) !important;
  border: 1px solid var(--cwsa-border) !important;
  border-radius: var(--cwsa-radius) !important;
  box-shadow: var(--cwsa-shadow) !important;
  overflow: hidden;
}

/* Panel title header + filter bar underneath (Readings / Bills / Payments) */
body.cwsa-ui-v2 .widget-header.cwsa-panel-header {
  display: flex !important;
  align-items: center !important;
  min-height: 40px !important;
  padding: 8px 12px !important;
}

body.cwsa-ui-v2 .cwsa-panel-header > .widget-title {
  float: none !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

body.cwsa-ui-v2 .cwsa-panel-header > .widget-toolbar {
  float: none !important;
  margin-left: auto !important;
}

/* White filter strip directly under the section heading */
body.cwsa-ui-v2 .cwsa-filter-bar {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 5px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 8px 10px !important;
  background: #ffffff !important;
  border-bottom: 1px solid var(--cwsa-border) !important;
  overflow-x: auto !important;
}

body.cwsa-ui-v2 .cwsa-filter-bar .form-control,
body.cwsa-ui-v2 .cwsa-filter-bar select,
body.cwsa-ui-v2 .cwsa-filter-bar input {
  height: 28px !important;
  border-radius: 8px !important;
  border: 1px solid var(--cwsa-border) !important;
  background: #ffffff !important;
  font-size: 11px !important;
  padding: 2px 6px !important;
  box-shadow: none !important;
  flex: 0 0 auto !important;
}

body.cwsa-ui-v2 #pc_readings_filter_year,
body.cwsa-ui-v2 #pc_bills_filter_year,
body.cwsa-ui-v2 #pc_payments_filter_year { width: 62px !important; }

body.cwsa-ui-v2 #pc_readings_filter_month,
body.cwsa-ui-v2 #pc_bills_filter_month,
body.cwsa-ui-v2 #pc_payments_filter_month { width: 56px !important; }

body.cwsa-ui-v2 #pc_readings_date_range,
body.cwsa-ui-v2 #pc_bills_date_range,
body.cwsa-ui-v2 #pc_payments_date_range {
  width: 148px !important;
  font-size: 10px !important;
}

body.cwsa-ui-v2 .cwsa-filter-bar .btn {
  height: 28px !important;
  border-radius: 8px !important;
  padding: 2px 8px !important;
  flex: 0 0 auto !important;
}

body.cwsa-ui-v2 #btn_pc_readings_apply_filter,
body.cwsa-ui-v2 #btn_pc_bills_apply_filter,
body.cwsa-ui-v2 #btn_pc_payments_apply_filter {
  background: var(--cwsa-brand) !important;
  border-color: var(--cwsa-brand) !important;
  color: #fff !important;
}

body.cwsa-ui-v2 .cwsa-filter-bar .label {
  border-radius: 999px !important;
  font-size: 10px !important;
  padding: 4px 8px !important;
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

body.cwsa-ui-v2 .cwsa-pc-readings-hint,
body.cwsa-ui-v2 .cwsa-panel-hint {
  font-size: 9px !important;
  margin: 0 0 8px !important;
}

/* Customer account initials avatar (Account Information) */
body.cwsa-ui-v2 .cwsa-customer-avatar {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 110px !important;
  height: 110px !important;
  margin: 8px auto 12px !important;
  border-radius: 50% !important;
  background: linear-gradient(160deg, #2e236e 0%, #241b58 100%) !important;
  color: #ffffff !important;
  font-size: 36px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  line-height: 1 !important;
  box-shadow: 0 10px 24px rgba(46, 35, 110, 0.28) !important;
  border: 3px solid #e8e4f5 !important;
  user-select: none !important;
}

body.cwsa-ui-v2 .widget-header {
  background: linear-gradient(180deg, #ffffff 0%, #f6f4fb 100%) !important;
  border-bottom: 1px solid var(--cwsa-border) !important;
  color: var(--cwsa-ink) !important;
  padding: 10px 14px !important;
  min-height: 44px !important;
}

/* Panel headers keep neutral theme (no section tint fills) */
body.cwsa-ui-v2 .widget-header.cwsa-panel-header.cwsa-panel-readings,
body.cwsa-ui-v2 .widget-header.cwsa-panel-header.cwsa-panel-bills,
body.cwsa-ui-v2 .widget-header.cwsa-panel-header.cwsa-panel-payments {
  background: linear-gradient(180deg, #ffffff 0%, #f6f4fb 100%) !important;
  border-bottom-color: var(--cwsa-border) !important;
}
body.cwsa-ui-v2 .cwsa-panel-readings > .widget-title,
body.cwsa-ui-v2 .cwsa-panel-readings > .widget-title > i,
body.cwsa-ui-v2 .cwsa-panel-bills > .widget-title,
body.cwsa-ui-v2 .cwsa-panel-bills > .widget-title > i,
body.cwsa-ui-v2 .cwsa-panel-payments > .widget-title,
body.cwsa-ui-v2 .cwsa-panel-payments > .widget-title > i {
  color: var(--cwsa-ink) !important;
}

/* Never show the old cartoon stock avatar */
body.cwsa-ui-v2 img[src*="profile-pic.jpg"],
body.cwsa-ui-v2 img[src*="avatars/profile-pic"] {
  display: none !important;
}

body.cwsa-ui-v2 .widget-header .widget-title,
body.cwsa-ui-v2 .widget-header .widget-title > i {
  color: var(--cwsa-ink) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
}

body.cwsa-ui-v2 .widget-toolbar > a {
  color: var(--cwsa-muted) !important;
}

body.cwsa-ui-v2 .widget-toolbar > a:hover {
  color: var(--cwsa-primary) !important;
}

body.cwsa-ui-v2 .widget-body,
body.cwsa-ui-v2 .widget-main {
  background: var(--cwsa-surface) !important;
  color: var(--cwsa-ink);
}

body.cwsa-ui-v2 .widget-main {
  padding: 12px 14px !important;
}

/* -------------------------------------------------------------------------
   Tables (main content)
   ------------------------------------------------------------------------- */
body.cwsa-ui-v2 .page-content .table {
  background: var(--cwsa-surface);
  color: var(--cwsa-ink);
}

body.cwsa-ui-v2 .page-content .table > thead > tr > th,
body.cwsa-ui-v2 .page-content .table > thead > tr > td,
body.cwsa-ui-v2 .page-content .table thead.thin-border-bottom > tr > th {
  background: #f5f9ff !important;
  color: var(--cwsa-muted) !important;
  border-bottom: 1px solid var(--cwsa-border) !important;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

body.cwsa-ui-v2 .page-content .table-bordered,
body.cwsa-ui-v2 .page-content .table-bordered > thead > tr > th,
body.cwsa-ui-v2 .page-content .table-bordered > tbody > tr > td {
  border-color: var(--cwsa-border) !important;
}

body.cwsa-ui-v2 .page-content .table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #fafcff;
}

body.cwsa-ui-v2 .page-content .table-hover > tbody > tr:hover {
  background-color: var(--cwsa-primary-soft) !important;
  color: var(--cwsa-primary-ink);
}

body.cwsa-ui-v2 .page-content .table > tbody > tr > td {
  vertical-align: middle;
}

/* Global row selection (readings, payments, bills, etc.) — soft & readable */
body.cwsa-ui-v2 tr.rowselect,
body.cwsa-ui-v2 tr.rowselect > td,
body.cwsa-ui-v2 tr.selected,
body.cwsa-ui-v2 tr.selected > td,
body.cwsa-ui-v2 .table-striped > tbody > tr.rowselect,
body.cwsa-ui-v2 .table-striped > tbody > tr.rowselect > td,
body.cwsa-ui-v2 .table-striped > tbody > tr.rowselect:nth-of-type(odd),
body.cwsa-ui-v2 .table-striped > tbody > tr.rowselect:nth-of-type(odd) > td,
body.cwsa-ui-v2 .table-striped > tbody > tr.rowselect:nth-of-type(even),
body.cwsa-ui-v2 .table-striped > tbody > tr.rowselect:nth-of-type(even) > td,
body.cwsa-ui-v2 .table-striped > tbody > tr.selected,
body.cwsa-ui-v2 .table-striped > tbody > tr.selected > td,
body.cwsa-ui-v2 .table-striped > tbody > tr.selected:nth-of-type(odd),
body.cwsa-ui-v2 .table-striped > tbody > tr.selected:nth-of-type(odd) > td,
body.cwsa-ui-v2 .table-hover > tbody > tr.rowselect:hover,
body.cwsa-ui-v2 .table-hover > tbody > tr.rowselect:hover > td,
body.cwsa-ui-v2 .table-hover > tbody > tr.selected:hover,
body.cwsa-ui-v2 .table-hover > tbody > tr.selected:hover > td,
body.cwsa-ui-v2 .dataTable > tbody > tr.selected > td,
body.cwsa-ui-v2 .dataTable > tbody > tr.selected:hover > td {
  background: var(--cwsa-row-selected) !important;
  background-color: var(--cwsa-row-selected) !important;
  color: var(--cwsa-row-selected-ink) !important;
}

body.cwsa-ui-v2 tr.rowselect a,
body.cwsa-ui-v2 tr.selected a {
  color: var(--cwsa-row-selected-ink) !important;
}

body.cwsa-ui-v2 #pc_readings tr.pc-reading-invalid td {
  background-color: #fef2f2 !important;
}

body.cwsa-ui-v2 #pc_readings tr.pc-reading-invalid:hover td {
  background-color: #fee2e2 !important;
}

body.cwsa-ui-v2 #pc_readings tr.pc-reading-duplicate td {
  background-color: #fffbeb !important;
}

body.cwsa-ui-v2 #pc_readings tr.pc-reading-duplicate:hover td {
  background-color: #fef3c7 !important;
}

/* -------------------------------------------------------------------------
   Buttons & toolbars
   ------------------------------------------------------------------------- */
body.cwsa-ui-v2 .btn {
  border-radius: var(--cwsa-radius-sm) !important;
  font-weight: 600;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}

body.cwsa-ui-v2 .btn-white {
  background: var(--cwsa-surface) !important;
  border: 1px solid var(--cwsa-border) !important;
  color: var(--cwsa-ink) !important;
  box-shadow: var(--cwsa-shadow-sm);
}

body.cwsa-ui-v2 .btn-white:hover,
body.cwsa-ui-v2 .btn-white:focus {
  background: #f8fafc !important;
  border-color: #c7d2fe !important;
  color: var(--cwsa-ink) !important;
}

body.cwsa-ui-v2 .btn-white.btn-info,
body.cwsa-ui-v2 .btn-white.btn-primary {
  color: var(--cwsa-primary-ink) !important;
  border-color: #a89fd4 !important;
  background: #f6f4fb !important;
}

body.cwsa-ui-v2 .btn-white.btn-info:hover,
body.cwsa-ui-v2 .btn-white.btn-primary:hover,
body.cwsa-ui-v2 .btn-white.btn-info:focus,
body.cwsa-ui-v2 .btn-white.btn-primary:focus {
  background: var(--cwsa-primary-soft) !important;
  border-color: var(--cwsa-primary-strong) !important;
  color: var(--cwsa-primary-ink) !important;
}

body.cwsa-ui-v2 .btn-white.btn-warning {
  color: #92400e !important;
  border-color: #fcd34d !important;
  background: #fffbeb !important;
}

body.cwsa-ui-v2 .btn-white.btn-success {
  color: #166534 !important;
  border-color: #86efac !important;
  background: #f0fdf4 !important;
}

body.cwsa-ui-v2 .btn-white.btn-danger,
body.cwsa-ui-v2 .btn-white.btn-purple {
  color: #9f1239 !important;
  border-color: #fda4af !important;
  background: #fff1f2 !important;
}

body.cwsa-ui-v2 .btn-info,
body.cwsa-ui-v2 .btn-primary {
  background: var(--cwsa-primary) !important;
  border-color: var(--cwsa-primary) !important;
  color: #ffffff !important;
  box-shadow: 0 1px 2px rgba(46, 35, 110, 0.28);
}

body.cwsa-ui-v2 .btn-info:hover,
body.cwsa-ui-v2 .btn-primary:hover,
body.cwsa-ui-v2 .btn-info:focus,
body.cwsa-ui-v2 .btn-primary:focus {
  background: var(--cwsa-primary-strong) !important;
  border-color: var(--cwsa-primary-strong) !important;
  color: #ffffff !important;
}

body.cwsa-ui-v2 .btn[disabled],
body.cwsa-ui-v2 .btn.disabled {
  opacity: 0.55;
  box-shadow: none !important;
}

body.cwsa-ui-v2 .page-content .btn-white .blue,
body.cwsa-ui-v2 .page-content .btn .blue {
  color: var(--cwsa-primary) !important;
}

/* -------------------------------------------------------------------------
   Forms (page content)
   ------------------------------------------------------------------------- */
body.cwsa-ui-v2 .page-content .form-control,
body.cwsa-ui-v2 .page-content input[type="text"],
body.cwsa-ui-v2 .page-content input[type="password"],
body.cwsa-ui-v2 .page-content input[type="number"],
body.cwsa-ui-v2 .page-content select,
body.cwsa-ui-v2 .page-content textarea {
  border-radius: var(--cwsa-radius-sm) !important;
  border-color: var(--cwsa-border) !important;
  box-shadow: none !important;
  color: var(--cwsa-ink);
  background-color: #ffffff !important;
}

body.cwsa-ui-v2 .page-content .form-control:focus,
body.cwsa-ui-v2 .page-content input[type="text"]:focus,
body.cwsa-ui-v2 .page-content select:focus,
body.cwsa-ui-v2 .page-content textarea:focus {
  border-color: var(--cwsa-primary-strong) !important;
  box-shadow: 0 0 0 3px rgba(46, 35, 110, 0.18) !important;
}

/* Panel toolbar search (PC Readings / Payments / SP / Dist / Prod / Bills) */
body.cwsa-ui-v2 .tool-search-txt,
body.cwsa-ui-v2 input.tool-search-txt,
body.cwsa-ui-v2 .wu-toolbar .tool-search-txt,
body.cwsa-ui-v2 .breadcrumbs .tool-search-txt,
body.cwsa-ui-v2 #txt_pc_readings_search,
body.cwsa-ui-v2 #txt_pc_bills_search,
body.cwsa-ui-v2 #txt_payment_search,
body.cwsa-ui-v2 #txt_sp_readings_search,
body.cwsa-ui-v2 #txt_dist_readings_search,
body.cwsa-ui-v2 #txt_prod_readings_search {
  display: inline-block !important;
  vertical-align: middle !important;
  width: 11.5em !important;
  max-width: 14em !important;
  min-width: 9em !important;
  height: 30px !important;
  max-height: none !important;
  line-height: 1.3 !important;
  margin: 0 0.35em !important;
  padding: 4px 10px 4px 28px !important;
  background-color: #ffffff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: 8px 50% !important;
  background-size: 14px 14px !important;
  border: 1.5px solid #a89fd4 !important;
  border-radius: var(--cwsa-radius-sm) !important;
  color: var(--cwsa-ink) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  box-shadow: 0 1px 2px rgba(36, 27, 88, 0.08) !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

body.cwsa-ui-v2 .tool-search-txt::placeholder,
body.cwsa-ui-v2 input.tool-search-txt::placeholder,
body.cwsa-ui-v2 #txt_pc_readings_search::placeholder,
body.cwsa-ui-v2 #txt_pc_bills_search::placeholder,
body.cwsa-ui-v2 #txt_payment_search::placeholder,
body.cwsa-ui-v2 #txt_sp_readings_search::placeholder,
body.cwsa-ui-v2 #txt_dist_readings_search::placeholder,
body.cwsa-ui-v2 #txt_prod_readings_search::placeholder {
  color: #64748b !important;
  opacity: 1 !important;
  font-weight: 500 !important;
}

body.cwsa-ui-v2 .tool-search-txt:hover,
body.cwsa-ui-v2 input.tool-search-txt:hover {
  border-color: #7b6fb5 !important;
  background-color: #f8fbff !important;
}

body.cwsa-ui-v2 .tool-search-txt:focus,
body.cwsa-ui-v2 input.tool-search-txt:focus,
body.cwsa-ui-v2 #txt_pc_readings_search:focus,
body.cwsa-ui-v2 #txt_pc_bills_search:focus,
body.cwsa-ui-v2 #txt_payment_search:focus,
body.cwsa-ui-v2 #txt_sp_readings_search:focus,
body.cwsa-ui-v2 #txt_dist_readings_search:focus,
body.cwsa-ui-v2 #txt_prod_readings_search:focus {
  outline: none !important;
  border-color: var(--cwsa-primary) !important;
  background-color: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(46, 35, 110, 0.2) !important;
  color: var(--cwsa-ink) !important;
}

body.cwsa-ui-v2 .page-content .select2-container--default .select2-selection--single {
  border-radius: var(--cwsa-radius-sm) !important;
  border-color: var(--cwsa-border) !important;
  height: 34px;
}

/* Select2 above modal dialogs (Switch Water System, etc.) — searchable, capped height */
body.cwsa-ui-v2 .select2-container--open {
  z-index: 10050 !important;
}
body.cwsa-ui-v2 .select2-dropdown {
  z-index: 10050 !important;
  border-color: var(--cwsa-border) !important;
  box-shadow: 0 10px 28px rgba(36, 27, 88, 0.18) !important;
}
body.cwsa-ui-v2 .select2-results > .select2-results__options,
body.cwsa-ui-v2 .select2-results__options {
  max-height: 200px !important;
  overflow-y: auto !important;
}
body.cwsa-ui-v2 .select2-search--dropdown .select2-search__field {
  width: 100% !important;
  box-sizing: border-box !important;
  pointer-events: auto !important;
}
body.cwsa-ui-v2 .cwsa-switch-ws-dialog .select2-container {
  width: 100% !important;
}
body.cwsa-ui-v2 .cwsa-switch-ws-dialog .select2-container--default .select2-selection--single {
  height: 36px !important;
  border-radius: 8px !important;
  border-color: var(--cwsa-border) !important;
}
body.cwsa-ui-v2 .cwsa-switch-ws-dialog .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 34px !important;
  padding-left: 10px !important;
  color: var(--cwsa-ink) !important;
}
body.cwsa-ui-v2 .cwsa-switch-ws-dialog .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 34px !important;
}

/* -------------------------------------------------------------------------
   Badges, tabs, alerts
   ------------------------------------------------------------------------- */
body.cwsa-ui-v2 .label,
body.cwsa-ui-v2 .badge {
  border-radius: 999px !important;
  font-weight: 600;
  letter-spacing: 0.02em;
}

body.cwsa-ui-v2 .label-info,
body.cwsa-ui-v2 .badge-info {
  background: #e8e4f5 !important;
  color: #1a1445 !important;
}

body.cwsa-ui-v2 .label-success,
body.cwsa-ui-v2 .badge-success {
  background: #dcfce7 !important;
  color: #166534 !important;
}

body.cwsa-ui-v2 .label-warning,
body.cwsa-ui-v2 .badge-warning {
  background: #fef3c7 !important;
  color: #92400e !important;
}

body.cwsa-ui-v2 .label-danger,
body.cwsa-ui-v2 .badge-danger {
  background: #fee2e2 !important;
  color: #991b1b !important;
}

body.cwsa-ui-v2 .nav-tabs > li > a {
  border-radius: 8px 8px 0 0 !important;
  color: var(--cwsa-muted);
}

body.cwsa-ui-v2 .nav-tabs > li.active > a,
body.cwsa-ui-v2 .nav-tabs > li.active > a:hover,
body.cwsa-ui-v2 .nav-tabs > li.active > a:focus {
  color: var(--cwsa-primary-ink) !important;
  border-color: var(--cwsa-border) var(--cwsa-border) transparent !important;
  font-weight: 600;
}

body.cwsa-ui-v2 .alert {
  border-radius: var(--cwsa-radius-sm);
  border-width: 1px;
}

body.cwsa-ui-v2 .well {
  background: #f5f9ff;
  border: 1px solid var(--cwsa-border);
  border-radius: var(--cwsa-radius-sm);
  box-shadow: none;
}

/* -------------------------------------------------------------------------
   Dropdowns
   ------------------------------------------------------------------------- */
body.cwsa-ui-v2 .dropdown-menu {
  border: 1px solid var(--cwsa-border) !important;
  border-radius: var(--cwsa-radius-sm) !important;
  box-shadow: var(--cwsa-shadow) !important;
  padding: 6px 0 !important;
}

body.cwsa-ui-v2 .dropdown-menu > li > a {
  color: var(--cwsa-ink) !important;
  padding: 7px 14px;
}

body.cwsa-ui-v2 .dropdown-menu > li > a:hover {
  background: var(--cwsa-primary-soft) !important;
  color: var(--cwsa-primary-ink) !important;
}

body.cwsa-ui-v2 .dropdown-navbar,
body.cwsa-ui-v2 .navbar-pink.dropdown-menu,
body.cwsa-ui-v2 .dropdown-navbar.navbar-pink {
  background: var(--cwsa-surface) !important;
}

/* =========================================================================
   Phase B — Dialogs & side trays (visual only)
   ========================================================================= */
body.cwsa-ui-v2 .ui-dialog {
  border: 1px solid var(--cwsa-border) !important;
  border-radius: 14px !important;
  box-shadow: 0 18px 48px rgba(36, 27, 88, 0.22) !important;
  padding: 0 !important;
  overflow: hidden;
  background: var(--cwsa-surface) !important;
  /* Screen-centered: fixed to the viewport, not the scrolled page */
  position: fixed !important;
  max-width: calc(100vw - 24px) !important;
  max-height: calc(100vh - 24px) !important;
  /*
   * Flex layout for title/body/buttons — but NEVER display:flex !important.
   * !important blocked jQuery UI .hide() on Cancel/X (dialog stayed on screen).
   */
  display: flex;
  flex-direction: column;
  /* Above navbar(1040), footer(1029), payment adjust tray(1000) */
  z-index: 2100 !important;
  pointer-events: auto !important;
}
/* Ensure closed dialogs actually disappear even if inline styles fight flex */
body.cwsa-ui-v2 .ui-dialog[aria-hidden="true"],
body.cwsa-ui-v2 .ui-dialog.ui-helper-hidden,
body.cwsa-ui-v2 .ui-dialog.cwsa-dialog-closed {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.cwsa-ui-v2 .ui-widget-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2090 !important;
}

body.cwsa-ui-v2 .ui-dialog .ui-dialog-titlebar {
  flex: 0 0 auto;
  background: #f6f4fb !important;
  background-image: none !important;
  border: 0 !important;
  border-bottom: 1px solid #d4cdea !important;
  color: #241b58 !important;
  border-radius: 0 !important;
  padding: 10px 14px !important;
  font-weight: 600;
}

body.cwsa-ui-v2 .ui-dialog .ui-dialog-title {
  color: #241b58 !important;
  /* Leave room for the X — jQuery UI default is float:left;width:90% and covers the close button */
  float: none !important;
  width: auto !important;
  max-width: calc(100% - 48px) !important;
  display: block !important;
  pointer-events: none !important;
  overflow: hidden !important;
}

body.cwsa-ui-v2 .ui-dialog .ui-dialog-titlebar {
  position: relative !important;
  overflow: visible !important;
}

body.cwsa-ui-v2 .ui-dialog .ui-dialog-titlebar-close {
  background: #e8e4f5 !important;
  border: 1px solid #d4cdea !important;
  border-radius: 6px !important;
  opacity: 1;
  position: absolute !important;
  right: 10px !important;
  top: 50% !important;
  margin-top: -12px !important;
  z-index: 100 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  width: 24px !important;
  height: 24px !important;
}

/* All dialog chrome must stay clickable above scrolled content */
body.cwsa-ui-v2 .ui-dialog .ui-dialog-titlebar,
body.cwsa-ui-v2 .ui-dialog .ui-dialog-buttonpane {
  position: relative !important;
  z-index: 60 !important;
  pointer-events: auto !important;
  flex-shrink: 0 !important;
}
body.cwsa-ui-v2 .ui-dialog .ui-dialog-content {
  z-index: 1 !important;
}
body.cwsa-ui-v2 .ui-dialog .ui-dialog-buttonpane button {
  pointer-events: auto !important;
  cursor: pointer !important;
  position: relative !important;
  z-index: 61 !important;
}

body.cwsa-ui-v2 .ui-dialog .ui-dialog-titlebar-close .ui-icon,
body.cwsa-ui-v2 .ui-dialog .ui-dialog-titlebar-close .ui-icon-closethick {
  filter: none;
  pointer-events: none;
}

body.cwsa-ui-v2 .ui-dialog .ui-dialog-content {
  background: var(--cwsa-surface) !important;
  color: var(--cwsa-ink);
  padding: 14px 16px !important;
  /* Tall dialogs scroll here so Print/Cancel stay pinned at the bottom */
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
}

body.cwsa-ui-v2 .ui-dialog .ui-dialog-buttonpane {
  flex: 0 0 auto !important;
  background: #f5f9ff !important;
  border-top: 1px solid var(--cwsa-border) !important;
  margin: 0 !important;
  padding: 10px 12px !important;
  position: relative !important;
  z-index: 20 !important;
  pointer-events: auto !important;
}

body.cwsa-ui-v2 .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset,
body.cwsa-ui-v2 .ui-dialog .ui-dialog-buttonpane button {
  pointer-events: auto !important;
  cursor: pointer !important;
  position: relative !important;
  z-index: 21 !important;
}

body.cwsa-ui-v2 .ui-widget-overlay {
  background: #0f172a !important;
  opacity: 0.45 !important;
}

body.cwsa-ui-v2 .ui-dialog .form-control,
body.cwsa-ui-v2 .ui-dialog input[type="text"],
body.cwsa-ui-v2 .ui-dialog input[type="password"],
body.cwsa-ui-v2 .ui-dialog select,
body.cwsa-ui-v2 .ui-dialog textarea {
  border-radius: var(--cwsa-radius-sm) !important;
  border-color: var(--cwsa-border) !important;
}

body.cwsa-ui-v2 .ui-dialog .form-control:focus,
body.cwsa-ui-v2 .ui-dialog input:focus,
body.cwsa-ui-v2 .ui-dialog select:focus,
body.cwsa-ui-v2 .ui-dialog textarea:focus {
  border-color: var(--cwsa-primary-strong) !important;
  box-shadow: 0 0 0 3px rgba(46, 35, 110, 0.16) !important;
}

/* Widget headers inside dialogs (Ace pattern — title often injected as HTML) */
body.cwsa-ui-v2 .ui-dialog .ui-dialog-title .widget-header,
body.cwsa-ui-v2 .ui-dialog .ui-dialog-title .widget-header-blue,
body.cwsa-ui-v2 .ui-dialog .ui-dialog-title .widget-header-flat {
  width: auto !important;
  max-width: 100% !important;
  pointer-events: none !important; /* title chrome must not block the X */
}

body.cwsa-ui-v2 .ui-dialog .widget-header,
body.cwsa-ui-v2 .ui-dialog .widget-header-blue,
body.cwsa-ui-v2 .ui-dialog .widget-header-flat {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #241b58 !important;
}

body.cwsa-ui-v2 .ui-dialog .widget-header .widget-title,
body.cwsa-ui-v2 .ui-dialog .widget-header .smaller,
body.cwsa-ui-v2 .ui-dialog .widget-header h4,
body.cwsa-ui-v2 .ui-dialog .widget-header h5,
body.cwsa-ui-v2 .ui-dialog .ui-dialog-title .widget-header,
body.cwsa-ui-v2 .ui-dialog .ui-dialog-title .smaller,
body.cwsa-ui-v2 .ui-dialog .ui-dialog-title h4 {
  color: #241b58 !important;
  background: transparent !important;
}

body.cwsa-ui-v2 .ui-dialog .widget-header .ace-icon,
body.cwsa-ui-v2 .ui-dialog .ui-dialog-title .ace-icon,
body.cwsa-ui-v2 .ui-dialog .ui-dialog-title .fa {
  color: #2e236e !important;
}

/* Payment adjustment side tray */
body.cwsa-ui-v2 #cwsa_adjust_tray {
  background: var(--cwsa-surface) !important;
  box-shadow: -10px 0 32px rgba(36, 27, 88, 0.18) !important;
  border-left: 1px solid var(--cwsa-border);
}

body.cwsa-ui-v2 #cwsa_adjust_tray .tray-hd {
  background: #f6f4fb !important;
  color: #241b58 !important;
  border-bottom: 1px solid #d4cdea;
}

body.cwsa-ui-v2 #cwsa_adjust_tray .ticket-card {
  border: 1px solid var(--cwsa-border) !important;
  border-radius: var(--cwsa-radius-sm) !important;
  background: #f8fbff !important;
}

body.cwsa-ui-v2 #cwsa_adjust_tray_backdrop.open {
  background: rgba(15, 23, 42, 0.42) !important;
}

body.cwsa-ui-v2 .scroll {
  scrollbar-width: thin;
  scrollbar-color: rgba(148, 163, 184, 0.8) transparent;
}

/* Water Systems / GCR / similar panel grids — ~10 rows at a glance, then scroll */
body.cwsa-ui-v2 .cwsa-grid-scroll {
  /* header (~40px) + ~10 body rows (~38px) ≈ 420px */
  max-height: 420px;
  overflow: auto !important;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--cwsa-border);
  border-radius: 8px;
  background: var(--cwsa-surface);
  scrollbar-width: thin;
  scrollbar-color: rgba(148, 163, 184, 0.8) transparent;
}

body.cwsa-ui-v2 .cwsa-grid-scroll > .table {
  margin-bottom: 0 !important;
}

body.cwsa-ui-v2 .cwsa-grid-scroll thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  background: #f6f4fb !important;
  box-shadow: 0 1px 0 #d4cdea;
}

/* settings button radius handled with Ace restore rules above */

body.cwsa-ui-v2 .infobox {
  border-radius: var(--cwsa-radius-sm);
  box-shadow: var(--cwsa-shadow-sm);
  border-color: var(--cwsa-border) !important;
}

body.cwsa-ui-v2 .page-content a:not(.btn) {
  color: var(--cwsa-primary);
}

body.cwsa-ui-v2 .page-content a:not(.btn):hover {
  color: var(--cwsa-primary-strong);
}

/* =========================================================================
   Phase C — Login + verification (Dribbble-inspired card, keep IDs/structure)
   Ref: https://dribbble.com/shots/20409248-Login-Sign-In-Page
   ========================================================================= */
body.login-layout.cwsa-ui-v2 {
  min-height: 100vh !important;
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(232, 228, 245, 0.95) 0%, transparent 55%),
    radial-gradient(900px 500px at 100% 100%, rgba(212, 205, 234, 0.75) 0%, transparent 50%),
    linear-gradient(160deg, #f6f4fb 0%, #ffffff 42%, #e8e4f5 100%) !important;
}

body.login-layout.cwsa-ui-v2 .main-container,
body.login-layout.cwsa-ui-v2 .main-content {
  background: transparent !important;
  min-height: 100vh;
}

body.login-layout.cwsa-ui-v2 .main-content > .row {
  display: flex;
  align-items: center;
  min-height: 100vh;
  margin: 0 !important;
}

body.login-layout.cwsa-ui-v2 .login-container,
body.login-layout.cwsa-ui-v2 .loginwrap {
  width: 100% !important;
  max-width: 420px !important;
  margin: 24px auto !important;
  filter: none;
}

body.login-layout.cwsa-ui-v2 .login-container > .center {
  margin-bottom: 8px;
}

body.login-layout.cwsa-ui-v2 .cwsa-login-logo-wrap {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 108px !important;
  height: 108px !important;
  padding: 10px !important;
  margin: 0 auto 14px;
  border-radius: 50% !important;
  background: #e8e4f5 !important;
  border: 3px solid #d4cdea !important;
  box-shadow: 0 14px 32px rgba(46, 35, 110, 0.2) !important;
  overflow: hidden !important;
}

body.login-layout.cwsa-ui-v2 .cwsa-login-logo-wrap img,
body.login-layout.cwsa-ui-v2 .login-container > .center img {
  display: block !important;
  width: 78px !important;
  height: 78px !important;
  max-width: 78px !important;
  max-height: 78px !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  background: transparent !important;
  margin: 0 auto;
  border: 0 !important;
  box-shadow: none !important;
}

body.login-layout.cwsa-ui-v2 .cwsa-login-title {
  margin: 0 0 4px !important;
  color: #1a1445 !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em;
}

body.login-layout.cwsa-ui-v2 .cwsa-login-subtitle {
  margin: 0 0 18px !important;
  color: #5c5a6e !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.45;
}

body.login-layout.cwsa-ui-v2 #scli-form-wrapper,
body.login-layout.cwsa-ui-v2 .forgot-box-div {
  background: #ffffff !important;
  border: 1px solid #e2deee !important;
  border-radius: 20px !important;
  box-shadow: 0 18px 48px rgba(46, 35, 110, 0.14) !important;
  padding: 28px 26px 22px !important;
}

body.login-layout.cwsa-ui-v2 #scli-form-wrapper .widget-main {
  padding: 0 !important;
}

body.login-layout.cwsa-ui-v2 #scli-form-wrapper label.block {
  margin-bottom: 14px !important;
}

body.login-layout.cwsa-ui-v2 #scli-form-wrapper .form-control,
body.login-layout.cwsa-ui-v2 #scli-form-wrapper input[type="text"],
body.login-layout.cwsa-ui-v2 #scli-form-wrapper input[type="password"],
body.login-layout.cwsa-ui-v2 #scli-form-wrapper select {
  height: 44px !important;
  border-radius: 12px !important;
  border: 1.5px solid #e2deee !important;
  background: #faf9fc !important;
  color: #121218 !important;
  box-shadow: none !important;
  padding-left: 14px !important;
  font-size: 14px !important;
}

body.login-layout.cwsa-ui-v2 #scli-form-wrapper .form-control:focus,
body.login-layout.cwsa-ui-v2 #scli-form-wrapper input:focus,
body.login-layout.cwsa-ui-v2 #scli-form-wrapper select:focus {
  border-color: #2e236e !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(46, 35, 110, 0.16) !important;
}

body.login-layout.cwsa-ui-v2 #scli-form-wrapper .input-icon > .ace-icon,
body.login-layout.cwsa-ui-v2 #scli-form-wrapper .input-icon > .fa {
  color: #5c5a6e !important;
  line-height: 44px !important;
}

body.login-layout.cwsa-ui-v2 #scli-form-wrapper h4 {
  color: #1a1445 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  margin: 0 0 8px !important;
}

body.login-layout.cwsa-ui-v2 #scli-form-wrapper .help-block {
  color: #5c5a6e !important;
}

body.login-layout.cwsa-ui-v2 #scli-form-wrapper .btn-primary,
body.login-layout.cwsa-ui-v2 .btn-primary {
  height: 46px !important;
  border-radius: 12px !important;
  background: #2e236e !important;
  border-color: #2e236e !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em;
  box-shadow: 0 10px 22px rgba(46, 35, 110, 0.28) !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

body.login-layout.cwsa-ui-v2 #scli-form-wrapper .btn-primary:hover,
body.login-layout.cwsa-ui-v2 .btn-primary:hover {
  background: #241b58 !important;
  border-color: #241b58 !important;
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(46, 35, 110, 0.34) !important;
}

body.login-layout.cwsa-ui-v2 .divforgotpswd,
body.login-layout.cwsa-ui-v2 .forgot-password-link,
body.login-layout.cwsa-ui-v2 #btn-get-code,
body.login-layout.cwsa-ui-v2 #btn-login-page {
  color: #2e236e !important;
  font-weight: 600 !important;
}

body.login-layout.cwsa-ui-v2 .forgot-password-link:hover,
body.login-layout.cwsa-ui-v2 #btn-get-code:hover,
body.login-layout.cwsa-ui-v2 #btn-login-page:hover {
  color: #1a1445 !important;
  text-decoration: underline;
}

body.login-layout.cwsa-ui-v2 #aut-response {
  display: block;
  margin-bottom: 10px;
  color: #241b58 !important;
  font-weight: 600;
}

body.login-layout.cwsa-ui-v2 .select2-container--default .select2-selection--single {
  height: 44px !important;
  border-radius: 12px !important;
  border: 1.5px solid #e2deee !important;
  background: #faf9fc !important;
}

body.login-layout.cwsa-ui-v2 .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 42px !important;
  color: #121218 !important;
  padding-left: 14px !important;
}

body.login-layout.cwsa-ui-v2 .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 42px !important;
}

@media (max-width: 480px) {
  body.login-layout.cwsa-ui-v2 #scli-form-wrapper {
    padding: 22px 18px 18px !important;
    border-radius: 16px !important;
  }
  body.login-layout.cwsa-ui-v2 .cwsa-login-title {
    font-size: 22px !important;
  }
}

/* =========================================================================
   Phase D — Print safety (do not restyle invoices)
   ========================================================================= */
@media print {
  body.cwsa-ui-v2,
  body.cwsa-ui-v2 .main-container,
  body.cwsa-ui-v2 .page-content,
  body.cwsa-ui-v2 .widget-box,
  body.cwsa-ui-v2 .widget-body,
  body.cwsa-ui-v2 .widget-main {
    background: #ffffff !important;
    box-shadow: none !important;
    color: #000 !important;
  }

  body.cwsa-ui-v2 .navbar,
  body.cwsa-ui-v2 .sidebar,
  body.cwsa-ui-v2 .footer,
  body.cwsa-ui-v2 #cwsa_adjust_tray,
  body.cwsa-ui-v2 #cwsa_adjust_tray_backdrop {
    display: none !important;
  }
}
