/*
 * Ironhand Client Portal — premium interface layer
 * Loaded after the core and module styles so the CRM can be upgraded without
 * forking its functional components.
 */

:root {
  --ihp-ink: #111827;
  --ihp-ink-soft: #293448;
  --ihp-muted: #68758a;
  --ihp-muted-light: #8b96a7;
  --ihp-canvas: #f6f8fb;
  --ihp-surface: #ffffff;
  --ihp-surface-soft: #f8fafc;
  --ihp-line: #e2e7ee;
  --ihp-line-strong: #d3dbe6;
  --ihp-brand: #a93226;
  --ihp-brand-dark: #81251d;
  --ihp-brand-soft: #f8ebe8;
  --ihp-success: #19704b;
  --ihp-warning: #a35a12;
  --ihp-danger: #b4232f;
  --ihp-radius-sm: 10px;
  --ihp-radius: 16px;
  --ihp-radius-lg: 24px;
  --ihp-shadow-sm: 0 1px 2px rgba(17, 19, 24, 0.04), 0 5px 18px rgba(17, 19, 24, 0.045);
  --ihp-shadow: 0 1px 2px rgba(17, 19, 24, 0.04), 0 18px 55px rgba(17, 19, 24, 0.07);
  --ihp-shadow-lg: 0 25px 80px rgba(17, 19, 24, 0.12);
}

html {
  background: var(--ihp-canvas);
}

body.customers {
  -webkit-font-smoothing: antialiased;
  background: var(--ihp-canvas) !important;
  color: var(--ihp-ink-soft);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  letter-spacing: -0.006em;
}

body.customers *,
body.customers *::before,
body.customers *::after {
  box-sizing: border-box;
}

body.customers a {
  color: var(--ihp-brand);
  transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

body.customers a:hover,
body.customers a:focus {
  color: var(--ihp-brand-dark);
}

body.customers ::selection {
  background: rgba(169, 50, 38, 0.18);
  color: var(--ihp-ink);
}

/* Portal navigation */
body.customers .navbar.header {
  background: rgba(255, 255, 255, 0.94) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(214, 211, 204, 0.72) !important;
  border-radius: 0 !important;
  box-shadow: 0 8px 30px rgba(17, 19, 24, 0.035);
  margin: 0 !important;
  min-height: 74px;
  position: sticky;
  top: 0;
  z-index: 1040;
}

@supports (backdrop-filter: blur(18px)) {
  body.customers .navbar.header {
    backdrop-filter: blur(18px) saturate(145%);
    background: rgba(255, 255, 255, 0.84) !important;
  }
}

body.customers .navbar.header > .container {
  align-items: center;
  display: flex;
  max-width: 1420px;
  min-height: 74px;
  width: calc(100% - 48px);
}

body.customers .navbar-header {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
}

body.customers .ih-portal-brand {
  align-items: center;
  display: flex;
  gap: 16px;
  min-width: 0;
}

body.customers .navbar a.navbar-brand {
  align-items: center;
  display: inline-flex;
  float: none;
  height: 74px;
  margin: 0;
  padding: 15px 0;
}

body.customers .navbar a.navbar-brand img {
  display: block;
  height: auto !important;
  max-height: 40px;
  max-width: 235px;
  object-fit: contain;
  width: auto !important;
}

body.customers .ih-portal-brand__label {
  border-left: 1px solid var(--ihp-line-strong);
  color: var(--ihp-muted);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: 0.14em;
  line-height: 1.3;
  max-width: 90px;
  padding-left: 16px;
  text-transform: uppercase;
}

body.customers .navbar-collapse {
  flex: 1 1 auto;
  padding: 0;
}

body.customers .navbar-default .navbar-nav {
  align-items: center;
  display: flex;
  gap: 3px;
}

body.customers .navbar-default .navbar-nav > li > a,
body.customers:not(.customers_login) .navbar-default .navbar-nav > li > a {
  align-items: center;
  background: transparent !important;
  border-radius: 10px !important;
  color: #4e5562 !important;
  display: inline-flex;
  font-size: 13px !important;
  font-weight: 650;
  line-height: 1.2 !important;
  margin: 0 !important;
  min-height: 42px;
  padding: 0 12px !important;
}

body.customers .navbar-default .navbar-nav > li > a i {
  color: #777f8d;
  font-size: 13px;
  margin-right: 7px;
}

body.customers .navbar-default .navbar-nav > li > a:hover,
body.customers .navbar-default .navbar-nav > li > a:focus {
  background: #f1efeb !important;
  color: var(--ihp-ink) !important;
}

body.customers .navbar-default .navbar-nav > .active > a,
body.customers .navbar-default .navbar-nav > .active > a:focus,
body.customers .navbar-default .navbar-nav > .active > a:hover {
  background: var(--ihp-ink) !important;
  color: #ffffff !important;
}

body.customers .navbar-default .navbar-nav > .active > a i {
  color: #ffffff;
}

body.customers .navbar-default .navbar-nav > li.customers-nav-item-login > a {
  background: var(--ihp-brand) !important;
  color: #ffffff !important;
  margin-left: 6px !important;
  padding-left: 18px !important;
  padding-right: 18px !important;
}

body.customers .navbar-default .navbar-nav > li.customers-nav-item-login > a:hover,
body.customers .navbar-default .navbar-nav > li.customers-nav-item-login > a:focus {
  background: var(--ihp-brand-dark) !important;
  box-shadow: 0 8px 24px rgba(169, 50, 38, 0.22);
}

body.customers .customers-nav-item-profile {
  margin-left: 6px;
}

body.customers .customers-nav-item-profile > a.dropdown-toggle {
  gap: 8px;
  padding: 5px 8px !important;
}

body.customers .customers-nav-item-profile .client-profile-image-small {
  border: 2px solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--ihp-line-strong);
  height: 32px;
  object-fit: cover;
  width: 32px;
}

