/* CHERP Component Styles */

/* Error Messages */
.error-field {
    border-color: #F79214 !important; /* Red border */
    box-shadow: 0 0 0 1px #F79214 !important;
}

/* Typography */
.cherp-title-xl {
  font-family: var(--fontfamilies-sora), sans-serif;
  font-size: var(--fontsize-4);
  font-weight: var(--fontweights-medium);
  line-height: var(--lineheight-relaxed);
  color: var(--black-and-white-black-90);
}

.cherp-title-lg {
  font-family: var(--fontfamilies-sora), sans-serif;
  font-size: var(--fontsize-3);
  font-weight: var(--fontweights-medium);
  line-height: var(--lineheight-relaxed);
  color: var(--black-and-white-black-90);
}

.cherp-title-md {
  font-family: var(--fontfamilies-sora), sans-serif;
  font-size: var(--fontsize-2);
  font-weight: var(--fontweights-medium);
  line-height: var(--lineheight-relaxed);
  color: var(--black-and-white-black-90);
}

.cherp-title-sm {
  font-family: var(--fontfamilies-sora), sans-serif;
  font-size: var(--fontsize-1);
  font-weight: var(--fontweights-medium);
  line-height: var(--lineheight-normal);
  color: var(--black-and-white-black-90);
}

.cherp-body-lg {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-2);
  font-weight: var(--fontweights-regular);
  line-height: var(--lineheight-relaxed);
  color: var(--black-and-white-black-90);
}

.cherp-body-md {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-1);
  font-weight: var(--fontweights-regular);
  line-height: var(--lineheight-normal);
  color: var(--black-and-white-black-90);
}

.cherp-body-sm {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-0);
  font-weight: var(--fontweights-regular);
  line-height: var(--lineheight-tight);
  color: var(--black-and-white-black-90);
}

.cherp-text-muted {
  color: var(--black-and-white-black-70);
}

/* Buttons */
.cherp-btn-primary {
  background-color: var(--black-and-white-black-90);
  color: var(--black-and-white-white);
  border: none;
  border-radius: 16px;
}

.cherp-btn-primary:hover:not(:disabled) {
  background-color: var(--black-and-white-black-80);
}

.cherp-btn-primary:focus-visible {
  ring-color: var(--black-and-white-black-90);
}

.cherp-btn-primary:disabled {
  background-color: var(--black-and-white-black-50);
  color: var(--black-and-white-black-70);
}

.cherp-btn-secondary {
  background-color: var(--black-and-white-white);
  color: var(--black-and-white-black-90);
  border: 1px solid var(--black-and-white-black-30);
  border-radius: 16px;
}

.cherp-btn-secondary:hover:not(:disabled) {
  background-color: var(--black-and-white-black-10);
}

.cherp-btn-secondary:disabled {
  background-color: var(--black-and-white-black-20);
  color: var(--black-and-white-black-60);
  border-color: var(--black-and-white-black-30);
}

.cherp-btn-ghost {
  background-color: transparent;
  color: var(--black-and-white-black-90);
  border: none;
}

.cherp-btn-ghost:hover:not(:disabled) {
  background-color: var(--black-and-white-black-10);
}

.cherp-btn-destructive {
  background-color: var(--semantic-red-70);
  color: var(--black-and-white-white);
  border: none;
}

.cherp-btn-destructive:hover:not(:disabled) {
  background-color: #a11a1a;
}

.cherp-btn-success {
  background-color: var(--semantic-green);
  color: var(--black-and-white-white);
  border: none;
}

.cherp-btn-success:hover:not(:disabled) {
  background-color: #00702e;
}

.cherp-btn-warning {
  background-color: var(--semantic-orange-70);
  color: var(--black-and-white-white);
  border: none;
}

.cherp-btn-warning:hover:not(:disabled) {
  background-color: #a34300;
}

