/**
 * Bharat Swasthya Setu — P6 polish
 * Dark-mode Bootstrap bridges, illustrations, a11y helpers.
 * Depends on tokens.css + components.css
 */

:root {
  color-scheme: light;
}

[data-theme="dark"] {
  color-scheme: dark;
}

/* ── Theme toggle ── */
.bss-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  min-width: var(--touch-dense);
  min-height: var(--touch-dense);
  padding: 0;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  cursor: pointer;
  transition: background var(--motion-fast), border-color var(--motion-fast);
}

.bss-theme-toggle:hover {
  background: rgba(255, 255, 255, 0.16);
}

.bss-theme-toggle:focus-visible {
  box-shadow: var(--focus-ring);
}

.bss-theme-toggle--on-light {
  border-color: var(--color-border-subtle);
  background: var(--color-bg-muted);
  color: var(--color-text-primary);
}

.bss-theme-toggle--on-light:hover {
  background: var(--color-brand-soft);
  color: var(--color-brand-primary);
}

/* Public header placement */
.bss-header-actions .bss-theme-toggle {
  border-color: var(--color-border-subtle);
  background: var(--color-bg-muted);
  color: var(--color-text-secondary);
}

/* ── Illustrations ── */
.bss-illu {
  display: block;
  margin: 0 auto var(--space-3);
  max-width: 140px;
  height: auto;
}

.bss-empty .bss-illu,
.bss-empty-state .bss-illu {
  margin-bottom: var(--space-4);
}

/* ── Dark mode · Bootstrap / legacy bridges ── */
[data-theme="dark"] body,
[data-theme="dark"] .bss-body,
[data-theme="dark"] .admin-body,
[data-theme="dark"] .clinic-body {
  background-color: var(--color-bg-app) !important;
  color: var(--color-text-primary);
}

[data-theme="dark"] .card,
[data-theme="dark"] .bg-white,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .dropdown-menu,
[data-theme="dark"] .list-group-item,
[data-theme="dark"] .table,
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select,
[data-theme="dark"] .form-control-plaintext,
[data-theme="dark"] .input-group-text,
[data-theme="dark"] .portal-card,
[data-theme="dark"] .offcanvas,
[data-theme="dark"] .accordion-item,
[data-theme="dark"] .popover,
[data-theme="dark"] .toast {
  background-color: var(--color-bg-surface) !important;
  color: var(--color-text-primary);
  border-color: var(--color-border-subtle) !important;
}

[data-theme="dark"] .table-light,
[data-theme="dark"] .card-header,
[data-theme="dark"] .card-footer,
[data-theme="dark"] .modal-footer,
[data-theme="dark"] .modal-header:not(.bg-primary),
[data-theme="dark"] .bg-light,
[data-theme="dark"] .accordion-button,
[data-theme="dark"] .list-group-item-action:hover,
[data-theme="dark"] .list-group-item-action:focus {
  background-color: var(--color-bg-muted) !important;
  color: var(--color-text-primary);
  border-color: var(--color-border-subtle) !important;
}

[data-theme="dark"] .text-dark,
[data-theme="dark"] .text-body,
[data-theme="dark"] .text-black,
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6,
[data-theme="dark"] .h1,
[data-theme="dark"] .h2,
[data-theme="dark"] .h3,
[data-theme="dark"] .h4,
[data-theme="dark"] .h5,
[data-theme="dark"] .h6 {
  color: var(--color-text-primary) !important;
}

[data-theme="dark"] .text-muted,
[data-theme="dark"] .text-secondary,
[data-theme="dark"] .form-text,
[data-theme="dark"] .form-label,
[data-theme="dark"] small,
[data-theme="dark"] .small {
  color: #c5d0de !important;
}

/* Plain-prose link fallback for dark mode. Uses a single combined :not()
   (not chained :not() clauses) so its specificity stays low (1 class-worth)
   and never outranks purpose-built chrome/component link colors (footer,
   navbar, cards, chips, etc.) — chaining ":not(a):not(b):not(c)" instead
   of ":not(a, b, c)" was accidentally summing specificity and overriding
   deliberately white/colored links across the site. */
[data-theme="dark"] a:not(.btn, .nav-link, .dropdown-item, .bss-btn, .page-link, [class]) {
  color: var(--color-brand-primary);
}

[data-theme="dark"] a:not(.btn, .nav-link, .dropdown-item, .bss-btn, .page-link, [class]):hover {
  color: var(--color-brand-primary-hover);
}

[data-theme="dark"] .border,
[data-theme="dark"] .border-bottom,
[data-theme="dark"] .border-top,
[data-theme="dark"] .border-start,
[data-theme="dark"] .border-end,
[data-theme="dark"] hr {
  border-color: var(--color-border-subtle) !important;
}