body.customers .ih-profile-name {
  color: var(--ihp-ink-soft);
  font-size: 12px;
  font-weight: 700;
  max-width: 90px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.customers .ih-profile-chevron {
  color: var(--ihp-muted-light) !important;
  font-size: 9px !important;
  margin: 0 !important;
}

body.customers .dropdown-menu {
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid var(--ihp-line);
  border-radius: 14px;
  box-shadow: var(--ihp-shadow-lg);
  margin-top: 10px;
  min-width: 220px;
  overflow: hidden;
  padding: 7px;
}

body.customers .dropdown-menu > li > a {
  border-radius: 8px;
  color: #464d59;
  font-size: 13px;
  font-weight: 550;
  padding: 10px 12px;
}

body.customers .dropdown-menu > li > a:hover,
body.customers .dropdown-menu > li > a:focus {
  background: var(--ihp-surface-soft);
  color: var(--ihp-ink);
}

/* Main portal canvas */
body.customers .ih-portal-shell {
  background:
    radial-gradient(circle at 92% 2%, rgba(169, 50, 38, 0.065), transparent 25rem),
    linear-gradient(180deg, #ffffff 0, var(--ihp-canvas) 24rem);
  min-height: calc(100vh - 150px);
}

body.customers .ih-portal-content {
  padding: 34px 0 64px;
}

body.customers .ih-portal-container,
body.customers .ih-alert-container {
  max-width: 1320px;
  width: calc(100% - 48px);
}

body.customers .ih-alert-container .alert {
  margin-bottom: 18px;
}

body.customers .customer-top-submenu {
  align-items: center;
  display: flex;
  float: none;
  gap: 8px;
  margin: 0 0 22px;
  padding: 0;
}

body.customers ul.submenu.customer-top-submenu li {
  background: transparent;
  border-radius: 0;
  display: block;
  margin: 0;
  padding: 0;
}

body.customers .customer-top-submenu a {
  align-items: center;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid var(--ihp-line);
  border-radius: 999px;
  color: #505865;
  display: inline-flex;
  font-size: 12px;
  font-weight: 700;
  gap: 4px;
  min-height: 36px;
  padding: 0 14px;
}

body.customers .customer-top-submenu a:hover,
body.customers .customer-top-submenu a:focus {
  background: var(--ihp-surface);
  border-color: var(--ihp-line-strong);
  box-shadow: var(--ihp-shadow-sm);
  color: var(--ihp-ink);
}

body.customers h1,
body.customers h2,
body.customers h3,
body.customers h4,
body.customers h5 {
  color: var(--ihp-ink);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  letter-spacing: -0.035em;
}

body.customers h4.section-heading,
body.customers h4.section-text,
body.customers .tickets-summary-heading,
body.customers .projects-summary-heading,
body.customers .ih-section-title {
  color: var(--ihp-ink) !important;
  font-size: 21px !important;
  font-weight: 760 !important;
  letter-spacing: -0.03em;
  line-height: 1.25;
  margin-bottom: 16px;
}

body.customers h4.section-heading::before,
body.customers h4.section-text::before,
body.customers .tickets-summary-heading::before,
body.customers .projects-summary-heading::before,
body.customers .ih-section-title::before {
  background: var(--ihp-brand);
  border-radius: 99px;
  content: "";
  display: inline-block;
  height: 7px;
  margin: 0 10px 2px 0;
  width: 7px;
}

/* Premium panels and content cards */
body.customers .panel_s,
body.customers .panel_s .panel-body {
  background: var(--ihp-surface) !important;
  border: 0;
}

body.customers .panel_s {
  border: 1px solid var(--ihp-line) !important;
  border-radius: var(--ihp-radius) !important;
  box-shadow: var(--ihp-shadow-sm) !important;
  margin-bottom: 24px;
  overflow: hidden;
}

body.customers .panel_s > .panel-heading {
  background: var(--ihp-surface) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ihp-line) !important;
  color: var(--ihp-ink);
  font-size: 15px;
  font-weight: 730;
  margin: 0 !important;
  padding: 18px 22px;
}

body.customers .panel_s .panel-body {
  color: var(--ihp-ink-soft);
  padding: 24px !important;
}

body.customers .panel_s .panel-body p,
body.customers .panel_s p {
  color: #555d69;
}

body.customers .panel_s .panel-footer,
body.customers .panel-footer {
  background: var(--ihp-surface-soft);
  border-top: 1px solid var(--ihp-line);
  padding: 16px 22px;
}

body.customers hr {
  border-color: var(--ihp-line);
  margin-bottom: 22px;
  margin-top: 22px;
}

/* Dashboard */
body.customers .ih-dashboard-welcome {
  align-items: flex-end;
  background:
    radial-gradient(circle at 88% 6%, rgba(99, 102, 241, 0.14), transparent 22rem),
    radial-gradient(circle at 75% 100%, rgba(231, 80, 65, 0.1), transparent 20rem),
    linear-gradient(135deg, #ffffff, #f7f7fb 62%, #fffaf8);
  border: 1px solid var(--ihp-line);
  border-radius: var(--ihp-radius-lg);
  box-shadow: var(--ihp-shadow-lg);
  display: flex;
  gap: 28px;
  justify-content: space-between;
  margin-bottom: 34px;
  overflow: hidden;
  padding: 34px 36px;
  position: relative;
}

body.customers .ih-dashboard-welcome::after {
  border: 1px solid rgba(99, 102, 241, 0.1);
  border-radius: 50%;
  content: "";
  height: 260px;
  position: absolute;
  right: -80px;
  top: -130px;
  width: 260px;
}

body.customers .ih-dashboard-welcome__copy {
  max-width: 700px;
  position: relative;
  z-index: 1;
}

body.customers .ih-dashboard-welcome__eyebrow {
  color: var(--ihp-brand);
  display: block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  margin-bottom: 10px;
  text-transform: uppercase;
}

body.customers .ih-dashboard-welcome h1 {
  color: var(--ihp-ink);
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 760;
  letter-spacing: -0.045em;
  line-height: 1.08;
  margin: 0 0 10px;
}

body.customers .ih-dashboard-welcome p {
  color: var(--ihp-muted);
  font-size: 14px;
  line-height: 1.65;
  margin: 0;
}

body.customers .ih-dashboard-welcome__actions {
  display: flex;
  flex: 0 0 auto;
  gap: 10px;
  position: relative;
  z-index: 1;
}

body.customers .ih-dashboard-welcome__actions .btn-default {
  background: rgba(255, 255, 255, 0.82) !important;
  border-color: var(--ihp-line-strong) !important;
  color: var(--ihp-ink) !important;
}

body.customers .ih-dashboard-welcome__actions .btn-default:hover {
  background: #ffffff !important;
}

body.customers dl.tw-grid {
  gap: 12px !important;
  margin-bottom: 32px !important;
}

body.customers dl.tw-grid > a {
  background: rgba(255, 255, 255, 0.88) !important;
  border: 1px solid var(--ihp-line) !important;
  border-radius: 14px !important;
  box-shadow: 0 1px 2px rgba(17, 19, 24, 0.025);
  min-width: 0;
  overflow: hidden;
  position: relative;
}

body.customers dl.tw-grid > a::after {
  background: currentColor;
  bottom: 0;
  content: "";
  height: 2px;
  left: 18px;
  opacity: 0.7;
  position: absolute;
  right: 18px;
  transform: scaleX(0.18);
  transform-origin: left;
  transition: transform 180ms ease;
}

body.customers dl.tw-grid > a:hover {
  background: #ffffff !important;
  border-color: var(--ihp-line-strong) !important;
  box-shadow: var(--ihp-shadow);
  transform: translateY(-2px);
}

body.customers dl.tw-grid > a:hover::after {
  transform: scaleX(1);
}

body.customers dl.tw-grid > a > div {
  min-height: 92px;
  padding: 18px !important;
}

body.customers dl.tw-grid dt {
  font-size: 12px;
  font-weight: 750 !important;
  letter-spacing: 0.01em;
}

body.customers dl.tw-grid dd > div {
  color: var(--ihp-ink) !important;
  font-size: 25px !important;
  font-weight: 760 !important;
  letter-spacing: -0.04em;
}

body.customers .invoice-quick-info {
  margin-left: -7px;
  margin-right: -7px;
}

body.customers .invoice-quick-info > div {
  padding-left: 7px;
  padding-right: 7px;
}

body.customers .invoice-quick-info > div > .row {
  background: var(--ihp-surface-soft);
  border: 1px solid var(--ihp-line);
  border-radius: 12px;
  margin: 0;
  min-height: 92px;
  padding: 16px 10px 10px;
}

body.customers .invoice-quick-info .stats-status a {
  color: #5a626f !important;
  font-size: 11px;
  font-weight: 720;
}

body.customers .invoice-quick-info .stats-numbers,
body.customers .stats-numbers {
  color: var(--ihp-ink) !important;
  font-size: 12px;
}

body.customers .progress {
  background: #e9e7e2;
  border-radius: 99px;
  box-shadow: none;
  height: 5px;
  margin: 9px 0 0;
  overflow: hidden;
}

body.customers .progress-bar {
  border-radius: 99px;
  box-shadow: none;
}

body.customers .progress-bar-danger {
  background: var(--ihp-brand) !important;
}

body.customers .progress-bar-success {
  background: var(--ihp-success) !important;
}

body.customers .progress-bar-warning {
  background: #c57a24 !important;
}

/* Buttons */
body.customers .btn {
  align-items: center;
  border-radius: 10px !important;
  box-shadow: none;
  display: inline-flex;
  font-size: 13px !important;
  font-weight: 720;
  gap: 8px;
  justify-content: center;
  line-height: 1.2;
  min-height: 42px;
  padding: 10px 16px;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, color 160ms ease, transform 160ms ease;
}

body.customers .btn:hover,
body.customers .btn:focus {
  transform: translateY(-1px);
}

body.customers .btn-primary {
  background: linear-gradient(110deg, var(--ihp-brand-dark), var(--ihp-brand) 65%, #bd463a) !important;
  border-color: var(--ihp-brand) !important;
  color: #ffffff !important;
}

body.customers .btn-primary:hover,
body.customers .btn-primary:focus {
  background: var(--ihp-brand-dark) !important;
  border-color: var(--ihp-brand-dark) !important;
  box-shadow: 0 8px 24px rgba(129, 37, 29, 0.2);
}

body.customers .btn-info {
  background: var(--ihp-ink) !important;
  border-color: var(--ihp-ink) !important;
  color: #ffffff !important;
}

body.customers .btn-info:hover,
body.customers .btn-info:focus {
  background: #2a2d34 !important;
  border-color: #2a2d34 !important;
  box-shadow: 0 8px 24px rgba(17, 19, 24, 0.16);
}

body.customers .btn-default {
  background: #ffffff !important;
  border: 1px solid var(--ihp-line-strong) !important;
  color: #343a45 !important;
}

body.customers .btn-default:hover,
body.customers .btn-default:focus {
  background: var(--ihp-surface-soft) !important;
  border-color: #c5c1b9 !important;
  color: var(--ihp-ink) !important;
}

body.customers .btn-danger {
  background: var(--ihp-danger) !important;
  border-color: var(--ihp-danger) !important;
}

body.customers .btn-success {
  background: var(--ihp-success) !important;
  border-color: var(--ihp-success) !important;
}

body.customers .btn.btn-xs {
  border-radius: 7px !important;
  min-height: 30px;
  padding: 6px 10px;
}

/* Forms */
body.customers label,
body.customers .control-label {
  color: #3f4652;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: -0.005em;
  margin-bottom: 7px;
}

body.customers .form-group {
  margin-bottom: 18px;
}

body.customers .form-control,
body.customers .bootstrap-select > .dropdown-toggle,
body.customers .input-group-addon {
  background: #ffffff !important;
  border: 1px solid var(--ihp-line-strong) !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 2px rgba(17, 19, 24, 0.02) !important;
  color: var(--ihp-ink);
  font-size: 13px;
  min-height: 44px;
}

body.customers textarea.form-control {
  line-height: 1.55;
  min-height: 120px;
  padding-bottom: 12px;
  padding-top: 12px;
  resize: vertical;
}

body.customers .form-control:focus,
body.customers .bootstrap-select.open > .dropdown-toggle,
body.customers .bootstrap-select > .dropdown-toggle:focus {
  border-color: rgba(169, 50, 38, 0.72) !important;
  box-shadow: 0 0 0 4px rgba(169, 50, 38, 0.1) !important;
  outline: 0 !important;
}

body.customers .has-error .form-control {
  border-color: var(--ihp-danger) !important;
}

body.customers .has-error .form-control:focus {
  box-shadow: 0 0 0 4px rgba(180, 35, 47, 0.1) !important;
}

body.customers .checkbox label,
body.customers .radio label {
  color: #535b68;
  font-weight: 520;
}

body.customers .checkbox input:checked + label::after,
body.customers .radio input:checked + label::after {
  color: var(--ihp-brand);
}

body.customers .input-group .form-control:first-child,
body.customers .input-group-addon:first-child,
body.customers .input-group-btn:first-child > .btn {
  border-bottom-right-radius: 0 !important;
  border-top-right-radius: 0 !important;
}

body.customers .input-group .form-control:last-child,
body.customers .input-group-addon:last-child,
body.customers .input-group-btn:last-child > .btn {
  border-bottom-left-radius: 0 !important;
  border-top-left-radius: 0 !important;
}

/* Tables and data views */
body.customers .table-responsive {
  border: 0;
}

body.customers table.table {
  border-collapse: separate;
  border-spacing: 0;
  color: #434b58;
  font-size: 12.5px;
  margin-bottom: 0;
}

body.customers table.table > thead > tr > th {
  background: #f7f6f3;
  border: 0;
  border-bottom: 1px solid var(--ihp-line);
  color: #6f7682;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.075em;
  padding: 13px 14px;
  text-transform: uppercase;
  vertical-align: middle;
}

body.customers table.table > tbody > tr > td {
  background: #ffffff;
  border: 0;
  border-bottom: 1px solid #efede9;
  padding: 15px 14px;
  vertical-align: middle;
}

body.customers table.table > tbody > tr:last-child > td {
  border-bottom: 0;
}

body.customers table.table > tbody > tr:hover > td {
  background: #fbfaf8;
}

body.customers table.table td > a:not(.btn) {
  color: var(--ihp-ink);
  font-weight: 680;
}

body.customers table.table td > a:not(.btn):hover {
  color: var(--ihp-brand);
}

body.customers .dataTables_wrapper .dataTables_length,
body.customers .dataTables_wrapper .dataTables_filter {
  margin-bottom: 18px;
}

body.customers .dataTables_wrapper .dataTables_filter .input-group {
  display: flex;
}

body.customers .dataTables_wrapper .dataTables_filter .input-group-addon {
  align-items: center;
  border-right: 0 !important;
  display: flex;
  min-height: 40px;
}

body.customers .dataTables_wrapper .dataTables_filter input {
  border-bottom-left-radius: 0 !important;
  border-top-left-radius: 0 !important;
  min-height: 40px;
}

body.customers .dataTables_info {
  color: var(--ihp-muted);
  font-size: 11px;
  padding-top: 18px !important;
}

body.customers .pagination > li > a,
body.customers .pagination > li > span {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--ihp-line);
  border-radius: 8px !important;
  color: #5b6370;
  display: inline-flex;
  height: 34px;
  justify-content: center;
  margin-left: 5px;
  min-width: 34px;
  padding: 7px 10px;
}

body.customers .pagination > .active > a,
body.customers .pagination > .active > a:hover,
body.customers .pagination > .active > span {
  background: var(--ihp-brand) !important;
  border-color: var(--ihp-brand) !important;
  color: #ffffff !important;
}

/* Status, tabs, alerts, and modal surfaces */
body.customers .label,
body.customers [class*="status-"] .label {
  border-radius: 999px !important;
  display: inline-flex;
  font-size: 10px !important;
  font-weight: 780 !important;
  letter-spacing: 0.025em;
  line-height: 1.2;
  padding: 6px 9px !important;
}

body.customers .nav-tabs {
  border-bottom: 1px solid var(--ihp-line);
  display: flex;
  gap: 3px;
}

body.customers .nav-tabs > li > a {
  border: 0 !important;
  border-radius: 9px 9px 0 0;
  color: var(--ihp-muted);
  font-size: 12px;
  font-weight: 700;
  margin: 0;
  padding: 11px 13px;
}

body.customers .nav-tabs > li > a:hover {
  background: #f1efeb;
  color: var(--ihp-ink);
}

body.customers .nav-tabs > li.active > a,
body.customers .nav-tabs > li.active > a:hover,
body.customers .nav-tabs > li.active > a:focus {
  background: var(--ihp-brand-soft);
  box-shadow: inset 0 -2px var(--ihp-brand);
  color: var(--ihp-brand-dark);
}

body.customers .alert {
  border: 1px solid transparent;
  border-radius: 12px;
  box-shadow: var(--ihp-shadow-sm);
  font-size: 13px;
  line-height: 1.5;
  padding: 14px 16px;
}

body.customers .alert-info {
  background: #f2f6f8;
  border-color: #dae5e9;
  color: #31566a;
}

body.customers .alert-success {
  background: #edf7f1;
  border-color: #cee6d8;
  color: #235f44;
}

body.customers .alert-warning {
  background: #fff7e9;
  border-color: #f2dfbb;
  color: #80511f;
}

body.customers .alert-danger {
  background: #fbeded;
  border-color: #efcdd0;
  color: #8f2830;
}

body.customers .modal.fade.in {
  background: rgba(12, 14, 18, 0.68);
}

body.customers .modal-content {
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 18px;
  box-shadow: var(--ihp-shadow-lg);
  overflow: hidden;
}

body.customers .modal-header {
  background: var(--ihp-ink);
  border: 0;
  color: #ffffff;
  padding: 18px 22px;
}

body.customers .modal-header .modal-title {
  color: #ffffff;
  font-weight: 720;
}

body.customers .modal-body {
  padding: 24px;
}

body.customers .modal-footer {
  background: var(--ihp-surface-soft);
  border-top: 1px solid var(--ihp-line);
  padding: 15px 20px;
}

/* Knowledge base, files, tickets, profile and specialist pages */
body.customers .knowledge-base-search {
  background:
    radial-gradient(circle at 82% 15%, rgba(169, 50, 38, 0.1), transparent 22rem),
    linear-gradient(145deg, #ffffff, #f7f9fc);
  border: 0;
  border-bottom: 1px solid var(--ihp-line);
  color: var(--ihp-ink);
  padding: 44px 0;
}

body.customers .knowledge-base-search h2,
body.customers .knowledge-base-search h3 {
  color: var(--ihp-ink);
}

body.customers .knowledge-base-search .form-control {
  border-color: transparent !important;
  min-height: 50px;
}

body.customers .knowledge-base-search .btn,
body.customers .kb-search-jumbotron .kb-search-button {
  background: var(--ihp-brand) !important;
  border-color: var(--ihp-brand) !important;
  color: #ffffff !important;
}

body.customers .knowledge-base-search .btn:hover,
body.customers .knowledge-base-search .btn:focus,
body.customers .kb-search-jumbotron .kb-search-button:hover,
body.customers .kb-search-jumbotron .kb-search-button:focus {
  background: var(--ihp-brand-dark) !important;
  border-color: var(--ihp-brand-dark) !important;
}

body.customers .kb-search-jumbotron {
  background: #ffffff;
}

body.customers .articles-list > li,
body.customers .knowledge-base-groups .panel_s,
body.customers .gdpr-right,
body.customers .gdpr-purpose {
  background: #ffffff;
  border: 1px solid var(--ihp-line);
  border-radius: 14px;
  box-shadow: var(--ihp-shadow-sm);
}

body.customers .gdpr-right {
  min-height: 180px;
  padding: 28px 20px;
}

body.customers .gdpr-purpose {
  margin-bottom: 14px;
  padding: 20px;
}

body.customers .dropzone {
  background: var(--ihp-surface-soft);
  border: 1px dashed #c4bfb5;
  border-radius: 14px;
  color: var(--ihp-muted);
  min-height: 160px;
}

body.customers .dropzone:hover {
  background: #ffffff;
  border-color: var(--ihp-brand);
}

body.customers .client-profile-image-thumb {
  border: 5px solid #ffffff;
  border-radius: 18px;
  box-shadow: 0 0 0 1px var(--ihp-line), var(--ihp-shadow);
  height: 132px;
  object-fit: cover;
  width: 132px;
}

body.customers .project-info-bg {
  background: var(--ihp-surface-soft) !important;
  border-color: var(--ihp-line) !important;
}

body.customers .project-info-bg .panel-body {
  background: transparent !important;
}

body.customers .fc .fc-toolbar-title {
  color: var(--ihp-ink);
  font-size: 20px;
  font-weight: 750;
}

body.customers .fc .fc-button-primary {
  background: var(--ihp-ink);
  border-color: var(--ihp-ink);
}

body.customers .fc-theme-standard td,
body.customers .fc-theme-standard th,
body.customers .fc-theme-standard .fc-scrollgrid {
  border-color: var(--ihp-line);
}

body.customers .fc .fc-daygrid-day.fc-day-today {
  background: var(--ihp-brand-soft);
}

body.customers .preview-sticky-header {
  background: rgba(20, 22, 27, 0.96) !important;
  border: 0;
  box-shadow: 0 12px 34px rgba(17, 19, 24, 0.16);
}

body.customers .signature-pad--body {
  background: #ffffff;
  border: 1px solid var(--ihp-line-strong);
  border-radius: 12px;
}

/* Footer */
body.customers footer.footer {
  background: #17191e !important;
  border: 0;
  color: #aeb4bf;
  height: auto;
  margin: 0;
  padding: 24px 0;
}

body.customers footer.footer .container {
  max-width: 1420px;
  width: calc(100% - 48px);
}

body.customers .ih-portal-footer {
  align-items: center;
  display: flex;
  font-size: 11px;
  justify-content: space-between;
  letter-spacing: 0.01em;
}

body.customers .ih-portal-footer__brand,
body.customers .ih-portal-footer__links {
  align-items: center;
  display: flex;
  gap: 14px;
}

body.customers .ih-portal-footer__mark {
  background: var(--ihp-brand);
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(169, 50, 38, 0.15);
  height: 6px;
  width: 6px;
}

body.customers .ih-portal-footer a {
  color: #d4d8de;
}

body.customers .ih-portal-footer a:hover {
  color: #ffffff;
}

/* Responsive portal */
@media (max-width: 1199px) {
  body.customers .navbar.header > .container,
  body.customers .ih-portal-container,
  body.customers .ih-alert-container,
  body.customers footer.footer .container {
    width: calc(100% - 32px);
  }

  body.customers .ih-portal-brand__label {
    display: none;
  }

  body.customers .navbar-default .navbar-nav > li > a,
  body.customers:not(.customers_login) .navbar-default .navbar-nav > li > a {
    font-size: 12px !important;
    padding-left: 9px !important;
    padding-right: 9px !important;
  }

  body.customers .ih-profile-name {
    display: none;
  }
}

@media (max-width: 991px) {
  body.customers .navbar.header > .container {
    display: block;
    min-height: 68px;
    position: relative;
  }

  body.customers .navbar-header {
    min-height: 68px;
    width: 100%;
  }

  body.customers .navbar-toggle {
    background: #f1efeb !important;
    border: 0;
    border-radius: 10px;
    margin: 15px 0 0 auto;
    padding: 10px;
  }

  body.customers .navbar-toggle .icon-bar {
    background: var(--ihp-ink) !important;
  }

  body.customers .navbar a.navbar-brand {
    height: 68px;
  }

  body.customers .navbar a.navbar-brand img {
    max-height: 36px;
    max-width: 210px;
  }

  body.customers .navbar-collapse {
    background: rgba(255, 255, 255, 0.99);
    border: 1px solid var(--ihp-line) !important;
    border-radius: 14px;
    box-shadow: var(--ihp-shadow-lg);
    left: 0;
    margin: 0 0 12px !important;
    max-height: calc(100vh - 90px) !important;
    overflow-y: auto !important;
    padding: 8px;
    position: absolute;
    right: 0;
    top: 66px;
  }

  body.customers .navbar-collapse.collapse:not(.in) {
    display: none !important;
  }

  body.customers .navbar-collapse.collapse.in {
    display: block !important;
  }

  body.customers .navbar-default .navbar-nav {
    align-items: stretch;
    display: block;
    float: none !important;
    margin: 0 !important;
  }

  body.customers .navbar-default .navbar-nav > li {
    float: none;
  }

  body.customers .navbar-default .navbar-nav > li > a,
  body.customers:not(.customers_login) .navbar-default .navbar-nav > li > a {
    display: flex;
    font-size: 13px !important;
    margin: 2px 0 !important;
    min-height: 42px;
    padding: 10px 12px !important;
    width: 100%;
  }

  body.customers .navbar-default .navbar-nav > li.customers-nav-item-login > a {
    margin: 7px 0 0 !important;
  }

  body.customers .customers-nav-item-profile {
    margin-left: 0;
  }

  body.customers .ih-profile-name {
    display: inline;
    max-width: none;
  }

  body.customers .customers-nav-item-profile .dropdown-menu {
    border: 0;
    box-shadow: none;
    margin: 0 0 4px 16px;
  }

  body.customers .ih-dashboard-welcome {
    align-items: flex-start;
    flex-direction: column;
  }

  body.customers .invoice-quick-info > div {
    margin-bottom: 12px;
  }
}

@media (max-width: 767px) {
  body.customers .navbar.header > .container,
  body.customers .ih-portal-container,
  body.customers .ih-alert-container,
  body.customers footer.footer .container {
    width: calc(100% - 24px);
  }

  body.customers .ih-portal-content {
    padding: 22px 0 42px;
  }

  body.customers .customer-top-submenu {
    overflow-x: auto;
    padding-bottom: 3px;
    white-space: nowrap;
  }

  body.customers .panel_s {
    border-radius: 14px !important;
  }

  body.customers .panel_s .panel-body {
    padding: 18px !important;
  }

  body.customers .ih-dashboard-welcome {
    border-radius: 18px;
    margin-bottom: 26px;
    padding: 26px 22px;
  }

  body.customers .ih-dashboard-welcome__actions {
    flex-wrap: wrap;
    width: 100%;
  }

  body.customers .ih-dashboard-welcome__actions .btn {
    flex: 1 1 auto;
  }

  body.customers dl.tw-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.customers table.table {
    min-width: 700px;
  }

  body.customers .table-responsive,
  body.customers .dataTables_wrapper {
    overflow-x: auto;
  }

  body.customers .ih-portal-footer {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
  }

  body.customers .ih-portal-footer__links {
    flex-wrap: wrap;
  }
}

@media (max-width: 480px) {
  body.customers .navbar a.navbar-brand img {
    max-width: 180px;
  }

  body.customers dl.tw-grid {
    grid-template-columns: 1fr !important;
  }

  body.customers .ih-dashboard-welcome__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.customers .ih-dashboard-welcome__actions .btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.customers *,
  body.customers *::before,
  body.customers *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* --------------------------------------------------------------------------
 * Ironhand Client Portal 2.0
 * Shared authenticated experience aligned with the new white/red login core.
 * -------------------------------------------------------------------------- */

body.ih-client-portal {
  --ihp-ink: #111827;
  --ihp-ink-soft: #293448;
  --ihp-muted: #68758a;
  --ihp-muted-light: #8b96a7;
  --ihp-canvas: #f6f8fb;
  --ihp-surface: #ffffff;
  --ihp-surface-soft: #f8fafc;
  --ihp-line: #e2e7ee;
  --ihp-line-strong: #d3dbe6;
  --ihp-brand: #a93226;
  --ihp-brand-dark: #81251d;
  --ihp-brand-soft: #f9ece9;
  --ihp-shadow-sm: 0 1px 2px rgba(24, 34, 51, 0.035), 0 8px 24px rgba(24, 34, 51, 0.045);
  --ihp-shadow: 0 2px 4px rgba(24, 34, 51, 0.035), 0 22px 55px rgba(24, 34, 51, 0.07);
  --ihp-shadow-lg: 0 28px 85px rgba(24, 34, 51, 0.115);
  background: var(--ihp-canvas) !important;
}

body.ih-client-portal .ih-portal-shell {
  --ih-portal-x: 78%;
  --ih-portal-y: 10%;
  --ih-portal-shift-x: 0px;
  --ih-portal-shift-y: 0px;
  background:
    radial-gradient(430px circle at var(--ih-portal-x) var(--ih-portal-y), rgba(169, 50, 38, 0.045), transparent 72%),
    radial-gradient(circle at 94% 0%, rgba(169, 50, 38, 0.065), transparent 28rem),
    linear-gradient(180deg, #ffffff 0, #f7f9fc 20rem, #f5f7fa 100%);
  isolation: isolate;
  overflow: hidden;
  position: relative;
}

body.ih-client-portal .ih-portal-content {
  min-height: calc(100vh - 148px);
  padding-bottom: 72px;
  position: relative;
  z-index: 2;
}

body.ih-client-portal .ih-portal-page {
  min-width: 0;
  position: relative;
}

body.ih-client-portal .ih-portal-page.is-entering {
  opacity: 0;
  transform: translateY(8px);
}

body.ih-client-portal .ih-portal-page.is-ready {
  opacity: 1;
  transform: none;
  transition: opacity 360ms ease, transform 480ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.ih-client-portal .ih-portal-atmosphere {
  height: 560px;
  opacity: 0.055;
  pointer-events: none;
  position: absolute;
  right: max(-120px, calc((100vw - 1320px) / 2 - 180px));
  top: -135px;
  transform: translate3d(calc(var(--ih-portal-shift-x) * 0.5), calc(var(--ih-portal-shift-y) * 0.5), 0);
  transition: transform 180ms ease-out;
  width: 560px;
  z-index: 1;
}

body.ih-client-portal .ih-portal-atmosphere > img {
  filter: drop-shadow(0 26px 35px rgba(89, 29, 24, 0.12));
  height: 235px;
  left: 50%;
  object-fit: contain;
  position: absolute;
  top: 150px;
  transform: translateX(-50%);
  width: 235px;
  z-index: 2;
}

body.ih-client-portal .ih-portal-atmosphere__ring {
  animation: ihp-core-orbit 32s linear infinite;
  border: 1px solid var(--ihp-brand);
  border-radius: 50%;
  inset: 38px;
  position: absolute;
}

body.ih-client-portal .ih-portal-atmosphere__ring--inner {
  animation-direction: reverse;
  animation-duration: 24s;
  border-style: dashed;
  inset: 104px;
}

body.ih-client-portal .ih-portal-atmosphere__ring i {
  background: var(--ihp-brand);
  border: 3px solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 18px rgba(169, 50, 38, 0.3);
  height: 11px;
  left: 10%;
  position: absolute;
  top: 28%;
  width: 11px;
}

body.ih-client-portal .ih-portal-atmosphere__ring--inner i {
  bottom: 13%;
  left: auto;
  right: 17%;
  top: auto;
}

body.ih-client-portal .ih-portal-atmosphere__signal {
  background: linear-gradient(90deg, transparent, var(--ihp-brand), transparent);
  height: 1px;
  position: absolute;
  transform-origin: right center;
  width: 190px;
}

body.ih-client-portal .ih-portal-atmosphere__signal--one {
  left: 16px;
  top: 240px;
  transform: rotate(18deg);
}

body.ih-client-portal .ih-portal-atmosphere__signal--two {
  right: 5px;
  top: 325px;
  transform: rotate(-27deg);
}

/* Authenticated navigation */
body.ih-client-portal .navbar.header {
  border-bottom-color: rgba(218, 225, 234, 0.86) !important;
  box-shadow: 0 8px 34px rgba(28, 39, 58, 0.045);
  transition: box-shadow 220ms ease, background-color 220ms ease;
}

body.ih-client-portal .navbar.header.is-compact {
  background: rgba(255, 255, 255, 0.92) !important;
  box-shadow: 0 12px 40px rgba(28, 39, 58, 0.09);
}

body.ih-client-portal .navbar-default .navbar-nav > .active > a,
body.ih-client-portal .navbar-default .navbar-nav > .active > a:focus,
body.ih-client-portal .navbar-default .navbar-nav > .active > a:hover {
  background: var(--ihp-brand-soft) !important;
  box-shadow: inset 0 0 0 1px rgba(169, 50, 38, 0.1);
  color: var(--ihp-brand-dark) !important;
}

body.ih-client-portal .navbar-default .navbar-nav > .active > a i {
  color: var(--ihp-brand) !important;
}

body.ih-client-portal .customer-top-submenu a.is-active {
  background: var(--ihp-brand-soft);
  border-color: rgba(169, 50, 38, 0.18);
  color: var(--ihp-brand-dark);
}

body.ih-client-portal .dropdown-menu {
  border-color: #dce3ec;
  box-shadow: 0 24px 70px rgba(26, 38, 57, 0.14);
}

/* Shared page headings */
body.ih-client-portal h4.section-heading,
body.ih-client-portal h4.section-text,
body.ih-client-portal .tickets-summary-heading,
body.ih-client-portal .projects-summary-heading,
body.ih-client-portal .contracts-summary-heading,
body.ih-client-portal .customer-statement-heading,
body.ih-client-portal .kb-related-heading,
body.ih-client-portal .ih-section-title {
  color: var(--ihp-ink) !important;
  font-size: 22px !important;
  font-weight: 760 !important;
  letter-spacing: -0.035em;
  line-height: 1.2;
}

body.ih-client-portal h4.section-heading::before,
body.ih-client-portal h4.section-text::before,
body.ih-client-portal .tickets-summary-heading::before,
body.ih-client-portal .projects-summary-heading::before,
body.ih-client-portal .contracts-summary-heading::before,
body.ih-client-portal .customer-statement-heading::before,
body.ih-client-portal .kb-related-heading::before,
body.ih-client-portal .ih-section-title::before {
  background: var(--ihp-brand);
  box-shadow: 0 0 0 5px rgba(169, 50, 38, 0.08);
  height: 7px;
  width: 7px;
}

body.ih-client-portal .view-account-statement {
  background: #ffffff;
  border: 1px solid var(--ihp-line);
  border-radius: 999px;
  display: inline-flex;
  font-size: 10px;
  font-weight: 730;
  margin-left: 9px;
  padding: 7px 11px;
  vertical-align: middle;
}

/* Shared surfaces */
body.ih-client-portal .panel_s {
  border-color: var(--ihp-line) !important;
  border-radius: 17px !important;
  box-shadow: var(--ihp-shadow-sm) !important;
}

body.ih-client-portal .panel_s > .panel-heading {
  align-items: center;
  background: linear-gradient(180deg, #ffffff, #fcfdfe) !important;
  border-bottom-color: var(--ihp-line) !important;
  display: flex;
  min-height: 57px;
}

body.ih-client-portal .panel_s > .panel-heading::before {
  background: var(--ihp-brand);
  border-radius: 99px;
  content: "";
  height: 16px;
  margin-right: 10px;
  width: 3px;
}

body.ih-client-portal .panel_s .panel-body {
  color: var(--ihp-ink-soft);
}

body.ih-client-portal .panel_s .panel-footer,
body.ih-client-portal .panel-footer {
  background: #fafbfd;
  border-top-color: var(--ihp-line);
}

body.ih-client-portal .panel_s:has(.dt-table) {
  box-shadow: var(--ihp-shadow) !important;
}

body.ih-client-portal .well,
body.ih-client-portal .project-info-bg,
body.ih-client-portal .gdpr-purpose,
body.ih-client-portal .gdpr-right,
body.ih-client-portal .articles-list > li,
body.ih-client-portal .articles_list > li {
  background: #ffffff !important;
  border: 1px solid var(--ihp-line) !important;
  border-radius: 14px;
  box-shadow: var(--ihp-shadow-sm);
}

/* Dashboard and summaries */
body.ih-client-portal .ih-dashboard-welcome {
  background:
    radial-gradient(circle at 84% 20%, rgba(169, 50, 38, 0.085), transparent 22rem),
    linear-gradient(135deg, #ffffff, #fbfcfe 68%, #fff9f8);
  border-color: var(--ihp-line);
  min-height: 170px;
}

body.ih-client-portal .ih-dashboard-welcome::before {
  background: url("../images/ironhand-hand-mark-v1.png") center / contain no-repeat;
  content: "";
  height: 220px;
  opacity: 0.045;
  position: absolute;
  right: 19%;
  top: -23px;
  width: 220px;
}

body.ih-client-portal .ih-dashboard-welcome::after {
  border-color: rgba(169, 50, 38, 0.12);
  height: 290px;
  right: -75px;
  top: -145px;
  width: 290px;
}

body.ih-client-portal dl.tw-grid > a {
  border-color: var(--ihp-line) !important;
  box-shadow: var(--ihp-shadow-sm);
}

body.ih-client-portal dl.tw-grid > a::before {
  background: linear-gradient(90deg, var(--ihp-brand), rgba(169, 50, 38, 0.18));
  content: "";
  height: 2px;
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transform: scaleX(0.3);
  transition: opacity 180ms ease, transform 180ms ease;
}

body.ih-client-portal dl.tw-grid > a:hover::before {
  opacity: 1;
  transform: scaleX(1);
}

body.ih-client-portal .invoice-quick-info > div > .row {
  background: linear-gradient(145deg, #ffffff, #f9fafc);
  border-color: var(--ihp-line);
  box-shadow: 0 7px 24px rgba(30, 43, 62, 0.035);
}

body.ih-client-portal .progress {
  background: #e8edf3;
}

/* Buttons and interactive controls */
body.ih-client-portal .btn {
  overflow: hidden;
  position: relative;
}

body.ih-client-portal .btn-primary {
  background: linear-gradient(110deg, var(--ihp-brand-dark), var(--ihp-brand) 65%, #bd463a) !important;
  border-color: var(--ihp-brand) !important;
  box-shadow: 0 10px 25px rgba(129, 37, 29, 0.16);
}

body.ih-client-portal .btn-primary:hover,
body.ih-client-portal .btn-primary:focus {
  background: linear-gradient(110deg, #711e18, #9c2d23 65%, #ac3b31) !important;
  border-color: var(--ihp-brand-dark) !important;
  box-shadow: 0 13px 30px rgba(129, 37, 29, 0.24);
}

body.ih-client-portal .btn-info {
  background: #202a39 !important;
  border-color: #202a39 !important;
}

body.ih-client-portal .btn-info:hover,
body.ih-client-portal .btn-info:focus {
  background: #111827 !important;
  border-color: #111827 !important;
}

body.ih-client-portal .btn-default {
  border-color: var(--ihp-line-strong) !important;
}

body.ih-client-portal .btn:focus-visible,
body.ih-client-portal a:focus-visible,
body.ih-client-portal button:focus-visible,
body.ih-client-portal input:focus-visible,
body.ih-client-portal select:focus-visible,
body.ih-client-portal textarea:focus-visible {
  outline: 2px solid rgba(169, 50, 38, 0.72);
  outline-offset: 3px;
}

body.ih-client-portal .ih-button-ripple {
  animation: ihp-button-ripple 520ms ease-out forwards;
  background: rgba(255, 255, 255, 0.32);
  border-radius: 50%;
  height: 12px;
  pointer-events: none;
  position: absolute;
  transform: translate(-50%, -50%) scale(0);
  width: 12px;
  z-index: 0;
}

body.ih-client-portal .btn > * {
  position: relative;
  z-index: 1;
}

body.ih-client-portal .form-control,
body.ih-client-portal .bootstrap-select > .dropdown-toggle,
body.ih-client-portal .input-group-addon {
  background: #fbfcfe !important;
  border-color: var(--ihp-line-strong) !important;
  color: #1d293b;
}

body.ih-client-portal .form-control:hover,
body.ih-client-portal .bootstrap-select > .dropdown-toggle:hover {
  border-color: #bcc7d5 !important;
}

body.ih-client-portal .form-control:focus,
body.ih-client-portal .bootstrap-select.open > .dropdown-toggle,
body.ih-client-portal .bootstrap-select > .dropdown-toggle:focus {
  background: #ffffff !important;
  border-color: rgba(169, 50, 38, 0.52) !important;
  box-shadow: 0 0 0 4px rgba(169, 50, 38, 0.075), 0 8px 20px rgba(45, 53, 66, 0.045) !important;
}

body.ih-client-portal input[type="checkbox"],
body.ih-client-portal input[type="radio"] {
  accent-color: var(--ihp-brand);
}

body.ih-client-portal .dropzone {
  background:
    radial-gradient(circle at 50% 0%, rgba(169, 50, 38, 0.045), transparent 14rem),
    #fafbfd;
  border-color: #bdc7d4;
}

/* Tables, tabs, pagination, and status surfaces */
body.ih-client-portal table.table > thead > tr > th {
  background: #f6f8fb;
  border-bottom-color: #dfe5ed;
  color: #677386;
}

body.ih-client-portal table.table > tbody > tr > td {
  border-bottom-color: #edf0f4;
}

body.ih-client-portal table.table > tbody > tr:hover > td {
  background: #fbf6f5;
}

body.ih-client-portal .dataTables_wrapper .dataTables_filter .input-group-addon {
  background: #f7f9fc !important;
  color: var(--ihp-brand);
}

body.ih-client-portal .pagination > .active > a,
body.ih-client-portal .pagination > .active > a:hover,
body.ih-client-portal .pagination > .active > span {
  background: var(--ihp-brand) !important;
  border-color: var(--ihp-brand) !important;
}

body.ih-client-portal .nav-tabs {
  gap: 5px;
}

body.ih-client-portal .nav-tabs > li > a {
  border-radius: 9px 9px 0 0 !important;
}

body.ih-client-portal .nav-tabs > li.active > a,
body.ih-client-portal .nav-tabs > li.active > a:hover,
body.ih-client-portal .nav-tabs > li.active > a:focus {
  background: var(--ihp-brand-soft) !important;
  box-shadow: inset 0 -2px var(--ihp-brand);
  color: var(--ihp-brand-dark) !important;
}

body.ih-client-portal .label-default {
  background: #eef1f5 !important;
  color: #4c586a !important;
}

/* Projects */
body.ih-client-portal .project-tabs {
  background: #f8fafc;
  border: 1px solid var(--ihp-line);
  border-radius: 13px;
  padding: 6px 8px 0;
}

body.ih-client-portal .project-overview-column .panel_s,
body.ih-client-portal .task-attachment,
body.ih-client-portal .kan-ban-col .panel_s,
body.ih-client-portal .project_file_area,
body.ih-client-portal .project_file_discusssions_area {
  border-color: var(--ihp-line) !important;
  border-radius: 14px;
}

body.ih-client-portal .project-info-bg {
  background: linear-gradient(145deg, #ffffff, #f8fafc) !important;
}

body.ih-client-portal .activity-feed .feed-item {
  border-left-color: rgba(169, 50, 38, 0.35);
}

body.ih-client-portal .activity-feed .feed-item::after {
  background: #ffffff;
  border: 2px solid var(--ihp-brand);
  box-shadow: 0 0 0 4px rgba(169, 50, 38, 0.07);
}

body.ih-client-portal .frappe-gantt .bar-progress,
body.ih-client-portal .gantt .bar-progress {
  fill: var(--ihp-brand);
}

/* Tickets and conversations */
body.ih-client-portal .single-ticket-reply-area {
  border-top: 3px solid var(--ihp-brand) !important;
}

body.ih-client-portal .client-reply {
  background: linear-gradient(145deg, #fff9f8, #ffffff) !important;
  border-color: #eedad6 !important;
}

body.ih-client-portal .client-reply .panel-body {
  background: transparent !important;
  color: var(--ihp-ink-soft) !important;
}

body.ih-client-portal .ticket-info .panel-body p,
body.ih-client-portal .ticket-replies .panel-body p {
  border-color: #edf0f4 !important;
}

body.ih-client-portal .ticket-attachments,
body.ih-client-portal .ticket-attachment {
  background: #f8fafc;
  border-color: var(--ihp-line);
  border-radius: 10px;
}

/* Knowledge base */
body.ih-client-portal .knowledge-base-search,
body.ih-client-portal .kb-search-jumbotron {
  background:
    radial-gradient(circle at 82% 15%, rgba(169, 50, 38, 0.1), transparent 22rem),
    linear-gradient(145deg, #ffffff, #f7f9fc) !important;
  border-bottom: 1px solid var(--ihp-line);
  color: var(--ihp-ink);
}

body.ih-client-portal .knowledge-base-search h2,
body.ih-client-portal .knowledge-base-search h3 {
  color: var(--ihp-ink) !important;
}

body.ih-client-portal .kb-article-single-heading {
  color: var(--ihp-ink) !important;
  font-size: 27px !important;
  letter-spacing: -0.04em;
}

body.ih-client-portal .articles_list {
  display: grid;
  gap: 9px;
}

body.ih-client-portal .articles_list > li {
  margin: 0 !important;
  padding: 14px !important;
}

/* Calendar */
body.ih-client-portal #calendar {
  background: #ffffff;
  border-radius: 14px;
}

body.ih-client-portal .fc .fc-button-primary {
  background: #ffffff;
  border-color: var(--ihp-line-strong);
  color: #39465a;
}

body.ih-client-portal .fc .fc-button-primary:hover,
body.ih-client-portal .fc .fc-button-primary.fc-button-active {
  background: var(--ihp-brand) !important;
  border-color: var(--ihp-brand) !important;
  color: #ffffff !important;
}

body.ih-client-portal .fc .fc-daygrid-day.fc-day-today {
  background: #fff3f1;
}

/* Profile, company, privacy, consent, and account pages */
body.ih-client-portal .section-profile .panel_s,
body.ih-client-portal .section-company-profile .panel_s,
body.ih-client-portal .contact-profile-change-password-section .panel_s,
body.ih-client-portal .gdpr-purpose,
body.ih-client-portal .credit-card {
  box-shadow: var(--ihp-shadow) !important;
}

body.ih-client-portal .client-profile-image-thumb {
  border-radius: 20px;
  box-shadow: 0 0 0 1px var(--ihp-line), 0 18px 42px rgba(30, 42, 61, 0.13);
}

body.ih-client-portal .email-notifications-label {
  border-top: 1px solid var(--ihp-line);
  color: var(--ihp-ink);
  margin-top: 22px;
  padding-top: 20px;
}

body.ih-client-portal .gdpr-purpose-heading {
  color: var(--ihp-ink);
  font-size: 18px;
  font-weight: 720;
}

/* Statements and client-facing documents */
body.ih-client-portal .section-statement > div,
body.ih-client-portal .preview-top-wrapper {
  position: relative;
}

body.ih-client-portal .statement-account-summary {
  background: #f8fafc;
  border: 1px solid var(--ihp-line);
  border-radius: 12px;
  overflow: hidden;
}

body.ih-client-portal .statement_tfoot > tr > td {
  background: #fff5f3 !important;
  color: var(--ihp-brand-dark);
}

body.ih-client-portal .preview-sticky-header {
  background: rgba(255, 255, 255, 0.96) !important;
  border-bottom: 1px solid var(--ihp-line);
  box-shadow: 0 12px 34px rgba(30, 42, 61, 0.09);
  color: var(--ihp-ink);
}

body.ih-client-portal .preview-sticky-header h4,
body.ih-client-portal .preview-sticky-header p {
  color: var(--ihp-ink) !important;
}

body.ih-client-portal .inv-card,
body.ih-client-portal .inv-card--soft {
  border-color: var(--ihp-line) !important;
  box-shadow: var(--ihp-shadow-sm);
}

/* Modals, comments, and overlays */
body.ih-client-portal .modal-content {
  border-color: rgba(255, 255, 255, 0.3);
}

body.ih-client-portal .modal-header {
  background: linear-gradient(110deg, #171d28, #2a3444);
}

body.ih-client-portal .jquery-comments .commenting-field.main,
body.ih-client-portal .jquery-comments .textarea-wrapper .textarea {
  background: #fbfcfe;
  border-color: var(--ihp-line-strong);
  border-radius: 10px;
}

body.ih-client-portal .jquery-comments ul.navigation {
  border-bottom-color: var(--ihp-line);
}

body.ih-client-portal footer.footer {
  background:
    radial-gradient(circle at 86% 0%, rgba(169, 50, 38, 0.13), transparent 22rem),
    #171b23 !important;
}

@keyframes ihp-core-orbit {
  to { transform: rotate(360deg); }
}

@keyframes ihp-button-ripple {
  0% { opacity: 0.5; transform: translate(-50%, -50%) scale(0); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(18); }
}

@media (max-width: 991px) {
  body.ih-client-portal .ih-portal-atmosphere {
    opacity: 0.035;
    right: -245px;
    top: -155px;
  }

  body.ih-client-portal .navbar-default .navbar-nav > .active > a,
  body.ih-client-portal .navbar-default .navbar-nav > .active > a:focus,
  body.ih-client-portal .navbar-default .navbar-nav > .active > a:hover {
    background: var(--ihp-brand-soft) !important;
  }
}

@media (max-width: 767px) {
  body.ih-client-portal .ih-portal-content {
    padding-bottom: 48px;
  }

  body.ih-client-portal .ih-portal-page {
    min-width: 0;
  }

  body.ih-client-portal h4.section-heading,
  body.ih-client-portal h4.section-text,
  body.ih-client-portal .tickets-summary-heading,
  body.ih-client-portal .projects-summary-heading,
  body.ih-client-portal .contracts-summary-heading,
  body.ih-client-portal .customer-statement-heading,
  body.ih-client-portal .ih-section-title {
    font-size: 19px !important;
  }

  body.ih-client-portal .ih-dashboard-welcome::before {
    height: 170px;
    right: -18px;
    top: -20px;
    width: 170px;
  }

  body.ih-client-portal .panel_s {
    border-radius: 15px !important;
  }

  body.ih-client-portal .nav-tabs {
    overflow-x: auto;
    padding-bottom: 1px;
    white-space: nowrap;
  }

  body.ih-client-portal .nav-tabs > li {
    flex: 0 0 auto;
  }

  body.ih-client-portal .fc .fc-header-toolbar {
    align-items: flex-start;
    gap: 10px;
  }

  body.ih-client-portal .fc .fc-toolbar-chunk:last-child {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.ih-client-portal .ih-portal-atmosphere__ring,
  body.ih-client-portal .ih-portal-page {
    animation: none !important;
    opacity: 1;
    transform: none !important;
    transition: none !important;
  }

  body.ih-client-portal .ih-portal-atmosphere {
    animation: none !important;
    opacity: 0.055;
    transform: none !important;
    transition: none !important;
  }

  body.ih-client-portal .ih-button-ripple {
    display: none !important;
  }
}