/* Inputs */
.cherp-input {
  display: flex;
  height: 40px;
  width: 100%;
  border-radius: var(--radius-md);
  border: 1px solid var(--black-and-white-black-30);
  background-color: var(--black-and-white-white);
  padding: var(--spacing-2) var(--spacing-3);
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-1);
  color: var(--black-and-white-black-90);
  transition: all 0.2s ease;
}

.cherp-input::placeholder {
  color: var(--black-and-white-black-60);
}

.cherp-input:hover:not(:disabled) {
  border-color: var(--black-and-white-black-50);
}

.cherp-input:focus {
  outline: none;
  border-color: var(--main-main-blue);
  box-shadow: 0 0 0 3px rgba(20, 204, 228, 0.15);
}

.cherp-input:disabled {
  background-color: var(--black-and-white-black-20);
  color: var(--black-and-white-black-60);
  cursor: not-allowed;
}

.cherp-input-error {
  border-color: var(--semantic-red-70);
}

.cherp-input-error:focus {
  border-color: var(--semantic-red-70);
  box-shadow: 0 0 0 3px rgba(185, 28, 28, 0.15);
}

.cherp-input-success {
  border-color: var(--semantic-green);
}

.cherp-input-success:focus {
  border-color: var(--semantic-green);
  box-shadow: 0 0 0 3px rgba(0, 130, 54, 0.15);
}

/* Select */
.cherp-select-trigger {
  display: flex;
  height: 40px;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  border-radius: var(--radius-md);
  border: 1px solid var(--black-and-white-black-30);
  background-color: var(--black-and-white-white);
  padding: var(--spacing-2) var(--spacing-3);
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-1);
  color: var(--black-and-white-black-90);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cherp-select-trigger:hover:not(:disabled) {
  border-color: var(--black-and-white-black-50);
}

.cherp-select-trigger:focus {
  outline: none;
  border-color: var(--main-main-blue);
  box-shadow: 0 0 0 3px rgba(20, 204, 228, 0.15);
}

.cherp-select-trigger:disabled {
  background-color: var(--black-and-white-black-20);
  color: var(--black-and-white-black-60);
  cursor: not-allowed;
}

.cherp-select-error {
  border-color: var(--semantic-red-70);
}

.cherp-select-content {
  position: relative;
  z-index: 50;
  max-height: 384px;
  min-width: 8rem;
  overflow: hidden;
  border-radius: var(--radius-md);
  border: 1px solid var(--black-and-white-black-30);
  background-color: var(--black-and-white-white);
  box-shadow: var(--shadow-lg);
}

.cherp-select-item {
  position: relative;
  display: flex;
  width: 100%;
  cursor: pointer;
  select-none: none;
  align-items: center;
  border-radius: var(--radius-sm);
  padding: var(--spacing-2) var(--spacing-2) var(--spacing-2) var(--spacing-8);
  font-size: var(--fontsize-1);
  color: var(--black-and-white-black-90);
  outline: none;
  transition: background-color 0.15s ease;
}

.cherp-select-item:hover {
  background-color: var(--black-and-white-black-10);
}

.cherp-select-item[data-state="checked"] {
  background-color: transparent;
}

/* Checkbox */
.cherp-checkbox {
  height: 20px;
  width: 20px;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
  border: 2px solid var(--black-and-white-black-40);
  background-color: var(--black-and-white-white);
  transition: all 0.15s ease;
}

.cherp-checkbox:hover:not(:disabled) {
  border-color: var(--main-main-blue);
}

.cherp-checkbox:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(20, 204, 228, 0.15);
}

.cherp-checkbox[data-state="checked"] {
  background-color: #FFFFFF;
  border-color: var(--main-main-blue);
  color: #1A1F21;
}

.cherp-checkbox:disabled {
  background-color: var(--black-and-white-black-20);
  border-color: var(--black-and-white-black-40);
  cursor: not-allowed;
}

/* Radio */
.cherp-radio {
  aspect-ratio: 1;
  height: 20px;
  width: 20px;
  border-radius: 9999px;
  border: 2px solid var(--black-and-white-black-40);
  background-color: var(--black-and-white-white);
  transition: all 0.15s ease;
}

