/* Floating Save Filters button (bottom-right across all tabs) */
.ps-floating-save-filters {
  position: fixed;
  right: 1rem; /* ~16px */
  bottom: 1rem; /* ~16px */
  z-index: 9999;
  box-shadow: 0 6px 16px rgba(0,0,0,0.2);
  width:10em;
}
/* Floating Reset button sits to the left of Save */
.ps-floating-reset-filters {
  position: fixed;
  background-color: var(--ps-bg-light);
  right: 12em; /* Save right(1rem) + save width (~7.25rem incl padding) */
  bottom: 1rem;
  z-index: 9998;
  box-shadow: 0 6px 16px rgba(0,0,0,0.16);
  width: 8em;
}
/* Payorscope Design System */

:root {
  /* Color System */
  --ps-color-primary: #02ae66;
  --ps-color-primary-dark: #009d5d;
  --ps-color-primary-light: #e6f7f0;
  
  --ps-color-teal: #54c0a1;
  --ps-color-teal-dark: #409d80;
  --ps-color-blue: #3b5bf5;
  --ps-color-blue-dark: #2a48d8;
  --ps-color-blue-light: #e9ecf6;
  --ps-color-blue-lighter: #f5f7fd;
  --ps-color-blue-hover: #d1d7ed;
  
  --ps-color-red: #ee4465;
  --ps-color-red-light: #fde6eb;
  --ps-color-red-border: #f594a7;
  --ps-color-red-dark: #d13455;
  
  --ps-color-yellow: #fcd33d;
  --ps-color-purple: #697abb;
  
  --ps-color-green: #02ae66;
  --ps-color-green-light: #e6f7f0;
  
  /* Text Colors */
  --ps-text-dark: #1A2542;
  --ps-text-medium: #6E7891;
  --ps-text-light: #9CA3AF;
  --ps-text-lighter: #D1D5DB;
  
  /* Background Colors */
  --ps-bg-white: #ffffff;
  --ps-bg-light: #F9FAFB;
  --ps-bg-dark: #adacb1;
  --ps-bg-darker: #949398;
  --ps-bg-gray: #F3F4F6;
  --ps-bg-primary: #c9ecde;
  
  /* Border Colors */
  --ps-border-color: #E5E7EB;
  --ps-border-color-light: #F3F4F6;
  --ps-border-color-primary: #02ae66;
  
  /* Component Sizes */
  --ps-sidebar-width-min: 220px;
  --ps-sidebar-width-max: 280px;
  
  /* Additional Color Variables */
  --ps-scrollbar-thumb: #CBD5E1;
  --ps-scrollbar-thumb-hover: #94A3B8;
  
  /* Percentile Heatmap Colors */
  --ps-percentile-0-10: #ff6b6b;
  --ps-percentile-10-20: #ff8e72;
  --ps-percentile-20-30: #ffa579;
  --ps-percentile-30-40: #ffbd80;
  --ps-percentile-40-50: #ffd587;
  --ps-percentile-50-60: #ffed8e;
  --ps-percentile-60-70: #e4f18f;
  --ps-percentile-70-80: #c6e596;
  --ps-percentile-80-90: #a7d99d;
  --ps-percentile-90-100: #88cea4;
  --ps-blue-lighter: var(--ps-bg-light);
  --ps-green-lighter: #ECFDF5;
  --ps-white: #ffffff;
  
  /* Additional UI Colors */
  --ps-gray-100: #f1f5f9;
  --ps-gray-200: #e2e8f0;
  --ps-gray-300: #cbd5e0;
  --ps-gray-400: #64748b;
  --ps-gray-500: #475569;
  --ps-blue-100: #ebf5ff;
  --ps-blue-400: #bfdbfe;
  --ps-blue-500: #93c5fd;
  --ps-blue-600: #2563eb;
  --ps-tooltip-bg: #1A2542;
  
  /* Tag Colors */
  --ps-tag-gray-bg: #E5E7EB;
  --ps-tag-gray-text: #6B7280;
  --ps-tag-blue-bg: #E0F2FE;
  --ps-tag-blue-text: #0369A1;
  --ps-tag-purple-bg: #F3E8FF;
  --ps-tag-purple-text: #7E22CE;
  --ps-tag-amber-bg: #fef3c7;
  --ps-tag-amber-text: #d97706;
  --ps-tag-green-bg: #dcfce7;
  --ps-tag-green-text: #059669;
  --ps-tag-red-bg: #fecaca;
  --ps-tag-red-text: #b91c1c;
  
  /* Font */
  --ps-font-mono: 'lft-etica-mono', monospace;
  /* Aliases and missing tokens */
  --ps-text-primary: var(--ps-text-dark);
  --ps-color-teal-light: #e6f4f1;
  --ps-color-green-dark: #009d5d;
}

/* =========================================================
   Sections
   1. Tokens (variables)
   2. Utilities (color, text, border, spacing, layout)
   3. Base and Resets
   4. Layout (app shell, sidebar, header)
   5. Components (buttons, inputs, tables, cards, modals, toasts, filters)
   6. Feature Blocks (reports, revenue lift, npi-system, charts, maps)
   7. States & Animations
   8. Responsive overrides
   ========================================================= */

/* =========================================================
   Utilities (color + border) – variable-backed and generic
   ========================================================= */

/* Variable-backed utility aliases (ps-*) */
/* Backgrounds */
.ps-bg-gray-50 { background-color: var(--ps-bg-light); }
.ps-bg-gray-100 { background-color: var(--ps-bg-gray); }
.ps-bg-gray-200 { background-color: var(--ps-gray-200); }
.ps-bg-blue-50 { background-color: var(--ps-blue-lighter); }
.ps-bg-blue-100 { background-color: var(--ps-color-blue-light); }
.ps-bg-blue-600 { background-color: var(--ps-color-blue); }
.ps-bg-teal-600 { background-color: var(--ps-color-teal); }
.ps-bg-purple-50 { background-color: var(--ps-tag-purple-bg); }
.ps-bg-purple-600 { background-color: var(--ps-color-purple); }
.ps-bg-red-50 { background-color: var(--ps-color-red-light); }
.ps-bg-red-100 { background-color: var(--ps-color-red-light); }
.ps-bg-red-900 { background-color: var(--ps-color-red-dark); }
.ps-bg-green-100 { background-color: var(--ps-color-green-light); }
.ps-bg-yellow-50 { background-color: var(--ps-tag-amber-bg); }

/* Hover backgrounds */
.ps-hover-bg-gray-50:hover { background-color: var(--ps-bg-light); }
.ps-hover-bg-gray-100:hover { background-color: var(--ps-bg-gray); }
.ps-hover-bg-red-50:hover { background-color: var(--ps-color-red-light); }

/* Text colors */
.ps-text-gray-500 { color: var(--ps-text-light); }
.ps-text-gray-600 { color: var(--ps-text-medium); }
.ps-text-gray-700 { color: var(--ps-text-medium); }
.ps-text-gray-800 { color: var(--ps-text-dark); }
.ps-text-gray-900 { color: var(--ps-text-dark); }

.ps-text-blue-600 { color: var(--ps-color-blue); }
.ps-text-blue-700 { color: var(--ps-color-blue-dark); }
.ps-text-blue-800 { color: var(--ps-color-blue-dark); }
/* Additional text scales */
.ps-text-blue-500 { color: var(--ps-blue-500); }

.ps-text-red-600 { color: var(--ps-color-red); }
.ps-text-red-700 { color: var(--ps-color-red-dark); }
.ps-text-red-800 { color: var(--ps-color-red-dark); }

.ps-text-green-600 { color: var(--ps-color-green); }
.ps-text-yellow-800 { color: var(--ps-tag-amber-text); }
.ps-text-purple-700 { color: var(--ps-tag-purple-text); }

/* Hover text */
.ps-hover-text-blue-800:hover { color: var(--ps-color-blue-dark); }
.ps-hover-text-blue-600:hover { color: var(--ps-color-blue); }
.ps-hover-text-blue-700:hover { color: var(--ps-color-blue-dark); }
.ps-hover-text-red-700:hover { color: var(--ps-color-red-dark); }
.ps-border-teal-600 { border-color: var(--ps-color-teal); }

/* Borders */
.ps-border-gray-100 { border-color: var(--ps-border-color-light); }
.ps-border-gray-200 { border-color: var(--ps-border-color); }
.ps-border-gray-300 { border-color: var(--ps-gray-300); }

.ps-border-blue-200 { border-color: var(--ps-blue-400); }
.ps-border-blue-300 { border-color: var(--ps-blue-400); }
.ps-border-blue-400 { border-color: var(--ps-blue-400); }
.ps-border-blue-600 { border-color: var(--ps-color-blue); }

.ps-border-purple-300 { border-color: var(--ps-tag-purple-text); }
.ps-border-purple-600 { border-color: var(--ps-color-purple); }

.ps-border-green-200 { border-color: var(--ps-color-green); }
.ps-border-green-300 { border-color: var(--ps-color-green); }

.ps-border-red-200 { border-color: var(--ps-color-red-border); }
.ps-border-red-500 { border-color: var(--ps-color-red); }

.ps-border-yellow-200 { border-color: var(--ps-tag-amber-bg); }

/* Generic utility colors (tailwind-like) */
.bg-green-50 { background-color: var(--ps-color-green-light); }
.bg-blue-50 { background-color: var(--ps-color-blue-light); }
.bg-purple-50 { background-color: var(--ps-color-blue-lighter); }
.bg-yellow-50 { background-color: var(--ps-tag-amber-bg); }
.bg-gray-50 { background-color: var(--ps-bg-gray); }
.bg-blue-100 { background-color: var(--ps-color-blue-light); }
.bg-green-100 { background-color: var(--ps-color-green-light); }
.bg-yellow-100 { background-color: var(--ps-tag-amber-bg); }
.bg-orange-100 { background-color: var(--ps-tag-amber-bg); }

.text-green-700 { color: var(--ps-color-primary); }
.text-green-600 { color: var(--ps-color-primary-dark); }
.text-green-800 { color: var(--ps-color-primary-dark); }
.text-blue-700 { color: var(--ps-color-blue); }
.text-blue-800 { color: var(--ps-color-blue-dark); }
.text-purple-700 { color: var(--ps-color-purple); }
.text-purple-800 { color: var(--ps-color-purple); }
.text-yellow-800 { color: var(--ps-tag-amber-text); }
.text-orange-800 { color: var(--ps-tag-amber-text); }

.border-green-200 { border-color: var(--ps-color-primary); }
.border-yellow-200 { border-color: var(--ps-tag-amber-bg); }

