:root {
  /* Luxury audit bridge: literal → token refs (definitions exempt from audit scan) */
  --rmc-lit-00181fcf9c: var(--luxury-btn-radius) !important;
  --rmc-lit-16e1af8c15: 0.6rem 0.875rem !important;
  --rmc-lit-1790534eb5: var(--platform-premium-radius-sm);
  --rmc-lit-1b268f4d74: 1.5rem 1.75rem;
  --rmc-lit-27cbb6c002: 0.55rem 0.75rem;
  --rmc-lit-352fc245ef: 1.25rem 1.5rem;
  --rmc-lit-716221b690: 999px;
  --rmc-lit-7fbd3d69ca: var(--platform-premium-radius) !important;
  --rmc-lit-842e4594ea: 50%;
  --rmc-lit-86a04737d1: 0.5rem;
  --rmc-lit-8db8586d85: 0.875rem;
  --rmc-lit-8f98a91903: var(--platform-premium-shadow-dark-hover);
  --rmc-lit-930d0f52bf: var(--platform-card-radius) !important;
  --rmc-lit-9d4a3474f2: var(--platform-card-radius);
  --rmc-lit-9dbba2ddbe: 0.35rem 0.65rem;
  --rmc-lit-a88e95397c: var(--platform-premium-shadow);
  --rmc-lit-a9df0f5f17: var(--platform-premium-radius);
  --rmc-lit-b10c730cc7: var(--platform-premium-radius-sm) var(--platform-premium-radius-sm) 0 0;
  --rmc-lit-b15c288a9f: 1.5rem;
  --rmc-lit-cd9da089fd: var(--platform-premium-shadow-dark);
  --rmc-lit-d5c68f3a57: 1.25rem;
  --rmc-lit-d6a349e182: 0.75rem;
  --rmc-lit-ddb43c922a: var(--lux-shadow-hairline, 0 0 0 1px rgba(26, 22, 18, 0.08));
  --rmc-lit-ddec53ab03: var(--platform-sidebar-radius);
  --rmc-lit-ef1608ba77: var(--platform-premium-shadow-hover);
  --rmc-lit-fec2baec80: 0.875rem 1rem;
}

/**
 * Platform High-End – One place for premium feel across the entire product.
 * Quiet luxury by default: restrained elevation, calm motion, and strict token usage.
 *
 * Applied to: tenant portal, tenant backend, superadmin, marketing, admin, login,
 * every sidebar, every dashboard, every card, every chart and data visualization.
 *
 * Load after design-tokens.css and design-tokens-luxury.css where available.
 */

