:root {
  --bs-body-font-size: 0.8125rem;
}

/* Global Typography - Standardize body and paragraph text to match 13px */
body,
p {
  font-size: var(--bs-body-font-size);
}

/* Global Mobile Viewport Horizontal Scroll Prevention */
html,
body {
  overflow-x: clip !important;
  max-width: 100vw;
}
@supports not (overflow-x: clip) {
  html,
  body {
    overflow-x: hidden !important;
  }
}

.pc-container {
  overflow-x: clip;
}
@supports not (overflow-x: clip) {
  .pc-container {
    overflow-x: hidden;
  }
}

/* Global Form Fields & Inputs Font Size, Height & Border Radius Standardization */
.form-control,
.form-select,
.input-group-text {
  font-size: var(--bs-body-font-size) !important;
  line-height: 1.5 !important;
  border-radius: 8px !important;
  border: 1px solid #bec8d0;
}

.form-control:not(textarea):not(span):not([style*="height: auto"]):not([style*="height:auto"]):not(.text-break):not(.text-wrap):not(.header-search-control),
.form-select,
.input-group-text {
  height: 38px !important;
  padding: 0.45rem 0.75rem !important;
}

/* Ensure textarea, span.form-control, and auto-height inputs keep natural height */
textarea.form-control,
span.form-control,
.form-control.text-break,
.form-control.text-wrap,
.form-control[style*="height: auto"],
.form-control[style*="height:auto"] {
  height: auto !important;
  min-height: 38px;
  padding: 0.45rem 0.75rem !important;
  line-height: 1.45 !important;
  word-break: break-all !important;
  overflow-wrap: anywhere !important;
}

/* Card Spacing Standardization (Responsive Grid: 16px Mobile / 20px Desktop) */
.card {
  --bs-card-spacer-y: 1.25rem;
  --bs-card-spacer-x: 1rem;
}

@media (min-width: 768px) {
  .card {
    --bs-card-spacer-y: 1.25rem;
    --bs-card-spacer-x: 1.25rem;
  }
  .card .card-header.p-3 {
    padding: 1rem 1.25rem !important;
  }
}

/* Symmetrical padding-top (16px) below integrated sub-header platform filter bar */
.platform-filter-bar + .card-body {
  padding-top: 1rem !important;
}

/* Global Badge Typography & Vertical Alignment Standardization */
.badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
  font-size: 0.65rem !important; /* ~10.4px compact micro-badge */
  font-weight: 600 !important;
  line-height: 1 !important;
  padding: 0.2rem 0.55rem !important;
  gap: 0.25rem;
}

/* Order Form Min/Max Badges Precision Center Alignment for iOS & Desktop */
#service_min,
#service_max,
#dripfeed_service_min,
#dripfeed_service_max,
#formQuantityRegular .badge,
#formDripfeedFields .badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 22px !important;
  padding: 0 8px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  border-radius: 6px !important;
}

/* Badge Color Harmonization with Button Palette */
.badge.bg-primary:not([class*="bg-opacity-"]) {
  background-color: var(--bs-primary, #4680fe) !important;
  color: #ffffff !important;
}
.badge.bg-secondary:not([class*="bg-opacity-"]) {
  background-color: #334155 !important;
  color: #ffffff !important;
}
.badge.bg-success:not([class*="bg-opacity-"]) {
  background-color: #10b981 !important;
  color: #ffffff !important;
}
.badge.bg-info:not([class*="bg-opacity-"]) {
  background-color: #0ea5e9 !important;
  color: #ffffff !important;
}
.badge.bg-warning:not([class*="bg-opacity-"]) {
  background-color: #fb8c24 !important;
  color: #ffffff !important;
}
.badge.bg-danger:not([class*="bg-opacity-"]) {
  background-color: #ef4444 !important;
  color: #ffffff !important;
}

/* Also harmonize tinted / light badges */
.badge.bg-light-primary {
  background: color-mix(in srgb, var(--bs-primary, #4680fe), #ffffff 88%) !important;
  color: var(--bs-primary, #4680fe) !important;
}
.badge.bg-light-secondary {
  background: #f1f5f9 !important;
  color: #334155 !important;
}
.badge.bg-light-success {
  background: #ecfdf5 !important;
  color: #10b981 !important;
}
.badge.bg-light-info {
  background: #f0f9ff !important;
  color: #0ea5e9 !important;
}
.badge.bg-light-warning {
  background: #fff7ed !important;
  color: #ea580c !important;
}
.badge.bg-light-danger {
  background: #fef2f2 !important;
  color: #ef4444 !important;
}

/* Dark mode light badges */
[data-pc-theme="dark"] .badge.bg-light-secondary {
  background: #1e293b !important;
  color: #94a3b8 !important;
}
[data-pc-theme="dark"] .badge.bg-light-success {
  background: rgba(16, 185, 129, 0.16) !important;
  color: #34d399 !important;
}
[data-pc-theme="dark"] .badge.bg-light-info {
  background: rgba(14, 165, 233, 0.16) !important;
  color: #38bdf8 !important;
}
[data-pc-theme="dark"] .badge.bg-light-warning {
  background: rgba(251, 140, 36, 0.16) !important;
  color: #fb923c !important;
}
[data-pc-theme="dark"] .badge.bg-light-danger {
  background: rgba(239, 68, 68, 0.16) !important;
  color: #f87171 !important;
}

/* Global Button Standardization (Balanced with 38px Inputs & 13px Font) */
:root {
  --bs-btn-border-radius: 8px;
  --bs-btn-border-radius-sm: 6px;
  --bs-btn-border-radius-lg: 10px;
}

.btn {
  --bs-btn-border-radius: 8px !important;
  --bs-btn-border-radius-sm: 6px !important;
  --bs-btn-border-radius-lg: 10px !important;
  font-size: var(--bs-body-font-size) !important;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.5;
  transition: all 0.15s ease-in-out;
}

.btn:not(.btn-sm):not(.btn-lg):not(.btn-group > .btn):not(.input-group > .btn):not(.input-group .btn):not(.btn-filter-platform):not(.btn-filter-metric):not(.btn-filter-period-dropdown),
.dropdown-toggle:not(.btn-sm):not(.btn-lg):not(.dropdown-toggle-split):not(.btn-filter-platform):not(.btn-filter-metric):not(.btn-filter-period-dropdown),
.dropdown > .btn:not(.btn-sm):not(.btn-lg):not(.btn-filter-platform):not(.btn-filter-metric):not(.btn-filter-period-dropdown) {
  border-radius: 8px !important;
}

.dropdown-toggle.btn-sm:not(.dropdown-toggle-split),
.dropdown > .btn-sm {
  border-radius: 6px !important;
}

.dropdown-toggle.btn-lg:not(.dropdown-toggle-split),
.dropdown > .btn-lg {
  border-radius: 10px !important;
}

.btn:not(.btn-close):not(.btn-link):not(.btn-icon):not(.btn-sm):not(.btn-lg):not(.btn-filter-platform):not(.btn-filter-metric):not(.btn-filter-period):not(.input-group .btn):not(.input-group > .btn) {
  height: 38px !important;
  padding: 0.45rem 1rem !important;
}

.btn-sm:not(.btn-filter-platform):not(.btn-filter-metric):not(.btn-filter-period):not(.input-group .btn):not(.input-group > .btn) {
  height: 30px !important;
  padding: 0.25rem 0.75rem !important;
  font-size: 0.725rem !important;
  border-radius: 6px !important;
}

.btn-lg:not(.input-group .btn):not(.input-group > .btn) {
  height: 44px !important;
  padding: 0.6rem 1.4rem !important;
  font-size: 0.875rem !important;
  border-radius: 10px !important;
}

.btn > i,
.btn > svg {
  vertical-align: middle;
}

/* Button Groups (.btn-group) Corner Flattening & Seamless Divider Alignment */
.btn-group {
  --bs-btn-border-radius: 8px !important;
  border-radius: 8px !important;
}
.btn-group-sm {
  --bs-btn-border-radius: 6px !important;
  border-radius: 6px !important;
}
.btn-group-lg {
  --bs-btn-border-radius: 10px !important;
  border-radius: 10px !important;
}

/* First button outer corners */
.btn-group > .btn:first-child,
.btn-group > .btn-group:first-child > .btn {
  border-top-left-radius: 8px !important;
  border-bottom-left-radius: 8px !important;
}
.btn-group-sm > .btn:first-child,
.btn-group-sm > .btn-group:first-child > .btn {
  border-top-left-radius: 6px !important;
  border-bottom-left-radius: 6px !important;
}
.btn-group-lg > .btn:first-child,
.btn-group-lg > .btn-group:first-child > .btn {
  border-top-left-radius: 10px !important;
  border-bottom-left-radius: 10px !important;
}

/* Last button / dropdown toggle outer corners */
.btn-group > .btn:last-child,
.btn-group > .btn-group:last-child > .btn,
.btn-group > .dropdown-toggle {
  border-top-right-radius: 8px !important;
  border-bottom-right-radius: 8px !important;
}
.btn-group-sm > .btn:last-child,
.btn-group-sm > .btn-group:last-child > .btn,
.btn-group-sm > .dropdown-toggle {
  border-top-right-radius: 6px !important;
  border-bottom-right-radius: 6px !important;
}
.btn-group-lg > .btn:last-child,
.btn-group-lg > .btn-group:last-child > .btn,
.btn-group-lg > .dropdown-toggle {
  border-top-right-radius: 10px !important;
  border-bottom-right-radius: 10px !important;
}

/* Standalone button or single dropdown-toggle in .btn-group (e.g. <div class="btn-group"><button class="dropdown-toggle">) */
.btn-group > .btn:only-of-type,
.btn-group > .dropdown-toggle:only-of-type,
.btn-group > .btn:first-child:last-child {
  border-radius: 8px !important;
}
.btn-group-sm > .btn:only-of-type,
.btn-group-sm > .dropdown-toggle:only-of-type,
.btn-group-sm > .btn:first-child:last-child {
  border-radius: 6px !important;
}
.btn-group-lg > .btn:only-of-type,
.btn-group-lg > .dropdown-toggle:only-of-type,
.btn-group-lg > .btn:first-child:last-child {
  border-radius: 10px !important;
}

/* Flatten adjacent inner corners */
.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group > .btn-group:not(:last-child) > .btn {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.btn-group > .btn:not(:first-child),
.btn-group > :not(.btn-check:first-child) + .btn,
.btn-group > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  margin-left: -1px !important;
}

/* Middle buttons in 3+ button groups */
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle),
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0 !important;
}

/* Elevate active/hovered button border above siblings */
.btn-group > .btn:hover,
.btn-group > .btn:focus-visible,
.btn-group > .btn:active,
.btn-group > .btn.active {
  z-index: 2 !important;
}

/* Vertical Button Groups (.btn-group-vertical) */
.btn-group-vertical {
  --bs-btn-border-radius: 8px !important;
  border-radius: 8px !important;
}
.btn-group-vertical-sm {
  --bs-btn-border-radius: 6px !important;
  border-radius: 6px !important;
}
.btn-group-vertical-lg {
  --bs-btn-border-radius: 10px !important;
  border-radius: 10px !important;
}

.btn-group-vertical > .btn:first-child,
.btn-group-vertical > .btn-group:first-child > .btn {
  border-top-left-radius: 8px !important;
  border-top-right-radius: 8px !important;
}
.btn-group-vertical > .btn:last-child,
.btn-group-vertical > .btn-group:last-child > .btn,
.btn-group-vertical > .dropdown-toggle {
  border-bottom-left-radius: 8px !important;
  border-bottom-right-radius: 8px !important;
}

.btn-group-vertical > .btn:only-of-type,
.btn-group-vertical > .dropdown-toggle:only-of-type,
.btn-group-vertical > .btn:first-child:last-child {
  border-radius: 8px !important;
}

.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group-vertical > .btn-group:not(:last-child) > .btn {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.btn-group-vertical > .btn:not(:first-child),
.btn-group-vertical > :not(.btn-check:first-child) + .btn,
.btn-group-vertical > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
  margin-top: -1px !important;
}

.btn-group-vertical > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle),
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0 !important;
}

