/* ═══════════════════════════════════════════════════════════════
   AKKU PARTNER PROGRAM — Design System (Light default + Dark mode)
   Brand: Violet #7C4FE8 · Sea #0ABAB5 · Coral #FF7F50
   Toggle: [data-theme="dark"] on <html>
   ═══════════════════════════════════════════════════════════════ */

/* ── Light Mode (default) ───────────────────────────────────── */
:root {
  /* Brand palette */
  --lavender:      #F0EAFF;
  --violet:        #7C4FE8;
  --violet-light:  #9B76F5;
  --violet-dark:   #5C34C4;
  --violet-subtle: #F3EEFF;
  --ultramarine:   #2F1298;
  --ink:           #1E1040;
  --coral:         #FF7F50;
  --coral-dark:    #E65F35;
  --sea:           #0ABAB5;
  --sea-dark:      #088884;

  /* Aliases (used in JS inline styles) */
  --primary: var(--violet);
  --text:    #1E1040;
  --bg:      #FFFFFF;

  /* Page backgrounds */
  --bg-primary:   #F7F5FF;
  --bg-secondary: #FFFFFF;
  --bg-tertiary:  #F0ECFE;

  /* Surface colors — use these for all cards, panels, modals */
  --bg-surface:   #FFFFFF;        /* base card / panel / modal bg  */
  --bg-surface-2: #F9F7FF;        /* slightly tinted header / thead */
  --bg-surface-3: #F3F0FB;        /* tabs bar, hover tint           */
  --bg-inset:     #F7F5FF;        /* inset bg (sidebar header, etc) */
  --input-bg:     #FFFFFF;        /* form inputs                    */
  --card-bg:      #FFFFFF;
  --bg-card:      #FFFFFF;

  /* Interactions */
  --surface:        rgba(124, 79, 232, 0.06);
  --surface-hover:  rgba(124, 79, 232, 0.10);
  --surface-active: rgba(124, 79, 232, 0.12);

  /* Borders */
  --border:       #E4DFEE;
  --border-hover: #C8BCEF;
  --border-focus: var(--violet);

  /* Text — WCAG AA verified on #FFFFFF (4.5:1 minimum for normal text). */
  --text-primary:   #1E1040;  /* 15.1:1 — primary body */
  --text-secondary: #4B3E72;  /*  9.4:1 — secondary body */
  --text-muted:     #6B5E94;  /*  5.8:1 — muted text. Was #8B7FB8 = 3.6:1 (FAILED AA). */
  --text-inverse:   #FFFFFF;

  /* Semantic status colors — used everywhere we'd otherwise hard-code
     Tailwind-palette hex (#3b82f6, #f59e0b, #22c55e, #ef4444). */
  --color-info:    #3B82F6;  --color-info-surface:    rgba(59,130,246,0.12);
  --color-warning: #F59E0B;  --color-warning-surface: rgba(245,158,11,0.12);
  --color-success: #16A34A;  --color-success-surface: rgba(22,163,74,0.12);
  --color-danger:  #EF4444;  --color-danger-surface:  rgba(239,68,68,0.12);

  /* Glassmorphism (light) */
  --glass-bg:     rgba(255, 255, 255, 0.88);
  --glass-border: rgba(124, 79, 232, 0.13);
  --glass-shadow: 0 4px 24px rgba(124, 79, 232, 0.09);
  --glass-blur:   blur(12px);

  /* Shadows */
  --shadow-xs: 0 1px 3px  rgba(30, 16, 64, 0.06);
  --shadow-sm: 0 2px 8px  rgba(30, 16, 64, 0.08);
  --shadow-md: 0 4px 20px rgba(30, 16, 64, 0.10);
  --shadow-lg: 0 8px 36px rgba(30, 16, 64, 0.13);
  --shadow-xl: 0 16px 56px rgba(30, 16, 64, 0.16);
  --shadow-violet: 0 6px 24px rgba(124, 79, 232, 0.28);
  --shadow-teal:   0 6px 24px rgba(10, 186, 181, 0.22);

  /* Border radius */
  --radius-xs:   6px;
  --radius-sm:   10px;
  --radius-md:   14px;
  --radius-lg:   18px;
  --radius-xl:   24px;
  --radius-2xl:  30px;
  --radius-full: 9999px;

  /* Spacing */
  --space-1:4px;  --space-2:8px;   --space-3:12px;
  --space-4:16px; --space-5:20px;  --space-6:24px;
  --space-8:32px; --space-10:40px; --space-12:48px;

  /* Typography */
  --font-sans:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-display: 'Georama', 'Inter', sans-serif;
  --font-body:    var(--font-sans);
  --font-mono:    'JetBrains Mono', 'Fira Code', monospace;

  /* Type scale — closed set. Every font-size should snap to one of these.
     Half-pixel sizes (13.5, 12.5, 11.5, 9.5) are legacy and are being phased out. */
  --text-xs:   11px;   /* eyebrow / micro / badge counter */
  --text-sm:   12px;   /* helper, table th, tiny badge */
  --text-md:   13px;   /* secondary UI, breadcrumb, small button */
  --text-base: 14px;   /* DEFAULT body / table cells / form text */
  --text-lg:   15px;   /* comfortable body / .pa-page-title sub */
  --text-xl:   16px;   /* card titles, h4 */
  --text-2xl:  18px;   /* empty-title, h3 */
  --text-3xl:  22px;   /* page title, modal title, h2 */
  --text-4xl:  24px;   /* playbook section header, h1 */
  --text-5xl:  28px;   /* dashboard/login h1, hero */
  --text-display: clamp(28px, 3.5vw, 36px); /* stat-value / display */

  /* Line-height — 5 buckets, every line-height should snap to one. */
  --leading-none:    1;       /* numeric / data */
  --leading-tight:   1.2;     /* large headings (≥22px) */
  --leading-snug:    1.3;     /* small headings (16–20px) */
  --leading-normal:  1.5;     /* UI rows, descriptions, body */
  --leading-relaxed: 1.6;     /* body prose, info panels, alerts */

  /* Letter-spacing — 5 buckets. */
  --tracking-tight:  -0.2px;  /* large headings (≥24px) */
  --tracking-snug:   -0.1px;  /* medium headings (20–22px) */
  --tracking-normal: 0;       /* default */
  --tracking-wide:   0.06em;  /* uppercase labels */
  --tracking-wider:  0.1em;   /* uppercase eyebrows / stat-label */

  /* Font weight — semantic roles. */
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;   /* headings, card titles */
  --fw-bold:     700;   /* navbar/sidebar brand, stat-value */

  /* Transitions */
  --transition-fast:   120ms ease;
  --transition-base:   200ms ease;
  --transition-slow:   340ms ease;
  --transition-spring: 260ms cubic-bezier(0.34, 1.56, 0.64, 1);

  /* Theme-toggle specific */
  --toggle-bg:       #EEEBFF;
  --toggle-border:   rgba(124, 79, 232, 0.25);
  --toggle-icon:     '🌙';
}

/* ── Dark Mode overrides ────────────────────────────────────── */
[data-theme="dark"] {
  --violet:        #8D58FE;
  --violet-light:  #A67DFF;
  --violet-dark:   #6B3FE0;
  --violet-subtle: rgba(141, 88, 254, 0.14);

  --text:  #F0ECFF;
  --bg:    #0F0C28;
  --ink:   #F0ECFF;

  --bg-primary:   #080620;
  --bg-secondary: #0F0C28;
  --bg-tertiary:  #17133A;

  --bg-surface:   #131030;
  --bg-surface-2: #1a1640;
  --bg-surface-3: rgba(0, 0, 0, 0.30);
  --bg-inset:     rgba(141, 88, 254, 0.08);
  --input-bg:     rgba(0, 0, 0, 0.32);
  --card-bg:      rgba(255, 255, 255, 0.04);
  --bg-card:      rgba(255, 255, 255, 0.04);

  --surface:        rgba(141, 88, 254, 0.08);
  --surface-hover:  rgba(141, 88, 254, 0.14);
  --surface-active: rgba(141, 88, 254, 0.18);

  --border:       rgba(242, 231, 255, 0.10);
  --border-hover: rgba(242, 231, 255, 0.22);

  --text-primary:   #F0ECFF;
  --text-secondary: rgba(240, 236, 255, 0.78);   /* was 0.72 — bumped for AA on dark surfaces */
  --text-muted:     rgba(240, 236, 255, 0.65);   /* was 0.45 = ~3.76:1 (FAILED AA). 0.65 ≈ 6.5:1 */
  --text-inverse:   #0F0C28;

  /* Dark-mode semantic status — slightly lighter hues for better contrast on dark surfaces. */
  --color-info:    #60A5FA;  --color-info-surface:    rgba(96,165,250,0.18);
  --color-warning: #FBBF24;  --color-warning-surface: rgba(251,191,36,0.18);
  --color-success: #4ADE80;  --color-success-surface: rgba(74,222,128,0.18);
  --color-danger:  #F87171;  --color-danger-surface:  rgba(248,113,113,0.18);

  --glass-bg:     rgba(15, 12, 40, 0.85);
  --glass-border: rgba(242, 231, 255, 0.12);
  --glass-shadow: 0 8px 32px rgba(0, 0, 0, 0.50);

  --shadow-xs: 0 1px 4px  rgba(0,0,0,0.28);
  --shadow-sm: 0 2px 10px rgba(0,0,0,0.35);
  --shadow-md: 0 4px 20px rgba(0,0,0,0.45);
  --shadow-lg: 0 8px 36px rgba(0,0,0,0.55);
  --shadow-xl: 0 16px 56px rgba(0,0,0,0.65);

  --toggle-bg:     rgba(141, 88, 254, 0.18);
  --toggle-border: rgba(141, 88, 254, 0.40);
}

/* ═══════════════════════════════════════════════════════════════
   RESET & BASE
   ═══════════════════════════════════════════════════════════════ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; text-size-adjust:100%; }

/* Respect prefers-reduced-motion — disable non-essential animation/transition
   for users with vestibular / motion sensitivity. (WCAG 2.3.3, skill: `reduced-motion`) */
@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;
  }
}

body {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height:var(--leading-relaxed);
  color: var(--text-primary);
  background: var(--bg-primary);
  min-height: 100vh;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: background-color var(--transition-slow), color var(--transition-slow);
}

a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; }
img { max-width:100%; display:block; }

:focus-visible { outline:2px solid var(--violet); outline-offset:2px; border-radius:var(--radius-xs); }
:focus:not(:focus-visible) { outline:none; }

::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:rgba(124,79,232,0.22); border-radius:var(--radius-full); }
::-webkit-scrollbar-thumb:hover { background:rgba(124,79,232,0.40); }

/* ═══════════════════════════════════════════════════════════════
   NAVBAR LOGO  — black in light mode, white in dark mode
   ═══════════════════════════════════════════════════════════════ */
.navbar-logo {
  filter: brightness(0);
  transition: filter var(--transition-base);
}
[data-theme="dark"] .navbar-logo {
  filter: brightness(0) invert(1);
}

/* ═══════════════════════════════════════════════════════════════
   THEME PILL SWITCH  (navbar)
   ═══════════════════════════════════════════════════════════════ */
.theme-pill {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  flex-shrink: 0;
}
.theme-pill input[type="checkbox"] {
  display: none;
}
.theme-pill-track {
  width: 52px;
  height: 26px;
  border-radius: 13px;
  background: var(--bg-surface-3);
  border: 1.5px solid var(--border);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 6px;
  transition: background var(--transition-fast), border-color var(--transition-fast);
}
.theme-pill-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  position: absolute;
  left: 3px;
  z-index: 2;
  transition: transform var(--transition-fast);
  box-shadow: 0 1px 3px rgba(0,0,0,0.20);
}
.theme-pill-sun  { font-size: 11px; color: #f59e0b; z-index: 1; pointer-events: none; }
.theme-pill-moon { font-size: 11px; color: #a78bfa; z-index: 1; pointer-events: none; }
/* checked = dark mode */
#theme-checkbox:checked + .theme-pill-track {
  background: var(--violet);
  border-color: var(--violet);
}
#theme-checkbox:checked + .theme-pill-track .theme-pill-thumb {
  transform: translateX(26px);
}

/* ═══════════════════════════════════════════════════════════════
   DASHBOARD DATE FILTER — compact pill (lives in page-hdr-actions)
   ═══════════════════════════════════════════════════════════════ */
.ddf-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 20px;
  font-size: 12px;
  color: var(--text-muted);
  width: fit-content;
  flex-shrink: 0;
}
.ddf-showing {
  font-size: 11px;
  color: var(--text-muted);
  white-space: nowrap;
}
.ddf-sep {
  font-size: 11px;
  color: var(--text-muted);
}
/* native date input — hidden once Flatpickr takes over */
.ddf-pill input[type="date"] { display: none !important; }
/* Flatpickr alt-input rendered inside the pill */
.ddf-flatpickr-input {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  font-size: 12px !important;
  font-family: var(--font-sans) !important;
  font-weight: 500 !important;
  color: var(--text-primary) !important;
  cursor: pointer !important;
  width: 76px !important;
  outline: none !important;
  box-shadow: none !important;
}
.ddf-flatpickr-input:hover { color: var(--violet) !important; }