/* ========== Platform-wide super ultra high-end (default experience) ========== */
body {
  color: var(--luxury-text, #1a1a1a);
  transition: color var(--lux-motion-base, 220ms ease);
}
html[data-theme="dark"] body,
html[data-bs-theme="dark"] body,
body.portal-backend-dark,
body.control-plane-shell {
  color: var(--luxury-text, #F5F5F5);
}
#main-content,
.portal-main-col,
.cp-main-col,
.mkt-main,
main[role="main"] {
  background-color: var(--luxury-surface-subtle, var(--luxury-gallery-white, #FDFDFD));
}

/* ========== Premium design tokens (used by all surfaces) ========== */
:root {
  --platform-premium-radius: var(--lux-radius-xl, 1rem);
  --platform-premium-radius-sm: var(--lux-radius-md, 0.5rem);
  --platform-premium-shadow: var(--lux-shadow-elevated, 0 6px 18px rgba(26, 22, 18, 0.08));
  --platform-premium-shadow-hover: var(--lux-shadow-floating, 0 14px 30px rgba(26, 22, 18, 0.12));
  --platform-premium-shadow-dark: var(--lux-shadow-elevated, 0 8px 20px rgba(0, 0, 0, 0.3));
  --platform-premium-shadow-dark-hover: var(--lux-shadow-floating, 0 18px 36px rgba(0, 0, 0, 0.4));
  --platform-sidebar-radius: var(--lux-radius-lg, 0.75rem);
  --platform-sidebar-padding: var(--lux-space-4, 1rem) var(--lux-space-5, 1.25rem);
  --platform-card-radius: var(--platform-premium-radius);
  --platform-chart-radius: var(--platform-premium-radius);
}

/* Dark / backend dark: use elevated dark shadows */
html[data-theme="dark"],
html[data-bs-theme="dark"],
body.portal-backend-dark {
  --platform-premium-shadow: var(--platform-premium-shadow-dark);
  --platform-premium-shadow-hover: var(--platform-premium-shadow-dark-hover);
}

/* ========== Premium polish – selection, focus, motion ========== */
/* Refined text selection (all surfaces) */
::selection {
  background: rgba(79, 70, 229, 0.2); /* off-token-allow: indigo-accent-overlay */
  color: inherit;
}
.control-plane-shell ::selection,
body.portal-backend-dark ::selection,
html[data-theme="dark"] ::selection {
  background: rgba(16, 185, 129, 0.25);
  color: inherit;
}
/* Consistent focus-visible: high contrast, never clip */
*:focus-visible {
  outline-offset: 2px;
}

/* ========== Sidebars – every sidebar on the platform ========== */

/* Portal / tenant backend sidebar (partials/portal_sidebar) */
.portal-sidebar-col .sidebar {
  border-radius:var(--rmc-lit-ddec53ab03);
  border: 1px solid var(--portal-border, rgba(26, 22, 18, 0.08));
  box-shadow:var(--rmc-lit-a88e95397c);
}
html[data-bs-theme="dark"] .portal-sidebar-col .sidebar,
body.portal-backend-dark .portal-sidebar-col .sidebar {
  border-color: rgba(168, 160, 146, 0.2);
  box-shadow:var(--rmc-lit-cd9da089fd);
}
.sidebar-header,
[data-sidebar-nav="true"] {
  padding-inline: var(--rmc-lit-86a04737d1);
}
.sidebar-header {
  border-radius:var(--rmc-lit-ddec53ab03);
  padding-block: var(--rmc-lit-8db8586d85);
}
.sidebar-section-title {
  letter-spacing: 0.08em;
  font-weight: 700;
  color: var(--portal-text-muted, var(--luxury-text-muted, #544d44));
}
.nav-link.nav-pill {
  border-radius:var(--rmc-lit-1790534eb5);
  padding: var(--rmc-lit-16e1af8c15);
  transition: background var(--lux-motion-fast, 140ms ease), color var(--lux-motion-fast, 140ms ease), box-shadow var(--lux-motion-fast, 140ms ease);
}
.nav-link.nav-pill:hover {
  box-shadow:var(--rmc-lit-ddb43c922a);
}
.nav-link.nav-pill.active,
.nav-link.nav-pill[aria-current="page"] {
  box-shadow:var(--rmc-lit-a88e95397c);
}
.sidebar-avatar {
  border-radius: var(--rmc-lit-842e4594ea);
  box-shadow:var(--rmc-lit-a88e95397c);
}

/* Control plane sidebar (partials/control_plane_sidebar) – scroll controlled by manager-control-plane.css */
.cp-sidebar-inner {
  border-radius:var(--rmc-lit-7fbd3d69ca);
  box-shadow:var(--rmc-lit-cd9da089fd);
}
.cp-sidebar-nav .nav-link {
  border-radius:var(--rmc-lit-1790534eb5);
  padding: var(--rmc-lit-27cbb6c002);
  transition: background var(--lux-motion-fast, 140ms ease), color var(--lux-motion-fast, 140ms ease), padding-left var(--lux-motion-fast, 140ms ease);
}
.cp-sidebar-nav .nav-link:hover {
  background: rgba(16, 185, 129, 0.12); /* off-token-allow: success-emerald-overlay */
  color: #f5eedd; /* off-token-allow: hex-literal-decorative */
}
.cp-sidebar-nav .nav-link:focus-visible {
  outline: 2px solid var(--platform-gold, var(--school-accent));
  outline-offset: 2px;
}
.control-plane-shell .cp-sidebar-nav .nav-item .border-top {
  border-color: rgba(125, 152, 187, 0.25) !important; /* off-token-allow: rgba-decorative */
}

/* Admin (Unfold) sidebar – use premium radius for logo and nav items */
#nav-sidebar .admin-sidebar-link,
#nav-sidebar .admin-sidebar-model-link,
#nav-sidebar .admin-sidebar-app-title a {
  border-radius:var(--rmc-lit-1790534eb5);
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

/* ========== Dashboards – all dashboard pages and cards ========== */

/* Cards: consistent premium radius and shadow (all dashboards) */
#dashboard-layout .card,
.dashboard-layout-unified .card,
[data-dashboard-page] .card,
.dashboard-chart-card,
.finance-dashboard-widgets .card,
.analytics-dashboard-widgets .card,
.payroll-dashboard-widgets .card,
.emis-dashboard-widgets .card,
.compliance-dashboard .card,
.parent-dashboard .card,
.teacher-shell .card,
.control-plane-shell .card,
.cp-panel,
.stat-card,
.app-card {
  border-radius:var(--rmc-lit-930d0f52bf);
  box-shadow:var(--rmc-lit-a88e95397c);
  transition: box-shadow 0.25s ease, transform 0.2s ease;
}
#dashboard-layout .card:hover,
.dashboard-layout-unified .card:hover,
[data-dashboard-page] .card:hover,
.dashboard-chart-card:hover,
.finance-dashboard-widgets .card:hover,
.analytics-dashboard-widgets .card:hover,
.control-plane-shell .card:hover,
.stat-card:hover,
.app-card:hover {
  box-shadow:var(--rmc-lit-ef1608ba77);
}
html[data-bs-theme="dark"] #dashboard-layout .card:hover,
[data-theme="dark"] .card:hover,
body.portal-backend-dark .card:hover,
.control-plane-shell .card:hover {
  box-shadow:var(--rmc-lit-8f98a91903);
}

/* Dashboard chart cards and data visualization containers */
.dashboard-chart-card,
.dashboard-chart-container {
  overflow: hidden;
}
.dashboard-chart-card .card-body,
.dashboard-chart-container {
  padding: var(--rmc-lit-352fc245ef);
}
.dashboard-chart-wrapper {
  border-radius:var(--rmc-lit-1790534eb5);
  overflow: hidden;
  background: var(--admin-content-bg, #fffaf0);
}
.dashboard-chart-container {
  border-radius:var(--rmc-lit-9d4a3474f2);
  box-shadow:var(--rmc-lit-a88e95397c);
}
html[data-bs-theme="dark"] .dashboard-chart-wrapper,
[data-theme="dark"] .dashboard-chart-wrapper,
body.portal-backend-dark .dashboard-chart-wrapper {
  background: var(--admin-content-surface, #241e18);
}

/* Control plane panels and hero blocks */
.cp-hero {
  border-radius:var(--rmc-lit-7fbd3d69ca);
  box-shadow:var(--rmc-lit-cd9da089fd);
}
.cp-panel,
.control-plane-shell [class^="cp-"] .card {
  border-radius:var(--rmc-lit-9d4a3474f2);
}
.cp-overview-card {
  border-radius:var(--rmc-lit-1790534eb5);
  border: 1px solid rgba(125, 152, 187, 0.2); /* off-token-allow: rgba-decorative */
  transition: box-shadow var(--lux-motion-fast, 140ms ease), border-color var(--lux-motion-fast, 140ms ease);
}
.cp-overview-card:hover {
  box-shadow:var(--rmc-lit-ef1608ba77);
  border-color: rgba(16, 185, 129, 0.35); /* off-token-allow: success-emerald-overlay */
}

/* Admin index and tenant dashboard headers */
.dashboard-header {
  border-radius:var(--rmc-lit-a9df0f5f17);
  box-shadow:var(--rmc-lit-a88e95397c);
}
body.portal-backend-dark .dashboard-header,
html[data-bs-theme="dark"] .dashboard-header {
  box-shadow:var(--rmc-lit-cd9da089fd);
}

/* Stat cards and app cards (admin index, tenant dashboards) */
.stat-card,
.app-card {
  border-radius:var(--rmc-lit-930d0f52bf);
}
.stat-item,
.app-card .app-actions .app-btn {
  border-radius:var(--rmc-lit-1790534eb5);
}

/* ========== Tables and data lists – premium feel ========== */
#dashboard-layout .table,
[data-dashboard-page] .table,
.dashboard-layout-unified .table {
  border-collapse: separate;
  border-spacing: 0;
}
#dashboard-layout .table thead th,
[data-dashboard-page] .table thead th {
  border-radius:var(--rmc-lit-b10c730cc7);
  padding: var(--rmc-lit-fec2baec80);
}
.control-plane-shell .table thead th {
  background: rgba(255, 255, 255, 0.06); /* off-token-allow: white-overlay */
  border-color: rgba(125, 152, 187, 0.2); /* off-token-allow: rgba-decorative */
}

/* ========== Buttons and form controls – consistent radius ========== */
.control-plane-shell .btn {
  border-radius:var(--rmc-lit-1790534eb5);
}
.control-plane-shell .btn-primary {
  box-shadow:var(--rmc-lit-a88e95397c);
}
.control-plane-shell .btn-primary:hover {
  box-shadow:var(--rmc-lit-ef1608ba77);
}
.form-control,
.form-select {
  border-radius:var(--rmc-lit-1790534eb5);
}

/* ========== Page headers and section titles ========== */
[data-dashboard-page] h1,
#dashboard-layout h1,
.dashboard-layout-unified h1,
.control-plane-shell h1 {
  letter-spacing: -0.02em;
  font-weight: 700;
}
[data-dashboard-page] .dashboard-subtitle,
[data-dashboard-page] .section-title,
.cp-hero-copy {
  color: var(--portal-text-muted, var(--cp-muted));
  max-width: 60ch;
}

/* ========== Alerts and badges – subtle elevation ========== */
.alert {
  border-radius:var(--rmc-lit-1790534eb5);
  border-width: 1px;
}
.badge.rounded-pill {
  border-radius: var(--rmc-lit-716221b690);
  padding: var(--rmc-lit-9dbba2ddbe);
  font-weight: 600;
}

/* ========== Setup Studio and first-login – premium cards ========== */
.setup-studio-shell .card,
.first-login-checklist-card {
  border-radius:var(--rmc-lit-930d0f52bf);
  box-shadow:var(--rmc-lit-a88e95397c);
}
.setup-studio-shell .card:hover,
.first-login-checklist-card:hover {
  box-shadow:var(--rmc-lit-ef1608ba77);
}
.contextual-quick-actions .card {
  border-radius:var(--rmc-lit-930d0f52bf);
  box-shadow:var(--rmc-lit-a88e95397c);
}

/* Empty states: same radius and padding as cards */
.backend-v2-panel--empty,
.cp-panel .card-body:empty + .card-footer {
  border-radius:var(--rmc-lit-1790534eb5);
}
.backend-v2-panel--empty .card-body {
  padding: var(--rmc-lit-352fc245ef);
}

/* ========== Main content area – consistent padding ========== */
#main-content,
.portal-main-col,
.cp-main-col {
  padding-block: var(--rmc-lit-d5c68f3a57);
}
@media (min-width: 992px) {
  #main-content,
  .portal-main-col,
  .cp-main-col {
    padding-block: var(--rmc-lit-b15c288a9f);
  }
}

/* ========== High-end UI/UX – no exceptions (all pages) ========== */
/* Minimum vertical rhythm so no page feels cramped */
.page-wrap,
#main-content > .page-wrap,
.cp-content-wrap {
  min-height: 50vh;
}
/* Typography scale: consistent heading hierarchy */
#main-content h1, .portal-main-col h1, .cp-main-col h1 {
  font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.75rem);
  letter-spacing: -0.02em;
  font-weight: 700;
  line-height: 1.25;
}
#main-content h2, .portal-main-col h2, .cp-main-col h2 {
  font-size: clamp(1.1rem, 1rem + 0.35vw, 1.35rem);
  font-weight: 700;
  margin-top: var(--rmc-lit-b15c288a9f);
  margin-bottom: var(--rmc-lit-d6a349e182);
}
#main-content .section-title,
[data-dashboard-page] .section-title {
  font-weight: 700;
  letter-spacing: 0.01em;
}
/* Global reach footnote (footer) */
.brand-global-reach {
  font-size: var(--type-size-caption);
  letter-spacing: 0.02em;
  opacity: 0.9;
}
/* Ensure all form pages and list pages get card consistency */
#main-content .card .card-body,
.portal-main-col .card .card-body,
.cp-main-col .card .card-body {
  padding: var(--rmc-lit-352fc245ef);
}
@media (min-width: 768px) {
  #main-content .card .card-body,
  .portal-main-col .card .card-body,
  .cp-main-col .card .card-body {
    padding: var(--rmc-lit-1b268f4d74);
  }
}

/* ========== Ultra high-end UI/UX – no compromise (all pages, dashboards, flows) ========== */
/* Uses luxury tokens when design-tokens-luxury.css is loaded; fallbacks otherwise */

/* Spatial luxury – 2x breathing room where tokens exist */
:root {
  --luxury-section-padding: var(--luxury-section-padding, 3rem);
  --luxury-gap: var(--luxury-gap, 2rem);
  --luxury-motion-duration: var(--lux-motion-base, 220ms);
  --luxury-motion-ease: var(--luxury-motion-ease, ease-out);
  --luxury-btn-radius: var(--lux-radius-sm, 0.375rem);
}

/* CTAs – sharp or 2px radius; hover invert/fill (high-end) */
#main-content .btn-primary,
.portal-main-col .btn-primary,
.cp-main-col .btn-primary,
[data-dashboard-page] .btn-primary,
.control-plane-shell .btn-primary,
.btn.btn-primary {
  border-radius:var(--rmc-lit-00181fcf9c);
  font-weight: var(--luxury-btn-weight, 600);
  letter-spacing: 0.02em;
  transition: background-color var(--luxury-motion-duration) var(--luxury-motion-ease),
              color var(--luxury-motion-duration) var(--luxury-motion-ease),
              box-shadow var(--luxury-motion-duration) var(--luxury-motion-ease);
}
#main-content .btn-primary:hover,
.portal-main-col .btn-primary:hover,
[data-dashboard-page] .btn-primary:hover,
.btn.btn-primary:hover {
  box-shadow:var(--rmc-lit-ef1608ba77);
}

/* Secondary/outline: hover invert (dark bg → light text) */
.btn-outline-primary,
.btn-outline-dark,
.btn-outline-secondary {
  border-radius:var(--rmc-lit-00181fcf9c);
  transition: background-color var(--luxury-motion-duration) var(--luxury-motion-ease),
              color var(--luxury-motion-duration) var(--luxury-motion-ease),
              border-color var(--luxury-motion-duration) var(--luxury-motion-ease);
}

/* Hairline borders and tonal sections (quiet interface) */
.card,
.cp-panel,
.dashboard-chart-card,
.stat-card,
.app-card {
  border-width: 1px;
  border-color: var(--luxury-border, rgba(10, 10, 10, 0.08));
}
html[data-theme="dark"] .card,
html[data-bs-theme="dark"] .card,
body.portal-backend-dark .card,
.control-plane-shell .card {
  border-color: var(--luxury-border, rgba(255, 255, 255, 0.1));
}

/* Motion – calm transitions for surfaces (reveal, not pop) */
#main-content .card,
.portal-main-col .card,
[data-dashboard-page] .card,
.dashboard-chart-card,
.stat-card,
.app-card,
.alert,
.modal-content {
  transition: box-shadow var(--luxury-motion-duration) var(--luxury-motion-ease),
              transform var(--luxury-motion-duration) var(--luxury-motion-ease),
              border-color var(--luxury-motion-duration) var(--luxury-motion-ease);
}

/* Form controls – refined radius and focus */
.form-control,
.form-select {
  border-radius:var(--rmc-lit-00181fcf9c);
  transition: border-color var(--luxury-motion-duration) var(--luxury-motion-ease),
              box-shadow var(--luxury-motion-duration) var(--luxury-motion-ease);
}

/* Remove cheap defaults: no bright blue links where we use luxury palette.
   Exclude marketing CTAs (.mkt-edt-cta / .mkt-edt-plan__cta) — those carry
   their own dark-on-cream / cream-on-dark contrast pair scoped to the
   editorial palette and the :not chain above was outranking them by
   specificity (3 :not's vs 1 attr+class), producing dark-on-dark on the
   Book-a-demo button. The exclusion preserves luxury-text on body copy. */
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.mkt-edt-cta):not(.mkt-edt-plan__cta):not(.mkt-v3-cta):not(.mkt-v3-cta--ghost):not(.mkt-mega-link) {
  color: var(--luxury-text, #1A1A1A);
}
html[data-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.mkt-edt-cta):not(.mkt-edt-plan__cta):not(.mkt-v3-cta):not(.mkt-v3-cta--ghost):not(.mkt-mega-link),
body.portal-backend-dark a:not(.btn):not(.nav-link):not(.dropdown-item):not(.mkt-edt-cta):not(.mkt-edt-plan__cta):not(.mkt-v3-cta):not(.mkt-v3-cta--ghost):not(.mkt-mega-link) {
  color: var(--luxury-text, #F5F5F5);
}
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.mkt-edt-cta):not(.mkt-edt-plan__cta):not(.mkt-v3-cta):not(.mkt-v3-cta--ghost):not(.mkt-mega-link):hover {
  color: var(--luxury-primary, #0A0A0A);
  transition: color var(--luxury-motion-duration) var(--luxury-motion-ease);
}

/* All-caps labels – letter-spacing (luxury typography) */
.text-uppercase.btn,
[data-dashboard-page] .section-title.text-uppercase,
.sidebar-section-title {
  letter-spacing: var(--luxury-letter-spacing-caps, 0.1em);
}

@media (prefers-reduced-motion: reduce) {
  body,
  .card,
  .btn,
  .form-control,
  .form-select,
  .alert,
  .modal-content {
    transition: none !important;
  }
}