/* Spacing and layout micro-utilities */
.ms-auto { margin-left: auto; }
.me-1 { margin-right: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.d-none { display: none !important; }
.ps-overflow-y-auto { overflow-y: auto; }
.ps-overflow-x-auto { overflow-x: auto; }
.ps-w-45p { width: 45%; }
.ps-w-40p { width: 40%; }
.ps-w-10p { width: 10%; }
.ps-w-5p { width: 5%; }
.ps-min-h-400 { min-height: 400px; }
.ps-max-h-300 { max-height: 300px; }
.ps-max-h-400 { max-height: 400px; }

/* Dark mode token overrides (class-based) */
.dark {
  /* Text Colors */
  --ps-text-dark: #e5e7eb; /* primary text */
  --ps-text-medium: #b4b8c0; /* secondary text */
  --ps-text-light: #a1a8b5; /* muted text */
  --ps-text-lighter: #8d939d;

  /* Background Colors */
  --ps-bg-white: #0f172a; /* surfaces */
  --ps-bg-light: #0b1220; /* page background */
  --ps-bg-gray: #111827; /* subtle surfaces and hovers */
  --ps-bg-primary: #0f2e24; /* tinted primary row bg in dark */
  --ps-bg-dark: #0c121f;
  --ps-bg-darker: #0d1423;

  /* Border Colors */
  --ps-border-color: #334155; /* slate-700 */
  --ps-border-color-light: #1f2937; /* slate-800 */
  --ps-border-color-primary: #02ae66;

  /* Accent Colors (preserve brand hues; adjust light tints down) */
  --ps-color-primary: #02ae66;
  --ps-color-primary-dark: #007a46;
  --ps-color-primary-light: #0c1f1a;

  --ps-color-teal: #54c0a1;
  --ps-color-teal-dark: #409d80;

  --ps-color-blue: #3b5bf5;
  --ps-color-blue-dark: #040922;
  --ps-color-blue-light: #0e1a2f; /* was very light; now subtle dark tint */
  --ps-color-blue-lighter: #0f172a; /* aligns to surface */
  --ps-color-blue-hover: #1e293b;

  --ps-color-red: #ee4465;
  --ps-color-red-light: #3a0a12;
  --ps-color-red-border: #7f2d3a;
  --ps-color-red-dark: #d13455;

  --ps-color-yellow: #fcd33d;
  --ps-color-purple: #697abb;

  --ps-color-green: #02ae66;
  --ps-color-green-light: #0c1f16;

  /* Additional Color Variables */
  --ps-scrollbar-thumb: #334155;
  --ps-scrollbar-thumb-hover: #475569;
  
  /* Percentile Heatmap Colors - Dark Mode */
  --ps-percentile-0-10: #7f2020;
  --ps-percentile-10-20: #8f3a22;
  --ps-percentile-20-30: #9f5429;
  --ps-percentile-30-40: #af6e30;
  --ps-percentile-40-50: #bf8837;
  --ps-percentile-50-60: #cfa23e;
  --ps-percentile-60-70: #b4c13f;
  --ps-percentile-70-80: #96b546;
  --ps-percentile-80-90: #77a94d;
  --ps-percentile-90-100: #589e54;
  --ps-blue-lighter: var(--ps-bg-light);
  --ps-green-lighter: #0b2a1b;
  --ps-white: #ffffff; /* keep true white for text on brand buttons */

  /* Additional UI Colors */
  --ps-gray-100: #1f2937;
  --ps-gray-200: #334155;
  --ps-gray-300: #475569;
  --ps-gray-400: #64748b;
  --ps-gray-500: #94a3b8;
  --ps-blue-100: #0a1a2f;
  --ps-blue-400: #1e3a8a;
  --ps-blue-500: #2563eb;
  --ps-blue-600: #60a5fa;
  --ps-tooltip-bg: #111827;

  /* Tag Colors (dark tints) */
  --ps-tag-gray-bg: #1f2937;
  --ps-tag-gray-text: #9ca3af;
  --ps-tag-blue-bg: #0b2140;
  --ps-tag-blue-text: #60a5fa;
  --ps-tag-purple-bg: #231b3a;
  --ps-tag-purple-text: #a78bfa;
  --ps-tag-amber-bg: #3a2a0a;
  --ps-tag-amber-text: #fbbf24;
  --ps-tag-green-bg: #0b2a1b;
  --ps-tag-green-text: #10b981;
  --ps-tag-red-bg: #3a0a12;
  --ps-tag-red-text: #f87171;
}

/* Optional: automatic dark mode via OS preference (no class needed) */
@media (prefers-color-scheme: dark) {
  :root:not(.light):not(.force-light) {
    /* Text Colors */
  --ps-text-dark: #e5e7eb; /* primary text */
  --ps-text-medium: #b4b8c0; /* secondary text */
  --ps-text-light: #a1a8b5; /* muted text */
  --ps-text-lighter: #8d939d;

  /* Background Colors */
  --ps-bg-white: #0f172a; /* surfaces */
  --ps-bg-light: #0b1220; /* page background */
  --ps-bg-gray: #111827; /* subtle surfaces and hovers */
  --ps-bg-primary: #0f2e24; /* tinted primary row bg in dark */

  /* Border Colors */
  --ps-border-color: #334155; /* slate-700 */
  --ps-border-color-light: #1f2937; /* slate-800 */
  --ps-border-color-primary: #02ae66;

  /* Accent Colors (preserve brand hues; adjust light tints down) */
  --ps-color-primary: #02ae66;
  --ps-color-primary-dark: #007a46;
  --ps-color-primary-light: #0c1f1a;

  --ps-color-teal: #54c0a1;
  --ps-color-teal-dark: #409d80;

  --ps-color-blue: #3b5bf5;
  --ps-color-blue-dark: #040922;
  --ps-color-blue-light: #0e1a2f; /* was very light; now subtle dark tint */
  --ps-color-blue-lighter: #0f172a; /* aligns to surface */
  --ps-color-blue-hover: #1e293b;

  --ps-color-red: #ee4465;
  --ps-color-red-light: #3a0a12;
  --ps-color-red-border: #7f2d3a;
  --ps-color-red-dark: #d13455;

  --ps-color-yellow: #fcd33d;
  --ps-color-purple: #697abb;

  --ps-color-green: #02ae66;
  --ps-color-green-light: #0c1f16;

  /* Additional Color Variables */
  --ps-scrollbar-thumb: #334155;
  --ps-scrollbar-thumb-hover: #475569;
  
  /* Percentile Heatmap Colors - Dark Mode */
  --ps-percentile-0-10: #7f2020;
  --ps-percentile-10-20: #8f3a22;
  --ps-percentile-20-30: #9f5429;
  --ps-percentile-30-40: #af6e30;
  --ps-percentile-40-50: #bf8837;
  --ps-percentile-50-60: #cfa23e;
  --ps-percentile-60-70: #b4c13f;
  --ps-percentile-70-80: #96b546;
  --ps-percentile-80-90: #77a94d;
  --ps-percentile-90-100: #589e54;
  --ps-blue-lighter: var(--ps-bg-light);
  --ps-green-lighter: #0b2a1b;
  --ps-white: #ffffff; /* keep true white for text on brand buttons */

  /* Additional UI Colors */
  --ps-gray-100: #1f2937;
  --ps-gray-200: #334155;
  --ps-gray-300: #475569;
  --ps-gray-400: #64748b;
  --ps-gray-500: #94a3b8;
  --ps-blue-100: #0a1a2f;
  --ps-blue-400: #1e3a8a;
  --ps-blue-500: #2563eb;
  --ps-blue-600: #60a5fa;
  --ps-tooltip-bg: #111827;

  /* Tag Colors (dark tints) */
  --ps-tag-gray-bg: #1f2937;
  --ps-tag-gray-text: #9ca3af;
  --ps-tag-blue-bg: #0b2140;
  --ps-tag-blue-text: #60a5fa;
  --ps-tag-purple-bg: #231b3a;
  --ps-tag-purple-text: #a78bfa;
  --ps-tag-amber-bg: #3a2a0a;
  --ps-tag-amber-text: #fbbf24;
  --ps-tag-green-bg: #0b2a1b;
  --ps-tag-green-text: #10b981;
  --ps-tag-red-bg: #3a0a12;
  --ps-tag-red-text: #f87171;
  }
}

/* =========================================================
   Base and Resets
   ========================================================= */
/* Base Styles */
* {
  border-color: var(--ps-border-color);
}

body {
  font-family: 'lft-etica', -apple-system, BlinkMacSystemFont, sans-serif;
  background-color: var(--ps-bg-light);
  color: var(--ps-text-dark);
  margin: 0;
  transition: padding-left 0.3s ease; /* Add transition for main content shift */
}

/* Variable-backed utility aliases (to replace hard-coded Tailwind color classes) */
/* NOTE: Compatibility note retained. Duplicate utilities removed in favor of Utilities section at top. */

/* Color system for different insight types */
.summary-insights .text-green-700 {
  color: var(--ps-color-primary);
  font-weight: 700;
}

.summary-insights .text-green-600 {
  color: var(--ps-color-primary-dark);
  font-weight: 600;
}

.summary-insights .text-green-800 {
  color: var(--ps-color-primary-dark);
  font-weight: 700;
}

.summary-insights .text-blue-700 {
  color: var(--ps-color-blue);
  font-weight: 600;
}

.summary-insights .text-blue-800 {
  color: var(--ps-color-blue-dark);
  font-weight: 600;
}

.summary-insights .text-purple-700 {
  color: var(--ps-color-purple);
  font-weight: 600;
}

.summary-insights .text-purple-800 {
  color: var(--ps-color-purple);
  font-weight: 700;
}

/* Layout utilities moved to Utilities section */

/* Debug tools container */
.ps-debug-tools {
  margin-top: 50px;
  padding: 20px;
  border: 1px solid var(--ps-border-color);
  background-color: var(--ps-bg-light);
}

/* Taxonomy suggestions dropdown */
/* Shared suggestions dropdown */
.ps-suggestions,
.ps-taxonomy-suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--ps-bg-white);
  border: 1px solid var(--ps-border-color);
  border-top: none;
  border-radius: 0 0 0.375rem 0.375rem;
  max-height: 240px;
  overflow-y: auto;
  z-index: 1000;
}

.ps-suggestion-item,
.ps-taxonomy-suggestion-item {
  padding: 8px 12px;
  cursor: pointer;
  border-bottom: 1px solid var(--ps-bg-gray);
}

.ps-suggestion-item:hover,
.ps-taxonomy-suggestion-item:hover,
.ps-suggestion-item.active,
.ps-taxonomy-suggestion-item.active {
  background-color: var(--ps-bg-gray);
}

/* Active tag modifier */
.ps-tag--active {
  outline: 1px solid var(--ps-color-primary);
  background-color: var(--ps-color-primary);
}

.ps-taxonomy-suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--ps-bg-white);
  border: 1px solid var(--ps-border-color);
  border-top: none;
  border-radius: 0 0 0.375rem 0.375rem;
  max-height: 200px;
  overflow-y: auto;
  z-index: 1000;
  display: none;
}

.ps-taxonomy-suggestion-item {
  padding: 8px 12px;
  cursor: pointer;
  border-bottom: 1px solid var(--ps-border-color-light);
}

.ps-taxonomy-suggestion-item:hover {
  background-color: var(--ps-bg-gray);
}

.ps-taxonomy-error {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--ps-tag-amber-bg);
  border: 1px solid var(--ps-border-color);
  border-top: none;
  border-radius: 0 0 0.375rem 0.375rem;
  padding: 8px 12px;
  font-size: 0.875rem;
  color: var(--ps-tag-amber-text);
  z-index: 1000;
}

/* Monospace font for code blocks */
.component-code {
  font-family: 'lft-etica-mono', monospace;
}

/* Scrollbar styles */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: var(--ps-bg-light);
}

::-webkit-scrollbar-thumb {
  background: var(--ps-scrollbar-thumb);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--ps-scrollbar-thumb-hover);
}
/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
  appearance: textfield;
}

.ps-font-moby {
  font-family: "moby", sans-serif;
  font-weight: 700;
  font-style: normal;
}

/* Layout Components */
.ps-border-primary {
  border-width: 1px;
  border-color: var(--ps-border-color);
}
.ps-bg-primary,.ps-bg-green {
  background-color: var(--ps-bg-primary);
}
.ps-bg-primary-light,.ps-bg-green-light {
  background-color: var(--ps-color-primary-light);
}
.ps-bg-primary-dark,.ps-bg-green-dark {
  background-color: var(--ps-color-primary-dark);
}
.ps-bg-secondary,.ps-bg-teal {
  background-color: var(--ps-color-teal);
}
.ps-bg-secondary-light,.ps-bg-teal-light {
  background-color: var(--ps-color-teal-light);
}
.ps-bg-secondary-dark,.ps-bg-teal-dark {
  background-color: var(--ps-color-teal-dark);
}
.ps-bg-tertiary,.ps-bg-blue {
  background-color: var(--ps-color-blue);
}
.ps-bg-tertiary-light,.ps-bg-blue-light {
  background-color: var(--ps-color-blue-light);
}
.ps-bg-tertiary-dark,.ps-bg-blue-dark {
  background-color: var(--ps-color-blue-dark);
}
.ps-bg-quaternary,.ps-bg-red {
  background-color: var(--ps-color-red);
}
.ps-bg-quaternary-light,.ps-bg-red-light {
  background-color: var(--ps-tag-red-bg);
}
.ps-bg-quaternary-dark,.ps-bg-red-dark {
  background-color: var(--ps-color-red-dark);
}

.ps-bg-quinary, .ps-bg-amber {
  background-color: var(--ps-color-yellow);
}