.cherp-radio:hover:not(:disabled) {
  border-color: var(--main-main-blue);
}

.cherp-radio:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(20, 204, 228, 0.15);
}

.cherp-radio[data-state="checked"] {
  border-color: var(--main-main-blue);
  color: var(--main-main-blue);
}

.cherp-radio:disabled {
  background-color: var(--black-and-white-black-20);
  border-color: var(--black-and-white-black-40);
  cursor: not-allowed;
}

/* Tabs */
.cherp-tabs-list {
  display: inline-flex;
  height: 40px;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-lg);
  background-color: var(--black-and-white-black-20);
  padding: var(--spacing-1);
}

.cherp-tabs-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  border-radius: var(--radius-md);
  padding: var(--spacing-2) var(--spacing-3);
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-1);
  font-weight: var(--fontweights-medium);
  color: var(--black-and-white-black-70);
  transition: all 0.15s ease;
}

.cherp-tabs-trigger:hover {
  color: var(--black-and-white-black-90);
}

.cherp-tabs-trigger[data-state="active"] {
  background-color: var(--black-and-white-white);
  color: var(--black-and-white-black-90);
  box-shadow: var(--shadow-sm);
}

.cherp-tabs-trigger:disabled {
  pointer-events: none;
  opacity: 0.5;
}

.cherp-tabs-content {
  margin-top: var(--spacing-4);
}

.cherp-tabs-content:focus-visible {
  outline: none;
}

/* Card */
.cherp-card {
  border-radius: var(--radius-lg);
  border: 1px solid var(--black-and-white-black-30);
  background-color: var(--black-and-white-white);
  box-shadow: var(--shadow-sm);
}

.cherp-card-header {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-1);
  padding: var(--spacing-6);
}

.cherp-card-title {
  font-family: var(--fontfamilies-sora), sans-serif;
  font-size: var(--fontsize-3);
  font-weight: var(--fontweights-medium);
  line-height: var(--lineheight-relaxed);
  color: var(--black-and-white-black-90);
}

.cherp-card-description {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-1);
  color: var(--black-and-white-black-70);
}

.cherp-card-content {
  padding: 0 var(--spacing-6) var(--spacing-6);
}

.cherp-card-footer {
  display: flex;
  align-items: center;
  padding: var(--spacing-6);
  padding-top: 0;
}

/* Alert */
.cherp-alert {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-3);
  width: 100%;
  border-radius: var(--radius-lg);
  border: 1px solid;
  padding: var(--spacing-4);
}

.cherp-alert-default {
  background-color: var(--black-and-white-black-10);
  border-color: var(--black-and-white-black-30);
  color: var(--black-and-white-black-90);
}

.cherp-alert-success {
  background-color: var(--semantic-green-20);
  border-color: var(--semantic-green-30);
  color: var(--semantic-green);
}

.cherp-alert-warning {
  background-color: var(--semantic-orange-20);
  border-color: var(--semantic-orange-30);
  color: var(--semantic-orange-70);
}

.cherp-alert-error {
  background-color: var(--semantic-red-20);
  border-color: var(--semantic-red-30);
  color: var(--semantic-red-70);
}

.cherp-alert-info {
  background-color: var(--misc-main-20);
  border-color: var(--misc-main-30);
  color: var(--misc-main-70);
}

.cherp-alert-title {
  font-family: var(--fontfamilies-sora), sans-serif;
  font-size: var(--fontsize-1);
  font-weight: var(--fontweights-medium);
  line-height: var(--lineheight-normal);
}

.cherp-alert-description {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-1);
  line-height: var(--lineheight-normal);
}

.cherp-alert-close {
  position: absolute;
  top: var(--spacing-3);
  right: var(--spacing-3);
  opacity: 0.7;
  transition: opacity 0.15s ease;
}

.cherp-alert-close:hover {
  opacity: 1;
}