/* ═══════════════════════════════════════════════════════════════
   FLATPICKR CALENDAR THEME OVERRIDES
   ═══════════════════════════════════════════════════════════════ */
.flatpickr-calendar {
  background: var(--bg-surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.16) !important;
  font-family: var(--font-sans) !important;
  color: var(--text-primary) !important;
  font-size: 12px !important;
  width: auto !important;
}
/* Hide closed pickers unconditionally. The base Flatpickr CSS normally provides
   display:none for non-open calendars; this guarantees it even if that rule is
   overridden or the base sheet loads late — otherwise closed calendars pile up
   visibly at the bottom of <body>. */
.flatpickr-calendar:not(.open):not(.inline) {
  display: none !important;
}
.flatpickr-calendar.open {
  z-index: 99999 !important;
}
.flatpickr-calendar.arrowTop:before,
.flatpickr-calendar.arrowTop:after { border-bottom-color: var(--border) !important; }
.flatpickr-months {
  background: var(--bg-surface) !important;
  border-radius: var(--radius) var(--radius) 0 0;
  padding: 2px 0;
}
.flatpickr-months .flatpickr-month { background: transparent !important; height: 28px !important; }
.flatpickr-current-month {
  color: var(--text-primary) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  padding-top: 5px !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
  background: var(--bg-surface) !important;
  color: var(--text-primary) !important;
  border: none !important;
  font-size: 12px !important;
}
.flatpickr-current-month input.cur-year {
  color: var(--text-primary) !important;
  font-weight: 600 !important;
  font-size: 12px !important;
}
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
  fill: var(--text-secondary) !important;
  color: var(--text-secondary) !important;
  padding: 5px !important;
}
.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg { width: 10px !important; height: 10px !important; }
.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg { fill: var(--violet) !important; }
.flatpickr-weekdays { background: var(--bg-surface) !important; height: 24px !important; }
.flatpickr-weekdaycontainer { padding: 0 4px !important; }
span.flatpickr-weekday {
  background: var(--bg-surface) !important;
  color: var(--text-muted) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 24px !important;
}
.flatpickr-days,
.dayContainer {
  width: 224px !important;
  min-width: 224px !important;
  max-width: 224px !important;
}
.flatpickr-days { border-color: var(--border) !important; }
.dayContainer { background: var(--bg-surface) !important; padding: 2px 2px 4px !important; }
.flatpickr-day {
  color: var(--text-primary) !important;
  border-radius: var(--radius-sm) !important;
  font-size: 11px !important;
  height: 30px !important;
  line-height: 30px !important;
  max-width: 32px !important;
  flex-basis: 32px !important;
}
.flatpickr-day:hover:not(.flatpickr-disabled):not(.selected) {
  background: var(--bg-surface-2) !important;
  border-color: var(--border-hover) !important;
}
.flatpickr-day.today:not(.selected) {
  border-color: var(--violet) !important;
  color: var(--violet) !important;
  font-weight: 700 !important;
}
.flatpickr-day.today:not(.selected):hover { background: rgba(124,79,232,0.08) !important; }
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
  background: var(--violet) !important;
  border-color: var(--violet) !important;
  color: #fff !important;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay { color: var(--text-muted) !important; opacity: 0.45 !important; }
.numInputWrapper:hover { background: var(--bg-surface-2) !important; }
.numInputWrapper span.arrowUp:after   { border-bottom-color: var(--text-secondary) !important; }
.numInputWrapper span.arrowDown:after { border-top-color:    var(--text-secondary) !important; }

/* ═══════════════════════════════════════════════════════════════
   UTILITIES
   ═══════════════════════════════════════════════════════════════ */
.hidden     { display:none !important; }
.sr-only    { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.flex       { display:flex; }
.flex-col   { flex-direction:column; }
.items-center    { align-items:center; }
.justify-between { justify-content:space-between; }
.justify-center  { justify-content:center; }
.gap-1 { gap:8px; } .gap-2 { gap:16px; } .gap-3 { gap:24px; }

.container { max-width:1440px; width:100%; margin:0 auto; padding:0 var(--space-6); }

/* ═══════════════════════════════════════════════════════════════
   CARD COMPONENT  (C1 — was undefined; caused unstyled RSM/Support panels)
   ═══════════════════════════════════════════════════════════════ */
.card {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 12px;                        /* was --radius-lg (18px) — tighter, more enterprise */
  box-shadow: none;                           /* was --shadow-xs — flat at rest, shadow on hover */
  overflow: hidden;
  transition: background var(--transition-slow), border-color var(--transition-base), box-shadow var(--transition-base);
}
.card:hover { border-color: var(--border-hover); box-shadow: var(--shadow-sm); }
.card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-5) var(--space-6);
  border-bottom: 1px solid var(--border);
  background: var(--bg-surface-2);
  flex-wrap: wrap;
  gap: var(--space-3);
}
.card-header h3 {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--fw-semibold);
  line-height: var(--leading-snug);
  color: var(--text-primary);
  margin: 0;
  letter-spacing: var(--tracking-normal);
}
.card-body { padding: var(--space-5); }
/* Card body modifiers — for content that owns its own padding (lists, tables, custom layouts). */
.card-body--flush { padding: 0; }
.card-body--lg    { padding: var(--space-6); }

/* Selectable "pick" card — e.g. pricing profile chooser */
.pick-card {
  display:block; width:100%; text-align:left;
  background:var(--bg-surface); border:1.5px solid var(--border);
  border-radius:var(--radius-md); padding:var(--space-4); cursor:pointer;
  transition:border-color var(--transition-fast), box-shadow var(--transition-fast),
             transform var(--transition-fast), background var(--transition-fast);
}
.pick-card:hover { border-color:var(--border-hover); box-shadow:var(--shadow-sm); transform:translateY(-1px); }
.pick-card.selected { border-color:var(--violet); background:var(--violet-subtle); box-shadow:0 0 0 1px var(--violet); }
.pick-card:focus-visible { outline:2px solid var(--violet); outline-offset:2px; }

/* Generic hover-lift utility */
.hover-lift { transition:transform var(--transition-fast), box-shadow var(--transition-fast); }
.hover-lift:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); }

/* ═══════════════════════════════════════════════════════════════
   GLASS CARD
   ═══════════════════════════════════════════════════════════════ */
.glass-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--glass-shadow);
  padding: var(--space-5);                       /* baseline — was inline-overridden on every callsite */
  transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}
.glass-card--lg { padding: var(--space-6); }     /* for slightly more generous content panels */
.glass-card:hover { border-color:rgba(124,79,232,0.24); box-shadow:var(--shadow-lg); transform:translateY(-2px); }

/* ═══════════════════════════════════════════════════════════════
   LOGIN PAGE
   ═══════════════════════════════════════════════════════════════ */
/* ── Login page — dark wave background ──────────────────────── */
.login-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  background: #0d0a1e;
}

.login-wave-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  display: block;
}

.login-card-wrap {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 24px 16px;
  display: flex;
  justify-content: center;
}

/* ── Login Card ──────────────────────────────────────────────── */
.login-card {
  background: #ffffff;
  border-radius: 20px;
  padding: 40px 38px 32px;
  width: 100%;
  max-width: 440px;
  box-shadow: 0 32px 100px rgba(0,0,0,0.55), 0 0 0 1px rgba(255,255,255,0.06);
}

/* Header */
.lc-header { text-align: center; margin-bottom: 28px; }

.lc-logo-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.lc-brand-name {
  font-family: 'Georama', 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 3.5px;
  color: #1a1040;
  text-transform: uppercase;
}

.lc-title {
  font-family: 'Georama', 'Inter', sans-serif;
  font-size: 21px;
  font-weight: 700;
  color: #1a1040;
  margin-bottom: 6px;
  line-height: 1.2;
}

.lc-tagline {
  font-size: 13px;
  color: #6b5e94;
  line-height: 1.4;
}

/* SSO button */
.lc-sso-btn {
  width: 100%;
  padding: 11px 16px;
  background: #f9f7ff;
  border: 1.5px solid #e4dfee;
  border-radius: 10px;
  color: #1e1040;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  transition: background 0.18s, border-color 0.18s, box-shadow 0.18s;
  font-family: inherit;
}
.lc-sso-btn:hover {
  background: #f0eaff;
  border-color: #c8bcef;
  box-shadow: 0 2px 12px rgba(124,79,232,0.1);
}

/* OR divider */
.lc-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 20px 0;
  color: #9ca3af;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.lc-divider::before,
.lc-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #e4dfee;
}

/* Form fields */
.lc-label {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: #374151;
  margin-bottom: 6px;
}

