/* Reinforcement modern UI layer. Loaded after Perfex core styles. */
:root {
  --erm-ui-primary: #173ea5;
  --erm-ui-primary-dark: #102b73;
  --erm-ui-primary-soft: #eaf0ff;
  --erm-ui-accent: #0ea5c6;
  --erm-ui-success: #059669;
  --erm-ui-warning: #d97706;
  --erm-ui-danger: #dc2626;
  --erm-ui-info: #2563eb;
  --erm-ui-50: #f8fafc;
  --erm-ui-100: #f1f5f9;
  --erm-ui-200: #e2e8f0;
  --erm-ui-300: #cbd5e1;
  --erm-ui-400: #94a3b8;
  --erm-ui-500: #64748b;
  --erm-ui-700: #334155;
  --erm-ui-900: #0f172a;
  --erm-ui-radius: 14px;
  --erm-ui-radius-sm: 9px;
  --erm-ui-shadow: 0 1px 3px rgba(15, 23, 42, .07), 0 1px 2px rgba(15, 23, 42, .04);
  --erm-ui-shadow-md: 0 10px 28px rgba(15, 23, 42, .10), 0 3px 8px rgba(15, 23, 42, .05);
  --erm-ui-transition: .18s ease;
}

html, body { background: #f4f7fb !important; }
body {
  color: var(--erm-ui-700) !important;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--erm-ui-primary); }
a:hover, a:focus { color: var(--erm-ui-primary-dark); }

/* Header */
.navbar, .navbar-default, #header, #header nav {
  min-height: 60px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: linear-gradient(115deg, #0d2148 0%, #173b84 100%) !important;
  box-shadow: 0 3px 14px rgba(15, 23, 42, .20) !important;
}
#header .navbar-nav > li > a,
#header .navbar-nav > li > a i,
.hide-menu, .navbar-toggle { color: rgba(255, 255, 255, .78) !important; }
#header .navbar-nav > li > a:hover,
#header .navbar-nav > li > a:focus,
.hide-menu:hover, .navbar-toggle:hover {
  color: #fff !important;
  background: rgba(255, 255, 255, .08) !important;
}
#header #logo a.logo,
#header #logo a.logo-text,
#header #logo a.logo:hover,
#header #logo a.logo-text:hover,
#header #logo a.logo:focus,
#header #logo a.logo-text:focus {
  color: #fff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .12);
}
#search_input {
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: 10px !important;
  background: rgba(255, 255, 255, .09) !important;
}
#search_input::placeholder { color: rgba(255, 255, 255, .50) !important; }
#search_input:focus { background: rgba(255, 255, 255, .15) !important; box-shadow: 0 0 0 3px rgba(255, 255, 255, .09) !important; }

/* Sidebar */
.sidebar, aside#menu {
  border-right: 1px solid var(--erm-ui-200) !important;
  background: #fff !important;
  box-shadow: 3px 0 18px rgba(15, 23, 42, .035) !important;
}
.sidebar ul.nav > li > a {
  display: flex !important;
  align-items: center !important;
  gap: 10px;
  margin: 2px 9px !important;
  padding: 10px 12px !important;
  color: var(--erm-ui-500) !important;
  border-radius: 9px !important;
  font-size: 13px !important;
  font-weight: 550 !important;
  transition: background var(--erm-ui-transition), color var(--erm-ui-transition) !important;
}
.sidebar ul.nav > li > a:hover,
.sidebar ul.nav > li.active > a,
.sidebar ul.nav > li > a:focus {
  color: var(--erm-ui-primary) !important;
  background: var(--erm-ui-primary-soft) !important;
}
.sidebar ul.nav > li > a i:not(.arrow) { width: 18px; text-align: center; }
.sidebar ul.nav li ul.nav-second-level li a,
.sidebar ul.nav li ul.nav-third-level li a {
  margin: 1px 9px !important;
  padding: 8px 12px 8px 39px !important;
  color: var(--erm-ui-500) !important;
  border-radius: 8px !important;
  font-size: 12.5px !important;
}
.sidebar ul.nav li ul.nav-second-level li.active > a,
.sidebar ul.nav li ul.nav-second-level li a:hover,
.sidebar ul.nav li ul.nav-third-level li.active > a,
.sidebar ul.nav li ul.nav-third-level li a:hover {
  color: var(--erm-ui-primary) !important;
  background: var(--erm-ui-primary-soft) !important;
}
.sidebar .badge { padding: 3px 7px !important; color: #fff !important; background: var(--erm-ui-primary) !important; border-radius: 999px !important; font-size: 10px !important; }
.sidebar .fa.arrow { margin-left: auto !important; opacity: .55; }

/* Setup drawer uses text navigation; do not reserve the main sidebar's icon column. */
#setup-menu > li > a > .menu-icon,
#setup-menu .nav-second-level > li > a > .menu-icon {
  display: none !important;
}
#setup-menu > li > a {
  gap: 0 !important;
}
#setup-menu > li > a > .menu-text {
  flex: 1 1 auto;
}
#setup-menu li .nav-second-level li a {
  gap: 0 !important;
  padding-left: 24px !important;
}