/* ==========================================================================
   Input Groups (.input-group) UI Standardization & Seamless Alignment
   ========================================================================== */
.input-group {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
  border-radius: 8px;
}

.input-group-sm {
  border-radius: 6px;
}

.input-group-lg {
  border-radius: 10px;
}

/* Flex distribution inside input-group */
.input-group > .form-control,
.input-group > .form-select {
  position: relative;
  flex: 1 1 auto;
  width: 1% !important; /* Overrides inline width: 80% to seamlessly fill space up to button */
  min-width: 0;
}

.input-group > .input-group-text,
.input-group > .btn {
  flex: 0 0 auto;
}

/* Height & Vertical Stretch Alignment */
.input-group > .btn,
.input-group > .btn.btn-sm,
.input-group > .btn.btn-lg,
.input-group-sm > .btn,
.input-group-lg > .btn {
  height: auto !important;
  align-self: stretch !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
}

.input-group:not(.input-group-sm):not(.input-group-lg) > .btn:not(.btn-sm):not(.btn-lg) {
  min-height: 38px !important;
  padding: 0.45rem 0.85rem !important;
}

/* Input Group Small (.input-group-sm) Heights & Paddings */
.input-group-sm > .form-control:not(textarea):not(span):not(.text-break):not(.text-wrap),
.input-group-sm > .form-select,
.input-group-sm > .input-group-text {
  height: 30px !important;
  padding: 0.25rem 0.65rem !important;
  font-size: 0.775rem !important;
}

.input-group-sm > span.form-control,
.input-group-sm > .form-control.text-break,
.input-group-sm > .form-control.text-wrap,
.input-group-sm > .form-control[style*="height: auto"],
.input-group-sm > .form-control[style*="height:auto"] {
  height: auto !important;
  min-height: 30px !important;
  padding: 0.25rem 0.65rem !important;
  font-size: 0.775rem !important;
  line-height: 1.4 !important;
}

.input-group-sm > .btn,
.input-group > .btn.btn-sm {
  min-height: 30px !important;
  padding: 0.25rem 0.65rem !important;
  font-size: 0.725rem !important;
}

/* Input Group Large (.input-group-lg) */
.input-group-lg > .form-control:not(textarea):not(span),
.input-group-lg > .form-select,
.input-group-lg > .input-group-text {
  height: 44px !important;
  padding: 0.6rem 1rem !important;
  font-size: 0.95rem !important;
}

.input-group-lg > .btn,
.input-group > .btn.btn-lg {
  min-height: 44px !important;
  padding: 0.6rem 1.2rem !important;
  font-size: 0.875rem !important;
}