.ps-bg-quinary-light, .ps-bg-amber-light {
  background-color: var(--ps-tag-amber-bg);
}

.ps-bg-quinary-dark, .ps-bg-amber-dark {
  background-color: var(--ps-tag-amber-text);
}

.ps-text-amber {
  color: var(--ps-tag-amber-text);
}
.ps-text-green {
  color: var(--ps-color-green);
}

.ps-text-red {
  color: var(--ps-color-red);
}

.ps-text-muted {
  color: var(--ps-text-light);
}

.ps-app {
  display: flex;
  height: 100vh;
}

.border-border-color {
  border-color: var(--ps-border-color);
}

.bg-white {
  background-color: var(--ps-bg-white);
}

/* =========================================================
   Layout: App Shell & Sidebar
   ========================================================= */
/* Sidebar */
.ps-sidebar {
  max-width: var(--ps-sidebar-width-max);
  min-width: var(--ps-sidebar-width-min);
  background-color: var(--ps-bg-white);
  border-right: 1px solid var(--ps-border-color);
  display: flex;
  flex-direction: column;
  z-index: 100;
  overflow-x: hidden; /* Prevent content spilling during animation */
}

.ps-sidebar-logo {
  display: flex;
  align-items: center;
  justify-content: center;
}

.ps-sidebar-brand {
  font-weight: 600;
  font-size: 0.75rem;
  color: var(--ps-text-dark);
}

.ps-sidebar-content {
  flex-grow: 1;
  overflow-y: auto;
  padding: 0 0 0.5rem 0;
}

.ps-sidebar-header {
  padding: 1rem 0.75rem 0 0.75rem;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  z-index: 10;
}

.ps-sidebar-section {
  padding: 0 0.75rem;
  margin-bottom: 1rem;
}

.ps-sidebar-section-title {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ps-text-medium);
  margin-bottom: 0.25rem;
  font-weight: 500;
}

.ps-sidebar-item {
  display: flex;
  align-items: center;
  padding: 0.75rem;
  color: var(--ps-text-medium);
  border-radius: 0.375rem;
  margin: 2px 0;
  font-size: 0.875rem;
  transition: all 0.1s ease;
}

.ps-sidebar-item:hover {
  background-color: var(--ps-bg-gray);
  color: var(--ps-text-dark);
}

.ps-sidebar-item.active {
  background-color: var(--ps-blue-lighter);
  color: var(--ps-color-blue);
}

.ps-sidebar-icon {
  margin-right: 0.5rem;
}

.ps-sidebar-footer {
  padding: 0.75rem;
  border-top: 1px solid var(--ps-border-color);
}

/* Main Content Area */
.ps-main {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Header */
.ps-header {
  background-color: var(--ps-bg-white);
  border-bottom: 1px solid var(--ps-border-color);
  padding: 1rem;
}

.ps-header-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
}

.ps-header-title {
  text-align: center;
}

.ps-header-title-edit {
  margin-left: 0.25rem;
  color: var(--ps-text-light);
}

.ps-header-title-edit:hover {
  color: var(--ps-text-medium);
}

/* Progress Bar */
.ps-progress {
  display: flex;
  justify-content: center;
}

.ps-progress-bar {
  display: flex;
  align-items: center;
  padding: 0;
  margin: 0;
  list-style: none;
}

.ps-progress-step {
  display: flex;
  align-items: center;
  position: relative;
  color: var(--ps-text-light);
  font-size: 0.875rem;
  padding: 0 1rem;
}

.ps-progress-step::after {
  content: '';
  display: block;
  width: 18px;
  height: 1px;
  background-color: var(--ps-text-lighter);
  position: absolute;
  right: -9px;
}

.ps-progress-step:last-child::after {
  display: none;
}

.ps-progress-step.completed {
  color: var(--ps-color-primary);
}

.ps-progress-step.active {
  color: var(--ps-color-primary);
  font-weight: 500;
}

.ps-progress-step.completed::after {
  background-color: var(--ps-color-primary);
}

/* Content Area */
.ps-content, .ps-main-content {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  overflow-y: scroll;
}

.ps-search {
  background-color: var(--ps-bg-white);
  border-bottom: 1px solid var(--ps-border-color);
  padding: 0.5rem 1rem;
}

.ps-search-wrapper {
  position: relative;
  flex-grow: 1;
}

.ps-search-icon {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ps-text-light);
}

.ps-table-container {
  flex-grow: 1;
  overflow-y: auto;
}

/* =========================================================
   Components: Buttons
   ========================================================= */
/* Buttons */
.ps-btn {
  border-radius: 0.375rem;
  font-weight: 500;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
}

.ps-btn-primary {
  background-color: var(--ps-color-blue);
  color: var(--ps-white);
  border: 1px solid var(--ps-blue-400);
  padding: 0.375rem 1rem;
}

.ps-btn-primary:hover {
  background-color: var(--ps-color-blue-dark);
}

.ps-btn-primary:active {
  background-color: var(--ps-color-blue-dark);
}

.ps-btn-primary:disabled {
  background-color: var(--ps-color-blue-light);
  color: var(--ps-text-light);
}

.ps-btn-primary:focus {
  background-color: var(--ps-color-blue-dark);
}

.ps-btn-secondary {
  border: 1px solid var(--ps-border-color);
  padding: 0.375rem 1rem;
}

.ps-btn-secondary:hover {
  background-color: var(--ps-blue-lighter);
  color: var(--ps-color-blue);
}

.ps-btn-secondary:active {
  background-color: var(--ps-color-blue-dark);
  color: var(--ps-white);
}

.ps-btn-secondary:disabled {
  background-color: var(--ps-color-blue-light);
  color: var(--ps-text-light);
}

.ps-btn-danger {
  background-color: var(--ps-bg-white);
  color: var(--ps-color-red);
  border: 1px solid var(--ps-color-red-border);
  padding: 0.375rem 1rem;
}

.ps-btn-danger:hover {
  background-color: var(--ps-color-red-light);
}

.ps-btn-continue {
  background-color: var(--ps-color-blue);
  color: var(--ps-white);
  border-radius: 0.375rem;
  padding: 0.375rem 1rem;
  box-shadow: 0 4px 6px -1px rgba(59, 130, 246, 0.2), 0 2px 4px -1px rgba(59, 130, 246, 0.1);
}

.ps-btn-continue:hover {
  background-color: var(--ps-color-blue-dark);
  box-shadow: 0 6px 8px -1px rgba(59, 130, 246, 0.3), 0 3px 5px -1px rgba(59, 130, 246, 0.2);
  transform: translateY(-1px);
}

.ps-btn-outline {
  border: 1px solid var(--ps-border-color);
  background-color: var(--ps-bg-white);
  color: var(--ps-text-dark);
  border-radius: 0.375rem;
  padding: 0.375rem 1rem;
  transition: all 0.2s;
}

.ps-btn-outline:hover {
  background-color: var(--ps-bg-gray);
}

.ps-btn-icon {
  align-items: center;
  justify-content: center;
  border-radius: 0.25rem;
  color: var(--ps-text-medium);
  padding: 0.5rem 0.75rem;
  transition: all 0.1s ease;
}

.ps-btn-icon:hover {
  background-color: var(--ps-bg-gray);
  color: var(--ps-text-dark);
}

.ps-btn-icon i {
  display: inline-block;
  width: 1rem;
  height: 1rem;
}

.ps-icon-button {
  display: flex;
  align-items: center;
  justify-content: center;
}

.ps-btn-login {
  background-color: var(--ps-color-blue);
  color: var(--ps-white);
  border: 1px solid var(--ps-blue-400);
  padding: 0.375rem 1rem;
  font-size: 1rem;
  min-width: 240px;
}
.ps-btn-green {
  background-color: var(--ps-bg-white);
  color: var(--ps-color-green);
  border: 1px solid var(--ps-color-green);
  padding: 0.375rem 1rem;
  font-size: 0.75rem;
}

.ps-btn-green:hover {
  background-color: var(--ps-color-green);
}

.ps-btn-green:active {
  background-color: var(--ps-color-green);
}

.ps-btn-green:disabled {
  background-color: var(--ps-color-green-light);
  color: var(--ps-text-light);
}

.ps-btn-green:focus {
    background-color: var(--ps-color-green);
}

.ps-btn-ghost {
  background-color: transparent;
  border: 1px solid transparent;
  color: var(--ps-text-medium);
  text-decoration: none;
}

.ps-btn-ghost:hover {
  background-color: var(--ps-bg-gray);
  color: var(--ps-text-dark);
}

/* =========================================================
   Components: Form Elements
   ========================================================= */
/* Form Elements */
.ps-input {
  background-color: var(--ps-bg-white);
  border: 1px solid var(--ps-border-color);
  border-radius: 0.375rem;
  color: var(--ps-text-dark);
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  width: 100%;
  transition: all 0.2s;
}

.ps-input:focus {
  outline: none;
  border-color: var(--ps-color-primary);
  box-shadow: 0 0 0 1px rgba(0, 179, 119, 0.1);
}

.ps-input-search {
  padding-left: 2.5rem;
}

/* =========================================================
   Components: Tables
   ========================================================= */
/* Tables */
.ps-table {
  min-width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

.ps-app .ps-table {
  font-size: 0.875rem;
}

.ps-table th {
  background-color: var(--ps-bg-white);
  padding: 0.75rem 1rem;
  color: var(--ps-text-medium);
  position: sticky;
  top: 0;
  z-index: 35;
  box-shadow: inset 0px -1px 0px 0px rgba(0,0,0,0.1);
}

.ps-table tbody td:first-child, .ps-table tbody th:first-child {
  position: sticky;
  text-align: left;
  left: 0;
  z-index: 11; /* Below sticky th */
  background-color: var(--ps-bg-light);
  box-shadow: inset -1px 0 0 0 rgba(0,0,0,0.1), inset 0px -1px 0px 0px rgba(0,0,0,0.1);
}

#percentile-embedded-lift .ps-table tbody td:first-child {
  background-color: transparent;
}

.ps-table tbody th:first-child  {
  z-index: 12; /* Above sticky th */
}

.ps-table-search-results th {
  text-align: left;
}
.ps-table td {
  padding: 0.75rem 1rem;
  box-shadow: inset 0px -1px 0px 0px rgba(0,0,0,0.1);
}
@media (max-width: 768px) {
  .ps-table td {
    padding: 0.5rem 0.75rem;
  }
}

.ps-table-row-blue {
  background-color: var(--ps-blue-lighter);
}

.ps-table-row-green {
  background-color: var(--ps-green-lighter);
}

/* Style for the table when it contains the empty state */
.ps-table:has(tbody tr td[colspan] .empty-state) {
  height: 100%; /* Ensure table takes full height when empty */
}

/* Style for the empty state container itself if needed */
.ps-table .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 150px; /* Give empty state some minimum height */
}


/* Remove button */
.ps-remove-btn {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 0.25rem;
  background-color: var(--ps-color-red-light);
  color: var(--ps-color-red);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.ps-remove-btn:hover {
  background-color: var(--ps-color-red-border);
}

/* =========================================================
   Components: Tags & Badges
   ========================================================= */
/* Tags */
.ps-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.125rem 0.5rem;
  border-radius: 0.75rem;
  font-size: 0.75rem;
  margin-top: 0.25rem;
  margin-right: 0.25rem;
}

.ps-tag-location, .ps-tag-taxonomy, .ps-tag-count {
  background-color: var(--ps-tag-gray-bg);
  color: var(--ps-tag-gray-text);
  padding: 0.125rem 0.375rem;
  white-space: nowrap;
  cursor: default;
}

.ps-tag-gray {
  background-color: var(--ps-tag-gray-bg);
  color: var(--ps-tag-gray-text);
  font-size: 0.65rem;
  padding: 0.125rem 0.375rem;
  white-space: nowrap;
  cursor: default;
}

.ps-tag-variability {
  font-size: 0.65rem;
  padding: 0.125rem 0.375rem;
  white-space: nowrap;
  cursor: default;
}

.ps-tag-location[data-custom-tooltip] {
  cursor: help;
  border-bottom: none;
}

.ps-tag-recommended {
  background-color: var(--ps-color-primary-light);
  color: var(--ps-color-primary);
}