.lc-input {
  width: 100%;
  padding: 10px 14px;
  background: #f9f7ff;
  border: 1.5px solid #e4dfee;
  border-radius: 10px;
  font-size: 14px;
  color: #1e1040;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;
  font-family: inherit;
}
.lc-input:focus {
  border-color: #7c4fe8;
  box-shadow: 0 0 0 3px rgba(124,79,232,0.13);
  background: #ffffff;
}
.lc-input::placeholder { color: #b0aac4; }

.lc-pw-toggle {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  color: #b0aac4;
  display: flex;
  align-items: center;
  padding: 4px;
  transition: color 0.15s;
}
.lc-pw-toggle:hover { color: #7c4fe8; }

/* Submit button */
.lc-submit-btn {
  width: 100%;
  padding: 12px 16px;
  background: linear-gradient(135deg, #7c4fe8 0%, #5c34c4 100%);
  border: none;
  border-radius: 10px;
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.18s, transform 0.1s, box-shadow 0.18s;
  letter-spacing: 0.2px;
  font-family: inherit;
  box-shadow: 0 4px 18px rgba(124,79,232,0.35);
}
.lc-submit-btn:hover {
  opacity: 0.93;
  box-shadow: 0 6px 24px rgba(124,79,232,0.45);
}
.lc-submit-btn:active { transform: scale(0.99); }
.lc-submit-btn:disabled { opacity: 0.55; cursor: not-allowed; box-shadow: none; }

/* Footer */
.lc-footer {
  margin-top: 28px;
  text-align: center;
  font-size: 11.5px;
  color: #b0aac4;
  line-height: 1.5;
}

/* ── Legacy aliases (keep in case referenced elsewhere) ─────── */
.login-container { display:none; }
.login-box       { display:none; }
.login-logo      { display:none; }

/* Tabs */
.tabs {
  display: flex;
  gap: 4px;
  margin-bottom: var(--space-8);
  background: var(--bg-surface-3);
  padding: 4px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
}
.tab {
  flex:1; padding:10px var(--space-4); border:none;
  background:transparent; color:var(--text-muted);
  font-family:var(--font-sans); font-size:14px; font-weight:600;
  border-radius:var(--radius-xs); cursor:pointer;
  transition:all var(--transition-fast); letter-spacing:0.1px;
}
.tab.active {
  background: var(--bg-surface);
  color: var(--violet);
  box-shadow: var(--shadow-sm);
}
.tab:hover:not(.active) { background:rgba(124,79,232,0.06); color:var(--text-secondary); }
.tab:focus-visible { outline:2px solid var(--violet); outline-offset:-2px; }
/* Size modifier — for compact tab groups (e.g. currency picker, density toggle). */
.tabs.tabs--sm { padding:2px; gap:2px; border-radius:var(--radius-full); margin-bottom:var(--space-4); }
.tabs.tabs--sm .tab { padding:4px 13px; font-size:var(--text-sm); border-radius:var(--radius-full); flex:initial; }
.tabs.tabs--sm .tab.active { background:var(--violet); color:#FFF; box-shadow:none; }
.tabs.tabs--inline { display:inline-flex; }

/* Underline sub-tabs — section-level navigation within a view */
.tab-bar { display:flex; gap:2px; border-bottom:1px solid var(--border); margin-bottom:var(--space-5); flex-wrap:wrap; overflow-x:auto; }
.tab-btn {
  padding:10px 18px; border:none; background:none;
  border-bottom:2px solid transparent; margin-bottom:-1px;
  color:var(--text-muted); font-family:var(--font-sans); font-size:14px; font-weight:600;
  cursor:pointer; white-space:nowrap;
  transition:color var(--transition-fast), border-color var(--transition-fast);
}
.tab-btn:hover { color:var(--text-secondary); }
.tab-btn.active { color:var(--violet); border-bottom-color:var(--violet); }
.tab-btn:focus-visible { outline:2px solid var(--violet); outline-offset:-2px; border-radius:var(--radius-xs); }

/* ═══════════════════════════════════════════════════════════════
   FORMS
   ═══════════════════════════════════════════════════════════════ */
.form-group { margin-bottom:var(--space-5); }

.form-label,
.field label {
  display:block; margin-bottom:7px;
  font-size:13px; font-weight:600;
  color:var(--text-secondary); letter-spacing:0.1px;
}

.form-input,
.field input,
.field select,
.field textarea {
  width:100%; padding:10px var(--space-4);
  background: var(--input-bg);
  border: 1px solid var(--border);                  /* was 1.5px — finer */
  border-radius: var(--radius-sm);
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: var(--text-base); line-height:var(--leading-normal);
  transition: border-color var(--transition-base), box-shadow var(--transition-base),
              background var(--transition-base);
  appearance:auto; outline:none;
}
.form-input:hover,.field input:hover,.field select:hover,.field textarea:hover {
  border-color:var(--border-hover);
}
.form-input:focus,.field input:focus,.field select:focus,.field textarea:focus {
  outline:none; border-color:var(--violet);
  box-shadow:0 0 0 3px rgba(124,79,232,0.16);
  background: var(--input-bg);
}
.form-input::placeholder { color:var(--text-muted); }
textarea.form-input,.field textarea { resize:vertical; min-height:96px; }
select.form-input,.field select { cursor:pointer; }
.form-input option,select.form-input option,.field select option {
  background:var(--bg-surface); color:var(--text-primary);
}

/* Date input */
input[type="date"].form-input,
.field input[type="date"] {
  cursor:pointer; color-scheme:light; position:relative; overflow:hidden;
}
[data-theme="dark"] input[type="date"].form-input,
[data-theme="dark"] .field input[type="date"] { color-scheme:dark; }

.field input[type="date"]::-webkit-calendar-picker-indicator {
  position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer;
}

.field input.invalid,.field textarea.invalid,.form-input.invalid {
  border-color:#ef4444; box-shadow:0 0 0 3px rgba(239,68,68,0.12);
}
.field .input-readonly { opacity:0.55; cursor:default; background:var(--bg-surface-3); }
.field-error   { font-size:12px; color:#ef4444; margin-top:5px; }
.field-hint-warn { font-size:12px; color:#d97706; margin-top:5px; }
.req { color:#ef4444; }

.form-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap:var(--space-4); margin-bottom:var(--space-4);
}
.field-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); margin-bottom:var(--space-3); }
.field-row-1 { margin-bottom:var(--space-3); }
.field { display:flex; flex-direction:column; gap:5px; }

.toggle-label {
  display:flex; align-items:center; gap:var(--space-2);
  cursor:pointer; font-size:14px; color:var(--text-secondary); user-select:none;
}
.toggle-label input[type="checkbox"] { width:16px; height:16px; cursor:pointer; accent-color:var(--violet); }

/* ═══════════════════════════════════════════════════════════════
   ADMIN SIDEBAR
   ═══════════════════════════════════════════════════════════════ */
.admin-layout { display:flex; min-height:calc(100vh - 64px); }

.admin-sidebar {
  width:clamp(200px, 16vw, 232px); min-width:clamp(200px, 16vw, 232px); flex-shrink:0;
  background: var(--bg-surface);
  border-right: 1px solid var(--border);
  display:flex; flex-direction:column;
  position:sticky; top:64px;
  height:calc(100vh - 64px);
  overflow-y:auto; scrollbar-width:none;
  transition: background var(--transition-slow);
}
.admin-sidebar::-webkit-scrollbar { display:none; }
/* Stronger sidebar border — light and dark explicit overrides */
[data-theme="light"] .admin-sidebar          { border-right-color: #C8BCEF; }
[data-theme="light"] .admin-sidebar-header   { border-bottom-color: #C8BCEF; }
[data-theme="dark"]  .admin-sidebar          { border-right-color: rgba(242, 231, 255, 0.22); }
[data-theme="dark"]  .admin-sidebar-header   { border-bottom-color: rgba(242, 231, 255, 0.22); }

.admin-sidebar-header {
  padding: var(--space-5);
  border-bottom: 1px solid var(--border);
  background: var(--bg-inset);
}
.admin-sidebar-title {
  font-family:var(--font-display); font-size:var(--text-base); font-weight:var(--fw-bold);
  line-height:var(--leading-snug); letter-spacing:var(--tracking-normal);
  color:var(--violet); margin:0 0 2px;
}
.admin-sidebar-sub { font-size:11px; color:var(--text-muted); margin:0; }

.admin-sidebar nav { padding:var(--space-3) var(--space-2); flex:1; }

.admin-nav-btn {
  display:flex; align-items:center; gap:10px;
  width:100%; padding:10px 14px;
  background:none; border:none;
  border-radius:var(--radius-sm);
  color:var(--text-muted);
  font-family:var(--font-sans); font-size:var(--text-base); font-weight:var(--fw-medium);
  cursor:pointer; text-align:left;
  position:relative;
  transition:background var(--transition-base), color var(--transition-base);
  margin-bottom:2px;
}
/* Left indicator bar — only the active item shows it. Gives the nav a clearer
   "you are here" signal than color alone, in line with enterprise SaaS patterns. */
.admin-nav-btn::before {
  content:''; position:absolute; left:-4px; top:8px; bottom:8px; width:3px;
  border-radius:0 var(--radius-xs) var(--radius-xs) 0;
  background:var(--violet);
  opacity:0; transform:scaleY(0.4);
  transition:opacity var(--transition-base), transform var(--transition-base);
}
.admin-nav-btn:hover { background:var(--surface); color:var(--text-primary); }
.admin-nav-btn.active { background:var(--surface-active); color:var(--violet); font-weight:var(--fw-semibold); }
.admin-nav-btn.active::before { opacity:1; transform:scaleY(1); }
.admin-nav-btn .nav-icon { font-size:15px; width:20px; text-align:center; flex-shrink:0; }
.admin-nav-btn:focus-visible { outline:2px solid var(--violet); outline-offset:-2px; }

/* Sidebar footer — settles at the bottom because `nav` has flex:1 above. */
.admin-sidebar-footer {
  padding: var(--space-3) var(--space-3) var(--space-3);
  border-top: 1px solid var(--border);
  background: var(--bg-inset);
}
[data-theme="light"] .admin-sidebar-footer { border-top-color: #C8BCEF; }
[data-theme="dark"]  .admin-sidebar-footer { border-top-color: rgba(242, 231, 255, 0.22); }

/* ── Sidebar Profile Card ─────────────────────────────────── */
.sidebar-profile-wrap { position: relative; }

.sidebar-profile-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  text-align: left;
  min-width: 0;
}
.sidebar-profile-trigger:hover,
.sidebar-profile-wrap.open .sidebar-profile-trigger {
  background: var(--surface-hover);
  border-color: var(--border);
}

.sidebar-profile-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  flex: 1;
}
.sidebar-profile-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}
.sidebar-profile-chevron {
  width: 14px; height: 14px;
  flex-shrink: 0;
  color: var(--text-muted);
  transition: transform 0.2s;
}
.sidebar-profile-wrap.open .sidebar-profile-chevron { transform: rotate(180deg); }

/* Upward popup */
.sidebar-profile-popup {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 0;
  right: 0;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-xl);
  z-index: 300;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px) scale(0.97);
  transform-origin: bottom left;
  transition: opacity 0.18s, transform 0.18s, visibility 0s 0.18s;
  overflow: hidden;
  min-width: 200px;
}
.sidebar-profile-popup.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
  transition: opacity 0.18s, transform 0.18s;
}

.sidebar-profile-version {
  font-size: var(--text-xs);
  color: var(--text-muted);
  padding: 6px 10px 2px;
  margin: 0;
  letter-spacing: var(--tracking-normal);
  text-align: center;
}

.admin-main {
  flex:1;
  padding: var(--space-4) var(--space-5) var(--space-6) var(--space-5);
  /* 16/20/24/20 — denser ops layout per data-dense dashboard guidance. */
  overflow-y:auto;
  min-width:0;
  max-width:100%;
  background: var(--bg-primary);
  transition: background var(--transition-slow);
}
@media (max-width: 768px) {
  .admin-main { padding: var(--space-3) var(--space-4) var(--space-5); }
}

/* ═══════════════════════════════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════════════════════════════ */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:9px 18px;
  border:1px solid var(--border);                  /* was 1.5px — cleaner edge */
  border-radius:var(--radius-sm);
  background:var(--bg-surface);
  color:var(--text-primary);
  font-family:var(--font-sans); font-size:var(--text-base); font-weight:var(--fw-semibold);
  cursor:pointer;
  transition:background var(--transition-base), border-color var(--transition-base),
             box-shadow var(--transition-base), transform var(--transition-base),
             color var(--transition-base);
  text-decoration:none; white-space:nowrap; user-select:none; letter-spacing:0;
}
.btn:hover { background:var(--bg-surface-3); border-color:var(--border-hover); box-shadow:var(--shadow-sm); transform:translateY(-1px); }
.btn:active { transform:translateY(0); box-shadow:none; }
.btn:focus-visible { outline:2px solid var(--violet); outline-offset:2px; }
.btn:disabled { opacity:0.45; cursor:not-allowed; transform:none !important; box-shadow:none !important; }