/* Seamless Border & Corner Flattening */
/* Non-last elements (flatten right corners) */
.input-group > :not(:last-child),
.input-group > .btn:not(:last-child),
.input-group > .form-control:not(:last-child),
.input-group > .form-select:not(:last-child),
.input-group > .input-group-text:not(:last-child),
.input-group-sm > .form-control:not(:last-child),
.input-group-lg > .form-control:not(:last-child) {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

/* Non-first elements (flatten left corners & collapse border) */
.input-group > :not(:first-child),
.input-group > .btn:not(:first-child),
.input-group > .form-control:not(:first-child),
.input-group > .form-select:not(:first-child),
.input-group > .input-group-text:not(:first-child),
.input-group-sm > .btn:not(:first-child),
.input-group-lg > .btn:not(:first-child) {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  margin-left: -1px !important;
}

/* Middle elements in 3+ items (flatten all corners) */
.input-group > :not(:first-child):not(:last-child),
.input-group > .btn:not(:first-child):not(:last-child),
.input-group > .form-control:not(:first-child):not(:last-child),
.input-group > .form-select:not(:first-child):not(:last-child),
.input-group > .input-group-text:not(:first-child):not(:last-child) {
  border-radius: 0 !important;
}

/* First element outer corner radiuses */
.input-group > :first-child,
.input-group > .form-control:first-child,
.input-group > .btn:first-child,
.input-group > .input-group-text:first-child {
  border-top-left-radius: 8px !important;
  border-bottom-left-radius: 8px !important;
}
.input-group-sm > :first-child,
.input-group-sm > .form-control:first-child,
.input-group-sm > .btn:first-child,
.input-group-sm > .input-group-text:first-child {
  border-top-left-radius: 6px !important;
  border-bottom-left-radius: 6px !important;
}
.input-group-lg > :first-child,
.input-group-lg > .form-control:first-child,
.input-group-lg > .btn:first-child,
.input-group-lg > .input-group-text:first-child {
  border-top-left-radius: 10px !important;
  border-bottom-left-radius: 10px !important;
}

/* Last element outer corner radiuses */
.input-group > :last-child,
.input-group > .btn:last-child,
.input-group > .form-control:last-child,
.input-group > .input-group-text:last-child {
  border-top-right-radius: 8px !important;
  border-bottom-right-radius: 8px !important;
}
.input-group-sm > :last-child,
.input-group-sm > .btn:last-child,
.input-group > .btn.btn-sm:last-child,
.input-group-sm > .form-control:last-child,
.input-group-sm > .input-group-text:last-child {
  border-top-right-radius: 6px !important;
  border-bottom-right-radius: 6px !important;
}
.input-group-lg > :last-child,
.input-group-lg > .btn:last-child,
.input-group > .btn.btn-lg:last-child,
.input-group-lg > .form-control:last-child,
.input-group-lg > .input-group-text:last-child {
  border-top-right-radius: 10px !important;
  border-bottom-right-radius: 10px !important;
}

/* Legacy Bootstrap 4 .input-group-prepend & .input-group-append compatibility */
.input-group > .input-group-prepend {
  display: flex;
}
.input-group > .input-group-prepend > .input-group-text,
.input-group > .input-group-prepend > .btn {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}
.input-group > .input-group-append {
  display: flex;
  margin-left: -1px !important;
}
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-append > .btn {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}

/* Elevation on Focus, Hover, Active */
.input-group > .form-control:focus,
.input-group > .form-select:focus,
.input-group > .btn:hover,
.input-group > .btn:focus,
.input-group > .btn:active,
.input-group > .btn.active {
  z-index: 3 !important;
}

/* Platform Filter Bar & Pills (Unified with /page/monitoring.php) */
.platform-filter-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 16px;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

@media (min-width: 768px) {
  .platform-filter-bar {
    padding: 16px 1.25rem;
  }
}

.btn-filter-platform,
.btn-filter-metric,
.btn-filter-period-dropdown,
.btn.btn-filter-platform,
.btn.btn-filter-metric,
.btn.btn-filter-period-dropdown,
.btn-sm.btn-filter-platform,
.btn-sm.btn-filter-metric,
.btn-sm.btn-filter-period-dropdown {
  border-radius: 6px !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  padding: 5px 14px !important;
  height: auto !important;
  min-height: unset !important;
  line-height: 1.5 !important;
  border: 1px solid #e2e8f0 !important;
  background-color: #ffffff !important;
  color: #475569 !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
  white-space: nowrap;
}

.btn-filter-platform:hover,
.btn-filter-metric:hover,
.btn-filter-period-dropdown:hover {
  border-color: var(--bs-primary) !important;
  color: var(--bs-primary) !important;
  background-color: rgba(var(--bs-primary-rgb), 0.08) !important;
  transform: none !important;
}

.btn-filter-platform.active,
.btn-filter-metric.active {
  background: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #ffffff !important;
  box-shadow: 0 2px 5px rgba(var(--bs-primary-rgb), 0.3) !important;
}

.btn-filter-platform.active i,
.btn-filter-metric.active i {
  color: #ffffff !important;
}

.btn-filter-period-dropdown:focus,
.btn-filter-period-dropdown[aria-expanded="true"] {
  border-color: var(--bs-primary) !important;
  background-color: #ffffff !important;
  box-shadow: none !important;
}

[data-pc-theme="dark"] .platform-filter-bar,
body.dark-mode .platform-filter-bar {
  background: #151d27;
  border-bottom-color: #232d3b;
}

[data-pc-theme="dark"] .btn-filter-platform,
[data-pc-theme="dark"] .btn-filter-metric,
[data-pc-theme="dark"] .btn-filter-period-dropdown,
body.dark-mode .btn-filter-platform,
body.dark-mode .btn-filter-metric,
body.dark-mode .btn-filter-period-dropdown {
  background-color: #1e293b !important;
  border-color: #334155 !important;
  color: #94a3b8 !important;
}

[data-pc-theme="dark"] .btn-filter-platform:hover,
[data-pc-theme="dark"] .btn-filter-metric:hover,
[data-pc-theme="dark"] .btn-filter-period-dropdown:hover,
body.dark-mode .btn-filter-platform:hover,
body.dark-mode .btn-filter-metric:hover,
body.dark-mode .btn-filter-period-dropdown:hover {
  background-color: #283548 !important;
  color: #60a5fa !important;
  border-color: #60a5fa !important;
}

[data-pc-theme="dark"] .btn-filter-platform.active,
[data-pc-theme="dark"] .btn-filter-metric.active,
body.dark-mode .btn-filter-platform.active,
body.dark-mode .btn-filter-metric.active {
  background: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #ffffff !important;
}

body[data-pc-font="IBM Plex Sans"] {
  font-family: "IBM Plex Sans", sans-serif;
}
body[data-pc-font="Inter var"] {
  font-family: "Inter var", sans-serif;
}
body[data-pc-font="Jost"] {
  font-family: "Jost", sans-serif;
}
body[data-pc-font="Montserrat"] {
  font-family: "Montserrat", sans-serif;
}
body[data-pc-font="Noto Sans"] {
  font-family: "Noto Sans", sans-serif;
}
body[data-pc-font="Open Sans"] {
  font-family: "Open Sans", sans-serif;
}
body[data-pc-font="Plus Jakarta Sans"] {
  font-family: "Plus Jakarta Sans", sans-serif;
}
body[data-pc-font="Public Sans"] {
  font-family: "Public Sans", sans-serif;
}
body[data-pc-font="Roboto"] {
  font-family: "Roboto", sans-serif;
}
body[data-pc-font="Rubik"] {
  font-family: "Rubik", sans-serif;
}
body[data-pc-font="Source Sans 3"] {
  font-family: "Source Sans 3", sans-serif;
}
body[data-pc-font="Urbanist"] {
  font-family: "Urbanist", sans-serif;
}
body[data-pc-font="Work Sans"] {
  font-family: "Work Sans", sans-serif;
}
body[data-pc-theme_contrast="true"] .card {
  box-shadow: var(--bs-box-shadow-sm);
}
body .welcome-banner {
  border: none;
}
body[data-pc-theme="light"][data-pc-theme_contrast="true"][data-pc-layout="color-header"] {
  --pc-sidebar-background: #fff !important;
  --pc-sidebar-border: none;
  --pc-sidebar-shadow: var(--bs-box-shadow-sm);
}
body[data-pc-layout="color-header"] .b-brand {
  color: #fff !important;
}
.pc-container .page-header + * {
  padding-top: 0 !important;
}
.pc-container .page-header + .d-none + * {
  padding-top: 0 !important;
}
.loader-bg {
  z-index: 9999999;
}
.form-group {
  margin-bottom: 1rem;
}
@keyframes ldio-b5rzs5omc1l {
  0% {
    animation-timing-function: cubic-bezier(0, 0.5, 0.5, 1);
    top: 70.35000000000001px;
  }
  30% {
    animation-timing-function: cubic-bezier(0.5, 0, 1, 0.5);
    top: 50.25px;
  }
  60% {
    animation-timing-function: cubic-bezier(0.5, 0.5, 0.5, 0.5);
    top: 70.35000000000001px;
  }
  100% {
    top: 70.35000000000001px;
  }
}
.payment-group {
  box-shadow: none !important;
}
.payment-menu input[type="radio"] {
  display: none;
}
.payment-menu {
  /*cursor: pointer;*/
  position: relative;
  display: block;
  color: var(--bs-card-title-color);
  text-decoration: none;
  background: var(--bs-body-bg);
  border-radius: 1rem !important;
  user-select: none;
}
.payment-menu input[type="radio"] + .payment-item {
  text-align: center;
  cursor: pointer;
  padding: 0.5rem 1rem;
  font-size: 13px !important;
  border-radius: 1rem !important;
  border: 2px solid var(--bs-gray-300);
  width: 100%;
}
[data-pc-theme="dark"] .payment-menu input[type="radio"] + .payment-item {
  --bs-gray-300: #1d2630;
}
.payment-menu input[type="radio"]:checked + .payment-item {
  background-color: rgba(var(--bs-primary-rgb), 0.1);
  border: 2px solid var(--bs-primary);
  color: var(--bs-primary);
  font-size: 13px !important;
  display: block;
}
.payment-menu input[type="radio"]:hover:not(:checked) + .payment-item {
  border: 2px solid var(--bs-primary);
}
.payment-menu .info-top {
  margin-top: 7px;
}
.payment-menu .info-bottom {
  margin-top: 7px;
  margin-bottom: 3px;
}
.theme-group {
  box-shadow: none !important;
}
.theme-menu input[type="radio"] {
  display: none;
}
.theme-menu {
  /*cursor: pointer;*/
  position: relative;
  display: block;
  color: var(--bs-card-title-color);
  text-decoration: none;
  background: var(--bs-body-bg);
  border-radius: 1rem !important;
  user-select: none;
}
.theme-menu input[type="radio"] + .theme-item {
  text-align: center;
  cursor: pointer;
  padding: 0.5rem 1rem;
  font-size: 13px !important;
  border-radius: 1rem !important;
  border: 2px solid var(--bs-gray-300);
  width: 100%;
}
[data-pc-theme="dark"] .theme-menu input[type="radio"] + .theme-item {
  --bs-gray-300: #1d2630;
}
.theme-menu input[type="radio"]:checked + .theme-item {
  background-color: rgba(var(--bs-primary-rgb), 0.1);
  border: 2px solid var(--bs-primary);
  color: var(--bs-primary);
  font-size: 13px !important;
  display: block;
}
.theme-menu input[type="radio"]:hover:not(:checked) + .theme-item {
  border: 2px solid var(--bs-primary);
}
.theme-menu .info-top {
  margin-top: 7px;
}
.theme-menu .info-bottom {
  margin-top: 7px;
  margin-bottom: 3px;
}
/* Fix Select2 mobile horizontal overflow bug:
   .select2-hidden-accessible uses position: absolute by default which leaks out of viewport */
.select2-hidden-accessible {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  overflow: hidden !important;
}

.select2,
.select2.select2-container,
.select2-container:not(.select2-container--open),
.select2-container:has(.selection) {
  width: 100% !important;
  max-width: 100% !important;
}

/* Ensure the floating dropdown container in body does not expand beyond viewport */
body > .select2-container--open,
.select2-container--open:not(.select2) {
  max-width: 100vw !important;
}
body .swal2-container {
  z-index: 1081 !important;
}
.select2-container--default.select2-container--disabled
  .select2-selection--single {
  background-color: #f3f5f7;
}
.select2-container--default .select2-selection--single,
.select2-container .select2-selection--single {
  height: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 2rem 0 0.75rem !important;
  display: flex !important;
  align-items: center !important;
  position: relative !important;
  border-radius: 8px !important;
  border: 1px solid #bec8d0 !important;
  background-color: #ffffff;
  font-size: var(--bs-body-font-size) !important;
  line-height: 1.5 !important;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.select2-container--default .select2-selection--multiple,
.select2-container .select2-selection--multiple {
  min-height: 38px !important;
  width: 100% !important;
  max-width: 100% !important;
  border-radius: 8px !important;
  border: 1px solid #bec8d0 !important;
  padding: 2px 8px !important;
  font-size: var(--bs-body-font-size) !important;
}
.select2-container--default.select2-container--open.select2-container--below
  .select2-selection--single,
.select2-container--default.select2-container--open.select2-container--below
  .select2-selection--multiple {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}
.select2-container .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--single .select2-selection__rendered {
  padding-left: 0 !important;
  padding-right: 0 !important;
  line-height: 36px !important;
  height: 36px !important;
  color: #131920 !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: var(--bs-body-font-size) !important;
}
.select2-container .select2-selection--single .select2-selection__rendered > *,
.select2-container--default .select2-selection--single .select2-selection__rendered > * {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder {
  line-height: 36px !important;
  height: 36px !important;
  font-size: var(--bs-body-font-size) !important;
  color: var(--bs-body-color) !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 36px !important;
  top: 0 !important;
  right: 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
  position: static !important;
  margin: 0 !important;
  border-color: #64748b transparent transparent transparent !important;
  border-width: 5px 4px 0 4px !important;
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
  border-color: transparent transparent #64748b transparent !important;
  border-width: 0 4px 5px 4px !important;
}
.select2-container .select2-selection--single:hover {
  background-color: #f8f9fa !important;
}
.select2-container .select2-selection--single:focus,
.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  color: #131920 !important;
  background-color: #f8f9fa !important;
  border-color: var(--bs-primary) !important;
  outline: 0 !important;
  box-shadow: 0 0 0 1px rgba(var(--bs-primary-rgb), 0.1) !important;
}
.select2-results__option {
  position: relative !important;
  font-size: 12px !important;
  padding: 9px 14px !important;
  line-height: 1.45 !important;
  color: #1e293b;
  border-bottom: 1px solid #f1f5f9;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.select2-dropdown:not(.select2-dropdown--above) .select2-results__option:last-child,
.select2-dropdown:not(.select2-dropdown--above) .select2-results__options > .select2-results__option:last-child {
  border-bottom-left-radius: 7px !important;
  border-bottom-right-radius: 7px !important;
  border-bottom: none !important;
  margin-bottom: 0 !important;
}
.service-select2-dropdown:not(.select2-dropdown--above) .select2-results__option,
.select2-results__option:has(.service-opt-item) {
  padding: 0 !important;
  border-bottom: 1px solid #f1f5f9 !important;
}
.service-select2-dropdown:not(.select2-dropdown--above) .select2-results__option:last-child,
.select2-results__option:last-child:has(.service-opt-item),
.select2-results__option[aria-selected="true"]:last-child:has(.service-opt-item),
.select2-results__option--highlighted:last-child:has(.service-opt-item) {
  border-bottom: none !important;
  margin-bottom: 0 !important;
}

/* Left Indicator Bar for global Select2 options (matching service dropdown) */
.select2-results__option::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 3.5px;
  background: transparent;
  transition: background 0.15s ease, width 0.15s ease;
  pointer-events: none;
  z-index: 2;
}
.select2-dropdown:not(.select2-dropdown--above) .select2-results__option:last-child::before {
  border-bottom-left-radius: 7px !important;
}

/* Exclude internal indicator when option has custom .service-opt-item */
.service-select2-dropdown .select2-results__option::before,
.select2-results__option:has(.service-opt-item)::before {
  display: none !important;
}

.select2-container .select2-selection--single .select2-selection__rendered i,
.select2-results__option:not(:has(.service-opt-item)) i {
  font-size: 1rem !important;
  margin-right: 0.25rem !important;
  vertical-align: -2.4px !important;
  line-height: 1 !important;
  display: inline-block !important;
}

/* Global Select2 Option Hover / Highlighted State */
.select2-results__option:hover,
.select2-results__option--highlighted[aria-selected="false"] {
  background-color: rgba(var(--bs-primary-rgb), 0.04) !important;
  color: #0f172a !important;
}
.select2-results__option:hover::before,
.select2-results__option--highlighted[aria-selected="false"]::before {
  background: rgba(var(--bs-primary-rgb), 0.6) !important;
  width: 3.5px !important;
}

/* Global Select2 Option Selected State */
.select2-results__option[aria-selected="true"] {
  background-color: rgba(var(--bs-primary-rgb), 0.12) !important;
  color: #0f172a !important;
  font-weight: 600 !important;
}
.select2-results__option[aria-selected="true"]::before {
  background: var(--bs-primary) !important;
  width: 4px !important;
}

/* Global Select2 Option Highlighted & Selected State */
.select2-results__option--highlighted[aria-selected="true"] {
  background-color: rgba(var(--bs-primary-rgb), 0.16) !important;
  color: #0f172a !important;
  font-weight: 600 !important;
}
.select2-results__option--highlighted[aria-selected="true"]::before {
  background: var(--bs-primary) !important;
  width: 4px !important;
}

.select2-container--default .select2-search--dropdown {
  padding: 8px 10px;
  border-bottom: 1px solid #f1f5f9;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
  box-sizing: border-box !important;
  width: 100% !important;
  border-radius: 6px !important;
  height: 32px !important;
  font-size: 12px !important;
  border: 1px solid #e2e8f0 !important;
  padding: 6px 10px !important;
  background-color: #f8fafc !important;
  outline: none !important;
  transition: all 0.15s ease;
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus {
  background-color: #ffffff !important;
  border-color: var(--bs-primary) !important;
  box-shadow: 0 0 0 2px rgba(var(--bs-primary-rgb), 0.1) !important;
}
[data-pc-theme="dark"] .select2-container .select2-selection--single {
  background-color: #263240 !important;
  border-color: #303f50 !important;
}
.select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  color: #131920 !important;
}
.select2-container--default
  .select2-selection--single
  .select2-selection__placeholder {
  color: var(--bs-body-color) !important;
}
[data-pc-theme="dark"]
  .select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  color: var(--bs-body-color) !important;
}
[data-pc-theme="dark"] .select2-container--default .select2-search--dropdown {
  border-bottom: 1px solid #232d3b;
}
[data-pc-theme="dark"] .select2-search__field {
  background-color: #263240 !important;
  border-color: #303f50 !important;
  color: var(--bs-body-color) !important;
}
[data-pc-theme="dark"] .select2-dropdown {
  background-color: #1b232d !important;
  border-color: #2b3544 !important;
  color: var(--bs-body-color) !important;
}
[data-pc-theme="dark"] .select2-results__option {
  color: #cbd5e1;
  border-bottom: 1px solid #232d3b !important;
}
[data-pc-theme="dark"] .select2-results__option:last-child {
  border-bottom: none !important;
}
[data-pc-theme="dark"] .select2-results__option:hover,
[data-pc-theme="dark"] .select2-results__option--highlighted[aria-selected="false"] {
  background-color: rgba(var(--bs-primary-rgb), 0.08) !important;
  color: #60a5fa !important;
}
[data-pc-theme="dark"] .select2-results__option:hover::before,
[data-pc-theme="dark"] .select2-results__option--highlighted[aria-selected="false"]::before {
  background: rgba(var(--bs-primary-rgb), 0.7) !important;
}
[data-pc-theme="dark"] .select2-container .select2-selection--single:focus {
  border-color: var(--bs-primary) !important;
  outline: 0 !important;
  box-shadow: 0 0 0 1px rgba(var(--bs-primary-rgb), 0.1) !important;
}
[data-pc-theme="dark"] .select2-results__option[aria-selected="true"] {
  background-color: rgba(var(--bs-primary-rgb), 0.18) !important;
  color: #f1f5f9 !important;
}
[data-pc-theme="dark"] .select2-results__option[aria-selected="true"]::before {
  background: var(--bs-primary) !important;
  width: 4px !important;
}
[data-pc-theme="dark"] .select2-results__option--highlighted[aria-selected="true"] {
  background-color: rgba(var(--bs-primary-rgb), 0.24) !important;
  color: #f1f5f9 !important;
}
[data-pc-theme="dark"] .select2-results__option--highlighted[aria-selected="true"]::before {
  background: var(--bs-primary) !important;
  width: 4px !important;
}
[data-pc-theme="dark"] .service-select2-dropdown .select2-results__option[aria-selected="true"] .service-opt-item .opt-name,
[data-pc-theme="dark"] .select2-results__option[aria-selected="true"] .service-opt-item .opt-name {
  color: #f1f5f9 !important;
  font-weight: 600 !important;
}
[data-pc-theme="dark"] .select2-container--open .select2-selection--single {
  border-color: var(--bs-primary) !important;
  outline: 0 !important;
  box-shadow: 0 0 0 1px rgba(var(--bs-primary-rgb), 0.1) !important;
}
[data-pc-theme="dark"] .form-control:disabled,
[data-pc-theme="dark"] .custom-select:disabled,
[data-pc-theme="dark"] .dataTable-selector:disabled,
[data-pc-theme="dark"] .dataTable-input:disabled {
  -webkit-text-fill-color: var(--bs-body-color);
}

body.swal2-height-auto {
  overflow: hidden !important;
}

.available-balance-card::after {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.3),
    rgba(255, 255, 255, 0)
  ) !important;
}