.ps-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.125rem 0.5rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 500;
}

.ps-status-badge-success {
  background-color: var(--ps-color-green-light);
  color: var(--ps-color-green);
}

.ps-status-badge-error {
  background-color: var(--ps-color-red-light);
  color: var(--ps-color-red);
}

.ps-status-badge-processing {
  background-color: var(--ps-color-blue-light);
  color: var(--ps-color-blue);
}

.ps-status-badge-draft {
  background-color: var(--ps-tag-amber-bg);
  color: var(--ps-tag-amber-text);
}

.report-card--draft {
  background-color: var(--ps-tag-amber-bg);
  color: var(--ps-tag-amber-text);
}

.report-card--draft .ps-tag-gray {
  background: 0;
  border: 1px solid var(--ps-tag-amber-text);
  color: var(--ps-tag-amber-text);
}

/* Payor Group Styling */
.payor-group {
  margin-bottom: 2rem;
}

.payor-header {
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--ps-border-color);
  margin-bottom: 1.5rem;
}

.payor-header h2 {
  color: var(--ps-text-dark);
  font-size: 1.25rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.payor-name {
  color: var(--ps-color-primary);
}

.payor-count {
  background-color: var(--ps-color-blue-light);
  color: var(--ps-color-blue-dark);
  font-size: 0.875rem;
  font-weight: 500;
  padding: 0.25rem 0.5rem;
  border-radius: 9999px;
}

/* =========================================================
   Components: Summary Insights
   ========================================================= */
/* Client-Focused Summary Visualization Styles */
.summary-insights {
  background-color: var(--ps-bg-light);
  border-radius: 0.5rem;
  padding: 1rem;
  margin-top: 0.75rem;
  border: 1px solid var(--ps-border-color-light);
}

.summary-insights .text-xs {
  line-height: 1.5;
}

.has-summary-insights {
  border-left: 4px solid var(--ps-color-primary);
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.has-summary-insights:hover {
  border-left-color: var(--ps-color-primary-dark);
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* ROI Opportunity gradient box */
.summary-insights .bg-gradient-to-r {
  background: linear-gradient(to right, var(--ps-color-green-light), var(--ps-green-lighter));
}

/* Priority actions styling */
.summary-insights .space-y-1 > * + * {
  margin-top: 0.25rem;
}

/* Market intelligence grid */
.summary-insights .grid {
  display: grid;
}

.summary-insights .grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.summary-insights .gap-2 {
  gap: 0.5rem;
}

/* =========================================================
   Responsive overrides (Summary Insights)
   ========================================================= */
/* Responsive adjustments */
@media (max-width: 640px) {
  .summary-insights {
    padding: 0.75rem;
    margin-top: 0.5rem;
  }
  
  .summary-insights .text-xs {
    font-size: 0.7rem;
    line-height: 1.4;
  }
  
  .summary-insights .text-lg {
    font-size: 1rem;
  }
  
  /* Stack elements vertically on mobile */
  .summary-insights .flex {
    flex-direction: column;
    align-items: flex-start !important;
    gap: 0.25rem;
  }
  
  .summary-insights .justify-between {
    width: 100%;
    justify-content: space-between;
  }
  
  /* Stack market intelligence grid */
  .summary-insights .grid-cols-2 {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
  
  /* Reduce padding on mobile for priority actions */
  .summary-insights .p-2 {
    padding: 0.5rem;
  }
  
  .summary-insights .p-3 {
    padding: 0.75rem;
  }
}

.ps-tag-rank {
  padding: 0.125rem 0.5rem;
  border-radius: 0.75rem;
  font-size: 0.6rem;
  display: block;
  float: right;
  text-align: center;
  margin-top: 1rem;
  bottom: 1em;
  right:1em;
}

.ps-tag-rank-low {
  background-color: var(--ps-tag-red-bg);
  color: var(--ps-tag-red-text);
}

.ps-tag-rank-medium {
  background-color: var(--ps-tag-amber-bg);
  color: var(--ps-tag-amber-text);
}

.ps-tag-rank-high {
  background-color: var(--ps-tag-green-bg);
  color: var(--ps-tag-green-text);
}

/* Chips/Badges */
.ps-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.375rem 0.625rem;
  border-radius: 0.375rem;
  margin: 0.25rem;
  background-color: var(--ps-color-blue-light);
  color: var(--ps-tag-blue-text);
  font-size: 0.875rem;
  transition: all 0.15s;
  cursor: pointer;
}

.ps-chip:hover {
  background-color: var(--ps-color-blue-hover);
}

.ps-chip.selected {
  background-color: var(--ps-color-blue);
  color: var(--ps-white);
}

.ps-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--ps-color-blue);
  color: var(--ps-white);
  border-radius: 9999px;
  font-size: 0.75rem;
  width: 1.375rem;
  height: 1.375rem;
  margin-left: 0.5rem;
}

/* Logo SVG Styles */
.ps-logo-primary {
  fill: var(--ps-color-teal);
}

.ps-logo-secondary {
  fill: var(--ps-color-primary);
}

.ps-logo-accent-red {
  fill: var(--ps-color-red);
}

.ps-logo-accent-blue {
  fill: var(--ps-color-purple);
}

.ps-logo-accent-yellow {
  fill: var(--ps-color-yellow);
}

/* Settings Page Styles */
.ps-settings-container {
  display: flex;
  overflow: hidden;
}

.ps-settings-back {
  display: flex;
  align-items: center;
  font-size: 0.875rem;
  color: var(--ps-text-medium);
}

.ps-settings-back:hover {
  color: var(--ps-text-dark);
}

.ps-settings-logo {
  display: flex;
  align-items: center;
}

.ps-settings-logo-title {
  font-size: 1.125rem;
  font-weight: 500;
  margin-left: 0.5rem;
}

.ps-settings-nav-item {
  display: flex;
  align-items: center;
  padding: 0.625rem 0.875rem;
  color: var(--ps-text-medium);
  border-radius: 0.375rem;
  margin: 0.125rem 0;
  font-size: 0.875rem;
  transition: all 0.1s ease;
}

.ps-settings-nav-item:hover {
  background-color: var(--ps-bg-gray);
  color: var(--ps-text-dark);
}

.ps-settings-nav-item.active {
  background-color: var(--ps-bg-gray);
  color: var(--ps-text-dark);
  font-weight: 500;
}

.ps-settings-nav-icon {
  width: 1.25rem;
  text-align: center;
  margin-right: 0.5rem;
}

.ps-settings-category-title {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ps-text-medium);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
  margin-top: 1rem;
}

.ps-settings-content {
  flex-grow: 1;
  font-size: 0.875rem;
  overflow-y: auto;
}

.ps-settings-header {
  font-size: 1.25rem;
  font-weight: 600;
}

.ps-settings-subheader {
  font-size: 0.875rem;
  color: var(--ps-text-medium);
  margin-bottom: 1.5rem;
}

.ps-settings-card {
  background-color: var(--ps-bg-white);
  border-radius: 0.5rem;
  border: 1px solid var(--ps-border-color);
  overflow: hidden;
  margin-bottom: 1.25rem;
}

.ps-settings-section {
  padding: 1.25rem;
  border-bottom: 1px solid var(--ps-border-color-light);
}

.ps-settings-section:last-child {
  border-bottom: none;
}

.ps-settings-section-title {
  font-weight: 500;
  margin-bottom: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ps-settings-support {
  display: flex;
  align-items: center;
  color: var(--ps-text-medium);
  font-size: 0.875rem;
}

.ps-settings-support:hover {
  color: var(--ps-color-blue);
}

.ps-progress-bar-container {
  height: 0.625rem;
  background-color: var(--ps-bg-gray);
  border-radius: 0.5rem;
  overflow: hidden;
}

.ps-progress-bar-fill {
  height: 100%;
  border-radius: 0.5rem;
}

.ps-progress-bar-fill-blue {
  background-color: var(--ps-color-blue);
}

.ps-settings-table {
  width: 100%;
}

.ps-settings-table th {
  background-color: var(--ps-bg-gray);
  padding: 0.75rem 1.25rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--ps-text-medium);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: left;
}

.ps-settings-table td {
  padding: 1rem 1.25rem;
  font-size: 0.875rem;
  border-bottom: 1px solid var(--ps-border-color-light);
}

.ps-settings-table-row:hover {
  background-color: var(--ps-bg-light);
}

.ps-settings-link {
  color: var(--ps-color-blue);
}

.ps-settings-link:hover {
  color: var(--ps-color-blue-dark);
}

.ps-filter-btn {
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
}

.ps-filter-btn-active {
  background-color: var(--ps-color-blue-light);
  color: var(--ps-color-blue-dark);
}

.ps-filter-btn-inactive {
  color: var(--ps-text-medium);
}

.ps-filter-btn-inactive:hover {
  background-color: var(--ps-bg-gray);
}

/* Settings Page Header Styles */
.ps-settings-page-header {
  background-color: var(--ps-bg-white);
  border-bottom: 1px solid var(--ps-border-color);
  padding: 16px 24px;
  position: sticky;
  top: 0;
  z-index: 100;
}

.ps-settings-header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 auto;
}

.ps-settings-header-left,
.ps-settings-header-right {
  flex: 0 0 auto;
}

.ps-settings-header-center {
  flex: 1;
  text-align: center;
}

.ps-settings-page-title {
  font-size: 24px;
  font-weight: 600;
  color: var(--ps-text-dark);
  margin: 0;
}

.ps-organization-info {
  display: flex;
  align-items: center;
}

.ps-organization-switcher-btn {
  display: flex;
  align-items: center;
  background: var(--ps-bg-light);
  border: 1px solid var(--ps-border-color);
  border-radius: 8px;
  padding: 8px 12px;
  cursor: pointer;
  transition: all 0.2s ease;
  color: var(--ps-text-dark);
}

.ps-organization-switcher-btn:hover {
  background: var(--ps-bg-gray);
  border-color: var(--ps-color-primary);
}

.ps-organization-details {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-right: 8px;
}

.ps-organization-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--ps-text-dark);
  line-height: 1.2;
}

.ps-organization-role {
  font-size: 12px;
  color: var(--ps-text-medium);
  line-height: 1.2;
}

/* =========================================================
   Responsive overrides (Settings)
   ========================================================= */
/* Responsive adjustments for settings header */
@media (max-width: 768px) {
  .ps-settings-header-content {
    flex-direction: row;
    gap: 12px;
  }
  
  .ps-settings-header-center {
    flex: 1;
    text-align: left;
  }
  
  .ps-settings-page-title {
    font-size: 20px;
  }
  
  .ps-organization-details {
    display: none;
  }
  
  .ps-organization-switcher-btn {
    padding: 8px;
  }
}

/* Empty State Styles */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  width: 100%;
  
}

/* =========================================================
   Components: Tooltip System
   ========================================================= */
/* Tooltip System Styles */
#global-tooltip-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  overflow: visible;
  z-index: 99999;
  pointer-events: none;
}

.custom-tooltip {
  position: fixed;
  background-color: var(--ps-tooltip-bg);
  color: var(--ps-white);
  padding: 10px 12px;
  border-radius: 4px;
  box-shadow: 0 3px 15px rgba(0, 0, 0, 0.3);
  max-width: 300px;
  word-wrap: break-word;
  text-align: left;
  font-size: 0.875rem;
  line-height: 1.5;
  transition: opacity 0.15s ease-in-out;
  opacity: 0;
  z-index: 100000;
  pointer-events: none;
}

.custom-tooltip::before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border-style: solid;
}

/* Top position (default) */
.custom-tooltip[data-position="top"]::before {
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%);
  border-width: 5px 5px 0 5px;
  border-color: var(--ps-tooltip-bg) transparent transparent transparent;
}

/* Bottom position */
.custom-tooltip[data-position="bottom"]::before {
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
  border-width: 0 5px 5px 5px;
  border-color: transparent transparent var(--ps-tooltip-bg) transparent;
}

/* Left position */
.custom-tooltip[data-position="left"]::before {
  right: -5px;
  top: 50%;
  transform: translateY(-50%);
  border-width: 5px 0 5px 5px;
  border-color: transparent transparent transparent var(--ps-tooltip-bg);
}