.btn-primary {
  background:var(--violet); border-color:var(--violet-dark);
  color:#FFF; box-shadow:var(--shadow-violet);
}
.btn-primary:hover { background:var(--violet-dark); border-color:var(--violet-dark); color:#FFF; box-shadow:0 8px 28px rgba(124,79,232,0.38); transform:translateY(-1px); }

.btn-success { background:var(--sea); border-color:var(--sea-dark); color:#FFF; box-shadow:var(--shadow-teal); }
.btn-success:hover { background:var(--sea-dark); color:#FFF; box-shadow:0 8px 28px rgba(10,186,181,0.30); transform:translateY(-1px); }

.btn-danger { background:var(--coral); border-color:var(--coral-dark); color:#FFF; box-shadow:0 4px 16px rgba(255,127,80,0.24); }
.btn-danger:hover { background:var(--coral-dark); color:#FFF; box-shadow:0 8px 28px rgba(255,127,80,0.30); transform:translateY(-1px); }

.btn-outline { background:transparent; border-color:var(--violet); color:var(--violet); }
.btn-outline:hover { background:var(--violet-subtle); border-color:var(--violet); color:var(--violet-dark); }

.btn-sm  { padding:6px 13px; font-size:13px; gap:5px; }
.btn-lg  { padding:13px 28px; font-size:15px; }
.btn-xl  { padding:15px 34px; font-size:16px; }
.btn-xs  { padding:3px 9px; font-size:11px; gap:4px; border-radius:var(--radius-xs); }

/* Neutral / secondary action — subtle surface button */
.btn-secondary { background:var(--bg-surface-2); border-color:var(--border); color:var(--text-secondary); }
.btn-secondary:hover { background:var(--bg-surface-3); border-color:var(--border-hover); color:var(--text-primary); }

/* Warning / caution action (e.g. unpublish) */
.btn-warning { background:rgba(217,119,6,0.10); border-color:rgba(217,119,6,0.32); color:#b45309; box-shadow:none; }
.btn-warning:hover { background:rgba(217,119,6,0.18); border-color:rgba(217,119,6,0.45); color:#92400e; transform:translateY(-1px); }
[data-theme="dark"] .btn-warning { color:#fbbf24; }

.btn-icon {
  width:32px; height:32px; padding:0;
  border-radius:var(--radius-xs);
  border:1.5px solid var(--border);
  background:var(--bg-surface);
  color:var(--text-secondary);
  font-size:14px;
  display:inline-flex; align-items:center; justify-content:center;
  transition:background var(--transition-fast), border-color var(--transition-fast),
             color var(--transition-fast), transform var(--transition-fast);
  flex-shrink:0;
}
.btn-icon:hover { background:var(--bg-surface-3); border-color:var(--border-hover); color:var(--violet); transform:scale(1.06); }
.btn-icon-delete { border:none; background:none; color:#ef4444; width:auto; height:auto; padding:4px 6px; box-shadow:none; }
.btn-icon-delete:hover { background:none; border:none; color:#dc2626; transform:scale(1.15); }

/* Ghost button — transparent, no border, used for icon-only or text-only actions inside
   cards/lists where a full .btn would compete visually. Preserves focus ring. */
.btn-ghost {
  display:inline-flex; align-items:center; gap:6px;
  background:transparent; border:1px solid transparent;
  color:var(--text-muted); cursor:pointer;
  padding:6px 10px; border-radius:var(--radius-sm);
  font-family:var(--font-sans); font-size:var(--text-md); font-weight:var(--fw-medium);
  transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}
.btn-ghost:hover { background:var(--bg-surface-2); color:var(--text-primary); border-color:var(--border); }
.btn-ghost:focus-visible { outline:2px solid var(--violet); outline-offset:2px; }

/* ═══════════════════════════════════════════════════════════════
   NAVBAR
   ═══════════════════════════════════════════════════════════════ */
.navbar {
  position:sticky; top:0; z-index:50;
  height:64px;
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border);
  display:flex; align-items:center;
  box-shadow: 0 1px 8px rgba(124,79,232,0.07);
  transition: background var(--transition-slow), border-color var(--transition-slow);
}
[data-theme="dark"] .navbar {
  box-shadow: 0 1px 12px rgba(0,0,0,0.35);
}

.navbar-content {
  display:flex; align-items:center; justify-content:space-between;
  width:100%; padding:0 clamp(var(--space-4), 3vw, var(--space-6));
}
.navbar-brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.navbar-brand img { height:clamp(28px, 3.2vw, 38px); }
.navbar-brand-text { display:flex; flex-direction:column; gap:1px; }
.navbar-title { font-family:var(--font-display); font-size:clamp(14px, 1.5vw, 18px); font-weight:var(--fw-bold); color:var(--ink); letter-spacing:var(--tracking-normal); line-height:var(--leading-tight); }
.navbar-subtitle { font-size:11px; color:var(--text-muted); letter-spacing:0.3px; }
.navbar-actions { display:flex; align-items:center; gap:clamp(6px, 1vw, 10px); flex-wrap:nowrap; }

/* Profile Dropdown */
.profile-wrapper { position:relative; }

.profile-trigger {
  display:flex; align-items:center; gap:9px;
  padding:5px 11px 5px 5px;
  background:var(--bg-inset);
  border:1.5px solid var(--border);
  border-radius:var(--radius-full);
  cursor:pointer; color:var(--text-primary);
  transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
  white-space:nowrap;
}
.profile-trigger:hover,
.profile-wrapper.active .profile-trigger {
  background:var(--bg-surface-3);
  border-color:rgba(124,79,232,0.40);
  box-shadow:0 0 0 3px rgba(124,79,232,0.10);
}

.profile-avatar {
  width:32px; height:32px; border-radius:50%;
  background:linear-gradient(135deg, var(--violet), var(--sea));
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; color:#FFF; flex-shrink:0; letter-spacing:0.5px;
}
.profile-avatar-lg { width:44px; height:44px; font-size:15px; }

.profile-trigger-info { display:flex; flex-direction:column; align-items:flex-start; gap:2px; line-height:var(--leading-none); }
.profile-trigger-name { font-size:13px; font-weight:600; color:var(--text-primary); }
.profile-trigger-role { font-size:10px; font-weight:var(--fw-bold); letter-spacing:var(--tracking-wide); text-transform:uppercase; padding:2px 6px; border-radius:var(--radius-full); }

.profile-role-admin   { background:rgba(124,79,232,0.12); color:var(--violet-dark); }
.profile-role-rsm     { background:rgba(10,186,181,0.12);  color:var(--sea-dark); }
.profile-role-partner { background:rgba(255,127,80,0.12);  color:#d45a2a; }
.profile-role-support { background:rgba(22,163,74,0.12);   color:#166534; }

[data-theme="dark"] .profile-role-admin   { color:#c4b5fd; }
[data-theme="dark"] .profile-role-rsm     { color:#5eead4; }
[data-theme="dark"] .profile-role-partner { color:#fb923c; }
[data-theme="dark"] .profile-role-support { color:#34d399; }

.profile-chevron { width:14px; height:14px; color:var(--text-muted); transition:transform var(--transition-fast); flex-shrink:0; }
.profile-wrapper.active .profile-chevron { transform:rotate(180deg); }

.profile-dropdown {
  position:absolute; top:calc(100% + 10px); right:0; width:256px; max-width:calc(100vw - 20px);
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-xl);
  opacity:0; visibility:hidden;
  transform:translateY(-8px) scale(0.96); transform-origin:top right;
  transition:opacity var(--transition-fast), transform var(--transition-fast), visibility var(--transition-fast);
  z-index:1000; overflow:hidden;
}
.profile-dropdown.open { opacity:1; visibility:visible; transform:translateY(0) scale(1); }

.profile-dropdown-header {
  display:flex; align-items:center; gap:12px;
  padding:15px 14px 13px;
  background:var(--bg-surface-2);
  border-bottom:1px solid var(--border);
}
.profile-dropdown-info { display:flex; flex-direction:column; gap:4px; min-width:0; }
.profile-dropdown-name { font-size:14px; font-weight:700; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.profile-dropdown-email { font-size:11px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.profile-dropdown-badge { font-size:10px; font-weight:var(--fw-bold); letter-spacing:var(--tracking-wide); text-transform:uppercase; padding:2px 8px; border-radius:var(--radius-full); align-self:flex-start; }
.profile-dropdown-divider { height:1px; background:var(--border); }

.profile-dropdown-item {
  display:flex; align-items:center; gap:10px; width:100%; padding:11px 14px;
  background:none; border:none; color:var(--text-secondary);
  font-family:var(--font-sans); font-size:14px; font-weight:500;
  cursor:pointer; text-align:left;
  transition:background var(--transition-fast), color var(--transition-fast);
}
.profile-dropdown-item:hover { background:var(--bg-surface-2); color:var(--text-primary); }
.profile-dropdown-item-danger { color:#ef4444; }
.profile-dropdown-item-danger:hover { background:rgba(239,68,68,0.07); color:#dc2626; }
.profile-dropdown-item-icon { font-size:15px; width:18px; text-align:center; flex-shrink:0; }

/* ═══════════════════════════════════════════════════════════════
   DASHBOARD LAYOUT
   ═══════════════════════════════════════════════════════════════ */
.dashboard { padding:var(--space-8) 0 80px; }
.dashboard-header { margin-bottom:var(--space-8); }
.dashboard-header h1 { font-family:var(--font-display); font-size:clamp(22px, 2.2vw, 28px); font-weight:var(--fw-semibold); letter-spacing:var(--tracking-tight); line-height:var(--leading-tight); margin-bottom:6px; color:var(--ink); }
.dashboard-header p  { color:var(--text-secondary); font-size:15px; }

.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-5); flex-wrap:wrap; gap:var(--space-3); }
.section-title { font-family:var(--font-display); font-size:clamp(15px, 1.6vw, 22px); font-weight:var(--fw-semibold); color:var(--text-primary); letter-spacing:var(--tracking-normal); line-height:var(--leading-snug); }

/* ═══════════════════════════════════════════════════════════════
   STATS GRID
   ═══════════════════════════════════════════════════════════════ */
.stats-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap:var(--space-5); margin-bottom:var(--space-6);
  /* Was --space-8 (32px). Inline overrides on every callsite consistently
     wanted 24px — bake that into the class so callsites stop overriding. */
}

/* ── Stat card — data-dense ops dashboard surface.
   Per /ui-ux-pro-max: "minimal padding, space-efficient, maximum data visibility".
   Restraint over decoration — no shadow at rest, sharp 12px radius, hover-only accent. */
.stat-card {
  background:var(--bg-surface);
  border:1px solid var(--border);
  border-radius:12px;                            /* was --radius-lg (18px) — denser ops feel */
  padding:var(--space-5);                        /* 20px — was --space-7 (32px) Phase-5 bloat */
  transition:border-color var(--transition-base), box-shadow var(--transition-base),
             transform var(--transition-base), background var(--transition-slow);
  position:relative; overflow:hidden;
  display:flex; flex-direction:column;
}
/* Hover-only top accent bar — was always-visible (opacity 0.18) in Phase 5; reverted. */
.stat-card::after {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--violet), var(--sea));
  opacity:0; transition:opacity var(--transition-base);
}
.stat-card:hover {
  border-color:var(--border-hover);
  transform:translateY(-2px);
  box-shadow:var(--shadow-sm);
}
.stat-card:hover::after { opacity:1; }
.stat-card-clickable { cursor:pointer; }

.stat-icon {
  width:40px; height:40px;                        /* was 48 (Phase 5) — denser */
  border-radius:var(--radius-sm);                 /* 10px — back from 14px */
  display:flex; align-items:center; justify-content:center;
  font-size:18px; margin-bottom:var(--space-4);   /* 16px — back from --space-5 */
  background:var(--violet-subtle);
  color:var(--violet);
  border:1px solid rgba(124,79,232,0.18); flex-shrink:0;
}
.stat-icon.teal  { background:rgba(10,186,181,0.10);  border-color:rgba(10,186,181,0.20); color:var(--sea-dark); }
.stat-icon.coral { background:rgba(255,127,80,0.10);  border-color:rgba(255,127,80,0.20); color:var(--coral-dark); }
.stat-icon.amber { background:rgba(217,119,6,0.10);   border-color:rgba(217,119,6,0.20); color:#92400e; }
.stat-icon.green { background:var(--color-success-surface); border-color:rgba(22,163,74,0.20); color:var(--color-success); }

.stat-label  { font-size:var(--text-xs); text-transform:uppercase; letter-spacing:var(--tracking-wide); color:var(--text-muted); font-weight:var(--fw-bold); margin-bottom:6px; }
.stat-value  { font-family:var(--font-display); font-size:var(--text-display); font-weight:var(--fw-bold); letter-spacing:var(--tracking-tight); line-height:var(--leading-none); margin-bottom:6px; color:var(--ink); }
.stat-meta   { font-size:var(--text-md); color:var(--text-muted); }

/* ═══════════════════════════════════════════════════════════════
   ACCOUNT CARDS
   ═══════════════════════════════════════════════════════════════ */
.accounts-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(min(300px, 100%), 1fr));
  gap:var(--space-5); margin-top:var(--space-4); margin-bottom:var(--space-8);
}

.account-card {
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-radius:var(--radius-md);
  padding:var(--space-5); cursor:pointer;
  transition:border-color var(--transition-base), box-shadow var(--transition-base),
             transform var(--transition-base), background var(--transition-slow);
}
.account-card:hover { border-color:rgba(124,79,232,0.35); box-shadow:var(--shadow-md); transform:translateY(-2px); }

.account-header  { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:var(--space-4); }
.account-title,.account-name { font-size:15px; font-weight:700; color:var(--text-primary); margin-bottom:3px; }
.account-meta    { font-size:11px; color:var(--text-muted); }
.account-body    { display:flex; flex-direction:column; gap:8px; }
.account-field   { display:flex; justify-content:space-between; align-items:center; font-size:13px; }
.account-field-label { color:var(--text-muted); font-weight:500; font-size:12px; }
.account-field-value { font-size:13px; font-weight:600; color:var(--text-primary); overflow-wrap: break-word; word-break: break-word; }
.partner-info-grid > div { min-width: 0; }
.account-details { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin-bottom:var(--space-4); }
.account-notes   { font-size:13px; color:var(--text-secondary); padding-top:10px; margin-top:10px; border-top:1px solid var(--border); }
.account-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:var(--space-4); }

/* Tier badges */
.tier-badge { display:inline-block; padding:3px 10px; border-radius:var(--radius-xs); font-size:var(--text-xs); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:var(--tracking-wide); white-space:nowrap; }
.tier-a,.tier-badge.tier-a { background:rgba(10,186,181,0.10); border:1px solid rgba(10,186,181,0.25); color:#0e8c89; }
.tier-b,.tier-badge.tier-b { background:rgba(124,79,232,0.10); border:1px solid rgba(124,79,232,0.25); color:var(--violet); }
.tier-c,.tier-badge.tier-c { background:var(--bg-surface-3); border:1px solid var(--border); color:var(--text-secondary); }

[data-theme="dark"] .tier-a,.tier-badge.tier-a { color:#0ABAB5; }
[data-theme="dark"] .tier-b,.tier-badge.tier-b { color:#A67DFF; }

/* List items */
.list-group { display:flex; flex-direction:column; gap:8px; }
.list-item {
  display:flex; justify-content:space-between; align-items:center;
  padding:11px var(--space-4);
  background:var(--bg-surface); border:1.5px solid var(--border);
  border-radius:var(--radius-sm); cursor:pointer;
  transition:background var(--transition-fast), border-color var(--transition-fast);
}
.list-item:hover { background:var(--bg-surface-2); border-color:rgba(124,79,232,0.28); }

/* ═══════════════════════════════════════════════════════════════
   MODAL
   ═══════════════════════════════════════════════════════════════ */
.modal-overlay {
  position:fixed; inset:0;
  background:rgba(30,16,64,0.45);
  backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
  display:flex; align-items:center; justify-content:center;
  z-index:200; padding:var(--space-5);
  animation:fadeIn 0.16s ease;
}
[data-theme="dark"] .modal-overlay { background:rgba(2,0,26,0.75); }

.modal {
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-top:3px solid var(--violet);
  border-radius:var(--radius-xl);
  padding:var(--space-8); max-width:min(580px, calc(100vw - 40px)); width:100%;
  max-height:90vh; overflow-y:auto; scrollbar-width:none;
  box-shadow:var(--shadow-xl);
  animation:slideUp 0.24s cubic-bezier(0.22,1,0.36,1);
  transition:background var(--transition-slow);
}
.modal::-webkit-scrollbar { display:none; }

/* Modal size variants — three explicit widths instead of inline style="max-width:..." overrides. */
.modal-sm { max-width: min(520px, calc(100vw - 40px)); }
.modal-lg { max-width: min(680px, calc(100vw - 40px)); }

.modal-header  { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--space-6); gap:var(--space-4); }
.modal-title   { font-family:var(--font-display); font-size:var(--text-3xl); font-weight:var(--fw-semibold); letter-spacing:var(--tracking-snug); line-height:var(--leading-tight); color:var(--ink); }
.modal-close   {
  width:34px; height:34px; flex-shrink:0; border-radius:50%;
  border:1.5px solid var(--border); background:var(--bg-surface-2);
  color:var(--text-secondary); font-size:18px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; line-height:var(--leading-none);
  transition:background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}
.modal-close:hover { background:var(--violet-subtle); color:var(--violet); transform:rotate(90deg); }
.modal-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:var(--space-6); flex-wrap:wrap; }
/* Descriptive intro paragraph below a .modal-title — was inline-styled on every pricing modal. */
.modal-subtitle { color: var(--text-muted); font-size: var(--text-md); margin: 0 0 var(--space-4); line-height: var(--leading-normal); }

/* Panel header used OUTSIDE .card / .card-header (e.g. inside a .glass-card section).
   Same intent as .card-header but lighter — no background bar, no border. */
.section-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-3); margin-bottom:var(--space-4); }
.section-head h3 { font-family:var(--font-display); font-size:var(--text-xl); font-weight:var(--fw-semibold); line-height:var(--leading-snug); letter-spacing:var(--tracking-normal); color:var(--text-primary); margin:0; }

/* Meta text utilities — small muted secondary text (counts, timestamps, hints).
   Replaces the 28+ inline `<span style="font-size:Xpx;color:var(--text-muted);">` spans. */
.meta    { font-size: var(--text-sm); color: var(--text-muted); }    /* 12px */
.meta-xs { font-size: var(--text-xs); color: var(--text-muted); }    /* 11px */
.meta-md { font-size: var(--text-md); color: var(--text-muted); }    /* 13px */

/* ═══════════════════════════════════════════════════════════════
   PROGRESS BAR
   ═══════════════════════════════════════════════════════════════ */
.progress-container { margin:var(--space-5) 0; }
.progress-label { display:flex; justify-content:space-between; margin-bottom:7px; font-size:13px; color:var(--text-secondary); font-weight:500; }
.progress-bar { height:8px; background:var(--bg-surface-3); border-radius:var(--radius-full); overflow:hidden; border:1px solid var(--border); }
.progress-fill { height:100%; background:linear-gradient(90deg, var(--violet), var(--sea)); border-radius:var(--radius-full); transition:width var(--transition-slow); box-shadow:0 0 8px rgba(124,79,232,0.35); }

/* ═══════════════════════════════════════════════════════════════
   TOAST
   ═══════════════════════════════════════════════════════════════ */
.toast {
  position:fixed; bottom:var(--space-6); right:var(--space-6);
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-radius:var(--radius-md);
  padding:13px var(--space-5);
  box-shadow:var(--shadow-lg); z-index:9999;
  min-width:280px; max-width:min(400px, calc(100vw - 48px));
  display:flex; align-items:flex-start; gap:12px;
  animation:slideInRight 0.26s cubic-bezier(0.22,1,0.36,1);
  font-size:14px;
  transition:background var(--transition-slow);
}
.toast-icon    { font-size:18px; flex-shrink:0; margin-top:1px; }
.toast-body    { flex:1; min-width:0; }
.toast-title   { font-weight:700; color:var(--text-primary); font-size:14px; margin-bottom:2px; }
.toast-message { color:var(--text-secondary); font-size:13px; }
.toast.success { border-left:4px solid var(--sea); }
.toast.error   { border-left:4px solid var(--coral); }
.toast.info    { border-left:4px solid var(--violet); }
.toast.warning { border-left:4px solid #d97706; }

/* ═══════════════════════════════════════════════════════════════
   TOOLTIP
   ═══════════════════════════════════════════════════════════════ */
@keyframes tooltip-in  { from { opacity:0; transform:scale(0.95); } to { opacity:1; transform:scale(1); } }
@keyframes tooltip-out { from { opacity:1; transform:scale(1); } to { opacity:0; transform:scale(0.95); } }

.tooltip-popup {
  position:fixed;
  z-index:10000;
  padding:6px 10px;
  border-radius:6px;
  font-size:12px;
  font-weight:500;
  line-height:var(--leading-normal);
  pointer-events:none;
  max-width:260px;
  word-break:break-word;
  box-shadow:0 4px 12px rgba(0,0,0,0.18), 0 1px 3px rgba(0,0,0,0.1);
}
.tooltip-popup[data-state="open"]   { animation:tooltip-in  0.15s cubic-bezier(0.22,1,0.36,1) forwards; }
.tooltip-popup[data-state="closed"] { animation:tooltip-out 0.1s ease forwards; }
.tooltip-popup.dark  { background:#09090b; color:#fff; }
.tooltip-popup.light { background:var(--bg-surface); color:var(--text-primary); border:1px solid var(--border); }

/* ═══════════════════════════════════════════════════════════════
   EMPTY / LOADING / ERROR STATES
   ═══════════════════════════════════════════════════════════════ */
.empty-state { text-align:center; padding:60px var(--space-5); color:var(--text-muted); }
.empty-icon  { font-size:48px; margin-bottom:var(--space-3); opacity:0.30; display:block; line-height:var(--leading-none); }
.empty-title { font-size:var(--text-xl); font-weight:var(--fw-semibold); line-height:var(--leading-snug); letter-spacing:var(--tracking-normal); color:var(--text-primary); margin-bottom:6px; font-family:var(--font-display); }
.empty-description { font-size:var(--text-md); color:var(--text-muted); max-width:360px; margin:0 auto var(--space-5); line-height:var(--leading-normal); }
.empty-action { margin-top:var(--space-5); }
/* Table-row empty state — for `<tr><td colspan="N">No X match…</td></tr>` */
.table .table-empty-row td { text-align:center; padding:var(--space-7) var(--space-4); color:var(--text-muted); font-size:var(--text-md); }
/* Inline empty state — small italic note for comment lists, etc. */
.empty-note { text-align:center; padding:var(--space-6) var(--space-5); color:var(--text-muted); font-style:italic; font-size:var(--text-md); }

.skeleton {
  background:linear-gradient(90deg, var(--bg-surface-2) 25%, var(--bg-surface-3) 50%, var(--bg-surface-2) 75%);
  background-size:400% 100%;
  animation:shimmer 1.5s ease-in-out infinite;
  border-radius:var(--radius-sm);
}
@keyframes shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
.skeleton-text  { height:14px; margin-bottom:10px; }
.skeleton-title { height:22px; width:60%; margin-bottom:12px; }
.skeleton-card  { height:140px; border-radius:var(--radius-md); }

.error-state { text-align:center; padding:var(--space-10) var(--space-6); background:rgba(239,68,68,0.04); border:1.5px solid rgba(239,68,68,0.18); border-radius:var(--radius-lg); }
.error-state .error-icon { font-size:38px; margin-bottom:var(--space-4); }
.error-state h3 { font-size:17px; font-weight:700; color:#dc2626; margin-bottom:6px; }
.error-state p  { font-size:14px; color:var(--text-muted); }

/* Inline alert / callout banner */
.alert { display:flex; align-items:flex-start; gap:10px; padding:11px var(--space-4); border-radius:var(--radius-sm); border:1.5px solid; font-size:14px; line-height:var(--leading-normal); }
.alert .alert-icon, .alert > i { flex-shrink:0; margin-top:1px; }
.alert-info    { background:rgba(124,79,232,0.07); border-color:rgba(124,79,232,0.22); color:var(--text-secondary); }
.alert-warning { background:rgba(217,119,6,0.08);  border-color:rgba(217,119,6,0.28);  color:#92400e; }
.alert-danger  { background:rgba(239,68,68,0.07);  border-color:rgba(239,68,68,0.25);  color:#b91c1c; }
.alert-success { background:rgba(10,186,181,0.08); border-color:rgba(10,186,181,0.25); color:#0a7e7a; }
[data-theme="dark"] .alert-warning { color:#fbbf24; }
[data-theme="dark"] .alert-danger  { color:#f87171; }
[data-theme="dark"] .alert-success { color:#2dd4bf; }

/* ═══════════════════════════════════════════════════════════════
   TABLES
   ═══════════════════════════════════════════════════════════════ */
.table-container {
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg);
  overflow-x:auto;
  overflow-y:hidden;
  box-shadow:var(--shadow-sm);
  transition:background var(--transition-slow);
  -webkit-overflow-scrolling:touch;
}
.table-responsive { width:100%; min-width:600px; }

/* Responsive grid utilities */
.grid-responsive   { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:16px; }
.grid-responsive-2 { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px,1fr)); gap:16px; }
.grid-responsive-3 { display:grid; grid-template-columns:repeat(auto-fit, minmax(140px,1fr)); gap:16px; }

/* ── Responsive 2/3-col helpers — replace inline 1fr-1fr styles (C2) ── */
.g-2    { display:grid; grid-template-columns:1fr 1fr;       gap:var(--space-4); }
.g-2-sm { display:grid; grid-template-columns:1fr 1fr;       gap:var(--space-3); }
.g-2-lg { display:grid; grid-template-columns:1fr 1fr;       gap:var(--space-6); }
.g-3    { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3); }
.g-2-1  { display:grid; grid-template-columns:2fr 1fr;       gap:var(--space-4); }

/* Loading / empty state wrapper — responsive padding (M1) */
.loading-box {
  padding: var(--space-10) var(--space-6);
  text-align: center;
  color: var(--text-muted);
  font-size: 14px;
}

/* Toolbar with responsive wrapping */
.toolbar-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

/* ── Page-level header row: title left, actions right, stays on one line ── */
.page-hdr {
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--space-4); margin-bottom:var(--space-6); flex-wrap:nowrap;
  padding-bottom:var(--space-3);
}
.page-hdr-title {
  font-family:var(--font-display);
  font-size:clamp(15px, 1.5vw, 22px);
  font-weight:var(--fw-semibold); letter-spacing:var(--tracking-normal); line-height:var(--leading-snug); margin:0;
  flex-shrink:1; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
/* Breadcrumb — sits ABOVE .page-hdr on every non-root page.
   Gives context (Dashboard / Partners / Acme Corp) when drilling in. */
.breadcrumb {
  display:flex; align-items:center; gap:6px; flex-wrap:wrap;
  font-size: var(--text-md); color: var(--text-muted);
  margin-bottom: var(--space-3); line-height: var(--leading-snug);
}
.breadcrumb a, .breadcrumb button {
  color: var(--text-muted); text-decoration: none;
  border: none; background: none; cursor: pointer; padding: 0;
  font: inherit;
  transition: color var(--transition-base);
}
.breadcrumb a:hover, .breadcrumb button:hover { color: var(--violet); }
.breadcrumb .separator { color: var(--text-muted); opacity: 0.55; user-select: none; }
.breadcrumb .current   { color: var(--text-primary); font-weight: var(--fw-medium); }

/* Optional inner wrapper used when the page header has a subtitle —
   stacks title + subtitle vertically on the left while actions stay right. */
.page-hdr-text { display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.page-hdr-subtitle {
  font-size: var(--text-md);
  font-weight: var(--fw-regular);
  color: var(--text-muted);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking-normal);
  margin: 0;
}
.page-hdr:has(.page-hdr-text) { align-items: flex-start; }
.page-hdr-actions {
  display:flex; align-items:center;
  gap:8px; flex-shrink:0; flex-wrap:nowrap;
}
.page-hdr-actions .form-input {
  width:clamp(120px, 15vw, 220px); font-size:13px;
}
/* Responsive padding for full-page glass/content cards */
.page-card { padding:clamp(14px, 2vw, 24px); }

@media (max-width: 1366px) {
  .page-hdr-title { font-size:clamp(15px, 1.4vw, 20px); }
  .page-hdr-actions .btn { padding:7px 12px; font-size:13px; }
  .page-hdr-actions .form-input { width:clamp(110px, 14vw, 190px); }
}
@media (max-width: 1024px) {
  .page-hdr-title { font-size:17px; }
  .page-hdr-actions .btn { padding:7px 11px; font-size:12px; }
  .page-hdr-actions .form-input { width:clamp(100px, 14vw, 160px); }
  .page-card { padding:clamp(12px, 2vw, 20px); }
}
@media (max-width: 900px) {
  .page-hdr-title { font-size:15px; }
  .page-hdr-actions .btn { padding:6px 9px; font-size:11px; gap:3px; }
  .page-hdr-actions .form-input { width:clamp(90px, 20%, 130px); }
  .page-card { padding:12px; }
}
@media (max-width: 768px) {
  .page-hdr { flex-wrap:wrap; margin-bottom:12px; }
  .page-hdr-actions { flex-wrap:wrap; gap:6px; }
}

.table { width:100%; border-collapse:collapse; font-size:var(--text-base); }
.table thead { background:var(--bg-surface-2); border-bottom:1px solid var(--border); position:sticky; top:0; z-index:10; }
.table th { padding:10px var(--space-3); text-align:left; font-size:var(--text-xs); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:var(--tracking-wide); color:var(--text-muted); white-space:nowrap; word-break:normal; }
.table td { padding:11px var(--space-3); border-bottom:1px solid var(--border); color:var(--text-secondary); vertical-align:middle; background-color:inherit; word-break:break-word; }
.table tbody tr { transition:background var(--transition-base); }
.table tbody tr:hover { background:var(--surface); }
.table tbody tr:hover td { background-color:inherit; }
.table tbody tr:last-child td { border-bottom:none; }
.table td.text-primary { color:var(--text-primary); font-weight:600; }
/* Numeric columns: right-align with tabular figures to prevent jitter */
.table td.num, .table th.num { text-align:right; font-variant-numeric:tabular-nums; }

/* ── Leaderboard enablement-stage row tints ─────────────────── */
/* Light mode */
.lb-row-partner  { background: #F2E7FF !important; }
.lb-row-partner  td { color: #5E35CB; border-bottom-color: #ddd0f8; }
.lb-row-mapping  { background: #E6F7EC !important; }
.lb-row-mapping  td { color: #2E7D32; border-bottom-color: #cae7d3; }
.lb-row-both     { background: #E3F0FF !important; }
.lb-row-both     td { color: #1565C0; border-bottom-color: #c7dff8; }
.lb-row-deleted  { background: rgba(0,0,0,0.04) !important; pointer-events: none; }
.lb-row-deleted  td { color: rgba(0,0,0,0.38) !important; border-bottom-color: var(--border); }
/* Hover: keep tint, just slightly deeper */
.lb-row-partner:hover  { background: #ead5ff !important; }
.lb-row-mapping:hover  { background: #d4ecdc !important; }
.lb-row-both:hover     { background: #cfe3fc !important; }
/* Dark mode overrides */
[data-theme="dark"] .lb-row-partner { background: rgba(124,79,232,0.14) !important; }
[data-theme="dark"] .lb-row-partner td { color: #c4b5fd; border-bottom-color: rgba(124,79,232,0.2); }
[data-theme="dark"] .lb-row-mapping { background: rgba(34,197,94,0.12) !important; }
[data-theme="dark"] .lb-row-mapping td { color: #86efac; border-bottom-color: rgba(34,197,94,0.2); }
[data-theme="dark"] .lb-row-both    { background: rgba(59,130,246,0.10) !important; }
[data-theme="dark"] .lb-row-both    td { color: #93c5fd; border-bottom-color: rgba(59,130,246,0.18); }
[data-theme="dark"] .lb-row-deleted { background: rgba(255,255,255,0.03) !important; }
[data-theme="dark"] .lb-row-deleted td { color: rgba(255,255,255,0.28) !important; }
[data-theme="dark"] .lb-row-partner:hover { background: rgba(124,79,232,0.22) !important; }
[data-theme="dark"] .lb-row-mapping:hover { background: rgba(34,197,94,0.18) !important; }
[data-theme="dark"] .lb-row-both:hover    { background: rgba(59,130,246,0.17) !important; }
/* Compact inputs / selects inside table cells */
.table .cell-input { width:96px; max-width:100%; padding:6px 8px; font-size:13px; }
.table .cell-input--sm { width:72px; }
.table td.num .cell-input { text-align:right; }

/* ═══════════════════════════════════════════════════════════════
   BADGES
   ═══════════════════════════════════════════════════════════════ */
.badge { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:var(--radius-full); font-size:11px; font-weight:600; border:1px solid; white-space:nowrap; letter-spacing:0.1px; }
.badge--sm { font-size:10px; padding:2px 8px; gap:4px; }
.badge--uppercase { text-transform:uppercase; letter-spacing:var(--tracking-wide); font-weight:var(--fw-bold); }

.badge-success  { background:rgba(10,186,181,0.10); border-color:rgba(10,186,181,0.25); color:#0a7e7a; }
.badge-warning  { background:rgba(217,119,6,0.10);  border-color:rgba(217,119,6,0.25);  color:#92400e; }
.badge-danger   { background:rgba(239,68,68,0.10);  border-color:rgba(239,68,68,0.25);  color:#b91c1c; }
.badge-info     { background:rgba(124,79,232,0.10); border-color:rgba(124,79,232,0.25); color:var(--violet-dark); }
.badge-neutral  { background:var(--bg-surface-3);   border-color:var(--border);         color:var(--text-secondary); }

.badge-active        { background:rgba(22,163,74,0.09);   border-color:rgba(22,163,74,0.22);   color:#15803d; font-weight:700; }
.badge-inactive      { background:rgba(107,114,128,0.09); border-color:rgba(107,114,128,0.22); color:#6b7280; font-weight:700; }
.badge-suspended     { background:rgba(239,68,68,0.09);   border-color:rgba(239,68,68,0.22);   color:#b91c1c; font-weight:700; }
.badge-contacted     { background:rgba(37,99,235,0.09);   border-color:rgba(37,99,235,0.22);   color:#1d4ed8; font-weight:700; }
.badge-demo_scheduled{ background:rgba(234,88,12,0.09);   border-color:rgba(234,88,12,0.22);   color:#c2410c; font-weight:700; }
.badge-deal_closed   { background:rgba(22,163,74,0.09);   border-color:rgba(22,163,74,0.22);   color:#15803d; font-weight:700; }
.badge-lost          { background:rgba(107,114,128,0.09); border-color:rgba(107,114,128,0.22); color:#6b7280; font-weight:700; }
.badge-archived          { background:rgba(100,116,139,0.09); border-color:rgba(100,116,139,0.22); color:#475569; font-weight:700; }
.badge-joint_discovery_call { background:rgba(14,165,233,0.09);  border-color:rgba(14,165,233,0.22);  color:#0369a1; font-weight:700; }
.badge-appointment_inprogress { background:rgba(8,145,178,0.09);   border-color:rgba(8,145,178,0.22);   color:#0891b2; font-weight:700; }
.badge-appointment_done       { background:rgba(124,79,232,0.09);  border-color:rgba(124,79,232,0.22);  color:#6d28d9; font-weight:700; }

.badge-strong { background:rgba(10,186,181,0.10); border-color:rgba(10,186,181,0.22); color:#0a7e7a; }
.badge-medium { background:rgba(217,119,6,0.10);  border-color:rgba(217,119,6,0.22);  color:#92400e; }
.badge-weak   { background:rgba(239,68,68,0.10);  border-color:rgba(239,68,68,0.22);  color:#b91c1c; }

.badge-ticket-open     { background:rgba(37,99,235,0.09);  border-color:rgba(37,99,235,0.22);  color:#1d4ed8; }
.badge-ticket-progress { background:rgba(217,119,6,0.09);  border-color:rgba(217,119,6,0.22);  color:#92400e; }
.badge-ticket-resolved { background:rgba(22,163,74,0.09);  border-color:rgba(22,163,74,0.22);  color:#15803d; }
.badge-ticket-closed   { background:rgba(107,114,128,0.09);border-color:rgba(107,114,128,0.22);color:#6b7280; }

/* dark-mode badge text adjustments for readability */
[data-theme="dark"] .badge-active         { color:#4ade80; }
[data-theme="dark"] .badge-inactive       { color:#9ca3af; }
[data-theme="dark"] .badge-suspended      { color:#f87171; }
[data-theme="dark"] .badge-contacted      { color:#60a5fa; }
[data-theme="dark"] .badge-demo_scheduled { color:#fb923c; }
[data-theme="dark"] .badge-deal_closed         { color:#4ade80; }
[data-theme="dark"] .badge-appointment_inprogress { color:#22d3ee; }
[data-theme="dark"] .badge-appointment_done       { color:#a78bfa; }
[data-theme="dark"] .badge-strong         { color:#2dd4bf; }
[data-theme="dark"] .badge-success        { color:#2dd4bf; }
[data-theme="dark"] .badge-info           { color:var(--violet-light); }
[data-theme="dark"] .badge-warning        { color:#fbbf24; }
[data-theme="dark"] .badge-ticket-open    { color:#60a5fa; }
[data-theme="dark"] .badge-ticket-resolved{ color:#4ade80; }

/* ═══════════════════════════════════════════════════════════════
   PLAYBOOK VIEWER
   ═══════════════════════════════════════════════════════════════ */
.playbook-container { display:grid; grid-template-columns:clamp(240px, 21%, 290px) 1fr; gap:var(--space-5); align-items:start; }

.playbook-sidebar {
  position:sticky; top:80px;
  background:var(--bg-surface);
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm);
  max-height:calc(100vh - 108px); display:flex; flex-direction:column;
  transition:background var(--transition-slow);
}
.playbook-sidebar-header { padding:var(--space-4); border-bottom:1px solid var(--border); background:var(--bg-inset); }
.playbook-sidebar-header h3 { margin:0; font-family:var(--font-display); font-size:var(--text-xl); font-weight:var(--fw-semibold); line-height:var(--leading-snug); letter-spacing:var(--tracking-normal); color:var(--violet); }
.playbook-nav { padding:10px; overflow-y:auto; flex:1; }

.playbook-nav-item {
  display:flex; gap:11px; align-items:center;
  padding:10px 11px; margin-bottom:5px;
  border-radius:var(--radius-sm); border:1.5px solid var(--border);
  background:var(--bg-surface); cursor:pointer;
  transition:background var(--transition-base), border-color var(--transition-base), transform var(--transition-base);
}
.playbook-nav-item:hover   { background:var(--bg-surface-2); border-color:rgba(124,79,232,0.28); transform:translateX(3px); }
.playbook-nav-item.active  { background:var(--violet-subtle); border-color:rgba(124,79,232,0.38); box-shadow:0 2px 10px rgba(124,79,232,0.14); }

.playbook-nav-number { width:28px; height:28px; border-radius:50%; background:rgba(124,79,232,0.12); border:1.5px solid rgba(124,79,232,0.25); display:flex; align-items:center; justify-content:center; font-weight:800; font-family:var(--font-display); font-size:12px; flex-shrink:0; color:var(--violet); }
.playbook-nav-title  { font-size:13px; font-weight:600; line-height:var(--leading-snug); color:var(--text-primary); }

.playbook-content { background:var(--bg-surface); border:1.5px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); transition:background var(--transition-slow); }
.playbook-section { padding:var(--space-8); border-bottom:1px solid var(--border); scroll-margin-top:88px; }
.playbook-section:last-child { border-bottom:none; }
.playbook-section-header { margin-bottom:var(--space-6); }

.playbook-section-badge { display:inline-block; padding:4px 11px; border-radius:var(--radius-full); background:rgba(124,79,232,0.10); border:1px solid rgba(124,79,232,0.22); color:var(--violet-dark); font-size:var(--text-xs); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:var(--tracking-wide); margin-bottom:10px; }
[data-theme="dark"] .playbook-section-badge { color:var(--violet-light); }

.playbook-section-header h2 { font-family:var(--font-display); font-size:var(--text-4xl); font-weight:var(--fw-semibold); margin:0; color:var(--ink); letter-spacing:var(--tracking-tight); line-height:var(--leading-tight); }

.playbook-section-body { color:var(--text-secondary); line-height:var(--leading-relaxed); }
.playbook-section-body h3 { font-size:17px; font-weight:700; margin:20px 0 10px; color:var(--text-primary); }
.playbook-section-body h4 { font-size:15px; font-weight:700; margin:16px 0 8px;  color:var(--text-primary); }
.playbook-section-body p  { margin:10px 0; }
.playbook-section-body ul,.playbook-section-body ol { margin:10px 0; padding-left:22px; }
.playbook-section-body li { margin:7px 0; }
.playbook-section-body strong { color:var(--text-primary); font-weight:700; }
.playbook-section-body em     { color:var(--text-muted); font-style:italic; }

.playbook-section-footer { display:flex; justify-content:space-between; gap:12px; margin-top:var(--space-8); padding-top:var(--space-6); border-top:1px dashed var(--border); }
.playbook-navigation-controls { display:flex; justify-content:space-between; gap:var(--space-4); margin-top:var(--space-8); padding:var(--space-6) var(--space-8) var(--space-8); border-top:2px solid rgba(124,79,232,0.14); }
.playbook-navigation-controls .btn { flex:1; max-width:220px; font-size:14px; font-weight:600; }

/* ═══════════════════════════════════════════════════════════════
   CONTRACTS & QUOTES MODULE
   ═══════════════════════════════════════════════════════════════ */
.contracts-page { padding:0; }
.contracts-header { display:flex; align-items:center; gap:var(--space-4); margin-bottom:var(--space-6); flex-wrap:wrap; }
.contracts-header-title { display:flex; align-items:center; gap:12px; }
.contracts-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:var(--space-4); }

.contract-card { background:var(--bg-surface); border:1.5px solid var(--border); border-radius:var(--radius-md); padding:var(--space-5); cursor:pointer; display:flex; flex-direction:column; gap:8px; transition:transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), background var(--transition-slow); }
.contract-card:hover { transform:translateY(-3px); border-color:rgba(124,79,232,0.38); box-shadow:var(--shadow-md); }
.contract-card-icon  { font-size:1.8rem; line-height:var(--leading-none); }
.contract-card-title { font-size:14px; font-weight:600; color:var(--text-primary); margin:0; }
.contract-card-desc  { font-size:12px; color:var(--text-muted); line-height:var(--leading-normal); flex:1; }
.contract-card-badge { display:inline-block; padding:2px 9px; border-radius:var(--radius-full); font-size:10.5px; font-weight:700; letter-spacing:0.04em; width:fit-content; }

.quote-layout { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-6); align-items:start; }
.quote-form-col,.quote-preview-col { display:flex; flex-direction:column; gap:0; }

.form-section { background:var(--bg-surface); border:1.5px solid var(--border); border-radius:var(--radius-md); padding:var(--space-5); margin-bottom:var(--space-4); transition:background var(--transition-slow); }
.form-section-title { font-size:var(--text-xs); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:var(--tracking-wide); color:var(--violet); border-bottom:1px solid var(--border); padding-bottom:9px; margin-bottom:var(--space-4); }
.form-section-title-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; }

.pricing-context-block { background:var(--bg-surface-2); border:1px solid var(--border); border-radius:var(--radius-sm); padding:11px; margin-top:9px; }
.pricing-hint-row { display:flex; align-items:center; flex-wrap:wrap; gap:5px; font-size:12px; margin-bottom:9px; }
.ph-item   { color:var(--text-muted); }
.ph-sep    { color:var(--text-muted); opacity:0.5; }
.ph-disc   { color:var(--sea-dark); font-weight:600; }
.ph-client { color:var(--violet); font-weight:600; }
[data-theme="dark"] .ph-disc   { color:#5eead4; }
[data-theme="dark"] .ph-client { color:#a78bfa; }

.extra-disc-field { margin-top:0; }
.mdm-platforms { display:flex; flex-direction:column; gap:9px; }
.platform-row  { display:flex; align-items:flex-end; gap:var(--space-4); flex-wrap:wrap; }
.platform-check-label { display:flex; align-items:center; gap:6px; cursor:pointer; font-size:13px; min-width:110px; color:var(--text-secondary); }
.platform-field { flex:1; min-width:150px; }
.quote-action-bar { display:flex; gap:9px; flex-wrap:wrap; align-items:center; padding-top:8px; }

/* Quote preview — always light (it's a print document) */
.quote-preview-card { background:#FFFFFF; color:#1a2035; border-radius:var(--radius-md); padding:var(--space-5); font-family:Arial,Helvetica,sans-serif; font-size:13px; box-shadow:var(--shadow-md); border:1px solid #E0DCEF; position:sticky; top:20px; }
.qp-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px; }

/* ═══════════════════════════════════════════════════════════════
   BELL NOTIFICATIONS
   ═══════════════════════════════════════════════════════════════ */
.notif-bell-wrapper { position:relative; display:flex; align-items:center; margin-right:10px; }

.notif-bell-btn {
  background:var(--bg-inset); border:1.5px solid var(--border); border-radius:var(--radius-xs);
  cursor:pointer; font-size:17px; position:relative; padding:7px 10px;
  color:var(--text-secondary); line-height:var(--leading-none);
  transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}
.notif-bell-btn:hover { background:var(--bg-surface-3); color:var(--violet); border-color:rgba(124,79,232,0.28); }

.notif-badge { position:absolute; top:-4px; right:-4px; background:#ef4444; color:#fff; border-radius:50%; font-size:10px; min-width:16px; height:16px; display:flex; align-items:center; justify-content:center; font-weight:700; padding:0 3px; border:2px solid var(--bg-surface); }

.notif-dropdown {
  position:absolute; right:0; top:calc(100% + 10px);
  width:min(360px, calc(100vw - 32px)); max-height:min(480px, calc(100vh - 120px)); display:flex; flex-direction:column;
  background:var(--bg-surface); border:1.5px solid var(--border);
  border-radius:var(--radius-md); box-shadow:var(--shadow-xl);
  z-index:1000; overflow:hidden;
  transition:background var(--transition-slow);
}
.notif-dropdown-header { padding:13px 16px; border-bottom:1px solid var(--border); display:flex; justify-content:space-between; align-items:center; font-weight:700; font-size:14px; flex-shrink:0; background:var(--bg-surface-2); color:var(--text-primary); }
.notif-dropdown-header .notif-mark-all { font-size:12px; background:none; border:none; color:var(--violet); cursor:pointer; padding:4px 8px; border-radius:var(--radius-xs); font-weight:600; transition:background var(--transition-fast); font-family:inherit; }
.notif-dropdown-header .notif-mark-all:hover { background:rgba(124,79,232,0.10); }

.notif-list-scroll { overflow-y:auto; flex:1; }
.notif-list-scroll::-webkit-scrollbar { width:4px; }
.notif-list-scroll::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }

.notif-item { display:flex; align-items:flex-start; gap:11px; padding:13px 16px; border-bottom:1px solid var(--border); cursor:pointer; transition:background var(--transition-fast); position:relative; }
.notif-item:last-child { border-bottom:none; }
.notif-item:hover { background:var(--bg-surface-2); }
.notif-item.unread { background:var(--violet-subtle); }
.notif-item.unread:hover { background:var(--bg-surface-2); }
.notif-item.unread::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--violet); border-radius:0 2px 2px 0; }

.notif-icon { width:34px; height:34px; border-radius:var(--radius-xs); display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; margin-top:1px; }
.notif-icon-created   { background:rgba(124,79,232,0.10); }
.notif-icon-resolved  { background:rgba(22,163,74,0.10); }
.notif-icon-default   { background:rgba(107,114,128,0.08); }
.notif-icon-duplicate { background:rgba(234,88,12,0.10); }
.notif-body { flex:1; min-width:0; }
.notif-item-title { font-weight:600; font-size:13px; color:var(--text-primary); line-height:var(--leading-snug); }
.notif-item-msg   { font-size:12px; color:var(--text-secondary); margin-top:3px; line-height:var(--leading-normal); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.notif-item-time  { font-size:11px; color:var(--text-muted); margin-top:5px; font-weight:500; }
.notif-unread-dot { width:7px; height:7px; border-radius:50%; background:var(--violet); flex-shrink:0; margin-top:5px; }
.notif-item-duplicate.unread { background:rgba(234,88,12,0.06); }
.notif-item-duplicate.unread::before { background:rgba(234,88,12,0.8); }
.notif-view-detail { font-size:11px; font-weight:600; color:rgba(234,88,12,0.85); white-space:nowrap; flex-shrink:0; margin-top:4px; }

/* Duplicate account notification detail modal */
.notif-detail-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:9999; display:flex; align-items:center; justify-content:center; padding:16px; }
.notif-detail-box { background:var(--bg-card); border-radius:var(--radius-md); box-shadow:var(--shadow-xl); width:100%; max-width:480px; overflow:hidden; }
.notif-detail-header { display:flex; align-items:center; gap:10px; padding:18px 20px 14px; border-bottom:1px solid var(--border); }
.notif-detail-icon { font-size:20px; }
.notif-detail-title { flex:1; font-weight:700; font-size:15px; color:var(--text-primary); }
.notif-detail-close { background:none; border:none; cursor:pointer; font-size:16px; color:var(--text-muted); padding:2px 6px; border-radius:4px; }
.notif-detail-close:hover { background:var(--bg-surface-2); }
.notif-detail-body { padding:18px 20px; display:flex; flex-direction:column; gap:12px; }
.notif-detail-row { display:flex; flex-direction:column; gap:3px; }
.notif-detail-label { font-size:var(--text-xs); font-weight:var(--fw-semibold); text-transform:uppercase; letter-spacing:var(--tracking-wide); color:var(--text-muted); }
.notif-detail-value { font-size:13px; color:var(--text-primary); }
.notif-detail-highlight { font-weight:600; color:var(--violet); }
.notif-detail-message { margin-top:4px; padding:12px 14px; background:rgba(234,88,12,0.07); border-left:3px solid rgba(234,88,12,0.7); border-radius:0 var(--radius-xs) var(--radius-xs) 0; font-size:13px; color:var(--text-secondary); line-height:var(--leading-normal); }
.notif-detail-footer { display:flex; justify-content:flex-end; padding:12px 20px; border-top:1px solid var(--border); }

/* ═══════════════════════════════════════════════════════════════
   CONTENT CARDS / INFO PANELS
   ═══════════════════════════════════════════════════════════════ */
.content-card { background:var(--bg-surface); border:1.5px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); overflow:hidden; transition:background var(--transition-slow); }
.content-card-header { display:flex; align-items:center; justify-content:space-between; padding:var(--space-5) var(--space-6); border-bottom:1px solid var(--border); background:var(--bg-surface-2); flex-wrap:wrap; gap:var(--space-3); }
.content-card-title  { font-family:var(--font-display); font-size:var(--text-xl); font-weight:var(--fw-semibold); line-height:var(--leading-snug); letter-spacing:var(--tracking-normal); color:var(--text-primary); }
.content-card-body   { padding:var(--space-6); }

.info-panel { background:rgba(124,79,232,0.06); border:1px solid rgba(124,79,232,0.16); border-radius:var(--radius-md); padding:var(--space-4) var(--space-5); font-size:14px; color:var(--text-secondary); line-height:var(--leading-relaxed); }
.info-panel.info-teal    { background:rgba(10,186,181,0.06); border-color:rgba(10,186,181,0.18); }
.info-panel.info-warning { background:rgba(217,119,6,0.06);  border-color:rgba(217,119,6,0.18); }
.info-panel.info-danger  { background:rgba(239,68,68,0.06);  border-color:rgba(239,68,68,0.18); }

.filter-bar { display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; margin-bottom:var(--space-5); }
.search-input-wrapper { position:relative; flex:1; min-width:clamp(140px, 30%, 200px); }
.search-input-wrapper .search-icon { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:14px; pointer-events:none; }
.search-input-wrapper .form-input  { padding-left:36px; }

/* ═══════════════════════════════════════════════════════════════
   ANIMATIONS
   ═══════════════════════════════════════════════════════════════ */
@keyframes fadeIn       { from{opacity:0}               to{opacity:1} }
@keyframes slideUp      { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
@keyframes slideInRight { from{opacity:0;transform:translateX(60px)} to{opacity:1;transform:translateX(0)} }
@keyframes slideInLeft  { from{opacity:0;transform:translateX(-20px)} to{opacity:1;transform:translateX(0)} }
@keyframes pulse        { 0%,100%{opacity:1} 50%{opacity:0.45} }
@keyframes spin         { to{transform:rotate(360deg)} }


.loading  { animation:pulse 2s cubic-bezier(0.4,0,0.6,1) infinite; }
.spinning { animation:spin 1s linear infinite; }
.fade-in  { animation:fadeIn 0.3s ease; }
.slide-up { animation:slideUp 0.28s cubic-bezier(0.22,1,0.36,1); }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════ */
/* ── 1366px — laptop & Windows-scaled displays (125% on 1920p, 150% on 1366p laptop) ── */
@media (max-width: 1366px) {
  .admin-main   { padding: var(--space-4); }
  .dashboard    { padding: var(--space-6) 0 64px; }
  .quote-layout { gap: var(--space-4); }
  .stats-grid   { grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); }
  .accounts-grid{ grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }
}

@media (max-width: 1024px) {
  .admin-sidebar { width:200px; min-width:200px; }
  .quote-layout  { grid-template-columns:1fr; }
  /* H7 — prevent long nav labels from wrapping inside fixed-width sidebar */
  .admin-nav-btn { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  /* H6 — remove sticky positioning when quote layout collapses to 1 column */
  .quote-preview-card { position:static; top:auto; }
  /* H4 — prevent notification dropdown from exceeding viewport at 769–1024px */
  .notif-dropdown { max-width:calc(100vw - 32px); }
}

@media (max-width: 980px) {
  .playbook-container { grid-template-columns:1fr; }
  .playbook-sidebar   { position:relative; top:0; max-height:none; }
  .playbook-section   { padding:var(--space-5); }

  .admin-layout { flex-direction:column; }
  .admin-sidebar { width:100%; min-width:unset; height:auto; position:static; border-right:none; border-bottom:1px solid var(--border); }
  .admin-sidebar nav { display:flex; flex-direction:row; flex-wrap:wrap; padding:var(--space-2) var(--space-3); }
  .admin-nav-btn  { flex:1; min-width:120px; border-radius:var(--radius-sm); justify-content:center; }
  .admin-main     { padding:var(--space-3); }
}

/* ── 800px fix: compact table/layout for the sidebar-collapsed-but-not-yet-mobile range ── */
@media (max-width: 900px) {
  .admin-main          { padding:var(--space-3); }
  .admin-nav-btn       { min-width:90px; font-size:11px; padding:6px 10px; }
  .dashboard-header h1 { font-size:18px; }
  .section-title       { font-size:15px; }
  .stat-value          { font-size:22px; }
  .stat-label          { font-size:11px; }
  .stats-grid          { gap:var(--space-2); }

  /* Prevent table header text from wrapping vertically */
  .table               { font-size:12px; }
  .table th            { padding:7px 8px; font-size:10px; white-space:nowrap; word-break:normal; letter-spacing:var(--tracking-wide); }
  .table td            { padding:8px 8px; font-size:12px; }

  .btn                 { padding:6px 12px; font-size:12px; }
  .toolbar-row         { gap:6px; }
  .card-header         { padding:var(--space-3) var(--space-4); }
  .card-body           { padding:var(--space-3); }
  .navbar-title        { font-size:14px; }
  .navbar-brand img    { height:30px; }
  .loading-box         { padding:var(--space-6) var(--space-4); }
}

@media (max-width: 768px) {
  .container       { padding:0 var(--space-4); }
  .login-card      { padding: 32px 24px 28px; border-radius: 16px; }
  .dashboard       { padding:var(--space-5) 0 60px; }
  .dashboard-header h1 { font-size:22px; }
  .stats-grid      { grid-template-columns:1fr 1fr; gap:var(--space-3); }
  .navbar-title    { font-size:16px; }
  .navbar-subtitle { display:none; }
  .modal           { padding:var(--space-5); border-radius:var(--radius-lg); }
  .modal-title     { font-size:18px; }
  .account-details { grid-template-columns:1fr; }
  .accounts-grid   { grid-template-columns:1fr; }
  .contracts-grid  { grid-template-columns:1fr 1fr; }
  .field-row-2     { grid-template-columns:1fr; }
  .toast           { min-width:unset; right:var(--space-4); left:var(--space-4); }
  .playbook-navigation-controls { flex-direction:column; }
  .playbook-navigation-controls .btn { max-width:none; }
  /* theme select — compact on mobile */
  .theme-pill-track { width:44px; height:22px; }
  .theme-pill-thumb { width:17px; height:17px; }
  #theme-checkbox:checked + .theme-pill-track .theme-pill-thumb { transform:translateX(21px); }

  /* C3 — pricing / generic tab bar horizontal scroll on mobile */
  .tabs { overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .tabs::-webkit-scrollbar { display:none; }
  .tab  { flex:0 0 auto; white-space:nowrap; }

  /* C2 — responsive grid helper overrides */
  .g-2,.g-2-sm,.g-2-lg,.g-2-1 { grid-template-columns:1fr; }
  .g-3 { grid-template-columns:1fr 1fr; }

  /* H4 — notification dropdown fixed below navbar on mobile */
  .notif-dropdown {
    position:fixed;
    top:74px;
    left:16px;
    right:16px;
    width:auto;
    max-width:none;
  }

  /* M1 — compact loading state padding on mobile */
  .loading-box { padding:var(--space-6) var(--space-4); }

  /* L2 — navbar brand text truncation for long names */
  .navbar-brand-text { max-width:180px; overflow:hidden; }
  .navbar-title      { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

  /* C1 — card component reduced padding on mobile */
  .card-header { padding:var(--space-4); }
  .card-body   { padding:var(--space-4); }

  /* L1 — subtle right-edge shadow hints at horizontal table scroll */
  .table-container { box-shadow:var(--shadow-sm), inset -8px 0 12px -8px rgba(124,79,232,0.14); }
}

@media (max-width: 480px) {
  .stats-grid     { grid-template-columns:1fr; }
  .contracts-grid { grid-template-columns:1fr; }
  .navbar-content { padding:0 var(--space-3); }
  /* H1 — profile name/role moved to 360px so 375px/414px phones still see it */
  .modal-actions  { flex-direction:column-reverse; }
  .modal-actions .btn { width:100%; justify-content:center; }
  .admin-nav-btn  { min-width:90px; font-size:12px; padding:7px 8px; }
  .search-input-wrapper { min-width:clamp(120px, 40%, 160px); }
  .filter-bar     { gap:var(--space-2); }
  .section-header { flex-direction:column; align-items:flex-start; }
  .toast          { bottom:var(--space-4); right:var(--space-3); left:var(--space-3); min-width:unset; }
  /* C2 — collapse 3-col grids to 1 col on small phones */
  .g-3            { grid-template-columns:1fr; }
  /* L3 — reduce stat value font size on small phones */
  .stat-value     { font-size:28px; }
}

@media (max-width: 360px) {
  .admin-nav-btn  { min-width:72px; font-size:11px; padding:6px 5px; }
  .admin-nav-btn .nav-icon { display:none; }
  .navbar-brand img { height:30px; }
  .navbar-title   { font-size:14px; }
  .sidebar-profile-popup { left: 0; right: 0; }
  .search-input-wrapper { min-width:120px; }
  .dashboard-header h1 { font-size:18px; }
  /* L3 — tightest stat value size for 320px */
  .stat-value     { font-size:24px; }
  .modal          { padding:var(--space-4); }
  .admin-main     { padding:var(--space-3); }
  /* M7 — toast min-width can cause overflow at 320px */
  .toast          { min-width:unset; }
  /* H4 — notification dropdown full-bleed at 320px */
  .notif-dropdown { left:8px; right:8px; }
}

/* ── 1280px — ensure stats cards fill a single row ── */
@media (min-width: 1280px) {
  .stats-grid { grid-template-columns:repeat(auto-fit, minmax(min(180px, 100%), 1fr)); }
}

/* ── 1440px desktop — scale up; clamp() handles smooth approach ── */
@media (min-width: 1440px) {
  .dashboard-header h1 { font-size:32px; }
  .section-title        { font-size:22px; }
  .stat-value           { font-size:36px; }
  .admin-main           { padding: var(--space-8); }
  .dashboard            { padding: var(--space-8) 0 80px; }
}

/* ── Full HD desktop — layout cap ── */
@media (min-width: 1600px) {
  .admin-main { max-width:100%; }
}

/* ── 1920px — body text and heading scale-up ── */
@media (min-width: 1920px) {
  body                 { font-size:16px; }
  .dashboard-header h1 { font-size:38px; }
  .stat-value          { font-size:40px; }
  .admin-sidebar       { width:clamp(232px, 14vw, 280px); min-width:clamp(232px, 14vw, 280px); }
  .navbar-brand img    { height:42px; }
}

/* ═══════════════════════════════════════════════════════════════
   Pricing breadcrumb — Profile → Version context trail
   ═══════════════════════════════════════════════════════════════ */
.pa-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-bottom:14px; font-size:13px; }
.pa-crumb { background:none; border:none; padding:0; font-family:inherit; font-size:13px; color:var(--text-muted); cursor:pointer; }
.pa-crumb:hover { color:var(--violet); text-decoration:underline; }
.pa-crumb:focus-visible { outline:2px solid var(--violet); outline-offset:2px; border-radius:var(--radius-xs); }
.pa-crumb--current { color:var(--text-secondary); font-weight:600; cursor:default; }
.pa-crumb--current:hover { text-decoration:none; color:var(--text-secondary); }
.pa-crumb-sep { color:var(--text-muted); opacity:.55; }

/* Brief teal "saved" pulse on autosaved rate / minimum cells */
.saved-flash { animation: pa-saved 1s ease; }
@keyframes pa-saved {
  0%   { box-shadow:0 0 0 0 rgba(10,186,181,0);     border-color:var(--sea); }
  25%  { box-shadow:0 0 0 3px rgba(10,186,181,0.30); border-color:var(--sea); }
  100% { box-shadow:0 0 0 0 rgba(10,186,181,0); }
}
@media (prefers-reduced-motion: reduce) { .saved-flash { animation:none; } }

/* Partner pricing assignment form — responsive */
.pa-assign-grid { display:grid; grid-template-columns:1fr 1fr 160px; gap:12px; align-items:end; }
@media (max-width:640px) { .pa-assign-grid { grid-template-columns:1fr; } }

/* Pricing page chrome — tokenized headers, labels, grids, empties */
.pa-page-head { display:flex; justify-content:space-between; align-items:center; gap:var(--space-3); margin-bottom:var(--space-4); flex-wrap:wrap; }
.pa-page-head--stacked { align-items:flex-start; }
/* All title tokens — sizes/weights/leading/tracking come from :root vars. */
.pa-page-title { font-family:var(--font-display); font-size:var(--text-3xl); font-weight:var(--fw-semibold); line-height:var(--leading-tight); letter-spacing:var(--tracking-snug); color:var(--text-primary); margin:0 0 2px; }
.pa-section-label { margin:0 0 10px; font-size:var(--text-sm); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:var(--tracking-wide); color:var(--text-muted); }
.pa-subsection-title { margin:0; font-size:var(--text-md); font-weight:var(--fw-semibold); line-height:var(--leading-snug); color:var(--text-primary); }
.pa-card-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:12px; }
.empty-state--inline { padding:36px var(--space-6); }

/* ─── Flow workspace (3rd toggle option): master–detail + module-card rates ─── */
.pa-flow-wrap { display:grid; grid-template-columns:280px 1fr; gap:var(--space-5); align-items:start; }
@media (max-width:900px) { .pa-flow-wrap { grid-template-columns:1fr; } }

.pa-flow-rail { display:flex; flex-direction:column; gap:4px; position:sticky; top:var(--space-3); }
.pa-flow-rail__head { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.pa-flow-rail__sub { margin:14px 0 4px; font-size:var(--text-xs); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:var(--tracking-wide); color:var(--text-muted); }
.pa-flow-railitem {
  display:flex; align-items:flex-start; gap:9px; width:100%; text-align:left;
  padding:10px 12px; border:1.5px solid var(--border); border-radius:var(--radius-sm);
  background:var(--bg-surface); color:var(--text-primary); cursor:pointer;
  font-family:var(--font-sans); font-size:14px;
  transition:background var(--transition-fast), border-color var(--transition-fast);
}
.pa-flow-railitem:hover { background:var(--bg-surface-3); border-color:var(--border-hover); }
.pa-flow-railitem.selected { border-color:var(--violet); background:var(--violet-subtle); }
.pa-flow-railitem:focus-visible { outline:2px solid var(--violet); outline-offset:2px; }
.pa-flow-railitem__body { display:flex; flex-direction:column; gap:1px; min-width:0; flex:1; }
.pa-flow-railitem__name { font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pa-flow-railitem__meta { font-size:11px; color:var(--text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pa-flow-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; margin-top:5px; }
.pa-flow-dot--pub { background:var(--sea); }
.pa-flow-dot--draft { background:#d97706; }
.pa-flow-rail__hint { font-size:11px; color:var(--text-muted); margin:5px 2px 2px; line-height:var(--leading-normal); }
.pa-flow-railadd {
  display:flex; align-items:center; justify-content:center; gap:6px; width:100%;
  padding:9px 11px; margin-top:2px; border:1.5px dashed var(--border-hover);
  border-radius:var(--radius-sm); background:transparent; color:var(--violet);
  font-family:var(--font-sans); font-size:13px; font-weight:600; cursor:pointer;
  transition:background var(--transition-fast), border-color var(--transition-fast);
}
.pa-flow-railadd:hover { background:var(--violet-subtle); border-color:var(--violet); }
.pa-flow-railadd:focus-visible { outline:2px solid var(--violet); outline-offset:2px; }

.pa-flow-detail { max-width:1080px; min-height:60vh; }
.pa-flow-detail__head { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-3); margin-bottom:var(--space-4); flex-wrap:wrap; }
.pa-flow-vbar { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); flex-wrap:wrap; margin-bottom:12px; }
.pa-flow-vchips { display:flex; gap:6px; flex-wrap:wrap; }
.pa-flow-vchip {
  display:inline-flex; align-items:center; gap:6px; padding:5px 12px;
  border:1.5px solid var(--border); border-radius:var(--radius-full);
  background:var(--bg-surface); color:var(--text-secondary); cursor:pointer;
  font-family:var(--font-sans); font-size:13px; font-weight:600;
  transition:background var(--transition-fast), border-color var(--transition-fast);
}
.pa-flow-vchip:hover { border-color:var(--border-hover); }
.pa-flow-vchip.selected { border-color:var(--violet); background:var(--violet-subtle); color:var(--violet-dark); }
.pa-flow-vchip:focus-visible { outline:2px solid var(--violet); outline-offset:2px; }
.pa-flow-vactions { display:flex; gap:6px; flex-wrap:wrap; }

.pa-flow-rateshead { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); margin:18px 0 10px; flex-wrap:wrap; }
/* .pa-cur-tabs / .pa-cur-tab removed — use .tabs.tabs--sm.tabs--inline + .tab instead (single tab system). */

.pa-flow-modcard { margin-bottom:14px; }
.pa-flow-modcard .card-header { padding:12px var(--space-5); }
.pa-flow-modcard .card-header h3 { font-family:var(--font-display); font-size:var(--text-lg); font-weight:var(--fw-semibold); line-height:var(--leading-snug); letter-spacing:var(--tracking-normal); }
.pa-flow-modtable { border:0; border-radius:0; box-shadow:none; }