/* Badge */
.cherp-badge {
  display: inline-flex;
  align-items: center;
  height: 24px;
  border-radius: 6px;
  padding: 0 var(--spacing-3);
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-0);
  font-weight: var(--fontweights-medium);
  line-height: 1;
  transition: colors 0.15s ease;
  box-sizing: border-box;
}

.cherp-badge-default {
  background-color: var(--black-and-white-black-20);
  color: var(--black-and-white-black-80);
  border: 1.5px solid var(--black-and-white-black-30);
}

.cherp-badge-primary {
  background-color: var(--misc-main-20);
  color: var(--misc-main-70);
  border: 2px solid var(--misc-main-30);
}

.cherp-badge-success {
  background-color: var(--semantic-green-20);
  color: var(--semantic-green);
}

.cherp-badge-warning {
  background-color: var(--semantic-orange-20);
  color: var(--semantic-orange-70);
  border: 1.5px solid var(--semantic-orange-30);
}

.cherp-badge-error {
  background-color: var(--semantic-red-20);
  color: var(--semantic-red-70);
}

.cherp-badge-cherry {
  background-color: var(--misc-cherry-20);
  color: var(--misc-cherry-70);
}

.cherp-badge-grape {
  background-color: var(--misc-grape-20);
  color: var(--misc-grape-70);
  border: 1.5px solid var(--misc-grape-30);
}

/* Label */
.cherp-label {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-1);
  font-weight: var(--fontweights-medium);
  color: var(--black-and-white-black-90);
  line-height: var(--lineheight-normal);
}

/* Surfaces */
.cherp-surface-white {
  background-color: var(--black-and-white-white);
}

.cherp-surface-light {
  background-color: var(--black-and-white-black-10);
}

.cherp-surface-gradient-blue {
  background: var(--gradient-blue);
}

.cherp-surface-gradient-orange {
  background: var(--gradient-orange);
}

/* Header */
.cherp-header {
  height: 56px;
  background-color: var(--black-and-white-black-90);
  border-bottom: 1px solid var(--black-and-white-black-80);
  display: flex;
  align-items: center;
  padding: 0 var(--spacing-6);
  gap: var(--spacing-6);
}

.cherp-header-logo {
  height: 32px;
  padding: 0 var(--spacing-3);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--black-and-white-black-90);
}

.cherp-header-logo-text {
  font-family: var(--fontfamilies-sora), sans-serif;
  font-size: var(--fontsize-1);
  font-weight: var(--fontweights-medium);
  color: var(--black-and-white-white);
}

.cherp-nav-link {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-1);
  font-weight: var(--fontweights-semibold);
  color: var(--black-and-white-white);
  transition: color 0.15s ease;
}

.cherp-nav-link:hover {
  color: var(--black-and-white-black-30);
}

.cherp-nav-link-active {
  color: var(--black-and-white-white);
  font-weight: var(--fontweights-medium);
}

.cherp-avatar {
  height: 32px;
  width: 32px;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-color: var(--black-and-white-black-30);
}

.cherp-avatar-text {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-0);
  color: var(--black-and-white-black-70);
}

/* Data Table */
.cherp-table {
  width: 100%;
  border-collapse: collapse;
}

.cherp-table-header-row {
  border-bottom: 1px solid var(--black-and-white-black-30);
}

.cherp-table-header-cell {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: 14px;
  font-weight: var(--fontweights-semibold);
  color: var(--black-and-white-black-70);
  text-align: left;
  padding: var(--spacing-3) var(--spacing-4);
}

.cherp-table-row {
  border-bottom: 1px solid var(--black-and-white-black-20);
  transition: background-color 0.15s ease;
}

.cherp-table-row-clickable {
  cursor: pointer;
}

.cherp-table-row-clickable:hover {
  background-color: var(--black-and-white-black-10);
}

.cherp-table-cell {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-1);
  color: var(--black-and-white-black-90);
  padding: var(--spacing-3) var(--spacing-4);
}