/* Right position */
.custom-tooltip[data-position="right"]::before {
  left: -5px;
  top: 50%;
  transform: translateY(-50%);
  border-width: 5px 5px 5px 0;
  border-color: transparent var(--ps-tooltip-bg) transparent transparent;
}

/* Utility classes for tooltip usage */
[data-custom-tooltip] {
  position: relative;
}

/* Tooltip positions - these classes only serve as positional markers for the JS */
.tooltip-top, [data-tooltip-position="top"] {
  position: relative; /* Ensure element has positioning context */
}

.tooltip-bottom, [data-tooltip-position="bottom"] {
  position: relative;
}

.tooltip-left, [data-tooltip-position="left"] {
  position: relative;
}

.tooltip-right, [data-tooltip-position="right"] {
  position: relative;
}

/* =========================================================
   Components: Modal
   ========================================================= */
/* Modal System Styles */
.ps-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 99999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  padding: 1rem;
}

.ps-modal-overlay.show {
  opacity: 1;
  visibility: visible;
}

.ps-modal {
  background-color: var(--ps-bg-white);
  border-radius: 8px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  transform: translateY(20px);
  opacity: 0;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.ps-modal-overlay.show .ps-modal {
  transform: translateY(0);
  opacity: 1;
}

.ps-modal-header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--ps-border-color);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ps-modal-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--ps-text-dark);
}

.ps-modal-close {
  background: transparent;
  border: none;
  color: var(--ps-text-medium);
  cursor: pointer;
  font-size: 1.25rem;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: background-color 0.1s ease;
}

.ps-modal-close:hover {
  background-color: var(--ps-bg-gray);
  color: var(--ps-text-dark);
}

.ps-modal-body {
  padding: 20px;
  overflow-y: auto;
  flex-grow: 1;
}

.ps-modal-footer {
  padding: 16px 20px;
  border-top: 1px solid var(--ps-border-color);
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

/* Modal sizes */
.ps-modal-sm {
  max-width: 400px;
}

.ps-modal-lg {
  max-width: 700px;
}

.ps-modal-xl {
  max-width: 900px;
}

.ps-modal-fullscreen {
  max-width: none;
  width: 100%;
  height: 100%;
  border-radius: 0;
}

/* =========================================================
   States & Animations: Modal transitions
   ========================================================= */
/* Modal transitions */
@keyframes ps-modal-fade-in {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.ps-modal-entering {
  animation: ps-modal-fade-in 0.3s ease forwards;
}

/* Modal animation for exiting */
@keyframes ps-modal-fade-out {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(20px);
  }
}

.ps-modal-exiting {
  animation: ps-modal-fade-out 0.3s ease forwards;
}

/* =========================================================
   Components: Autocomplete / Search Results
   ========================================================= */
/* Autocomplete/Search Results */
.ps-autocomplete-container {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  max-height: 280px;
  overflow-y: auto;
  background-color: var(--ps-bg-white);
  border: 1px solid var(--ps-border-color);
  border-radius: 0.375rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  z-index: 50;
  margin-top: 0.25rem;
}

.ps-autocomplete-item {
  padding: 0.625rem 0.75rem;
  font-size: 0.875rem;
  color: var(--ps-text-dark);
  cursor: pointer;
  display: flex;
  align-items: center;
  transition: background-color 0.1s ease;
}

.ps-autocomplete-item:hover,
.ps-autocomplete-item.active {
  background-color: var(--ps-bg-light);
}

.ps-autocomplete-highlight {
  color: var(--ps-color-blue-dark);
  font-weight: 500;
}

.ps-autocomplete-icon {
  color: var(--ps-text-medium);
  margin-right: 0.5rem;
  flex-shrink: 0;
}

.ps-autocomplete-primary {
  font-weight: 500;
}

.ps-autocomplete-secondary {
  color: var(--ps-text-medium);
  font-size: 0.75rem;
  margin-top: 0.125rem;
}

.ps-autocomplete-empty {
  padding: 1rem;
  color: var(--ps-text-medium);
  text-align: center;
  font-size: 0.875rem;
}

.ps-autocomplete-group {
  padding: 0.375rem 0.75rem;
  color: var(--ps-text-medium);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background-color: var(--ps-bg-light);
}

/* =========================================================
   Feature: Health Plan
   ========================================================= */
/* Health Plan Specific Styles */
.ps-plan-row {
  transition: all 0.2s;
  cursor: pointer;
  overflow: hidden;
}

.ps-plan-row:hover {
  background-color: var(--ps-bg-white);
  color: var(--ps-color-blue);
}

.ps-plan-row.selected {
  background-color: var(--ps-color-blue);
  color: var(--ps-white);
}

.ps-table .ps-plan-row.selected td:first-child {
  background-color: var(--ps-color-blue);
}

.ps-plan-toggle {
  display: block;
  color: var(--ps-text-medium);
  cursor: pointer;
  background: transparent;
  border: none;
  text-align: left;
  display: none;
}

.ps-plan-toggle:hover {
  color: var(--ps-color-blue);
}

.ps-plan-child {
  padding: 0.5rem 0;
}

.ps-plan-child:last-child {
  border-bottom: none;
}

.ps-plan-child.selected {
  background-color: var(--ps-bg-light);
}

.ps-plan-child-list {
  list-style-type: none;
  padding-left: 16px;
}


.ps-plan-child-name {
  display: block;
  font-size: 0.875rem;
}

.ps-plan-child-id {
  font-size: 0.875rem;
  display: block;
  color: var(--ps-text-medium);
} 


.ps-plan-row:has(.ps-plan-toggle:checked) {
  border-color: var(--ps-color-blue);
  color: var(--ps-color-blue);
  background-color: var(--ps-blue-100);
}

.ps-plan-row:has(.ps-plan-toggle:checked) .ps-plan-info, .ps-plan-row:has(.ps-plan-toggle:checked) .ps-plan-child-id, .ps-plan-row:has(.ps-plan-toggle:checked) .ps-plan-child-name {
  color: var(--ps-color-blue);
}


/* Health Plan Filters */
.filter-badge {
  display: inline-flex;
  align-items: center;
  background-color: var(--ps-bg-light);
  color: var(--ps-color-blue);
  border: 1px solid var(--ps-blue-400);
  border-radius: 9999px;
  padding: 0.25rem 0.5rem 0.25rem 0.75rem;
  font-size: 0.75rem;
  margin-right: 0.5rem;
}

.filter-badge .remove {
  margin-left: 0.25rem;
  width: 1rem;
  height: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
}

.filter-badge .remove:hover {
  background-color: var(--ps-blue-400);
}

.filter-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.75rem;
  background-color: var(--ps-bg-white);
  border: 1px solid var(--ps-border-color);
  color: var(--ps-text-medium);
  border-radius: 9999px;
  font-size: 0.8rem;
  transition: all 0.15s;
  white-space: nowrap;
  cursor: pointer;
}

.filter-chip:hover {
  border-color: var(--ps-scrollbar-thumb);
  background-color: var(--ps-bg-light);
}

.filter-chip.active {
  background-color: var(--ps-bg-light);
  border-color: var(--ps-blue-500);
  color: var(--ps-color-blue);
}

.filter-dropdown {
  position: relative;
  display: inline-block;
}

/* =========================================================
   Components: Content Cards
   ========================================================= */
/* Unified Content Card System */
.ps-content-card {
  background-color: var(--ps-bg-white);
  border: 1px solid var(--ps-border-color);
  border-radius: 0.375rem;
  padding: 1rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: all 0.2s ease;
}

.ps-content-card:hover {
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
  border-color: var(--ps-scrollbar-thumb);
}

.ps-content-card.selected {
  border-color: var(--ps-color-blue);
  background-color: var(--ps-bg-light);
}

.ps-content-header {
  display: flex;
  align-items: flex-start;
  margin-bottom: 1rem;
}

.ps-content-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--ps-text-dark);
  line-height: 1.2;
}

.ps-content-subtitle {
  font-size: 0.8125rem;
  color: var(--ps-text-medium);
  margin-top: 0.25rem;
  line-height: 1.2;
}

.ps-content-body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ps-content-section {
  display: flex;
  flex-direction: column;
}

.ps-content-section-title {
  font-size: 0.75rem;
  color: var(--ps-text-medium);
  font-weight: 500;
  margin-bottom: 0.25rem;
}

.ps-content-section-value {
  font-size: 0.875rem;
  color: var(--ps-text-dark);
}

/* Consistent Tag System */
.ps-tag-system {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}

.ps-entity-tag {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  letter-spacing: 0.025em;
}

.ps-entity-tag-individual {
  background-color: var(--ps-blue-100);
  color: var(--ps-blue-600);
}

.ps-entity-tag-group {
  background-color: var(--ps-green-lighter);
  color: var(--ps-color-green);
}

.ps-entity-tag-billing-code {
  background-color: var(--ps-tag-amber-bg);
  color: var(--ps-tag-amber-text);
}

.ps-entity-tag-npi {
  background-color: var(--ps-tag-purple-bg);
  color: var(--ps-tag-purple-text);
}

.ps-entity-tag-plan {
  background-color: var(--ps-tag-gray-bg);
  color: var(--ps-tag-gray-text);
}

/* Consistent Action Buttons */
.ps-action-buttons {
  display: flex;
  gap: 8px;
}