/* Page layout and typography */
.content { padding: 26px !important; }
h1, h2, h3, h4, h5, h6 { color: var(--erm-ui-900); }
h4 { letter-spacing: -.015em; }
h4.tw-font-semibold, h4.font-medium, h4.no-margin { font-size: 19px !important; font-weight: 750 !important; }
h5.tw-font-semibold { font-size: 14px !important; font-weight: 700 !important; }
.text-muted { color: var(--erm-ui-500) !important; }
hr { border-color: var(--erm-ui-200) !important; }

/* Surfaces */
.panel_s, .panel.panel-default, .panel.panel-white {
  overflow: visible;
  border: 1px solid var(--erm-ui-200) !important;
  border-radius: var(--erm-ui-radius) !important;
  background: #fff !important;
  box-shadow: var(--erm-ui-shadow) !important;
}
.panel-body { padding: 22px !important; }
.panel-heading {
  padding: 15px 21px !important;
  color: var(--erm-ui-700) !important;
  border-bottom: 1px solid var(--erm-ui-200) !important;
  border-radius: var(--erm-ui-radius) var(--erm-ui-radius) 0 0 !important;
  background: #fff !important;
  font-weight: 700 !important;
}
.panel-footer { border-top: 1px solid var(--erm-ui-200) !important; background: var(--erm-ui-50) !important; border-radius: 0 0 var(--erm-ui-radius) var(--erm-ui-radius) !important; }
.well { border: 1px solid var(--erm-ui-200) !important; border-radius: var(--erm-ui-radius-sm) !important; background: var(--erm-ui-50) !important; box-shadow: none !important; }