/* Pagination */
.cherp-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--spacing-1);
}

.cherp-pagination-btn {
  padding: var(--spacing-2);
  border-radius: var(--radius-md);
  transition: background-color 0.15s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cherp-pagination-btn:hover:not(:disabled) {
  background-color: var(--black-and-white-black-10);
}

.cherp-pagination-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.cherp-pagination-btn svg {
  color: var(--black-and-white-black-70);
}

.cherp-pagination-page {
  min-width: 32px;
  height: 32px;
  padding: 0 var(--spacing-2);
  border-radius: var(--radius-md);
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-0);
  color: var(--black-and-white-black-80);
  transition: background-color 0.15s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cherp-pagination-page:hover:not(.cherp-pagination-page-active) {
  background-color: var(--black-and-white-black-10);
}

.cherp-pagination-page-active {
  background-color: var(--black-and-white-black-90);
  color: var(--black-and-white-white);
}

/* Stat Card */
.cherp-stat-card {
  border-radius: var(--radius-lg);
  border: 1px solid var(--black-and-white-black-30);
  background-color: var(--black-and-white-white);
  box-shadow: var(--shadow-sm);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-4);
  min-width: 160px;
}

.cherp-stat-label {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-0);
  color: var(--black-and-white-black-70);
}

.cherp-stat-value {
  font-family: var(--fontfamilies-sora), sans-serif;
  font-size: var(--fontsize-4);
  font-weight: var(--fontweights-medium);
  color: var(--black-and-white-black-90);
}

.cherp-stat-unit {
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-0);
  color: var(--black-and-white-black-70);
}

/* Utility Classes */
.cherp-border {
  border: 1px solid var(--black-and-white-black-30);
}

.cherp-border-b {
  border-bottom: 1px solid var(--black-and-white-black-30);
}

.cherp-border-r {
  border-right: 1px solid var(--black-and-white-black-30);
}

/* Hover States */
.cherp-hover-bg:hover {
  background-color: var(--black-and-white-black-10);
}

/* Logo */
.cherp-logo {
  height: 32px;
  width: 32px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--main-main-blue);
}

.cherp-logo-text {
  font-family: var(--fontfamilies-sora), sans-serif;
  font-size: var(--fontsize-1);
  font-weight: var(--fontweights-medium);
  color: var(--black-and-white-white);
}

/* Sidebar Nav */
.cherp-sidebar-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  width: 100%;
  padding: var(--spacing-2) var(--spacing-3);
  border-radius: var(--radius-md);
  font-family: var(--fontfamilies-inter), sans-serif;
  font-size: var(--fontsize-1);
  color: var(--black-and-white-black-80);
  transition: background-color 0.15s ease;
}

.cherp-sidebar-item:hover {
  background-color: #D2F1F5;
}

.cherp-sidebar-item.cherp-sidebar-item-active,
.cherp-sidebar-item-active {
  background-color: #dafbff !important;
  color: #00535e !important;
  font-weight: 500;
}

.cherp-sidebar-item-active i,
.cherp-sidebar-item-active svg {
  color: #00535e !important;
  stroke: #00535e !important;
}

/* Icon color utilities */
.cherp-icon-default {
  color: var(--black-and-white-black-80);
}
/* ===== Bootstrap grid/form replacements (admin pages) ===== */
.container, .container-fluid {
    width: 100%;
    padding-left: 15px;
    padding-right: 15px;
    margin: 0 auto;
    box-sizing: border-box;
}

.container {
    max-width: 1170px;
}

.row {
    display: flex;
    flex-wrap: wrap;
    margin-left: -15px;
    margin-right: -15px;
}

    .row::after {
        content: "";
        display: table;
        clear: both;
    }