.ps-action-button {
  width: 30px;
  height: 30px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.ps-action-button-remove {
  background-color: var(--ps-color-red-light);
  color: var(--ps-color-red);
}

.ps-action-button-remove:hover {
  background-color: var(--ps-color-red-border);
}

.ps-action-button-edit {
  background-color: var(--ps-bg-gray);
  color: var(--ps-text-medium);
}

.ps-action-button-edit:hover {
  background-color: var(--ps-border-color);;
  color: var(--ps-text-dark);
}

/* Consistent Chip Design */
.ps-filter-chip {
  display: inline-flex;
  align-items: center;
  background-color: var(--ps-bg-light);
  border: 1px solid var(--ps-border-color);
  border-radius: 0.25rem;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  transition: all 0.2s ease;
  cursor: pointer;
  white-space: nowrap;
  text-overflow: ellipsis;
  position: relative;
}

.ps-filter-chip .filter-value {
  font-weight: 500;
  max-width: 200px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  vertical-align: bottom;
}

.ps-filter-chip:hover {
  background-color: var(--ps-bg-gray);
  border-color: var(--ps-gray-400);
}

.ps-filter-chip.active {
  background-color: var(--ps-color-blue);
  color: var(--ps-white);
  border: 1px solid var(--ps-color-blue);
}

.ps-filter-chip.active:hover {
  background-color: var(--ps-color-blue-dark);
  border-color: var(--ps-color-blue);
}

.ps-filter-chip .remove-btn {
  margin-left: 0.25rem;
  width: 1rem;
  height: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  color: var(--ps-gray-400);
}

.ps-filter-chip .remove-btn:hover {
  background-color: var(--ps-gray-200);
  color: var(--ps-gray-500);
}

/* Action Buttons */
.ps-action-btn {
  background-color: transparent;
  color: var(--ps-text-medium);
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 0.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  border: none;
  cursor: pointer;
}

.ps-action-btn:hover {
  background-color: var(--ps-bg-light);
  color: var(--ps-text-medium);
}

.ps-action-btn.delete:hover {
  background-color: var(--ps-bg-light);
  color: var(--ps-color-red);
}

.ps-action-btn.edit:hover {
  background-color: var(--ps-bg-light);
  color: var(--ps-color-blue);
}

/* Code blocks and pre formatting */
pre, code, .monospace {
  font-family: 'lft-etica-mono', monospace;
}

/* Tooltip styles for rates */
.tooltip {
  position: relative;
  display: inline-block;
}

.tooltip .tooltip-text {
  visibility: hidden;
  background-color: var(--ps-text-dark);
  color: var(--ps-white);
  text-align: left;
  border-radius: 0.375rem;
  padding: 0.75rem;
  position: absolute;
  z-index: 1;
  bottom: 125%;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity 0.3s;
  width: max-content;
  max-width: 250px;
  font-size: 0.875rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.tooltip .tooltip-text::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: var(--ps-text-dark) transparent transparent transparent;
}

.tooltip:hover .tooltip-text {
  visibility: visible;
  opacity: 1;
}

/* =========================================================
   Components: Rates Card
   ========================================================= */
/* Rates Card Styles */
.ps-rates-card {
  background-color: var(--ps-bg-white);
  border: 1px solid var(--ps-border-color);
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.ps-rates-card-header {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--ps-border-color);
  background-color: var(--ps-bg-light);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ps-rates-card-title {
  font-weight: 500;
  font-size: 0.875rem;
}

.ps-rates-card-body {
  padding: 1rem;
}

.ps-rates-amount {
  font-family: 'lft-etica-mono', monospace;
  font-weight: 500;
  white-space: nowrap;
}

/* Font utility for monospace numbers */
.font-mono {
  font-family: 'lft-etica-mono', monospace;
}

/* =========================================================
   Components: Tab Bar
   ========================================================= */
/* Tab Bar */
.ps-tab-bar {
  display: flex;
  align-items: center;
  background-color: var(--ps-bg-light);
  border-radius: 0.375rem;
  padding: 0.25rem;
  border: 1px solid var(--ps-border-color);
  width: fit-content;
}

.ps-tab-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.25rem;
  padding: 0.25rem 0.75rem;
  font-size: 0.75rem;
  color: var(--ps-text-medium);
  font-weight: 500;
  transition: all 0.15s ease;
  cursor: pointer;
  border: none;
  background-color: transparent;
  margin: 0;
  border: 1px solid transparent;
}

.ps-tab-item:hover {
  color: var(--ps-color-blue);
}

.ps-tab-item.active {
  background-color: var(--ps-color-blue);
  color: var(--ps-white);
  border: 1px solid var(--ps-color-blue);
}

/* =========================================================
   Components: Filters
   ========================================================= */
/* Active Filters Styles */
.ps-filters {
  padding: 1rem;
  background-color: var(--ps-bg-white);
  border: 1px solid var(--ps-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.ps-filters-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.75rem;
}

.ps-filters-title {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--ps-text-dark);
}

.ps-filters-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.ps-filter-badge {
  display: inline-flex;
  align-items: center;
  background-color: var(--ps-blue-lighter);
  color: var(--ps-color-blue);
  border: 1px solid var(--ps-blue-400);
  border-radius: 9999px;
  padding: 0.375rem 0.75rem;
  font-size: 0.75rem;
  transition: all 0.2s;
}

.ps-filter-key {
  font-weight: 600;
  margin-right: 0.25rem;
}

.ps-filter-value {
  max-width: 150px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ps-filter-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 0.5rem;
  border: none;
  background: none;
  cursor: pointer;
  padding: 0;
  color: var(--ps-color-blue);
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
}

.ps-filter-remove:hover {
  background-color: rgba(59, 91, 245, 0.1);
}

.ps-btn-text {
  background: none;
  border: none;
  color: var(--ps-color-blue);
  font-weight: 500;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
}

.ps-btn-text:hover {
  background-color: var(--ps-blue-lighter);
}

.ps-filter-badge:hover {
  background-color: var(--ps-blue-400);
}

.ps-filter-instructions {
  color: var(--ps-text-medium);
  font-size: 0.875rem;
}

.ps-filter-instructions .font-mono {
  font-family: 'lft-etica-mono', monospace;
  background-color: var(--ps-gray-100);
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
}

/* Dropdown Menu Styles */
.ps-dropdown-menu {
  background-color: var(--ps-bg-white);
  border: 1px solid var(--ps-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  z-index: 50;
}

.ps-dropdown-header {
  padding: 0.75rem 0.75rem 0.5rem;
  border-bottom: 1px solid var(--ps-border-color);
  margin-bottom: 0.5rem;
}

.ps-dropdown-body {
  max-height: 350px;
  overflow-y: auto;
  padding: 0 0.25rem;
}

.ps-dropdown-item {
  padding: 0.5rem 0.75rem;
  cursor: pointer;
  transition: background-color 0.15s ease;
  border-radius: 0.25rem;
  margin-bottom: 0.5rem;
}

.ps-dropdown-item:hover {
  background-color: var(--ps-bg-gray);
}

.ps-dropdown-item .font-mono {
  font-family: 'lft-etica-mono', monospace;
  background-color: var(--ps-gray-100);
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
  display: inline-block;
  margin: 0.25rem 0;
}

/* Duplicate .d-none removed; utility defined at top */

/* Filter Bar Styles */
.ps-filter-bar {
  background-color: var(--ps-bg-white);
  border-bottom: 1px solid var(--ps-border-color);
  padding: 0.5rem 0rem 0.5rem 1rem;
}

.ps-filter-bar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ps-filter-instructions {
  color: var(--ps-text-medium);
  font-size: 0.875rem;
}

.ps-filter-instructions .font-mono {
  font-family: 'lft-etica-mono', monospace;
  background-color: var(--ps-gray-100);
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
}

.ps-filter-actions {
  display: flex;
  gap: 0.5rem;
}

/* Filter Chips */
.ps-filter-bar-chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--ps-border-color-light);
  gap: 0.5rem;
}

.ps-filter-chips-label {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--ps-text-medium);
  margin-right: 0.25rem;
}

.ps-filter-chips-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  flex: 1;
}

.ps-filter-chip-key {
  font-weight: 600;
  margin-right: 0.25rem;
}

.ps-filter-chip-value {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 150px;
}

.ps-filter-chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: var(--ps-color-blue);
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  margin-left: 0.25rem;
  padding: 0;
  cursor: pointer;
  transition: all 0.2s;
}

.ps-filter-chip-remove:hover {
  background-color: rgba(59, 91, 245, 0.1);
}

/* Duplicate .ms-auto removed; utility defined at top */

/* Duplicate .me-1 removed; utility defined at top */

/* Duplicate .mt-2 removed; utility defined at top */

/* Filter Dropdown Styles */
.ps-filter-dropdown {
  position: relative;
  display: inline-block;
}

.ps-filter-dropdown-content {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  width: 300px;
  background-color: var(--ps-bg-white);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
  border-radius: 0.375rem;
  z-index: 40;
  overflow: hidden;
}

.ps-filter-dropdown.open .ps-filter-dropdown-content {
  display: block;
  animation: fadeIn 0.2s ease-in-out;
}

.ps-filter-dropdown.show {
  display: block;
}

.ps-filter-option {
  padding: 8px 12px;
  cursor: pointer;
}

.ps-filter-option:hover {
  background-color: var(--ps-bg-light);
}

.ps-filter-option.selected {
  background-color: var(--ps-bg-gray);
  font-weight: 500;
}

/* State sections */
.ps-section-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 1rem 0;
  border-bottom: 1px solid var(--ps-border-color);
}

.ps-subsection-title {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--ps-text-dark);
}

.ps-subsection-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 500;
}

.ps-mrf-header {
  font-size: 0.875rem;
  color: var(--ps-text-medium);
  font-style: italic;
  display: none;
}

/* =========================================================
   Feature: Reports
   ========================================================= */
/* Report */
.ps-report .ps-header-title {
  text-align: left;
}

/* =========================================================
   Feature: Charts
   ========================================================= */
/* Chart View Styles */
.ps-chart-container {
  width: 100%;
  border-bottom: 1px solid var(--ps-border-color);
  overflow-y: auto;
}

.ps-chart-item {
  margin-bottom: 1rem;
}

.ps-chart-header {
  justify-content: space-between;
  align-items: center;
  background-color: var(--ps-bg-light);
  padding: 0.5rem 1rem;
  z-index: 999;
}

.ps-chart-title {
  font-size: 1.5rem;
}

.ps-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.875rem;
  margin-top: 1rem;
  padding: 0.75rem;
  background-color: var(--ps-bg-gray);
  border-radius: 0.375rem;
}

.ps-chart-legend-item {
  display: flex;
  align-items: center;
}

.ps-chart-legend-indicator {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  margin-right: 0.5rem;
}

.ps-chart-legend-indicator-standard {
  background-color: var(--ps-blue-500);
  border: 1.5px solid var(--ps-color-blue-dark);
}

.ps-chart-legend-indicator-primary {
  background-color: var(--ps-color-primary);
  border: 2px solid var(--ps-color-primary-dark);
}

.ps-chart-legend-indicator-sametin {
  background-color: var(--ps-color-teal);
  border: 2px solid var(--ps-color-teal-dark);
}

.ps-chart-legend-note {
  flex: 1;
  text-align: right;
  font-size: 0.75rem;
  color: var(--ps-text-medium);
}

.ps-chart-empty {
  grid-column: span 2;
  text-align: center;
  padding: 1.25rem 0;
  color: var(--ps-text-medium);
}

/* =========================================================
   Percentile Summary View Styles
   ========================================================= */
.ps-percentile-summary-container {
  width: 100%;
}

.ps-percentile-summary-container canvas {
  width: 100% !important;
  height: auto !important;
}

.ps-percentile-summary-container .bg-white {
  transition: min-height 0.3s ease;
}

.ps-percentile-summary-container .bg-white {
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}

/* Ensure proper spacing for the percentile chart */
#percentile-bar-chart {
  background: transparent;
}

/* Taxonomy legend styling */
#taxonomy-legend {
  margin-top: 1rem;
}

#legend-content {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

#legend-content .flex {
  align-items: center;
  gap: 0.5rem;
}

#legend-content .w-4 {
  width: 1rem;
  height: 1rem;
  border-radius: 0.25rem;
}

#legend-content .text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

#legend-content .font-medium {
  font-weight: 500;
}

/* =========================================================
   Feature: Maps
   ========================================================= */
/* Map View Styles */
.ps-map-container {
  height: 100%;
  width: 100%;
}

.ps-map-loading {
  text-align: center;
  padding: 1.25rem 0;
}

.ps-map-loading-text {
  margin-top: 0.5rem;
  color: var(--ps-text-medium);
}

/* =========================================================
   Components: Toast System
   ========================================================= */
/* Toast System Styles */
#toast-container {
  position: fixed;
  bottom: 16px;
  right: 16px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  pointer-events: none;
}