[data-theme="dark"] .table-hover > tbody > tr:hover > * {
  --bs-table-bg-state: var(--color-bg-muted);
  color: var(--color-text-primary);
}

[data-theme="dark"] .table > :not(caption) > * > * {
  border-bottom-color: var(--color-border-subtle);
  color: var(--color-text-primary);
}

[data-theme="dark"] .form-control::placeholder,
[data-theme="dark"] .form-select::placeholder,
[data-theme="dark"] textarea::placeholder,
[data-theme="dark"] input::placeholder {
  color: #d7e0eb !important;
  opacity: 1 !important;
}

[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select,
[data-theme="dark"] textarea.form-control {
  color: var(--color-text-primary, #f1f5f9);
  background-color: var(--color-bg-elevated, #151b26);
  border-color: var(--color-border-subtle, #2a3648);
  padding-left: 1rem;
  padding-right: 1rem;
}

[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
  border-color: var(--color-focus);
  box-shadow: var(--focus-ring);
  background-color: var(--color-bg-elevated);
  color: var(--color-text-primary);
}

[data-theme="dark"] .form-control:disabled,
[data-theme="dark"] .form-select:disabled,
[data-theme="dark"] .form-control[readonly] {
  background-color: var(--color-bg-muted) !important;
  color: var(--color-text-secondary);
  opacity: 1;
}

[data-theme="dark"] .dropdown-item {
  color: var(--color-text-primary);
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus,
[data-theme="dark"] .dropdown-item.active {
  background-color: var(--color-bg-muted);
  color: var(--color-text-primary);
}

[data-theme="dark"] .dropdown-divider {
  border-top-color: var(--color-border-subtle);
}

[data-theme="dark"] .nav-tabs {
  border-bottom-color: var(--color-border-subtle);
}

[data-theme="dark"] .nav-tabs .nav-link {
  color: var(--color-text-secondary);
}

[data-theme="dark"] .nav-tabs .nav-link:hover,
[data-theme="dark"] .nav-tabs .nav-link:focus {
  border-color: var(--color-border-strong);
  color: var(--color-text-primary);
}

[data-theme="dark"] .nav-tabs .nav-link.active {
  background-color: var(--color-bg-surface);
  border-color: var(--color-border-subtle) var(--color-border-subtle) var(--color-bg-surface);
  color: var(--color-text-primary);
}

[data-theme="dark"] .page-link {
  background-color: var(--color-bg-surface);
  border-color: var(--color-border-subtle);
  color: var(--color-brand-primary);
}

[data-theme="dark"] .page-link:hover {
  background-color: var(--color-bg-muted);
  border-color: var(--color-border-strong);
  color: var(--color-brand-primary-hover);
}

[data-theme="dark"] .page-item.active .page-link {
  background-color: var(--color-brand-primary-solid);
  border-color: var(--color-brand-primary-solid);
  color: var(--color-on-brand, #fff);
}

[data-theme="dark"] .page-item.disabled .page-link {
  background-color: var(--color-bg-muted);
  border-color: var(--color-border-subtle);
  color: var(--color-text-tertiary);
}

/* Primary fills must stay solid brand — lightened --color-brand-primary is for text/links */
[data-theme="dark"] .btn-primary,
[data-theme="dark"] .bss-btn--primary,
[data-theme="dark"] .ds-btn-primary,
[data-theme="dark"] .bss-hp-btn--primary,
[data-theme="dark"] .bss-carebar__cta,
[data-theme="dark"] .bss-footer-install__btn,
[data-theme="dark"] .bss-stakeholder-feature__cta,
[data-theme="dark"] .bss-stakeholder-role__cta,
[data-theme="dark"] .bss-coc-live-card__cta,
[data-theme="dark"] .clinic-btn-call:not(:disabled) {
  background-color: var(--color-brand-primary-solid, #0f4c81) !important;
  border-color: var(--color-brand-primary-solid, #0f4c81) !important;
  color: #ffffff !important;
}

[data-theme="dark"] .clinic-btn-complete:not(:disabled) {
  background-color: var(--color-accent-care-solid, #0f8a6b) !important;
  border-color: var(--color-accent-care-solid, #0f8a6b) !important;
  color: #ffffff !important;
}

[data-theme="dark"] .clinic-btn-complete:not(:disabled):hover {
  background-color: #0b6e55 !important;
  border-color: #0b6e55 !important;
  color: #ffffff !important;
}

[data-theme="dark"] .btn-primary:hover,
[data-theme="dark"] .bss-btn--primary:hover,
[data-theme="dark"] .ds-btn-primary:hover,
[data-theme="dark"] .bss-hp-btn--primary:hover,
[data-theme="dark"] .bss-carebar__cta:hover,
[data-theme="dark"] .bss-footer-install__btn:hover,
[data-theme="dark"] .bss-stakeholder-feature__cta:hover,
[data-theme="dark"] .bss-stakeholder-role__cta:hover,
[data-theme="dark"] .bss-coc-live-card__cta:hover,
[data-theme="dark"] .clinic-btn-call:hover:not(:disabled) {
  background-color: #0a3a66 !important;
  border-color: #0a3a66 !important;
  color: #ffffff !important;
}

[data-theme="dark"] .btn-outline-secondary,
[data-theme="dark"] .btn-outline-dark {
  color: var(--color-text-primary);
  border-color: var(--color-border-strong);
}

[data-theme="dark"] .btn-outline-secondary:hover,
[data-theme="dark"] .btn-outline-dark:hover {
  background-color: var(--color-bg-muted);
  border-color: var(--color-border-strong);
  color: var(--color-text-primary);
}

/* Light islands (white cards) — keep ink readable against a11y remaps */
[data-theme="dark"] .bss-theme-island-light,
[data-theme="dark"] .bss-btn-hero-primary {
  color-scheme: light;
}

[data-theme="dark"] .bss-theme-island-light,
[data-theme="dark"] .bss-theme-island-light :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .text-dark, .text-body, .text-black),
[data-theme="dark"] .bss-btn-hero-primary {
  color: #0f1a2a !important;
}

[data-theme="dark"] .bss-theme-island-light :is(.text-muted, .text-secondary, .form-text, .form-label, small, .small) {
  color: #536274 !important;
}

[data-theme="dark"] .bss-theme-island-light :is(.btn-outline-secondary, .btn-outline-dark) {
  color: #536274 !important;
  border-color: #c5d0de !important;
  background: #fff !important;
}

[data-theme="dark"] .btn-light {
  background-color: var(--color-bg-muted);
  border-color: var(--color-border-subtle);
  color: var(--color-text-primary);
}

[data-theme="dark"] .btn-light:hover {
  background-color: var(--color-bg-elevated);
  border-color: var(--color-border-strong);
  color: var(--color-text-primary);
}

[data-theme="dark"] .btn-close:not(.btn-close-white) {
  filter: invert(1) grayscale(1);
}

[data-theme="dark"] .alert {
  border-color: var(--color-border-subtle);
}

[data-theme="dark"] .alert-secondary,
[data-theme="dark"] .alert-light {
  background-color: var(--color-bg-muted);
  color: var(--color-text-primary);
}

[data-theme="dark"] .badge.bg-light,
[data-theme="dark"] .badge.text-bg-light {
  background-color: var(--color-bg-muted) !important;
  color: var(--color-text-primary) !important;
}

[data-theme="dark"] .bss-page-header__title,
[data-theme="dark"] .bss-page-header__subtitle {
  color: var(--color-text-primary);
}

[data-theme="dark"] .bss-page-header__subtitle {
  color: var(--color-text-secondary);
}

[data-theme="dark"] ::selection {
  background: color-mix(in srgb, var(--color-brand-primary) 45%, transparent);
  color: var(--color-text-primary);
}

/* Marketing surfaces — header/footer owned by marketing.css */
[data-theme="dark"] .bss-topbar-label {
  color: rgba(248, 250, 252, 0.72);
}

/* Portal top bars — never inherit light text-primary into chrome backgrounds */
[data-theme="dark"] .bss-shell__top,
[data-theme="dark"] .clinic-header,
[data-theme="dark"] .b2b-shell-header {
  background: linear-gradient(
    135deg,
    var(--color-chrome) 0%,
    var(--color-chrome-mid) 55%,
    var(--color-chrome-deep) 100%
  ) !important;
  color: var(--color-chrome-text) !important;
  border-bottom-color: var(--color-chrome-border) !important;
}

[data-theme="dark"] .bss-shell__brand,
[data-theme="dark"] .bss-shell__brand-name,
[data-theme="dark"] .clinic-brand,
[data-theme="dark"] .clinic-staff-name,
[data-theme="dark"] .vendor-user-chip,
[data-theme="dark"] .vendor-user-chip__name,
[data-theme="dark"] .b2b-brand,
[data-theme="dark"] .b2b-user-chip {
  color: var(--color-chrome-text) !important;
}

[data-theme="dark"] .bss-shell__brand-sub,
[data-theme="dark"] .vendor-user-chip__area,
[data-theme="dark"] .b2b-brand .bss-shell__brand-sub {
  color: var(--color-chrome-muted) !important;
}

[data-theme="dark"] .bss-shell__top .bss-theme-toggle,
[data-theme="dark"] .clinic-header .bss-theme-toggle,
[data-theme="dark"] .b2b-shell-header .bss-theme-toggle {
  border-color: var(--color-chrome-border);
  background: var(--color-chrome-soft);
  color: var(--color-chrome-text);
}

[data-theme="dark"] .bss-shell__top .bss-lang-switch,
[data-theme="dark"] .clinic-header .bss-lang-switch,
[data-theme="dark"] .clinic-header-toolbar {
  background: var(--color-chrome-soft);
  border-color: var(--color-chrome-border);
}

[data-theme="dark"] .bss-shell__top .bss-lang-btn,
[data-theme="dark"] .clinic-header .bss-lang-btn,
[data-theme="dark"] .clinic-header-tool-btn {
  color: var(--color-chrome-text);
}

[data-theme="dark"] .bss-shell__top .bss-lang-btn.active,
[data-theme="dark"] .clinic-header .bss-lang-btn.active {
  background: #fff;
  color: var(--color-chrome);
}

/* ── A11y ── */
.bss-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Ensure interactive controls meet touch density on mobile */
@media (max-width: 639.98px) {
  .bss-theme-toggle,
  .bss-btn.bss-btn--sm {
    min-height: var(--touch-min);
    min-width: var(--touch-min);
  }
}

/* ── Portal dark readability (admin / vendor / clinic / B2B) ── */
[data-theme="dark"][data-portal="admin"] .bss-shell__nav .nav-link,
[data-theme="dark"][data-portal="vendor"] .vendor-nav-link,
[data-theme="dark"][data-portal="distributor"] .b2b-nav a,
[data-theme="dark"][data-portal="mr"] .b2b-nav a {
  color: #c5d0de !important;
}

[data-theme="dark"][data-portal="admin"] .bss-shell__nav .nav-link.admin-nav-link.active,
[data-theme="dark"][data-portal="vendor"] .vendor-nav-link.active,
[data-theme="dark"][data-portal="distributor"] .b2b-nav a.active,
[data-theme="dark"][data-portal="mr"] .b2b-nav a.active,
[data-theme="dark"][data-portal="distributor"] .b2b-mobile-nav a.active,
[data-theme="dark"][data-portal="mr"] .b2b-mobile-nav a.active {
  background: var(--color-brand-primary-solid, #0f4c81) !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

[data-theme="dark"][data-portal="vendor"] .vendor-nav-link.active .vendor-nav-link__hint {
  color: rgba(255, 255, 255, 0.78) !important;
}

[data-theme="dark"] .form-text,
[data-theme="dark"] .portal-form-hint,
[data-theme="dark"] .portal-form-label,
[data-theme="dark"] .admin-field-hint {
  color: #b8c4d4 !important;
}

[data-theme="dark"] .portal-input::placeholder,
[data-theme="dark"] .portal-textarea::placeholder,
[data-theme="dark"] .portal-select::placeholder {
  color: #d7e0eb !important;
  opacity: 1 !important;
}

[data-theme="dark"] .portal-input,
[data-theme="dark"] .portal-textarea,
[data-theme="dark"] .portal-select {
  color: #f8fafc !important;
  padding-left: 1rem;
  padding-right: 1rem;
}

[data-theme="dark"] .btn,
[data-theme="dark"] .bss-btn {
  padding-left: 1.1rem;
  padding-right: 1.1rem;
}

[data-theme="dark"] .btn.bss-btn--sm,
[data-theme="dark"] .bss-btn--sm {
  padding-left: 0.85rem;
  padding-right: 0.85rem;
}

[data-theme="dark"] .breadcrumb,
[data-theme="dark"] .breadcrumb-item,
[data-theme="dark"] .breadcrumb-item a,
[data-theme="dark"] .admin-breadcrumbs__item a {
  color: #d7e0eb !important;
}

[data-theme="dark"] .breadcrumb-item.active,
[data-theme="dark"] .admin-breadcrumbs__item [aria-current="page"] {
  color: #f8fafc !important;
}

[data-theme="dark"] .card,
[data-theme="dark"] .bss-panel,
[data-theme="dark"] .admin-settings-hub__tile {
  color: var(--color-text-primary, #f1f5f9);
}

[data-theme="dark"] .card .text-muted,
[data-theme="dark"] .bss-panel .text-muted,
[data-theme="dark"] .admin-settings-hub__tile .text-muted,
[data-theme="dark"] .admin-settings-hub__tile p {
  color: #b8c4d4 !important;
}