[class*="col-"] {
    position: relative;
    padding-left: 15px;
    padding-right: 15px;
    width: 100%;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    .col-sm-12 {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

@media (min-width: 992px) {
    .col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-md-12 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .col-lg-5 {
        flex: 0 0 41.6667%;
        max-width: 41.6667%;
    }

    .col-lg-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

/* Forms */
.form-group {
    margin-bottom: 15px;
}

.form-control {
    display: block;
    width: 100%;
    height: 38px;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.42857;
    color: #1A1F21;
    background-color: #fff;
    border: 1px solid var(--black-and-white-black-30);
    border-radius: 6px;
    transition: border-color 0.15s ease;
    box-sizing: border-box;
    font-family: var(--fontfamilies-inter), sans-serif;
}

    .form-control:focus {
        border-color: var(--main-main-blue);
        outline: none;
        box-shadow: 0 0 0 3px rgba(20,204,228,0.15);
    }

    .form-control:disabled, .form-control[disabled] {
        background-color: #f5f8fa;
        cursor: not-allowed;
    }

select.form-control {
    appearance: auto;
}

.input-group {
    display: flex;
    width: 100%;
}

    .input-group .form-control {
        flex: 1;
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }

.input-group-addon {
    display: flex;
    align-items: center;
    padding: 6px 12px;
    font-size: 14px;
    color: #1A1F21;
    background-color: #f5f8fa;
    border: 1px solid var(--black-and-white-black-30);
    border-left: none;
    border-radius: 0 6px 6px 0;
    cursor: pointer;
    white-space: nowrap;
    font-family: var(--fontfamilies-inter), sans-serif;
}

    .input-group-addon:hover {
        background-color: #e8ecef;
    }

/* Fieldset styling */
.form-border {
    border: 1px solid var(--black-and-white-black-30);
    border-radius: 8px;
    padding: 16px;
}

/* Panel */
.panel {
    border-radius: var(--radius-lg);
    border: 1px solid var(--black-and-white-black-30);
    background: #fff;
    box-shadow: var(--shadow-sm);
    margin-bottom: 20px;
    overflow: hidden;
}

.panel-default {
    border-color: var(--black-and-white-black-30);
}

.panel-heading {
    padding: 10px 15px;
    border-bottom: 1px solid var(--black-and-white-black-30);
    background-color: #f5f8fa;
}

.panel-body {
    padding: 15px;
}

/* Nav tabs */
.nav {
    display: flex;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

.nav-tabs {
    border-bottom: 1px solid var(--black-and-white-black-30);
}

    .nav-tabs > li {
        margin-bottom: -1px;
    }

        .nav-tabs > li > a {
            display: block;
            padding: 10px 15px;
            text-decoration: none;
            color: var(--black-and-white-black-70);
            border: none;
            cursor: pointer;
            font-family: var(--fontfamilies-inter), sans-serif;
            font-size: 14px;
        }

            .nav-tabs > li > a:hover {
                color: var(--black-and-white-black-90);
            }

        .nav-tabs > li.active > a,
        .nav-tabs > li.active > a:focus,
        .nav-tabs > li.active > a:hover {
            color: var(--black-and-white-black-90);
            border-bottom: 3px solid var(--main-main-blue);
            background: transparent;
        }

/* Tab content */
.tab-content > .tab-pane {
    display: none;
}

    .tab-content > .tab-pane.active {
        display: block;
    }

.tab-pane.fade {
    opacity: 0;
    transition: opacity 0.15s linear;
}

    .tab-pane.fade.in {
        opacity: 1;
    }

/* List group */
.list-group {
    padding: 0;
    margin: 4px 0 0;
    list-style: none;
    background: #fff;
    border: 1px solid var(--black-and-white-black-30);
    border-radius: 6px;
    max-height: 200px;
    overflow-y: auto;
    position: absolute;
    z-index: 100;
    width: calc(100% - 30px);
}

.list-group-item {
    padding: 8px 12px;
    border-bottom: 1px solid var(--black-and-white-black-20);
    cursor: pointer;
    font-size: 14px;
}

    .list-group-item:last-child {
        border-bottom: none;
    }

    .list-group-item:hover {
        background-color: #f5f8fa;
    }

/* Text utilities */
.text-danger {
    color: #b91c1c;
}

.text-info {
    color: var(--main-main-blue);
}

/* Spacing & layout utilities */
.clearfix::after {
    content: "";
    display: table;
    clear: both;
}

.pull-left {
    float: left;
}

.m-t {
    margin-top: 15px;
}

.m-b {
    margin-bottom: 15px;
}

/* Button base (for any remaining .btn references) */
.btn {
    display: inline-block;
    padding: 6px 12px;
    font-size: 14px;
    border-radius: 6px;
    border: 1px solid transparent;
    cursor: pointer;
    text-align: center;
}

.btn-rounded {
    border-radius: 20px;
}


/* Custom scrollbar styling */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background-color: #E2E8F0;
  border-radius: 4px;
}
* {
  scrollbar-width: thin;
  scrollbar-color: #E2E8F0 transparent;
}

/* Hide scrollbar but keep scrolling */
.scrollbar-hide {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.scrollbar-hide::-webkit-scrollbar {
  display: none;
}

/* Prevent Radix scroll-lock from hiding the page scrollbar */
body[data-scroll-locked] {
  overflow-y: scroll !important;
  margin-right: 0px !important;
  padding-right: 0px !important;
}

/* --- PDF Print Styles --- */

/* Hide PDF content in normal view */
.pdf-print-content {
  display: none;
}

/* When printing (triggered by data-pdf-printing attribute) */
@media print {
  /* Hide everything except the PDF content */
  body[data-pdf-printing] > *:not(.pdf-print-content) {
    display: none !important;
  }

  /* Hide Lovable badge/branding */
  body[data-pdf-printing] [data-lovable],
  body[data-pdf-printing] a[href*="lovable"],
  body[data-pdf-printing] [class*="lovable"],
  body[data-pdf-printing] #lovable-badge,
  body[data-pdf-printing] .lovable-badge,
  body[data-pdf-printing] iframe[src*="lovable"] {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
  }

  body[data-pdf-printing] .pdf-print-content {
    display: block !important;
    position: static !important;
    width: 794px;
    margin: 0 auto;
    background: #fff;
    z-index: 99999;
    overflow: visible !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  body[data-pdf-printing] .pdf-print-content * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  body[data-pdf-printing] .pdf-print-content img {
    display: block !important;
    visibility: visible !important;
    max-width: 100%;
  }

  /* Remove margins/padding from html/body */
  html, body[data-pdf-printing] {
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  /* Page break controls */
  body[data-pdf-printing] .pdf-print-content .pdf-page-break {
    break-before: page !important;
    page-break-before: always !important;
  }

  body[data-pdf-printing] .pdf-print-content .pdf-no-break {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* Prevent orphaned headings */
  body[data-pdf-printing] .pdf-print-content h2,
  body[data-pdf-printing] .pdf-print-content h3 {
    break-after: avoid !important;
    page-break-after: avoid !important;
  }

  /* Ensure tables and cards don't split */
  body[data-pdf-printing] .pdf-print-content table,
  body[data-pdf-printing] .pdf-print-content [style*="border-radius"] {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  @page {
    margin: 0;
    size: auto;
  }

  /* Hide browser-generated header/footer (URL, date, page numbers) */
  body[data-pdf-printing] {
    margin: 0 !important;
    padding: 0 !important;
  }
}

/* Custom AngularJS element hosts must render as block so Tailwind
   `space-y-*` margins between siblings apply correctly. */
upgrade-card,
home-readiness-card,
appliance-card {
  display: block;
}

/* === Survey: customer-data styling (v33) === */
/* Custom-element hosts need display:block so space-y-* gaps work */
form-section,
program-participation-row,
thermostat-slider,
cherp-switch,
select-menu {
  display: block;
}

/* Native checkbox styled like React Radix Checkbox */
input[type="checkbox"].cherp-checkbox {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  height: 20px;
  width: 20px;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
  border: 2px solid var(--black-and-white-black-40);
  background-color: var(--black-and-white-white);
  display: inline-block;
  vertical-align: middle;
  position: relative;
  cursor: pointer;
  transition: all 0.15s ease;
  margin: 0;
  padding: 0;
}
input[type="checkbox"].cherp-checkbox:hover:not(:disabled) {
  border-color: var(--main-main-blue);
}
input[type="checkbox"].cherp-checkbox:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(20, 204, 228, 0.15);
}
input[type="checkbox"].cherp-checkbox:checked {
  border-color: var(--main-main-blue);
  background-color: var(--black-and-white-white);
}
input[type="checkbox"].cherp-checkbox:checked::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 0px;
  width: 6px;
  height: 11px;
  border: solid #1A1F21;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
input[type="checkbox"].cherp-checkbox:disabled {
  background-color: var(--black-and-white-black-20);
  border-color: var(--black-and-white-black-40);
  cursor: not-allowed;
}

/* Custom radio (used in program-participation-row) */
.cherp-radio-native {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 20px;
  width: 20px;
  border-radius: 9999px;
  border: 2px solid var(--black-and-white-black-40);
  background-color: var(--black-and-white-white);
  cursor: pointer;
  transition: all 0.15s ease;
}
.cherp-radio-native:hover {
  border-color: var(--main-main-blue);
}
.cherp-radio-native.cherp-radio-checked {
  border-color: var(--main-main-blue);
}
.cherp-radio-dot {
  display: block;
  width: 9px;
  height: 9px;
  border-radius: 9999px;
  background-color: var(--main-main-blue);
}

/* Thermostat slider — visual mirror of React shadcn Slider */
.cherp-thermo-wrap {
  position: relative;
  height: 20px;
  display: flex;
  align-items: center;
  width: 100%;
}
.cherp-thermo-track {
  position: absolute;
  left: 0; right: 0;
  height: 8px;
  border-radius: 9999px;
  background-color: var(--black-and-white-black-20);
  overflow: hidden;
}
.cherp-thermo-fill {
  height: 100%;
  background-color: var(--main-main-blue);
}
.cherp-thermo-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  margin: 0;
  z-index: 2;
}
.cherp-thermo-thumb {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: 9999px;
  background-color: #FFFFFF;
  border: 2px solid var(--main-main-blue);
  box-shadow: 0 1px 2px rgba(0,0,0,0.1);
  pointer-events: none;
  z-index: 1;
}
.cherp-thermo-tick {
  width: 1px;
  height: 4px;
}

/* Appliance detail panel slide animation */
.cherp-panel-in {
  transform: translateX(0);
  transition: transform 0.3s ease-in-out;
}
.cherp-panel-out {
  transform: translateX(100%);
  transition: transform 0.3s ease-in-out;
}
/* Dropdown (replaces Bootstrap dropdown styles for uib-dropdown) */
[uib-dropdown] {
    position: relative;
}

[uib-dropdown-menu] {
    display: none;
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 1000;
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
}

[uib-dropdown].open > [uib-dropdown-menu] {
    display: block;
}

/* Popover (replaces Bootstrap popover styles for uib-popover) */
.popover {
    position: absolute;
    z-index: 1060;
    display: block;
    max-width: 320px;
    background-color: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.popover-inner,
.popover-content {
    padding: 8px;
}

.popover > .arrow {
    display: none;
}

/* Tooltip (replaces Bootstrap tooltip styles for uib-tooltip) */
.tooltip {
    position: absolute;
    z-index: 1070;
    display: block;
    font-size: 12px;
    opacity: 0;
    transition: opacity 0.15s ease;
}

    .tooltip.in {
        opacity: 1;
    }

.tooltip-inner {
    max-width: 200px;
    padding: 4px 8px;
    color: #fff;
    background-color: #1A1F21;
    border-radius: 6px;
    text-align: center;
}

.tooltip > .arrow {
    display: none;
}