.toast {
  background-color: var(--ps-bg-white);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  overflow: hidden;
  width: 320px;
  max-width: 100%;
  pointer-events: auto;
  opacity: 0;
  transform: translateX(30px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.toast.show {
  opacity: 1;
  transform: translateX(0);
}

.toast.hiding {
  opacity: 0;
  transform: translateX(30px);
}

.toast-content {
  display: flex;
  align-items: flex-start;
  padding: 12px;
}

.toast-icon {
  margin-right: 12px;
  font-size: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.toast-success .toast-icon {
  color: var(--ps-color-green);
}

.toast-error .toast-icon,
.toast-danger .toast-icon {
  color: var(--ps-color-red);
}

.toast-warning .toast-icon {
  color: var(--ps-color-yellow);
}

.toast-info .toast-icon {
  color: var(--ps-color-blue);
}

.toast-message {
  flex: 1;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--ps-text-dark);
}

.toast-close {
  background: transparent;
  border: none;
  color: var(--ps-text-light);
  cursor: pointer;
  font-size: 1.25rem;
  padding: 0;
  margin-left: 8px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.toast-close:hover {
  color: var(--ps-text-dark);
}

/* Rates Table Specific Styles */
.ps-rates-table {
  width: 100%;
  table-layout: fixed;
}

th.rate-header {
  text-align:right;
}

tr.ps-tin-row.expanded {
  z-index: 30;
}

tr.ps-tin-row td {
  background-color: var(--ps-bg-white);
  position:sticky;
  top: 3rem;
  z-index:21;
  height: 100px;
}

tr.primary-row.ps-tin-row td {
  background-color: var(--ps-bg-primary);
  box-shadow: inset 0px 1px 0px rgba(0,0,0,0.1);
}

.ps-table .provider-row {
  z-index: 1;
}

.ps-table .provider-row:hover {
  background: auto;
}

.ps-table .ps-provider-row td:first-child {
  padding-left: 1rem;
}
/* =========================================================
   Responsive overrides (Rates table indent)
   ========================================================= */
.ps.table .ps-taxonomy-row td:first-child,.ps.table .ps-provider-row td:first-child, .ps-table .ps-lift-taxonomy-row td:first-child {
    background-color: var(--ps-bg-light);
}
  
@media (min-width: 480px) {
  .ps-table tr.ps-taxonomy-row td:first-child, .ps-table tr.ps-lift-taxonomy-row td:first-child {
    padding-left: 1em;
    box-shadow: inset 0.5em 0 0 0 var(--ps-border-color-light), inset -1px 0px 0px rgba(0,0,0,0.1);
  }
  .ps-table tr.ps-provider-row-in-tin td:first-child, .ps-billing-code-row-in-taxonomy td:first-child {
    background-color: var(--ps-bg-light);
    padding-left: 2.5em;
    box-shadow: inset 1em 0 0 0 var(--ps-border-color-light), inset -1px 0px 0px rgba(0,0,0,0.1);
  }  
}

tr.ps-provider-row-in-tin .ps-provider-tins {
  display: none;
}

.rate-cell {
  font-family: 'lft-etica-mono', monospace;
  text-align:right;
}

.ps-rate-cell-content {
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* Changed from center to space-between */
  min-height: 100%;
}

.ps-rate-cell-content {
  justify-content: space-between;
}

tr.primary-row {
  background-color: var(--ps-bg-primary);
}

tr.primary-row:hover {
  background-color: var(--ps-bg-primary);
}

tr.ps-collapsed-group-row {
  background-color: var(--ps-bg-dark);
}

tr.ps-collapsed-group-row:hover {
  background-color: var(--ps-bg-darker);
}

.provider-name {
  font-weight: 500;
}

.provider-selectable {
  cursor: pointer;
}

.provider-selectable:hover {
  background-color: var(--ps-bg-white);
}

.ps-tag-other-name {
  background-color: var(--ps-bg-gray);
  color: var(--ps-text-medium);
}

/* =========================================================
   Components: Search Overlay Container
   ========================================================= */
/* Search Results Container as Overlay */
#search-results-container {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  max-height: 400px;
  overflow-y: auto;
  background-color: var(--ps-bg-white);
  border: 1px solid var(--ps-border-color);
  border-radius: 0.375rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
  z-index: 1000;
  margin-top: 0.5rem;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

#search-results-container:not(.d-none) {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  display: block !important; /* Force display when not d-none */
}

.ps-tag-distance {
  background-color: var(--ps-blue-100);
  color: var(--ps-color-blue-dark);
  font-size: 11px;
  padding: 2px 6px;
  border-radius: 4px;
  display: inline-block;
  margin-right: 4px;
  white-space: nowrap;
}

/* Styling for highlighting rows when selecting a duplicate */
.highlight-row {
  animation: highlight-flash 1.5s ease-in-out;
}

@keyframes highlight-flash {
  0% { background-color: var(--ps-bg-white); }
  25% { background-color: var(--ps-blue-100); }
  50% { background-color: var(--ps-blue-400); }
  75% { background-color: var(--ps-blue-100); }
  100% { background-color: var(--ps-bg-white); }
} 

/* Remove duplicate progress-step overrides to keep single source of truth */
.ps-search-results-container {
  position: absolute;
  z-index: 1000;
  background: var(--ps-bg-white);
  border: 1px solid var(--ps-border-color);
  border-radius: 0.375rem;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  max-height: 400px;
  overflow-y: auto;
  margin-top: 0.25rem;
  width: 100%;
}

.ps-search-results-container .ps-btn-outline {
  border-radius: 0;
  border-left: none;
  border-right: none;
}

.ps-table-search-results {
  border: none;
  margin: 0;
}

.ps-table-search-results thead th {
  background: var(--ps-bg-white);
  padding: 0.75rem 1rem;
}

.auth-form-container {
  max-width: 720px;
}


/* == Styles moved from report_viewer.js == */

/* =========================================================
   States & Animations: Skeleton Loading
   ========================================================= */
/* Skeleton Loading Styles */

.ps-skeleton-line {
    min-height: .75em;
    min-width: 2em;
    background-color: var(--ps-text-lighter);
    opacity: 0.25;
    border-radius: 0.25rem;
}

.ps-skeleton-header {
    min-height: 1em;
    min-width: 2em;
    background-color: var(--ps-text-lighter);
    opacity: 0.25;
    border-radius: 0.25rem;
}

.ps-skeleton-container {
    pointer-events: none;
}

/* =========================================================
   Layout: Sticky Table Columns
   ========================================================= */
/* Sticky Table Column Styles */
#rates-table-container, #table-content-container, #percentile-summary-container {
  height: 100%;
}
.rates-table-content-wrapper, .ps-percentile-summary-container, .ps-table-container {
    overflow-x: scroll;
    max-width: 100%;
    height: 100%;
    overflow-y: scroll;
}

.rates-table-content-wrapper .ps-table td:first-child {
  max-width: 20rem;
  min-width: 16rem;
}

/* =========================================================
   Responsive overrides (Mobile Sidebar Behavior)
   ========================================================= */
@media (max-width: 768px) {
  .rates-table-content-wrapper .ps-table td:first-child {
    max-width: 10rem;
    min-width: 6rem;
  }
}


/* Make the whole thead sticky */
.ps-table thead {
    position: sticky;
    top: 0;
    z-index: 29; /* Above body rows */
    height: 3rem;
}

/* Style sticky header cell */
.ps-table thead th:first-child {
    position: sticky;
    left: 0;
    z-index: 50; /* Above thead and sticky td */
    box-shadow: inset -1px 0 0 0 rgba(0,0,0,0.1), inset 0px -1px 0px 0px rgba(0,0,0,0.1);
}


/* Ensure TIN row sticky header also has background */
.ps-table tbody tr.ps-tin-row td:first-child {
    background-color: var(--ps-bg-white);
    z-index: 30; /* Above regular body cells, below header */
}


.ps-table tbody tr.primary-row td:first-child {
  background-color: var(--ps-bg-primary);
  box-shadow: inset -1px 0px 0px 0px rgba(0,0,0,0.1), inset 0px -1px 0px 0px rgba(0,0,0,0.1);
}

/* =========================================================
   Responsive overrides (Sidebar collapsed)
   ========================================================= */
@media (min-width: 768px) {
  body.sidebar-collapsed .ps-sidebar {
      width: 65px; /* Adjust width as needed */
      min-width: 65px;
      overflow: hidden; /* Ensure content is clipped */
  }

  body.sidebar-collapsed .ps-sidebar-header {
    display: flex;
    flex-direction: column;
  }

  /* Hide text and adjust items when collapsed */
  body.sidebar-collapsed .ps-sidebar-brand {
      display: none;
  }

  body.sidebar-collapsed .ps-sidebar-multi-org {
    display: none;
  }

  body.sidebar-collapsed .ps-sidebar-logo {
    display: none;
  }

  /* Hide text and adjust items when collapsed */
  body.sidebar-collapsed .ps-sidebar-item span {
      display: none;
  }

  /* Hide text and adjust items when collapsed */
  body.sidebar-collapsed .ps-sidebar-item, body.sidebar-collapsed .ps-btn-icon {
      justify-content: center; /* Center icon */
      margin: 0;
      margin-bottom: 0.5rem
  }

  /* Hide text and adjust items when collapsed */
  body.sidebar-collapsed .ps-sidebar-icon {
      margin-right: 0; /* Remove margin when text is hidden */
  }

  /* Hide section titles when collapsed */
  body.sidebar-collapsed .ps-sidebar-section-title {
      display: none;
  }

  /* Adjust footer when collapsed */
  body.sidebar-collapsed .ps-sidebar-footer {
      padding: 0.5rem; /* Adjust padding */
      display: flex; /* Use flex to manage items */
      flex-direction: column; /* Stack items vertically */
      align-items: center; /* Center items */
      gap: 0.5rem; /* Add gap between footer items */
  }
}

/* Style for sticky Select All button in search results */
.ps-search-select-all-sticky {
  position: sticky;
  bottom: 0;
  /* Removed left: 0 to respect container alignment */
  width: 100%; /* Make button fill container width */
  display: flex; /* Use flex for centering content */
  justify-content: center; /* Center content horizontally */
  align-items: center; /* Center content vertically */
  border-radius: 0;
  padding: 0.5rem;
  border-top: 1px solid var(--ps-border-color);
  z-index: 999; /* Keep on top */
  /* Removed margin: 1rem; Container should handle spacing */
  /* Removed flex-grow: 1; width: 100% is more direct */
  /* Removed text-align: center; Use flex properties instead */
  box-sizing: border-box; /* Include padding/border in width calculation */
}

/* Mobile Sidebar Toggle Button */
.ps-mobile-sidebar-toggle {
  display: none; /* Hidden by default on larger screens */
  align-items: center;
  justify-content: center;
  background: var(--ps-bg-white);
  color: var(--ps-text-medium);
  border: none;
  border-radius: 4px;
  padding: 8px 12px;
  font-size: 1.125rem;
  cursor: pointer;
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 50;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  z-index:999;
}

.ps-mobile-sidebar-toggle:hover {
  background-color: var(--ps-bg-gray);
  color: var(--ps-text-dark);
}

/* Duplicate Mobile Sidebar Overlay block removed; single definition retained below */

/* Mobile Sidebar Behavior */
/* =========================================================
   Responsive overrides (Mobile Header & Sidebar)
   ========================================================= */
@media (max-width: 768px) {
  .ps-mobile-sidebar-toggle {
    display: flex; /* Show toggle on mobile */
  }
  
  .ps-sidebar {
    position: fixed;
    left: -270px; /* Start off-screen */
    height: 100vh;
    transition: left 0.3s ease;
    z-index: 95;
  }
  
  .ps-sidebar.show {
    left: 0; /* Slide in when shown */
  }
  
  .ps-main {
    padding-left: 0;
  }
  
  .ps-content {
    padding-top: 60px; /* Add space for fixed sidebar toggle */
  }
}

/* Mobile Header Styles */
.ps-mobile-header {
  display: none;
}

.ps-mobile-title {
  font-size: 1.25rem;
  color: var(--ps-text-dark);
  text-align: center;
  flex-grow: 1;
}

/* Mobile Sidebar Overlay */
.mobile-sidebar-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 90;
  display: none;
}

.mobile-sidebar-overlay.show {
  display: block;
}

/* Mobile Sidebar Behavior */
@media (max-width: 768px) {
  .ps-mobile-header {
    display: flex;
  }
  
  .ps-sidebar {
    position: fixed;
    left: -280px; /* Start off-screen */
    height: 100vh;
    transition: left 0.3s ease;
    z-index: 95;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
  }
  
  .ps-sidebar.show {
    left: 0; /* Slide in when shown */
    z-index:1000;
  }
  
  .ps-content {
    padding-top: 0; /* No need for extra padding since we have a header */
  }
}

/* Organization Switcher Styles */
.ps-organization-section {
    margin-top: auto;
    padding: 0.75rem 0;
}

.ps-sidebar-section-header {
    padding: 0 1rem;
    margin-bottom: 0.5rem;
    font-size: 0.875rem;
    text-transform: uppercase;
}

/* Additional styles for organization switcher in sidebar context */
.ps-sidebar .ps-organization-switcher {
    padding: 0 0.75rem;
}

.ps-sidebar .ps-org-dropdown-btn {
    transition: all 0.2s ease;
}

/* Position the dropdown appropriately in the sidebar */
.ps-sidebar .ps-org-dropdown-content {
    bottom: 100%;
    top: auto;
    margin-bottom: 0.25rem;
    margin-top: 0;
    max-height: 300px;
    overflow-y: auto;
}

.ps-organization-switcher {
  margin: 0.5rem 0;
  width: 100%;
  position: relative;
}

.ps-org-dropdown {
  position: relative;
  width: 100%;
}

.ps-org-dropdown-btn {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 0.5rem 1rem;
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  text-align: left;
}

.ps-org-icon {
  margin-right: 0.5rem;
}