/* ==========================================================================
   Kumo UI / Cloudflare Tactile Button System
   ========================================================================== */

/* ==========================================================================
   Kumo UI / Cloudflare Tactile Button System (Exact 1:1 Implementation)
   ========================================================================== */

/* Shared Base for Kumo Solid Buttons */
.btn-primary,
.btn-danger,
.btn-success,
.btn-warning,
.btn-info,
.btn-secondary,
.btn-custom-gradient {
  color: #ffffff !important;
  border: 1px solid var(--kumo-ring) !important;
  font-weight: 500 !important;
  text-shadow: none !important;
  position: relative;
  overflow: hidden;
  user-select: none;
  cursor: pointer;
  background-color: var(--kumo-to) !important;
  background-image: linear-gradient(
    180deg,
    var(--kumo-from) 0%,
    var(--kumo-to) 100%
  ) !important;
  box-shadow: 
    inset 0 1px 0 0 var(--kumo-highlight),
    0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
  transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Kumo Hover State: Seamless glow overlay transitions directly from top rim */
.btn-primary:hover,
.btn-primary:focus-visible,
.btn-danger:hover,
.btn-danger:focus-visible,
.btn-success:hover,
.btn-success:focus-visible,
.btn-warning:hover,
.btn-warning:focus-visible,
.btn-info:hover,
.btn-info:focus-visible,
.btn-secondary:hover,
.btn-secondary:focus-visible,
.btn-custom-gradient:hover,
.btn-custom-gradient:focus-visible {
  color: #ffffff !important;
  border-color: var(--kumo-ring) !important;
  background-image: linear-gradient(
    180deg,
    var(--kumo-highlight) 0%,
    var(--kumo-to) 100%
  ) !important;
  box-shadow: 
    inset 0 1px 0 0 var(--kumo-highlight),
    0 2px 5px 0 rgba(0, 0, 0, 0.10) !important;
}

/* Kumo Active State (Physical press down) */
.btn-primary:active,
.btn-danger:active,
.btn-success:active,
.btn-warning:active,
.btn-info:active,
.btn-secondary:active,
.btn-custom-gradient:active {
  transform: translateY(1px) !important;
  border-color: var(--kumo-ring) !important;
  background-image: linear-gradient(
    180deg,
    var(--kumo-active-from) 0%,
    var(--kumo-to) 100%
  ) !important;
  box-shadow: 
    inset 0 2px 4px 0 rgba(0, 0, 0, 0.22) !important;
}

/* 1. Primary Button (Dynamic var(--bs-primary) - Themes & Custom Presets) */
.btn-primary {
  --kumo-base: var(--bs-primary);
  --kumo-ring: color-mix(in srgb, var(--kumo-base), #000000 12%);
  --kumo-ring: color-mix(in oklch, var(--kumo-base), black 10%);
  --kumo-highlight: color-mix(in srgb, var(--kumo-base), #ffffff 42%);
  --kumo-highlight: color-mix(in oklch, var(--kumo-base), white 40%);
  --kumo-from: color-mix(in srgb, var(--kumo-base), #ffffff 20%);
  --kumo-from: color-mix(in oklch, var(--kumo-base), white 20%);
  --kumo-to: color-mix(in srgb, var(--kumo-base), #ffffff 4%);
  --kumo-to: color-mix(in oklch, var(--kumo-base), white 4%);
  --kumo-active-from: color-mix(in srgb, var(--kumo-base), #000000 8%);
  --kumo-active-from: color-mix(in oklch, var(--kumo-base), black 6%);
}

/* 2. Danger Button (Exact Kumo UI Destructive - #DA252E ring / #FF7D75 highlight) */
.btn-danger {
  --kumo-base: #ef4444;
  --kumo-base: oklch(63.7% 0.237 25.331);
  --kumo-ring: color-mix(in srgb, var(--kumo-base), #000000 12%);
  --kumo-ring: color-mix(in oklch, var(--kumo-base), black 10%);
  --kumo-highlight: color-mix(in srgb, var(--kumo-base), #ffffff 36%);
  --kumo-highlight: color-mix(in oklch, var(--kumo-base), white 35%);
  --kumo-from: color-mix(in srgb, var(--kumo-base), #ffffff 14%);
  --kumo-from: color-mix(in oklch, var(--kumo-base), white 14%);
  --kumo-to: var(--kumo-base);
  --kumo-active-from: color-mix(in srgb, var(--kumo-base), #000000 8%);
  --kumo-active-from: color-mix(in oklch, var(--kumo-base), black 6%);
}

/* 3. Success Button (Fresh Modern Emerald - Harmonized with Danger & Warning) */
.btn-success {
  --kumo-base: #10b981;
  --kumo-base: oklch(65.5% 0.18 152);
  --kumo-ring: color-mix(in srgb, var(--kumo-base), #000000 12%);
  --kumo-ring: color-mix(in oklch, var(--kumo-base), black 10%);
  --kumo-highlight: color-mix(in srgb, var(--kumo-base), #ffffff 40%);
  --kumo-highlight: color-mix(in oklch, var(--kumo-base), white 40%);
  --kumo-from: color-mix(in srgb, var(--kumo-base), #ffffff 10%);
  --kumo-from: color-mix(in oklch, var(--kumo-base), white 10%);
  --kumo-to: var(--kumo-base);
  --kumo-active-from: color-mix(in srgb, var(--kumo-base), #000000 8%);
  --kumo-active-from: color-mix(in oklch, var(--kumo-base), black 6%);
}

/* 4. Warning Button (Vivid Cloudflare Amber-Orange - Radiant & Electric) */
.btn-warning {
  --kumo-base: #fb8c24;
  --kumo-base: oklch(71.5% 0.19 52);
  --kumo-ring: color-mix(in srgb, var(--kumo-base), #000000 12%);
  --kumo-ring: color-mix(in oklch, var(--kumo-base), black 10%);
  --kumo-highlight: color-mix(in srgb, var(--kumo-base), #ffffff 38%);
  --kumo-highlight: color-mix(in oklch, var(--kumo-base), white 38%);
  --kumo-from: color-mix(in srgb, var(--kumo-base), #ffffff 12%);
  --kumo-from: color-mix(in oklch, var(--kumo-base), white 12%);
  --kumo-to: var(--kumo-base);
  --kumo-active-from: color-mix(in srgb, var(--kumo-base), #000000 8%);
  --kumo-active-from: color-mix(in oklch, var(--kumo-base), black 6%);
}

/* 5. Info Button (Vivid Sky Azure - Crisp Specular Rim & High Contrast) */
.btn-info {
  --kumo-base: #0ea5e9;
  --kumo-base: oklch(67% 0.17 232);
  --kumo-ring: color-mix(in srgb, var(--kumo-base), #000000 12%);
  --kumo-ring: color-mix(in oklch, var(--kumo-base), black 10%);
  --kumo-highlight: color-mix(in srgb, var(--kumo-base), #ffffff 42%);
  --kumo-highlight: color-mix(in oklch, var(--kumo-base), white 42%);
  --kumo-from: color-mix(in srgb, var(--kumo-base), #ffffff 9%);
  --kumo-from: color-mix(in oklch, var(--kumo-base), white 9%);
  --kumo-to: var(--kumo-base);
  --kumo-active-from: color-mix(in srgb, var(--kumo-base), #000000 8%);
  --kumo-active-from: color-mix(in oklch, var(--kumo-base), black 6%);
}

/* 6. Secondary Button (Graphite Slate - Replaces murky greenish gray #5b6b79) */
.btn-secondary {
  --kumo-base: #334155;
  --kumo-base: oklch(42% 0.03 255);
  --kumo-ring: color-mix(in srgb, var(--kumo-base), #000000 12%);
  --kumo-ring: color-mix(in oklch, var(--kumo-base), black 10%);
  --kumo-highlight: color-mix(in srgb, var(--kumo-base), #ffffff 36%);
  --kumo-highlight: color-mix(in oklch, var(--kumo-base), white 35%);
  --kumo-from: color-mix(in srgb, var(--kumo-base), #ffffff 14%);
  --kumo-from: color-mix(in oklch, var(--kumo-base), white 14%);
  --kumo-to: var(--kumo-base);
  --kumo-active-from: color-mix(in srgb, var(--kumo-base), #000000 8%);
  --kumo-active-from: color-mix(in oklch, var(--kumo-base), black 6%);
}

/* 7. Light Button (Kumo Neutral / Secondary) */
.btn-light {
  background-color: #ffffff !important;
  background-image: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%) !important;
  border: 0 !important;
  color: #1e293b !important;
  box-shadow: 
    0 0 0 1px #cbd5e1,
    inset 0 1px 0 0 #ffffff,
    0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
  text-shadow: none !important;
}
.btn-light:hover,
.btn-light:focus-visible {
  background-color: #f8fafc !important;
  background-image: linear-gradient(180deg, #ffffff 0%, #f1f5f9 100%) !important;
  box-shadow: 
    0 0 0 1px #94a3b8,
    inset 0 1px 0 0 #ffffff,
    0 2px 4px 0 rgba(0, 0, 0, 0.08) !important;
  color: #0f172a !important;
}
.btn-light:active {
  transform: translateY(1px) !important;
  background-color: #e2e8f0 !important;
  background-image: none !important;
  box-shadow: 
    0 0 0 1px #94a3b8,
    inset 0 2px 4px 0 rgba(0, 0, 0, 0.08) !important;
}

/* Dark Theme Adjustments for Light Button */
[data-pc-theme="dark"] .btn-light {
  background-color: #1e293b !important;
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(0, 0, 0, 0.10) 100%) !important;
  border: 0 !important;
  color: #f1f5f9 !important;
  box-shadow: 
    0 0 0 1px #334155,
    inset 0 1px 0 0 rgba(255, 255, 255, 0.12),
    0 1px 2px 0 rgba(0, 0, 0, 0.25) !important;
}
[data-pc-theme="dark"] .btn-light:hover {
  background-color: #334155 !important;
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.02) 100%) !important;
  box-shadow: 
    0 0 0 1px #475569,
    inset 0 1px 0 0 rgba(255, 255, 255, 0.16),
    0 2px 4px 0 rgba(0, 0, 0, 0.35) !important;
  color: #ffffff !important;
}

/* 8. Outline Buttons */
.btn-outline-primary,
.btn-outline-success,
.btn-outline-info,
.btn-outline-warning,
.btn-outline-danger,
.btn-outline-secondary {
  border-width: 1px !important;
  border-style: solid !important;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.04) !important;
  transition: all 0.15s ease-in-out !important;
}
.btn-outline-primary:active,
.btn-outline-success:active,
.btn-outline-info:active,
.btn-outline-warning:active,
.btn-outline-danger:active,
.btn-outline-secondary:active {
  transform: translateY(1px) !important;
}

[data-pc-theme="dark"] .card .card-header {
  border-bottom: 1px solid #444a52;
}

.table thead th .form-check {
  font-size: var(--bs-body-font-size) !important;
}

.form-check .form-check-input {
  cursor: pointer;
}

.pc-sidebar .pc-hasmenu.pc-trigger > .pc-link > .pc-arrow {
  margin-top: 2px;
}

[data-pc-theme="dark"]
  .payment-menu
  input[type="radio"]:checked
  + .payment-item {
  background-color: rgba(var(--bs-primary-rgb), 0.2);
}

.hero-text-gradient {
  --bg-size: 400%;
  --color-one: rgb(37, 161, 244);
  --color-two: rgb(249, 31, 169);

  background: linear-gradient(
      90deg,
      var(--color-one),
      var(--color-two),
      var(--color-one)
    )
    0 0 / var(--bg-size) 100%;
  color: transparent !important;
  -webkit-background-clip: text;
  background-clip: text;
  animation: move-bg 24s infinite linear;
}

@keyframes move-bg {
  to {
    background-position: var(--bg-size) 0;
  }
}

.bgImageCustom {
  min-height: auto;
  padding-top: 100px;
  padding-bottom: 160px;
}

.wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100px;
  background: url("../images/landing/wave.png");
  background-size: 1000px 100px;
}

[data-pc-theme="dark"] .wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100px;
  background: url("../images/landing/wave-dark.png");
  background-size: 1000px 100px;
}

.wave.wave1 {
  animation: animate 30s linear infinite;
  z-index: 10;
  opacity: 1;
  animation-delay: 0s;
  bottom: 0;
}

.wave.wave2 {
  animation: animate2 15s linear infinite;
  z-index: 9;
  opacity: 0.5;
  animation-delay: -5s;
  bottom: 15px;
}

.wave.wave3 {
  animation: animate 30s linear infinite;
  z-index: 8;
  opacity: 0.2;
  animation-delay: -2s;
  bottom: 15px;
}

.wave.wave4 {
  animation: animate2 5s linear infinite;
  z-index: 7;
  opacity: 0.7;
  animation-delay: -5s;
  bottom: 25px;
}

@keyframes animate {
  0% {
    background-position: 0;
  }
  100% {
    background-position: 1000px;
  }
}

@keyframes animate2 {
  0% {
    background-position: 0;
  }
  100% {
    background-position: -1000px;
  }
}

.background-pattern1 {
  background-repeat: repeat;
  background-size: 100%;
  background-image: url("data:image/svg+xml,<svg id='patternId' opacity='0.1' width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='70' height='70' patternTransform='scale(1) rotate(0)'><rect x='0' y='0' width='100%' height='100%' fill='hsla(0,0%,100%,1)'/><path d='M-4.8 4.44L4 16.59 16.14 7.8M32 30.54l-13.23 7.07 7.06 13.23M-9 38.04l-3.81 14.5 14.5 3.81M65.22 4.44L74 16.59 86.15 7.8M61 38.04l-3.81 14.5 14.5 3.81'  stroke-linecap='square' stroke-width='2' stroke='hsla(258.5,59.4%,59.4%,1)' fill='none'/><path d='M59.71 62.88v3h3M4.84 25.54L2.87 27.8l2.26 1.97m7.65 16.4l-2.21-2.03-2.03 2.21m29.26 7.13l.56 2.95 2.95-.55'  stroke-linecap='square' stroke-width='2' stroke='hsla(339.6,82.2%,51.6%,1)' fill='none'/><path d='M58.98 27.57l-2.35-10.74-10.75 2.36M31.98-4.87l2.74 10.65 10.65-2.73M31.98 65.13l2.74 10.66 10.65-2.74'  stroke-linecap='square' stroke-width='2' stroke='hsla(198.7,97.6%,48.4%,1)' fill='none'/><path d='M8.42 62.57l6.4 2.82 2.82-6.41m33.13-15.24l-4.86-5.03-5.03 4.86m-14-19.64l4.84-5.06-5.06-4.84'  stroke-linecap='square' stroke-width='2' stroke='hsla(47,80.9%,61%,1)' fill='none'/></pattern></defs><rect width='800%' height='800%' transform='translate(0,0)' fill='url(%23a)'/></svg>");
}

.background-pattern2 {
  background-repeat: repeat;
  background-size: 100%;
  background-image: url("data:image/svg+xml,<svg id='patternId' opacity='0.1' width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='70' height='70' patternTransform='scale(1) rotate(0)'><rect x='0' y='0' width='100%' height='100%' fill='hsla(0,0%,100%,1)'/><path d='M-4.8 4.44L4 16.59 16.14 7.8M32 30.54l-13.23 7.07 7.06 13.23M-9 38.04l-3.81 14.5 14.5 3.81M65.22 4.44L74 16.59 86.15 7.8M61 38.04l-3.81 14.5 14.5 3.81'  stroke-linecap='square' stroke-width='2' stroke='hsla(258.5,59.4%,59.4%,1)' fill='none'/><path d='M59.71 62.88v3h3M4.84 25.54L2.87 27.8l2.26 1.97m7.65 16.4l-2.21-2.03-2.03 2.21m29.26 7.13l.56 2.95 2.95-.55'  stroke-linecap='square' stroke-width='2' stroke='hsla(339.6,82.2%,51.6%,1)' fill='none'/><path d='M58.98 27.57l-2.35-10.74-10.75 2.36M31.98-4.87l2.74 10.65 10.65-2.73M31.98 65.13l2.74 10.66 10.65-2.74'  stroke-linecap='square' stroke-width='2' stroke='hsla(198.7,97.6%,48.4%,1)' fill='none'/><path d='M8.42 62.57l6.4 2.82 2.82-6.41m33.13-15.24l-4.86-5.03-5.03 4.86m-14-19.64l4.84-5.06-5.06-4.84'  stroke-linecap='square' stroke-width='2' stroke='hsla(47,80.9%,61%,1)' fill='none'/></pattern></defs><rect width='800%' height='800%' transform='translate(-35,-13)' fill='url(%23a)'/></svg>");
}

.background-pattern3 {
  background-repeat: repeat;
  background-size: 100%;
  background-image: url("data:image/svg+xml,<svg id='patternId' opacity='0.1' width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='70' height='70' patternTransform='scale(1) rotate(0)'><rect x='0' y='0' width='100%' height='100%' fill='hsla(0,0%,100%,1)'/><path d='M-4.8 4.44L4 16.59 16.14 7.8M32 30.54l-13.23 7.07 7.06 13.23M-9 38.04l-3.81 14.5 14.5 3.81M65.22 4.44L74 16.59 86.15 7.8M61 38.04l-3.81 14.5 14.5 3.81'  stroke-linecap='square' stroke-width='2' stroke='hsla(258.5,59.4%,59.4%,1)' fill='none'/><path d='M59.71 62.88v3h3M4.84 25.54L2.87 27.8l2.26 1.97m7.65 16.4l-2.21-2.03-2.03 2.21m29.26 7.13l.56 2.95 2.95-.55'  stroke-linecap='square' stroke-width='2' stroke='hsla(339.6,82.2%,51.6%,1)' fill='none'/><path d='M58.98 27.57l-2.35-10.74-10.75 2.36M31.98-4.87l2.74 10.65 10.65-2.73M31.98 65.13l2.74 10.66 10.65-2.74'  stroke-linecap='square' stroke-width='2' stroke='hsla(198.7,97.6%,48.4%,1)' fill='none'/><path d='M8.42 62.57l6.4 2.82 2.82-6.41m33.13-15.24l-4.86-5.03-5.03 4.86m-14-19.64l4.84-5.06-5.06-4.84'  stroke-linecap='square' stroke-width='2' stroke='hsla(47,80.9%,61%,1)' fill='none'/></pattern></defs><rect width='800%' height='800%' transform='translate(-47,-26)' fill='url(%23a)'/></svg>");
}

.theme-color {
  flex-wrap: wrap;
  row-gap: 3px;
}

.theme-color > a {
  position: relative !important;
  display: inline-flex !important;
  height: 2.75rem !important;
  width: 2.75rem !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  border-radius: 0.75rem !important;
  transition-property: all !important;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
  transition-duration: 150ms !important;
}
.theme-color > a.active {
  flex: none !important;
}

.theme-color > a.active::after,
.theme-color > a > i {
  transform: scale(1) !important;
}

.theme-color > a::after {
  border-radius: 0.75rem !important;
}

body[data-pc-layout="vertical"] .pc-sidebar .navbar-content,
body[data-pc-layout="color-header"] .pc-sidebar .navbar-content {
  height: calc(100vh - 149px) !important;
}

.pc-sidebar .card.pc-user-card {
  background: var(--pc-sidebar-background) !important;
  margin: 0 !important;
  box-shadow: none !important;
  border-radius: 0px !important;
  border: none !important;
}

.pc-sidebar .card.pc-user-card .card-body {
  padding: 15px !important;
}

.pc-sidebar .card.pc-user-card .dropdown-menu {
  display: block !important;
  opacity: 0 !important;
  transition: opacity 0.3s ease, transform 0.3s ease !important;
  visibility: hidden !important;
  box-shadow: none !important;
  width: calc(279.8px) !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: var(--pc-sidebar-user-background) !important;
}

body[data-pc-layout="vertical"][data-pc-theme="dark"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu {
  width: calc(278.8px) !important;
}

body[data-pc-layout="color-header"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu {
  width: calc(279.8px) !important;
}

body[data-pc-layout="tab"] .pc-sidebar .card.pc-user-card .dropdown-menu {
  width: calc(320px) !important;
}

.pc-sidebar .card.pc-user-card .dropdown-menu.show {
  opacity: 1 !important;
  inset: auto 0px 0px -76px !important;
  transform: translate3d(0px, -58.5px, 0px) !important;
  visibility: visible !important;
  border-radius: 0px !important;
}

body[data-pc-layout="tab"] .pc-sidebar .card.pc-user-card .dropdown-menu.show {
  inset: auto 0px 0px -75.9px !important;
  transform: translate3d(0px, 206.5px, 0px) !important;
}

body[data-pc-layout="tab"] .pc-sidebar .card.pc-user-card .dropdown-menu.show {
  border-bottom: 1px solid var(--bs-border-color) !important;
  border-left: none !important;
  border-right: none !important;
}
body[data-pc-layout="tab"][data-pc-theme_contrast="true"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu.show {
  border-bottom: 1px solid var(--bs-border-color) !important;
  border-left: none !important;
  border-right: none !important;
}

body[data-pc-layout="tab"][data-pc-theme_contrast="false"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu.show {
  border-bottom: var(--pc-sidebar-border) !important;
  border-left: none !important;
  border-right: none !important;
}

body[data-pc-layout="tab"][data-pc-theme="dark"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu.show {
  border-bottom: var(--pc-sidebar-border) !important;
  border-left: none !important;
  border-right: none !important;
}

body[data-pc-layout="vertical"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu.show {
  border-top: 1px solid var(--bs-border-color) !important;
  border-left: 1px solid var(--bs-border-color) !important;
  border-right: none !important;
}

body[data-pc-layout="vertical"][data-pc-theme="light"][data-pc-theme_contrast="false"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu.show {
  border-top: 1px dashed #bec8d0 !important;
  border-left: none !important;
  border-right: none !important;
}

body[data-pc-layout="vertical"][data-pc-theme="dark"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu.show {
  border-top: var(--pc-sidebar-border) !important;
  border-left: 1px solid var(--pc-sidebar-border) !important;
  border-right: none !important;
}

body[data-pc-layout="color-header"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu.show {
  border-top: 1px solid var(--bs-border-color) !important;
  border-left: none !important;
  border-right: none !important;
}

body[data-pc-layout="color-header"][data-pc-theme="dark"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu.show {
  border-top: 1px solid var(--bs-card-border-color) !important;
  border-left: none !important;
  border-right: none !important;
}

.pc-sidebar .card.pc-user-card .dropdown-menu ul {
  align-items: center;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

.pc-sidebar .card.pc-user-card .dropdown-menu ul li {
  position: relative;
  flex: 50%;
  border: 0.25px solid var(--bs-border-color);
}

body[data-pc-layout="vertical"][data-pc-theme="dark"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu
  ul
  li {
  border: 0.25px dashed #242d39;
}

body[data-pc-layout="vertical"][data-pc-theme="light"][data-pc-theme_contrast="false"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu
  ul
  li {
  border: 0.25px dashed #bec8d0;
}

body[data-pc-layout="color-header"][data-pc-theme="dark"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu
  ul
  li {
  border: 0.25px solid var(--bs-card-border-color);
}

body[data-pc-layout="tab"][data-pc-theme="dark"]
  .pc-sidebar
  .card.pc-user-card
  .dropdown-menu
  ul
  li {
  border: 0.25px dashed #242d39;
}

/* Hapus border atas untuk elemen pertama dan kedua */
.pc-sidebar .card.pc-user-card .dropdown-menu ul li:nth-child(1),
.pc-sidebar .card.pc-user-card .dropdown-menu ul li:nth-child(2) {
  border-top: none !important;
}

/* Hapus border bawah untuk elemen ketiga dan keempat */
.pc-sidebar .card.pc-user-card .dropdown-menu ul li:nth-child(3),
.pc-sidebar .card.pc-user-card .dropdown-menu ul li:nth-child(4) {
  border-bottom: none !important;
}

/* Hapus border kiri untuk elemen pertama dan ketiga */
.pc-sidebar .card.pc-user-card .dropdown-menu ul li:nth-child(1),
.pc-sidebar .card.pc-user-card .dropdown-menu ul li:nth-child(3) {
  border-left: none !important;
}

/* Hapus border kanan untuk elemen kedua dan keempat */
.pc-sidebar .card.pc-user-card .dropdown-menu ul li:nth-child(2),
.pc-sidebar .card.pc-user-card .dropdown-menu ul li:nth-child(4) {
  border-right: none !important;
}

.pc-sidebar .card.pc-user-card .pc-user-links {
  display: flex;
  align-items: center;
  flex-direction: column;
  color: var(--pc-sidebar-color);
  padding: 12px 4px;
  border-radius: var(--bs-border-radius);
  margin: 8px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.pc-sidebar .card.pc-user-card .pc-user-links::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--pc-sidebar-active-color);
  opacity: 0;
}

.pc-sidebar .card.pc-user-card .pc-user-links:focus,
.pc-sidebar .card.pc-user-card .pc-user-links:hover {
  color: var(--pc-sidebar-active-color);
}

.pc-sidebar .card.pc-user-card .pc-user-links:focus::after,
.pc-sidebar .card.pc-user-card .pc-user-links:hover::after {
  opacity: 0.1;
}

body[data-pc-layout="color-header"] .pc-sidebar {
  position: fixed !important;
}

body[data-pc-layout="color-header"] .pc-sidebar .navbar-content {
  box-shadow: inset 0px 0px 0px 0px var(--bs-border-color) !important;
}

body[data-pc-layout="color-header"][data-pc-theme="light"]
  .pc-sidebar
  .card.pc-user-card {
  border-top: 1px solid var(--bs-border-color) !important;
}

body[data-pc-layout="color-header"][data-pc-theme="dark"]
  .pc-sidebar
  .card.pc-user-card {
  border-top: 1px solid var(--bs-card-border-color) !important;
}

body[data-pc-layout="vertical"][data-pc-theme="light"][data-pc-theme_contrast="true"]
  .pc-sidebar
  .card.pc-user-card {
  border-top: 1px solid var(--bs-border-color) !important;
}

body[data-pc-layout="vertical"][data-pc-theme="light"][data-pc-theme_contrast="false"]
  .pc-sidebar
  .card.pc-user-card {
  border-top: var(--pc-sidebar-border) !important;
}

body[data-pc-layout="vertical"][data-pc-theme="dark"]
  .pc-sidebar
  .card.pc-user-card {
  border-top: var(--pc-sidebar-border) !important;
}

body[data-pc-layout="tab"] .pc-sidebar .card.pc-user-card {
  display: block !important;
}

body[data-pc-layout="tab"][data-pc-theme="light"][data-pc-theme_contrast="true"]
  .pc-sidebar
  .m-header {
  border-bottom: 1px solid var(--bs-border-color) !important;
}

body[data-pc-layout="tab"][data-pc-theme="light"][data-pc-theme_contrast="true"]
  .pc-sidebar
  .card.pc-user-card {
  border-bottom: 1px solid var(--bs-border-color) !important;
}

body[data-pc-layout="tab"][data-pc-theme="light"][data-pc-theme_contrast="false"]
  .pc-sidebar
  .m-header {
  border-bottom: var(--pc-sidebar-border) !important;
}

body[data-pc-layout="tab"][data-pc-theme="light"][data-pc-theme_contrast="false"]
  .pc-sidebar
  .card.pc-user-card {
  border-bottom: var(--pc-sidebar-border) !important;
}

[data-pc-layout="tab"][data-pc-theme="light"][data-pc-theme_contrast="false"]
  .pc-sidebar
  .tab-container
  .tab-sidemenu {
  border-right: var(--pc-sidebar-border) !important;
}

body[data-pc-layout="tab"][data-pc-theme="dark"] .pc-sidebar .m-header {
  border-bottom: var(--pc-sidebar-border) !important;
}

body[data-pc-layout="tab"][data-pc-theme="dark"]
  .pc-sidebar
  .card.pc-user-card {
  border-bottom: var(--pc-sidebar-border) !important;
}

[data-pc-layout="tab"][data-pc-theme="dark"]
  .pc-sidebar
  .tab-container
  .tab-sidemenu {
  border-right: var(--pc-sidebar-border) !important;
}

body[data-pc-layout="vertical"][data-pc-theme="light"] .pc-sidebar .m-header {
  border-bottom: 1px solid var(--bs-border-color) !important;
}

body[data-pc-layout="vertical"][data-pc-theme="dark"] .pc-sidebar .m-header {
  border-bottom: var(--pc-sidebar-border) !important;
}

.page-header {
  padding-top: 13px;
  padding-bottom: 24px;
}

body[data-pc-layout="color-header"] .page-header {
  padding-bottom: 24px !important;
}

.pc-container .page-header .breadcrumb {
  margin-bottom: 5px;
}

[data-pc-layout="color-header"]
  .pc-container
  .page-header
  .breadcrumb
  .breadcrumb-item,
[data-pc-layout="color-header"] .pc-container .page-header .breadcrumb a:hover {
  color: #fff;
}

[data-pc-layout="vertical"] .pc-sidebar .navbar-content {
  padding: 18px 0;
}

.pc-sidebar .navbar-content {
  height: calc(100vh - 110px);
}

[data-pc-layout="tab"] .pc-sidebar .tab-container .tab-sidemenu,
[data-pc-layout="tab"] .pc-sidebar .tab-container .tab-link {
  height: calc(100vh - 92px);
}

[data-pc-theme="light"].landing-page {
  background: var(--bs-body-bg) !important;
}

[data-pc-theme="dark"].landing-page {
  background: #131920 !important;
}

/* ==========================================================
   SELECT2 CUSTOM DROPDOWN (Global Hidden Scrollbar + Fade Hint)
   ========================================================== */
.select2-results__options {
    max-height: min(400px, 65vh) !important;
    border-bottom-left-radius: 7px !important;
    border-bottom-right-radius: 7px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-width: none !important; /* Firefox */
    -ms-overflow-style: none !important; /* IE / Edge */
    padding: 0 !important;
    margin: 0 !important;
}

/* Compact height strictly inside modals to prevent viewport clipping */
.modal .select2-results__options,
.modal-open .select2-dropdown .select2-results__options {
    max-height: 220px;
}

.select2-results__options::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

/* Enforce connected border-radius based on direction */
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,
.select2-container--default.select2-container--open:not(.select2-container--above) .select2-selection--single {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border-top-left-radius: 8px !important;
    border-top-right-radius: 8px !important;
}
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single {
    border-top: 1px solid var(--bs-primary) !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-left-radius: 8px !important;
    border-bottom-right-radius: 8px !important;
}

/* Ensure Select2 Dropdown overlays above fixed navbar (pc-header: 1025) */
.select2-container--open {
    z-index: 1060 !important;
}
.select2-dropdown,
.service-select2-dropdown {
    box-sizing: border-box !important;
    max-width: 100vw !important;
    z-index: 1060 !important;
    border-top: none !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-left-radius: 8px !important;
    border-bottom-right-radius: 8px !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05) !important;
    border: 1px solid #e2e8f0 !important;
    border-top: none !important;
    overflow: hidden !important;
    position: absolute !important;
}

.select2-dropdown--above {
    display: flex !important;
    flex-direction: column !important;
    border: 1px solid #e2e8f0 !important;
    border-bottom: none !important;
    border-top-left-radius: 8px !important;
    border-top-right-radius: 8px !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    box-shadow: 0 -10px 25px -5px rgba(0, 0, 0, 0.1), 0 -8px 10px -6px rgba(0, 0, 0, 0.05) !important;
    margin-top: 0 !important;
}
[data-pc-theme="dark"] .select2-dropdown--above {
    border: 1px solid #2b3544 !important;
    border-bottom: none !important;
}
.select2-dropdown--above .select2-results {
    order: 1 !important;
    min-height: 0 !important;
}
.select2-dropdown--above .select2-search--dropdown {
    order: 2 !important;
    border-top: 1px solid #f1f5f9 !important;
    border-bottom: none !important;
}
[data-pc-theme="dark"] .select2-dropdown--above .select2-search--dropdown {
    border-top: 1px solid #232d3b !important;
    border-bottom: none !important;
}
.select2-dropdown--above .select2-results,
.select2-dropdown--above .select2-results__options {
    border-radius: 0 !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}
.select2-dropdown--above .select2-results__option,
.select2-dropdown--above .select2-results__options > .select2-results__option,
.select2-dropdown--above .service-opt-item,
.select2-dropdown--above .opt-row-1,
.select2-dropdown--above .opt-row-2 {
    border-radius: 0 !important;
}
.select2-dropdown--above .select2-results__option::before,
.select2-dropdown--above .select2-results__options > .select2-results__option::before,
.select2-dropdown--above .service-opt-item::before,
.select2-dropdown--above .select2-results__options > .select2-results__option .service-opt-item::before,
.select2-dropdown--above .select2-results__options > .select2-results__option:first-child::before,
.select2-dropdown--above .select2-results__options > .select2-results__option:first-child .service-opt-item::before,
.select2-dropdown--above .select2-results__options > .select2-results__option:last-child::before,
.select2-dropdown--above .select2-results__options > .select2-results__option:last-child .service-opt-item::before {
    border-radius: 0 !important;
}

/* Elevate Select2 inside Bootstrap modal above modal backdrop (1050) & modal (1055) */
.modal-open .select2-container--open,
.modal .select2-container--open,
.modal-open .select2-dropdown,
.modal .select2-dropdown {
    z-index: 1060 !important;
}

/* Modal Title Text & Icon Optical Alignment */
.modal-title > i,
.modal-title > svg {
    display: inline-flex;
    align-items: center;
}

.modal-title.d-flex.align-items-center > span,
.modal-title > span.modal-title-text {
    display: inline-block;
}

/* Bottom Fade Shade (Scroll Hint) - Applied globally to all Select2 dropdowns */
.select2-dropdown::after,
.service-select2-dropdown::after {
    content: "" !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 44px !important;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.92) 80%, #ffffff 100%) !important;
    border-radius: 0 0 7px 7px !important;
    pointer-events: none !important;
    z-index: 10 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: opacity 0.25s ease, visibility 0.25s ease !important;
}

/* Fade for dropdown when positioned above */
.select2-dropdown--above::after {
    display: none !important;
}
.select2-dropdown--above .select2-results {
    position: relative !important;
}
.select2-dropdown--above .select2-results::after {
    content: "" !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 44px !important;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.92) 80%, #ffffff 100%) !important;
    border-radius: 0 !important;
    pointer-events: none !important;
    z-index: 10 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: opacity 0.25s ease, visibility 0.25s ease !important;
}
.select2-dropdown--above.is-scrolled-bottom .select2-results::after {
    opacity: 0 !important;
    visibility: hidden !important;
}

/* Fade disappears when scrolled to bottom or not scrollable */
.select2-dropdown.is-scrolled-bottom::after,
.service-select2-dropdown.is-scrolled-bottom::after {
    opacity: 0 !important;
    visibility: hidden !important;
}

[data-pc-theme="dark"] .select2-dropdown::after,
[data-pc-theme="dark"] .service-select2-dropdown::after {
    background: linear-gradient(to bottom, rgba(27, 35, 45, 0) 0%, rgba(27, 35, 45, 0.95) 80%, #1b232d 100%) !important;
}
[data-pc-theme="dark"] .select2-dropdown--above .select2-results::after {
    background: linear-gradient(to bottom, rgba(27, 35, 45, 0) 0%, rgba(27, 35, 45, 0.95) 80%, #1b232d 100%) !important;
}

.select2-dropdown:not(.select2-dropdown--above) .select2-results {
    border-radius: 0 0 7px 7px !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
}

.select2-dropdown:not(.select2-dropdown--above) .select2-results__options > .select2-results__option:last-child,
.select2-dropdown:not(.select2-dropdown--above) .select2-results__options > .select2-results__option:last-child .service-opt-item,
.select2-dropdown:not(.select2-dropdown--above) .select2-results__options > .select2-results__option:last-child .opt-row-1,
.select2-dropdown:not(.select2-dropdown--above) .select2-results__options > .select2-results__option:last-child .opt-row-2 {
    border-bottom-left-radius: 7px !important;
    border-bottom-right-radius: 7px !important;
    border-bottom: none !important;
    margin-bottom: 0 !important;
}
.select2-dropdown:not(.select2-dropdown--above) .select2-results__options > .select2-results__option:last-child .service-opt-item::before {
    border-bottom-left-radius: 7px !important;
}

/* When dropdown is ABOVE: options and left indicator bar (garis kiri) must NOT be rounded */
.select2-dropdown--above .select2-results {
    border-radius: 0 !important;
}
.select2-dropdown--above .select2-results__options {
    border-radius: 0 !important;
}
.select2-dropdown--above .select2-results__option,
.select2-dropdown--above .select2-results__options > .select2-results__option,
.select2-dropdown--above .select2-results__option[aria-selected="true"],
.select2-dropdown--above .select2-results__option--highlighted,
.select2-dropdown--above .select2-results__options > .select2-results__option .service-opt-item,
.select2-dropdown--above .select2-results__options > .select2-results__option .opt-row-1,
.select2-dropdown--above .select2-results__options > .select2-results__option .opt-row-2,
.select2-dropdown--above .service-opt-item,
.select2-dropdown--above .opt-row-1,
.select2-dropdown--above .opt-row-2 {
    border-radius: 0 !important;
}
.select2-dropdown--above .select2-results__option::before,
.select2-dropdown--above .select2-results__options > .select2-results__option::before,
.select2-dropdown--above .select2-results__option[aria-selected="true"]::before,
.select2-dropdown--above .select2-results__option--highlighted::before,
.select2-dropdown--above .service-opt-item::before,
.select2-dropdown--above .select2-results__options > .select2-results__option .service-opt-item::before {
    border-radius: 0 !important;
}

.service-select2-dropdown .select2-results__option,
.select2-results__option:has(.service-opt-item),
.select2-results__option--highlighted:has(.service-opt-item),
.select2-results__option[aria-selected="true"]:has(.service-opt-item) {
    padding: 0 !important;
    background-color: transparent !important;
    color: inherit !important;
    border-bottom: 1px solid #f1f5f9 !important;
}

.service-select2-dropdown .select2-results__option:last-child,
.select2-results__option:last-child:has(.service-opt-item),
.select2-results__option--highlighted:last-child:has(.service-opt-item),
.select2-results__option[aria-selected="true"]:last-child:has(.service-opt-item) {
    border-bottom: none !important;
    margin-bottom: 0 !important;
}

/* Individual Item Container */
.service-opt-item {
    position: relative;
    cursor: pointer;
    user-select: none;
    transition: all 0.15s ease;
}
.service-opt-item::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 3.5px;
    background: transparent;
    transition: background 0.15s ease;
    z-index: 2;
    pointer-events: none;
}

/* Row 1: Title & Price */
.service-opt-item .opt-row-1,
.opt-item .opt-row-1 {
    padding: 9px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: #ffffff;
    transition: background 0.15s ease;
}
.service-opt-item .opt-title-area,
.opt-item .opt-title-area {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    min-width: 0;
}
.opt-id,
.service-opt-item .opt-id {
    background: #e2e8f0;
    color: #334155;
    padding: 2px 7px;
    border-radius: 5px;
    font-size: 11px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-width: 44px;
    box-sizing: border-box;
    text-align: center;
    line-height: 1.25;
    transition: all 0.15s;
}
.opt-selected-name {
    font-size: inherit;
    font-weight: 400;
    color: inherit;
    line-height: 1.4;
}
.service-opt-item .opt-name {
    font-size: 12px;
    font-weight: 400;
    color: #1e293b;
    line-height: 1.4;
    word-break: break-word;
    transition: color 0.15s;
}
.service-opt-item .opt-price-area {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;
}
.service-opt-item .opt-price-badge {
    background: #f1f5f9;
    color: #0f172a;
    border: 1px solid #e2e8f0;
    padding: 2.5px 8px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    transition: all 0.15s;
}

/* Row 2: Insight Deck */
.service-opt-item .opt-row-2,
.opt-item .opt-row-2 {
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border-top: none;
    font-size: 11px;
    font-weight: 600;
    color: #475569;
    transition: background 0.15s ease;
}
.service-opt-item .opt-branch,
.opt-item .opt-branch {
    width: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 2px;
    color: #94a3b8;
    font-size: 14px;
    flex-shrink: 0;
    line-height: 1;
    user-select: none;
    box-sizing: border-box;
    margin-right: -2px;
    margin-top: 0;
    transition: color 0.15s ease;
}
.service-opt-item .opt-branch i,
.opt-item .opt-branch i {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}
.service-opt-item .opt-branch svg,
.opt-item .opt-branch svg {
    display: inline-block;
}
.service-opt-item .opt-metrics-deck,
.opt-item .opt-metrics-deck {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 8px;
    flex: 1;
    min-width: 0;
}
.service-opt-item .opt-pipe {
    color: #cbd5e1;
    font-weight: 300;
    font-size: 11px;
    display: inline-flex;
    align-items: center;
    line-height: 1;
    user-select: none;
}
.service-opt-item .opt-metric-item {
    display: inline-flex;
    align-items: center;
    gap: 3.5px;
    white-space: nowrap;
    font-weight: 600;
    line-height: 1;
}
.service-opt-item .opt-metric-item i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-size: 12.5px;
}
.service-opt-item .metric-emerald {
    color: #10b981 !important;
}
.service-opt-item .metric-forest {
    color: #16a34a !important;
}
.service-opt-item .metric-amber {
    color: #f97316 !important;
}
.service-opt-item .metric-red {
    color: #ef4444 !important;
}

/* Connected Duo-Pill Mini */
.service-opt-item .pill-connected {
    display: inline-flex;
    align-items: center;
    border-radius: 14px;
    padding: 1.5px 3px;
    gap: 2px;
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.2;
}
.service-opt-item .tier-emerald {
    background: rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.28);
    color: #10b981;
}
.service-opt-item .tier-forest {
    background: rgba(22, 163, 74, 0.15);
    border: 1px solid rgba(22, 163, 74, 0.25);
    color: #16a34a;
}
.service-opt-item .tier-sky {
    background: rgba(2, 132, 199, 0.12);
    border: 1px solid rgba(2, 132, 199, 0.25);
    color: #0284c7;
}
.service-opt-item .tier-amber {
    background: rgba(249, 115, 22, 0.15);
    border: 1px solid rgba(249, 115, 22, 0.25);
    color: #f97316;
}
.service-opt-item .tier-red {
    background: rgba(239, 68, 68, 0.15);
    border: 1px solid rgba(239, 68, 68, 0.25);
    color: #ef4444;
}
.service-opt-item .pill-score-num {
    background: #ffffff;
    padding: 1.5px 6px;
    border-radius: 10px;
    font-weight: 600;
    font-size: 10.5px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    line-height: 1;
}
.service-opt-item .pill-score-num i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    line-height: 1;
    position: relative;
    top: 0px;
}
.service-opt-item .pill-score-num span {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}
.service-opt-item .pill-verdict {
    padding: 0 6px 0 3px;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    line-height: 1.2;
}

/* Hover State (via Select2 Highlighted) */
.service-select2-dropdown .select2-results__option--highlighted .service-opt-item::before,
.select2-results__option--highlighted .service-opt-item::before {
    background: rgba(var(--bs-primary-rgb), 0.6) !important;
}
.service-select2-dropdown .select2-results__option--highlighted .service-opt-item .opt-row-1,
.select2-results__option--highlighted .service-opt-item .opt-row-1 {
    background: rgba(var(--bs-primary-rgb), 0.04) !important;
}

/* Selected State (Soft Duo-Tone) */
.service-select2-dropdown .select2-results__option[aria-selected="true"] .service-opt-item::before,
.select2-results__option[aria-selected="true"] .service-opt-item::before {
    background: var(--bs-primary) !important;
    width: 4px !important;
}
.service-select2-dropdown .select2-results__option[aria-selected="true"] .service-opt-item .opt-row-1,
.select2-results__option[aria-selected="true"] .service-opt-item .opt-row-1 {
    background: rgba(var(--bs-primary-rgb), 0.12) !important;
}
.service-select2-dropdown .select2-results__option[aria-selected="true"] .service-opt-item .opt-id,
.select2-results__option[aria-selected="true"] .service-opt-item .opt-id {
    background: rgba(var(--bs-primary-rgb), 0.22) !important;
    color: var(--bs-primary) !important;
}
.service-select2-dropdown .select2-results__option[aria-selected="true"] .service-opt-item .opt-name,
.select2-results__option[aria-selected="true"] .service-opt-item .opt-name {
    color: #0f172a !important;
    font-weight: 600 !important;
}
.service-select2-dropdown .select2-results__option[aria-selected="true"] .service-opt-item .opt-price-badge,
.select2-results__option[aria-selected="true"] .service-opt-item .opt-price-badge {
    background: var(--bs-primary) !important;
    color: #ffffff !important;
    border: 1px solid var(--bs-primary) !important;
    font-weight: 600 !important;
}
.service-select2-dropdown .select2-results__option[aria-selected="true"] .service-opt-item .opt-row-2,
.select2-results__option[aria-selected="true"] .service-opt-item .opt-row-2 {
    background: transparent !important;
    border-top: none !important;
}
.service-select2-dropdown .select2-results__option[aria-selected="true"] .service-opt-item .opt-branch,
.select2-results__option[aria-selected="true"] .service-opt-item .opt-branch {
    color: var(--bs-primary) !important;
}

/* Dark Mode Adaptation */
[data-pc-theme="dark"] .select2-dropdown,
[data-pc-theme="dark"] .service-select2-dropdown {
    background-color: #1b232d !important;
    border-color: #2b3544 !important;
}
[data-pc-theme="dark"] .service-opt-item .opt-row-1 {
    background: #1b232d !important;
}
[data-pc-theme="dark"] .service-opt-item .opt-name {
    color: #e2e8f0 !important;
}
[data-pc-theme="dark"] .service-opt-item .opt-price-badge {
    background: #253141 !important;
    color: #e2e8f0 !important;
    border-color: #37475b !important;
}
[data-pc-theme="dark"] .service-opt-item .opt-row-2 {
    background: transparent !important;
    border-top: none !important;
}
[data-pc-theme="dark"] .service-opt-item .opt-branch {
    color: #64748b !important;
}
[data-pc-theme="dark"] .service-opt-item .pill-score-num {
    background: #1b232d !important;
}
[data-pc-theme="dark"] .opt-id {
    background: rgba(255, 255, 255, 0.12) !important;
    color: #cbd5e1 !important;
}
[data-pc-theme="dark"] .opt-selected-name {
    color: #f1f5f9 !important;
}

/* Service Insight - Unaudited Service Card (Dark Mode) */
[data-pc-theme="dark"] .service-unaudited-card {
    background: #1b232d !important;
    border-color: #334155 !important;
}
[data-pc-theme="dark"] .service-unaudited-card .unaudited-icon-box {
    background: #131922 !important;
    border-color: #2b3544 !important;
    color: #94a3b8 !important;
}
[data-pc-theme="dark"] .service-unaudited-card .unaudited-tag {
    background: #253141 !important;
    color: #94a3b8 !important;
}
[data-pc-theme="dark"] .service-unaudited-card .unaudited-title {
    color: #e2e8f0 !important;
}
[data-pc-theme="dark"] .service-unaudited-card .unaudited-desc {
    color: #94a3b8 !important;
}

/* Service Description Card - Revamp UI */
.service-desc-card {
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    border-left: 3.5px solid var(--bs-primary);
    background: #ffffff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
    overflow: hidden;
    transition: all 0.2s ease;
}
.service-desc-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 14px;
    background: #ffffff;
    border-bottom: 1px solid #f1f5f9;
}
.desc-badge-title {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #334155;
}
.desc-badge-title i {
    font-size: 14px;
}
.btn-copy-desc {
    display: inline-flex;
    align-items: center;
    background: transparent;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
    cursor: pointer;
    transition: all 0.15s ease;
    line-height: 1.4;
}
.btn-copy-desc:hover {
    background: rgba(var(--bs-primary-rgb), 0.08);
    border-color: rgba(var(--bs-primary-rgb), 0.3);
    color: var(--bs-primary);
}
.service-desc-body {
    position: relative;
    padding: 12px 14px;
    max-height: 180px;
    overflow: hidden;
    transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.service-desc-content {
    font-size: 12.5px;
    line-height: 1.6;
    color: #334155;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
}
.service-desc-content a {
    color: var(--bs-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 500;
    word-break: break-all;
    display: inline-flex;
    align-items: center;
    gap: 2px;
}
.service-desc-content a:hover {
    color: var(--bs-primary);
    opacity: 0.85;
}
.service-desc-content a::after {
    content: "↗";
    font-size: 10px;
    text-decoration: none;
    display: inline-block;
}
.service-desc-fade {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 50px;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #ffffff);
    pointer-events: none;
    transition: opacity 0.2s ease;
}
.service-desc-body.expanded .service-desc-fade {
    display: none;
}
.btn-toggle-desc {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 7px 12px;
    background: #f8fafc;
    border: none;
    border-top: 1px solid #e2e8f0;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--bs-primary);
    cursor: pointer;
    transition: background 0.15s ease;
}
.btn-toggle-desc:hover {
    background: #f1f5f9;
}

/* Dark Mode Adaptation for Description Card */
[data-pc-theme="dark"] .service-desc-card {
    background: #1b232d !important;
    border-color: #2b3544 !important;
}
[data-pc-theme="dark"] .service-desc-header {
    background: #1b232d !important;
    border-color: #2b3544 !important;
}
[data-pc-theme="dark"] .desc-badge-title {
    color: #e2e8f0 !important;
}
[data-pc-theme="dark"] .btn-copy-desc {
    border-color: #334155 !important;
    color: #94a3b8 !important;
}
[data-pc-theme="dark"] .btn-copy-desc:hover {
    background: rgba(255, 255, 255, 0.08) !important;
    color: #ffffff !important;
}
[data-pc-theme="dark"] .service-desc-content {
    color: #cbd5e1 !important;
}
[data-pc-theme="dark"] .service-desc-fade {
    background: linear-gradient(to bottom, rgba(27, 35, 45, 0), #1b232d) !important;
}
[data-pc-theme="dark"] .btn-toggle-desc {
    background: #151c24 !important;
    border-color: #2b3544 !important;
    color: #60a5fa !important;
}
[data-pc-theme="dark"] .btn-toggle-desc:hover {
    background: #1e2836 !important;
}

/* ========================================================
   Phosphor Icon Picker Modal Styles (Admin Categories)
   ======================================================== */
.ph-icon-grid-container {
    max-height: 380px;
    overflow-y: auto;
    padding: 6px 4px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(95px, 1fr));
    gap: 10px;
    scroll-behavior: smooth;
}

.ph-icon-grid-container::-webkit-scrollbar {
    width: 6px;
}
.ph-icon-grid-container::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.03);
    border-radius: 4px;
}
.ph-icon-grid-container::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.15);
    border-radius: 4px;
}

.ph-icon-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 12px 6px 8px;
    border-radius: 10px;
    border: 1px solid var(--bs-border-color, #e2e8f0);
    background: var(--bs-card-bg, #ffffff);
    cursor: pointer;
    transition: all 0.16s ease-in-out;
    text-align: center;
    user-select: none;
    min-height: 84px;
}

.ph-icon-tile i {
    font-size: 1.85rem;
    margin-bottom: 6px;
    color: var(--bs-body-color, #334155);
    transition: transform 0.15s ease, color 0.15s ease;
}

.ph-icon-tile .ph-icon-name {
    font-size: 0.72rem;
    line-height: 1.25;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--bs-body-color, #475569);
    font-weight: 500;
}

.ph-icon-tile:hover {
    border-color: rgba(var(--bs-primary-rgb, 99, 102, 241), 0.6) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    background: rgba(var(--bs-primary-rgb, 99, 102, 241), 0.04);
}

.ph-icon-tile:hover i {
    transform: scale(1.1);
    color: var(--bs-primary, #6366f1);
}

.ph-icon-tile.selected {
    border: 2px solid var(--bs-primary, #6366f1) !important;
    background: rgba(var(--bs-primary-rgb, 99, 102, 241), 0.1) !important;
    box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb, 99, 102, 241), 0.22);
}

.ph-icon-tile.selected i {
    transform: scale(1.15);
    color: var(--bs-primary, #6366f1) !important;
}

.ph-icon-tile.selected .ph-icon-name {
    color: var(--bs-primary, #6366f1);
    font-weight: 700;
}

.ph-icon-tile .ph-check-badge {
    display: none;
    position: absolute;
    top: 4px;
    right: 4px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--bs-primary, #6366f1);
    color: #fff;
    font-size: 0.65rem;
    align-items: center;
    justify-content: center;
}

.ph-icon-tile.selected .ph-check-badge {
    display: flex;
}

.ph-filter-btn {
    border-radius: 8px !important;
    font-size: 0.78rem !important;
    padding: 0.32rem 0.75rem !important;
    font-weight: 500 !important;
    transition: all 0.15s ease-in-out !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important;
    background: #f1f5f9 !important;
    color: #475569 !important;
    box-shadow: none !important;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.ph-filter-btn:hover {
    background: rgba(var(--bs-primary-rgb, 70, 128, 255), 0.1) !important;
    color: var(--bs-primary, #4680ff) !important;
    border-color: rgba(var(--bs-primary-rgb, 70, 128, 255), 0.25) !important;
}

.ph-filter-btn.active {
    background: var(--bs-primary, #4680ff) !important;
    color: #ffffff !important;
    border-color: var(--bs-primary, #4680ff) !important;
    box-shadow: 0 2px 6px rgba(var(--bs-primary-rgb, 70, 128, 255), 0.28) !important;
}

.ph-filter-btn.active:hover {
    background: var(--bs-primary, #4680ff) !important;
    color: #ffffff !important;
}

/* Dark mode adjustments */
.ph-icon-grid-container::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.03);
    border-radius: 4px;
}
.ph-icon-grid-container::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.15);
    border-radius: 4px;
}
[data-pc-theme="dark"] .ph-icon-grid-container::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.03);
}
[data-pc-theme="dark"] .ph-icon-grid-container::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.15);
}
[data-pc-theme="dark"] .ph-icon-tile {
    background: #1e2632;
    border-color: #2e3b4e;
}
[data-pc-theme="dark"] .ph-icon-tile i {
    color: #cbd5e1;
}
[data-pc-theme="dark"] .ph-icon-tile .ph-icon-name {
    color: #94a3b8;
}
[data-pc-theme="dark"] .ph-icon-tile:hover {
    background: #253040;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}
[data-pc-theme="dark"] .ph-icon-tile.selected {
    background: rgba(99, 102, 241, 0.18) !important;
}
[data-pc-theme="dark"] .ph-selected-preview-box {
    background: #1b232d !important;
    border-color: #2e3b4e !important;
}
[data-pc-theme="dark"] .ph-filter-btn {
    background: #1e2632 !important;
    color: #94a3b8 !important;
    border-color: #2e3b4e !important;
}
[data-pc-theme="dark"] .ph-filter-btn:hover {
    background: rgba(70, 128, 255, 0.2) !important;
    color: #8bb3ff !important;
    border-color: rgba(70, 128, 255, 0.4) !important;
}
[data-pc-theme="dark"] .ph-filter-btn.active {
    background: var(--bs-primary, #4680ff) !important;
    color: #ffffff !important;
    border-color: var(--bs-primary, #4680ff) !important;
}

/* ========================================================
   SweetAlert2 Proportion & Consistency Overrides
   ======================================================== */
.swal2-popup {
    width: 25.5rem !important; /* ~408px, compact & neat */
    max-width: calc(100vw - 2rem) !important;
    padding: 1.5rem 1.25rem 1.25rem !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.08) !important;
    border: 1px solid var(--bs-border-color, #e2e8f0) !important;
}

/* Scaled icon: down from 80px to ~57px */
.swal2-icon {
    font-size: 11.5px !important;
    margin: 0.5rem auto 0.75rem !important;
}

/* Compact heading title */
.swal2-title {
    font-size: 1.25rem !important; /* ~20px */
    font-weight: 600 !important;
    padding: 0.35rem 1rem 0 !important;
    line-height: 1.35 !important;
    color: var(--bs-heading-color, inherit) !important;
}

/* Body / description text */
.swal2-html-container {
    font-size: 0.85rem !important; /* ~13.6px matching body text */
    line-height: 1.55 !important;
    padding: 0.45rem 0.75rem 0 !important;
    margin: 0 !important;
    color: var(--bs-body-color, #64748b) !important;
}

/* Actions container spacing */
.swal2-actions {
    margin-top: 1.25rem !important;
}

/* Dark mode for SweetAlert2 */
[data-pc-theme="dark"] .swal2-popup {
    background: #1b232d !important;
    border: 1px solid #2e3b4e !important;
    color: #e2e8f0 !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5) !important;
}

[data-pc-theme="dark"] .swal2-title {
    color: #f8fafc !important;
}

[data-pc-theme="dark"] .swal2-html-container {
    color: #94a3b8 !important;
}

[data-pc-theme="dark"] .swal2-icon.swal2-success [class^="swal2-success-circular-line"],
[data-pc-theme="dark"] .swal2-icon.swal2-success .swal2-success-fix {
    background-color: #1b232d !important;
}
/* Insight Layanan (Performance Cards) Mobile Responsiveness & Polish */
.insight-metrics-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 12px;
}
@media (min-width: 576px) {
    .insight-metrics-grid {
        grid-template-columns: 1fr 1fr;
    }
}
.insight-badge-pill,
#service_badges_row .badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    vertical-align: middle;
}
.insight-badge-pill {
    height: 20px;
    padding: 0 8px !important;
}
#service_badges_row .badge {
    height: 24px;
    padding: 0 9px !important;
}
#service_badges_row .badge i {
    font-size: 12.5px;
    line-height: 1 !important;
    display: inline-block !important;
    margin-right: 0 !important;
}
#service_badges_row .badge span {
    line-height: 1 !important;
    display: inline-block;
}
@media (max-width: 575.98px) {
    .insight-chart-header {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 6px !important;
    }
    .insight-chart-tab-switcher {
        width: 100%;
        display: flex !important;
    }
    .insight-btn-chart-tab {
        flex: 1;
        text-align: center;
        padding: 6px 8px !important;
    }
}
.insight-soft-callout {
    padding: 12px 14px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.02);
    margin-top: 6px;
}
@media (max-width: 480px) {
    .insight-cohort-bars-timeline {
        gap: 5px !important;
    }
    .insight-cohort-capsule span {
        font-size: 9.5px !important;
    }
    .insight-cohort-pill {
        font-size: 10px !important;
    }
    .insight-cohort-axis-footer {
        font-size: 10px !important;
    }
}