/* Buttons */
.btn {
  padding: 8px 15px !important;
  border-radius: var(--erm-ui-radius-sm) !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  letter-spacing: .005em;
  transition: transform var(--erm-ui-transition), box-shadow var(--erm-ui-transition), background var(--erm-ui-transition) !important;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { color: #fff !important; border-color: var(--erm-ui-primary) !important; background: var(--erm-ui-primary) !important; box-shadow: 0 4px 10px rgba(23, 62, 165, .18) !important; }
.btn-primary:hover, .btn-primary:focus { border-color: var(--erm-ui-primary-dark) !important; background: var(--erm-ui-primary-dark) !important; box-shadow: 0 7px 16px rgba(23, 62, 165, .24) !important; }
.btn-success { color: #fff !important; border-color: var(--erm-ui-success) !important; background: var(--erm-ui-success) !important; }
.btn-danger { color: #fff !important; border-color: var(--erm-ui-danger) !important; background: var(--erm-ui-danger) !important; }
.btn-warning { color: #fff !important; border-color: var(--erm-ui-warning) !important; background: var(--erm-ui-warning) !important; }
.btn-info { color: #fff !important; border-color: var(--erm-ui-info) !important; background: var(--erm-ui-info) !important; }
.btn-default { color: var(--erm-ui-700) !important; border: 1px solid var(--erm-ui-300) !important; background: #fff !important; box-shadow: 0 1px 2px rgba(15, 23, 42, .04) !important; }
.btn-default:hover { border-color: var(--erm-ui-400) !important; background: var(--erm-ui-50) !important; }
.btn-sm, .btn-group-sm > .btn { padding: 6px 11px !important; font-size: 12px !important; }
.btn-xs, .btn-group-xs > .btn, td .btn.btn-xs { padding: 4px 8px !important; border-radius: 6px !important; font-size: 11.5px !important; }

/* Forms */
.form-group label, label.control-label { margin-bottom: 6px !important; color: var(--erm-ui-700) !important; font-size: 12.5px !important; font-weight: 650 !important; }
.form-control {
  height: auto !important;
  min-height: 38px;
  padding: 8px 11px !important;
  color: var(--erm-ui-900) !important;
  border: 1px solid var(--erm-ui-300) !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: none !important;
  font-size: 13px !important;
  transition: border-color var(--erm-ui-transition), box-shadow var(--erm-ui-transition) !important;
}
textarea.form-control { min-height: 92px; line-height: 1.55; }
.form-control:focus {
  border-color: var(--erm-ui-primary) !important;
  box-shadow: 0 0 0 3px rgba(23, 62, 165, .10) !important;
  outline: 0 !important;
}
.input-group-addon { color: var(--erm-ui-500) !important; border-color: var(--erm-ui-300) !important; background: var(--erm-ui-50) !important; }
.bootstrap-select .btn.dropdown-toggle {
  min-height: 38px;
  padding: 8px 11px !important;
  color: var(--erm-ui-700) !important;
  border: 1px solid var(--erm-ui-300) !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: none !important;
}
.bootstrap-select.open .btn.dropdown-toggle,
.bootstrap-select .btn.dropdown-toggle:focus { border-color: var(--erm-ui-primary) !important; box-shadow: 0 0 0 3px rgba(23, 62, 165, .10) !important; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--erm-ui-primary); }

/* Tables and DataTables */
.table, table.dataTable { width: 100% !important; border-collapse: separate !important; border-spacing: 0 !important; font-size: 13px !important; }
.table thead th, table.dataTable thead th, table.dataTable thead td {
  padding: 12px 14px !important;
  color: var(--erm-ui-500) !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--erm-ui-200) !important;
  background: var(--erm-ui-50) !important;
  font-size: 10.5px !important;
  font-weight: 750 !important;
  letter-spacing: .065em !important;
  text-transform: uppercase !important;
  white-space: nowrap;
}
.table > tbody > tr > td, table.dataTable tbody td {
  padding: 12px 14px !important;
  color: var(--erm-ui-700);
  border-top: 0 !important;
  border-bottom: 1px solid var(--erm-ui-100) !important;
  vertical-align: middle !important;
}
.table tbody tr, table.dataTable tbody tr { transition: background .13s ease; }
.table tbody tr:nth-child(even), table.dataTable tbody tr.even { background: #fbfcfe; }
.table tbody tr:hover, table.dataTable tbody tr:hover { background: #f1f5ff !important; }
.table-responsive { border: 1px solid var(--erm-ui-200) !important; border-radius: 11px !important; background: #fff; }
.dataTables_wrapper .row { margin-right: 0; margin-left: 0; }
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  border: 1px solid var(--erm-ui-300) !important;
  border-radius: 8px !important;
  background: #fff !important;
}
.dataTables_wrapper .dataTables_filter input { padding: 7px 11px !important; }
.dataTables_wrapper .dataTables_filter input:focus { border-color: var(--erm-ui-primary) !important; box-shadow: 0 0 0 3px rgba(23, 62, 165, .10) !important; outline: 0; }
.dataTables_wrapper .dataTables_info { padding-top: 12px !important; color: var(--erm-ui-400) !important; font-size: 12px !important; }
.pagination > li > a, .pagination > li > span,
.dataTables_wrapper .dataTables_paginate .paginate_button {
  margin: 0 2px !important;
  color: var(--erm-ui-500) !important;
  border: 1px solid transparent !important;
  border-radius: 7px !important;
  background: transparent !important;
}
.pagination > .active > a, .pagination > .active > a:hover,
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  color: #fff !important;
  border-color: var(--erm-ui-primary) !important;
  background: var(--erm-ui-primary) !important;
  box-shadow: 0 3px 8px rgba(23, 62, 165, .20) !important;
}

/* Navigation, overlays, feedback */
.nav-tabs { border-bottom: 1px solid var(--erm-ui-200) !important; }
.nav-tabs > li > a { margin-right: 3px !important; padding: 10px 14px !important; color: var(--erm-ui-500) !important; border: 0 !important; border-radius: 8px 8px 0 0 !important; font-size: 13px !important; font-weight: 600 !important; }
.nav-tabs > li > a:hover { color: var(--erm-ui-primary) !important; background: var(--erm-ui-primary-soft) !important; }
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { color: var(--erm-ui-primary) !important; border: 0 !important; border-bottom: 3px solid var(--erm-ui-primary) !important; background: transparent !important; }
.dropdown-menu { padding: 7px !important; border: 1px solid var(--erm-ui-200) !important; border-radius: 10px !important; box-shadow: var(--erm-ui-shadow-md) !important; }
.dropdown-menu > li > a { padding: 8px 11px !important; color: var(--erm-ui-700) !important; border-radius: 7px !important; }
.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { color: var(--erm-ui-primary) !important; background: var(--erm-ui-primary-soft) !important; }
.erm-quick-create-menu { width: max-content; min-width: 280px; max-width: calc(100vw - 24px); }
.erm-quick-create-menu > li > a { display: flex !important; align-items: center; white-space: nowrap; }
.modal-content { overflow: hidden; border: 0 !important; border-radius: var(--erm-ui-radius) !important; box-shadow: 0 22px 55px rgba(15, 23, 42, .20) !important; }
.modal-header { padding: 17px 21px !important; border-bottom: 1px solid var(--erm-ui-200) !important; }
.modal-body { padding: 21px !important; }
.modal-footer { padding: 14px 21px !important; border-top: 1px solid var(--erm-ui-200) !important; background: var(--erm-ui-50) !important; }
.alert { padding: 12px 15px !important; border: 0 !important; border-radius: 9px !important; font-size: 13px !important; }
.alert-success { color: #065f46 !important; background: #d1fae5 !important; }
.alert-warning { color: #92400e !important; background: #fef3c7 !important; }
.alert-danger { color: #991b1b !important; background: #fee2e2 !important; }
.alert-info { color: #1e40af !important; background: #dbeafe !important; }
.label, .badge { border-radius: 999px !important; font-weight: 650 !important; }
#float-alerts-area .alert, .alert-float { border: 1px solid rgba(255,255,255,.5) !important; box-shadow: var(--erm-ui-shadow-md) !important; }

/* Authentication */
body.authentication, body.login_admin, body.erm-admin-auth { min-height: 100vh; margin: 0; background: #f6f8fc !important; }
.erm-auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(390px, 44%) 1fr; }
.erm-auth-story { position: relative; display: flex; overflow: hidden; flex-direction: column; padding: 50px 58px; color: #fff; background: linear-gradient(145deg, #091d43 0%, #173ea5 56%, #0e7490 125%); }
.erm-auth-story::before, .erm-auth-story::after { position: absolute; content: ""; border-radius: 999px; pointer-events: none; }
.erm-auth-story::before { top: -170px; right: -180px; width: 430px; height: 430px; background: rgba(255,255,255,.08); }
.erm-auth-story::after { bottom: -190px; left: -150px; width: 360px; height: 360px; background: rgba(34,211,238,.12); }
.erm-auth-brand, .erm-auth-copy, .erm-auth-footnote { position: relative; z-index: 1; }
.erm-auth-brand { display: flex; align-items: center; gap: 12px; color: #fff; font-size: 17px; font-weight: 800; }
.erm-auth-brand img { width: auto; max-width: 175px; height: auto; max-height: 45px; object-fit: contain; }
.erm-auth-mark { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; color: var(--erm-ui-primary); border-radius: 12px; background: #fff; box-shadow: 0 10px 28px rgba(0,0,0,.16); font-weight: 900; }
.erm-auth-copy { max-width: 560px; margin: auto 0; }
.erm-auth-kicker { display: inline-flex; padding: 7px 11px; color: #bae6fd; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(255,255,255,.07); font-size: 10.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.erm-auth-copy h1 { max-width: 540px; margin: 24px 0 18px; color: #fff; font-size: clamp(36px, 4vw, 52px); font-weight: 820; line-height: 1.06; letter-spacing: -.045em; }
.erm-auth-copy p { max-width: 480px; margin: 0; color: #cbdaf7; font-size: 16px; line-height: 1.72; }
.erm-auth-footnote { color: rgba(255,255,255,.54); font-size: 11.5px; }
.erm-auth-panel { display: flex; align-items: center; justify-content: center; padding: 46px; }
.erm-auth-card { width: 100%; max-width: 430px; }
.erm-auth-card > .erm-auth-kicker { display: block; width: 100%; padding: 0; color: #4b5563; border: 0; border-radius: 0; background: transparent; text-align: left; }
.erm-auth-card h2 { margin: 14px 0 8px; color: var(--erm-ui-900); font-size: 32px; font-weight: 800; line-height: 1.15; letter-spacing: -.035em; }
.erm-auth-intro { margin: 0 0 28px; color: var(--erm-ui-500); font-size: 14px; }
.erm-auth-form .form-group { margin-bottom: 18px; }
.erm-auth-form .form-control { min-height: 48px; padding: 11px 14px !important; border-radius: 11px !important; font-size: 14px !important; }
.erm-auth-options { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 4px 0 23px; }
.erm-auth-remember { display: flex; align-items: center; gap: 8px; color: var(--erm-ui-500); font-size: 13px; }
.erm-auth-remember label { margin: 0 !important; color: var(--erm-ui-500) !important; font-weight: 500 !important; }
.erm-auth-forgot { font-size: 13px; font-weight: 700; }
.erm-auth-submit { min-height: 49px; border: 0 !important; border-radius: 11px !important; background: linear-gradient(135deg, var(--erm-ui-primary), #2961db) !important; box-shadow: 0 10px 24px rgba(23,62,165,.22) !important; font-size: 14px !important; font-weight: 750 !important; }
.erm-auth-secure { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 22px; color: var(--erm-ui-400); font-size: 11.5px; }
.erm-auth-secure span:first-child { color: var(--erm-ui-success); }
.erm-auth-powered { margin-top: 10px; color: #6b7280; text-align: center; font-size: 11.5px; letter-spacing: .01em; }
.erm-auth-powered strong { color: #374151; font-weight: 750; }

/* Secondary auth screens keep core markup but share the new card language. */
body.authentication:not(.erm-admin-auth) .authentication-form-wrapper,
body.authentication:not(.erm-admin-auth) .authentication-form-wrappe { max-width: 460px !important; padding-top: 9vh !important; }
body.authentication:not(.erm-admin-auth) .company-logo { margin-bottom: 10px; }
body.authentication:not(.erm-admin-auth) h1 { color: var(--erm-ui-900) !important; font-size: 27px !important; font-weight: 800 !important; letter-spacing: -.025em; }
body.authentication:not(.erm-admin-auth) .tw-bg-white { border: 1px solid var(--erm-ui-200) !important; border-radius: 15px !important; box-shadow: var(--erm-ui-shadow-md) !important; }
body.authentication:not(.erm-admin-auth) .form-control { min-height: 46px; border-radius: 10px !important; font-size: 14px !important; }
body.authentication:not(.erm-admin-auth) .btn-primary { min-height: 46px; border-radius: 10px !important; }

::-webkit-scrollbar { width: 7px; height: 7px; }
::-webkit-scrollbar-track { background: var(--erm-ui-100); }
::-webkit-scrollbar-thumb { border-radius: 999px; background: var(--erm-ui-300); }
::-webkit-scrollbar-thumb:hover { background: var(--erm-ui-400); }

@media (max-width: 991px) {
  .content { padding: 20px !important; }
  .erm-auth-shell { grid-template-columns: 1fr; }
  .erm-auth-story { display: none; }
  .erm-auth-panel { min-height: 100vh; padding: 32px 22px; }
}
@media (max-width: 767px) {
  .content { padding: 14px !important; }
  .panel-body { padding: 17px !important; }
  .table-responsive { overflow-x: auto !important; border-radius: 9px !important; }
  .table thead th, table.dataTable thead th, .table > tbody > tr > td, table.dataTable tbody td { padding: 10px 11px !important; }
  .erm-auth-panel { align-items: flex-start; padding-top: 44px; }
  .erm-auth-card h2 { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