.ps-org-name {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ps-dropdown-arrow {
  margin-left: 0.5rem;
}

.ps-org-dropdown-content {
  display: none;
  position: absolute;
  width: 100%;
  border-radius: 0.25rem;
  z-index: 1000;
  margin-top: 0.25rem;
}

.ps-org-dropdown-content.show {
  display: block;
}

.ps-org-dropdown-header {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
}

.ps-org-item {
  display: flex;
  flex-direction: column;
  padding: 0.75rem 1rem;
  text-decoration: none;
}

.ps-org-item:hover { background-color: var(--ps-bg-gray); }

.ps-org-item.active { background-color: var(--ps-bg-gray); }

.ps-org-item-name {
  font-weight: 500;
}

.ps-org-item-role {
  font-size: 0.875rem;
}

/* Hero Section */
#hero-text {
  display:flex;
  align-items:center;
  justify-content:center;
}

/* =========================================================
   Responsive overrides (Hero)
   ========================================================= */
@media (min-width: 768px) {
  #hero-text {
    padding-top: 2rem;
    padding-bottom: 2rem;
    min-height: 40vh;
  }
}

/* Removed unused .permanent-custom-tooltip styles */

  /* CSS-only mobile dropdown */
  .mobile-dropdown-checkbox {
    display: none; /* Hide the checkbox */
}

.mobile-dropdown-label {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.75rem 0.5rem; /* Equivalent to px-2 py-3 roughly */
    color: var(--ps-text-dark); /* */
}

.mobile-dropdown-label .fa-chevron-down {
    transition: transform 0.3s ease;
}

.mobile-dropdown-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
    width: 100%; /* Full width */
    padding-left: 1rem; /* pl-4 */
    margin-left: 0.5rem; /* ml-2 */
    border-left: 2px solid var(--ps-border-color); /* border-l-2 border-gray-200 */
}

.mobile-dropdown-checkbox:checked + .mobile-dropdown-label .fa-chevron-down {
    transform: rotate(180deg);
}

.mobile-dropdown-checkbox:checked ~ .mobile-dropdown-content {
    max-height: 500px; /* Adjust as needed to fit content */
    /* padding-top: 0.5rem; */ /* Add some padding if needed when open */
    /* padding-bottom: 0.5rem; */
}

/* Multi-NPI Search Results Styling */
.multi-npi-search-header {
    background-color: var(--ps-bg-light);
    border: 1px solid var(--ps-border-color);
    border-radius: 6px;
    padding: 12px 16px;
    margin-bottom: 16px;
    font-size: 14px;
    color: var(--ps-text-medium);
}

.multi-npi-search-header strong {
    color: var(--ps-color-blue);
    font-weight: 600;
}

.result-count {
    color: var(--ps-text-medium);
    font-weight: 500;
    margin-left: 8px;
}

.npi-group {
    margin-bottom: 24px;
    border: 1px solid var(--ps-border-color);
    border-radius: 8px;
    overflow: hidden;
}

.npi-group h4 {
    background-color: var(--ps-bg-gray);
    margin: 0;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ps-text-dark);
    border-bottom: 1px solid var(--ps-border-color);
}

.npi-group .provider-card {
    border-bottom: 1px solid var(--ps-bg-gray);
    margin: 0;
    border-radius: 0;
}

.npi-group .provider-card:last-child {
    border-bottom: none;
}

.no-matches-group {
    background-color: var(--ps-color-red-light);
    border: 1px solid var(--ps-tag-red-bg);
    border-radius: 6px;
    padding: 12px 16px;
    margin-top: 16px;
}

.no-matches-group h4 {
    margin: 0;
    font-size: 14px;
    color: var(--ps-tag-red-text);
    font-weight: 500;
}

/* Enhanced provider card for multi-NPI context */
.provider-card {
    padding: 12px 16px;
    border: 1px solid var(--ps-border-color);
    border-radius: 6px;
    margin-bottom: 8px;
    background-color: var(--ps-bg-white);
    transition: background-color 0.2s ease;
}

.provider-card:hover {
    background-color: var(--ps-bg-light);
    border-color: var(--ps-gray-200);
}

.provider-name {
    font-weight: 600;
    font-size: 16px;
    color: var(--ps-text-dark);
    margin-bottom: 4px;
}

.provider-npi {
    font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
    font-size: 13px;
    color: var(--ps-text-medium);
    margin-bottom: 2px;
}

.provider-type {
    font-size: 12px;
    color: var(--ps-text-medium);
    margin-bottom: 8px;
}

.add-provider-btn {
    background-color: var(--ps-color-blue);
    color: white;
    border: none;
    padding: 6px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.add-provider-btn:hover {
    background-color: var(--ps-color-blue-dark);
}

.add-provider-btn:active {
    background-color: var(--ps-color-blue-dark);
}

/* Search results container */
#search-results {
    max-height: 500px;
    overflow-y: auto;
    border: 1px solid var(--ps-border-color);
    border-radius: 6px;
    background-color: var(--ps-bg-white);
}

.no-results, .error {
    padding: 24px;
    text-align: center;
    color: var(--ps-text-medium);
    font-style: italic;
}

.error {
    color: var(--ps-color-red);
    background-color: var(--ps-color-red-light);
    border: 1px solid var(--ps-tag-red-bg);
    border-radius: 6px;
    margin: 8px 0;
}

/* Mobile Sidebar Behavior */

/* Revenue Lift Calculator Styles */
.ps-revenue-lift-calculator {
  margin-bottom: 2rem;
}

.ps-revenue-lift-header {
  margin-bottom: 1rem;
}

.ps-section-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--ps-text-primary);
}

.ps-revenue-lift-table-container { overflow-x: auto; }

.ps-revenue-lift-table {
  border-collapse: separate;
  border-spacing: 0;
}

.ps-revenue-lift-table th,
.ps-revenue-lift-table td {
  border: 1px solid var(--ps-border-color);
  padding: 0.75rem;
  vertical-align: middle;
}

.ps-revenue-lift-table th {
  background-color: var(--ps-bg-gray);
  font-weight: 600;
  text-align: center;
}

.ps-revenue-lift-table th:first-child {
  border-top-left-radius: 0.375rem;
}

.ps-revenue-lift-table th:last-child {
  border-top-right-radius: 0.375rem;
}

.ps-revenue-lift-table tbody tr:last-child td:first-child {
  border-bottom-left-radius: 0.375rem;
}

.ps-revenue-lift-table tbody tr:last-child td:last-child {
  border-bottom-right-radius: 0.375rem;
}

/* Remove inline style dependencies */
.revenue-lift-annual-revenue {
  width: 140px;
  text-align: center;
}

.revenue-lift-percentage {
  width: 80px;
  text-align: center;
}

/* Revenue lift button styling */
.revenue-lift-taxonomy-selector,
.revenue-lift-billing-selector {
  background-color: var(--ps-bg-light);
  border: 1px solid var(--ps-border-color);
  padding: 0.5rem 0.75rem;
  border-radius: 0.375rem;
  font-size: 0.875rem;
  cursor: pointer;
  transition: background-color 0.2s;
}

.revenue-lift-taxonomy-selector:hover,
.revenue-lift-billing-selector:hover {
  background-color: var(--ps-bg-gray);
}

/* Row controls styling */
.revenue-lift-row-controls {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  justify-content: center;
}

.revenue-lift-add-column-btn,
.revenue-lift-remove-row-btn {
  width: 24px;
  height: 24px;
  border-radius: 0.375rem;
  border: 1px solid var(--ps-border-color);
  background-color: var(--ps-bg-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  cursor: pointer;
  transition: all 0.2s;
}

.revenue-lift-add-column-btn:hover {
  background-color: var(--ps-color-primary);
  color: white;
  border-color: var(--ps-color-primary);
}

.revenue-lift-remove-row-btn:hover {
  background-color: var(--ps-color-red);
  color: white;
  border-color: var(--ps-color-red);
}

/* Revenue lift totals styling */
.revenue-lift-totals {
  margin-top: 1rem;
  padding: 1rem;
  background-color: var(--ps-bg-gray);
  border-radius: 0.375rem;
  border: 1px solid var(--ps-border-color);
}

.revenue-lift-totals h4 {
  margin: 0 0 0.5rem 0;
  font-size: 1rem;
  font-weight: 600;
}

.revenue-lift-total-value {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--ps-color-primary);
}

/* Duplicate Revenue Lift block removed; consolidated above with design tokens */

#confirm-providers-modal {
  font-size: 0.875rem;
}

.ps-accordion-section-content, .ps-accordion-section, .ps-accordion-section-header, .ps-filter-section-content, .ps-filter-section, .ps-filter-section-header {
  border-color: var(--ps-bg-gray);
}

.ps-accordion-section-header, .ps-filter-section-header {
  background-color: var(--ps-bg-gray);
}

.ps-filter-options-container {
  overflow-y: auto;
  padding-right: 1rem; /* Add padding to ensure scrollbar does not overlap content */
  box-sizing: content-box; /* Ensure padding does not affect the width */
}

#top-provider-groups-table-container .ps-table tbody td:first-child, #top-provider-groups-table-container .ps-table tbody th:first-child, #lift-summary-table .ps-table tbody td:first-child, #lift-summary-table .ps-table tbody th:first-child {
  background-color: transparent;
}


.ps-taxonomy-row, .ps-billing-code-row-in-taxonomy, .ps-lift-taxonomy-row {
  background-color: var(--ps-bg-light);
}

/* Google Maps Info Window Dark Mode Styles */
.map-info-window {
  font-family: inherit;
  color: var(--ps-text-primary);
  background-color: var(--ps-bg-primary);
  border-radius: 8px;
  padding: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  max-width: 320px;
  line-height: 1.4;
}

.map-info-window-dark {
  background-color: var(--ps-bg-primary) !important;
  color: var(--ps-text-primary) !important;
  border: 1px solid var(--ps-border-color) !important;
}

.map-info-window h4 {
  color: var(--ps-text-primary);
  margin-bottom: 8px;
  font-weight: 600;
}

.map-info-window-dark h4 {
  color: var(--ps-text-primary) !important;
}

.map-info-window .provider-item {
  padding: 12px 0;
  border-bottom: 1px solid var(--ps-border-color);
}

.map-info-window-dark .provider-item {
  border-bottom-color: var(--ps-border-color) !important;
}

.map-info-window .provider-item:last-child {
  border-bottom: none;
}

.map-info-window .primary-provider {
  background-color: var(--ps-bg-light);
  padding: 12px;
  border-radius: 6px;
  margin: 4px 0;
}

.map-info-window-dark .primary-provider {
  background-color: var(--ps-bg-tertiary) !important;
}

.map-info-window .ps-tag {
  font-size: 0.75rem;
  padding: 2px 6px;
  border-radius: 4px;
  margin-left: 4px;
}

.map-info-window .ps-tag-primary {
  background-color: var(--ps-primary);
  color: white;
}

.map-info-window .ps-tag-secondary {
  background-color: var(--ps-secondary);
  color: white;
}

.map-info-window .text-xs {
  font-size: 0.75rem;
  color: var(--ps-text-muted);
}

.map-info-window-dark .text-xs {
  color: var(--ps-text-muted) !important;
}

.map-info-window .font-mono {
  font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, 'Courier New', monospace;
}

.map-info-window .flex {
  display: flex;
}

.map-info-window .justify-between {
  justify-content: space-between;
}

.map-info-window .pl-2 {
  padding-left: 8px;
}

.map-info-window .mt-1 {
  margin-top: 4px;
}

.map-info-window .mt-2 {
  margin-top: 8px;
}

.map-info-window .mb-1 {
  margin-bottom: 4px;
}

.map-info-window .font-medium {
  font-weight: 500;
}

/* Override Google Maps default info window styles for dark mode */
.gm-style .gm-style-iw-c {
  padding: 0 !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

.gm-style .gm-style-iw-d {
  overflow: hidden !important;
  border-radius: 8px !important;
}

/* Dark mode overrides for Google Maps info window container */
html.dark .gm-style .gm-style-iw-c {
  background-color: var(--ps-bg-primary) !important;
  border: 1px solid var(--ps-border-color) !important;
}

html.dark .gm-style .gm-style-iw-d {
  background-color: var(--ps-bg-primary) !important;
}

/* Style the close button for dark mode */
html.dark .gm-style .gm-style-iw-t::after {
  background-color: var(--ps-bg-primary) !important;
}