/* ============================================================
   STUDIO ATELIER — Aesthetic overlay for tenant + trainer pages
   Created 2026-05-27  |  v3 2026-05-27: global expansion
   Loaded globally via partials/studio-atelier.ejs; do NOT inline per page.
   v2: NO MOTION — lightning load, clean, no animation soup.
   v3: Expanded selectors → ALL non-calendar tenant+trainer pages.
       Sidebar typography (tenantSidebar + trainerSidebar).
       editService gap fix.
   ============================================================ */

/* === NO MOTION OVERRIDE (top, beats later keyframes via !important) === */
*, *::before, *::after {
  animation: none !important;
}
.brand-rule {
  width: 32px !important;
  transform: none !important;
  opacity: 1 !important;
}
#tenant-dashboard > *,
.tenant-purchases-container > *,
.tenant-dashboard-content > *,
.es-layout > *,
.tenant-packages-container > * {
  opacity: 1 !important;
  transform: none !important;
}
/* Allow short purposeful transitions only (hover, focus, theme switch) */
a, button, .btn, input, select, textarea {
  transition: color 120ms ease, border-color 120ms ease, background-color 120ms ease !important;
}

/* === Fonts loaded via partials/studio-atelier.ejs === */
/* Fraunces (display), Geist (body), Geist Mono (numbers) */

:root, html[data-theme="dark"], html[data-theme="light"] {
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Geist', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'Geist Mono', 'SF Mono', Menlo, monospace;
  --ink-rust: #b8460c;
  --cream-50: #faf8f3;
}

/* -----------------------------------------------------------------------
   GLOBAL SCOPE — ALL non-calendar tenant + trainer pages.
   Selectors cover every body class variant found in the codebase:
     - has-tenant-sidebar (editService, rooms, trainingPolicy, etc.)
     - has-trainer-sidebar (trainer desktop pages)
     - nb-dash-host (dashboard + planning)
     - nb-admin (bare admin pages without sidebar)
     - page-tenant-* / page-trainer-* (specific page classes)
     - trainer-mobile (trainer pages share this even on desktop)
     - nb (generic NexiBook class used widely)
   Calendar exclusion via :not([class*="calendar"]) where applicable.
   ----------------------------------------------------------------------- */

/* === Body font — Geist === */
body.nb-dash-host,
body.has-tenant-sidebar,
body.has-trainer-sidebar,
body.nb-admin,
body.nb,
body.page-tenant-purchases,
body.page-trainer-schedule,
body.page-trainer-clients-manual,
body.trainer-help-page,
body.rem-page,
body.rem-log-page,
body.integrations,
body:has(.pkg-main),
body:has(.gs-topbar),
body:has(#tenantSidebar),
body:has(#tenant-sidebar) {
  font-family: var(--font-body) !important;
  font-feature-settings: 'ss01' on, 'cv11' on;
}

/* === Headings — Fraunces === */
body.nb-dash-host h1,
body.nb-dash-host h2,
body.nb-dash-host .premium-hero__title,
body.nb-dash-host .section-heading,
body.nb-dash-host .page-title,
body.has-tenant-sidebar h1,
body.has-tenant-sidebar h2,
body.has-tenant-sidebar .premium-hero__title,
body.has-tenant-sidebar .section-heading,
body.has-tenant-sidebar .page-title,
body.has-trainer-sidebar h1,
body.has-trainer-sidebar h2,
body.has-trainer-sidebar .premium-hero__title,
body.has-trainer-sidebar .section-heading,
body.nb-admin h1,
body.nb-admin h2,
body.nb-admin .page-title,
body.nb h1,
body.nb h2,
body.nb .page-title,
body.page-tenant-purchases h1,
body.page-tenant-purchases h2,
body.page-tenant-purchases .section-heading,
body.page-trainer-schedule h1,
body.page-trainer-schedule h2,
body.page-trainer-clients-manual h1,
body.page-trainer-clients-manual h2,
body.trainer-help-page h1,
body.trainer-help-page h2,
body:has(.pkg-main) h1,
body:has(.pkg-main) h2,
body:has(.gs-topbar) h1,
body:has(.gs-topbar) h2,
body:has(#tenantSidebar) h1,
body:has(#tenantSidebar) h2,
body:has(#tenant-sidebar) h1,
body:has(#tenant-sidebar) h2 {
  font-family: var(--font-display) !important;
  font-variation-settings: "opsz" 96;
  letter-spacing: -0.02em;
  font-weight: 600;
}

/* === Tabular numbers on KPIs, prices, amounts === */
body.nb-dash-host .kpi-card__value,
body.nb-dash-host .stat-card__value,
body.nb-dash-host .kpi-value,
body.has-tenant-sidebar .kpi-card__value,
body.has-tenant-sidebar .stat-card__value,
body.has-tenant-sidebar .kpi-value,
body.has-trainer-sidebar .kpi-card__value,
body.has-trainer-sidebar .stat-card__value,
body.nb-admin .kpi-card__value,
body.nb .kpi-card__value,
body.page-tenant-purchases .kpi-card__value,
body.page-tenant-purchases .stat-card__value,
body.page-tenant-purchases td.numeric,
body.page-tenant-purchases td.text-end,
body.page-tenant-purchases .price,
body.page-tenant-purchases .amount,
body.page-tenant-purchases .currency,
body.page-trainer-schedule .kpi-card__value,
body.page-trainer-schedule td.numeric,
body.page-trainer-schedule td.text-end,
body.page-trainer-schedule .price,
body:has(.pkg-main) .price,
body:has(.pkg-main) .amount,
body:has(#tenantSidebar) td.numeric,
body:has(#tenantSidebar) .price,
body:has(#tenantSidebar) .amount,
body:has(#tenant-sidebar) td.numeric,
body:has(#tenant-sidebar) .price {
  font-family: var(--font-mono) !important;
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' on;
  letter-spacing: -0.01em;
  font-weight: 500;
}

/* === Subtle film-grain noise overlay === */
body.nb-dash-host::before,
body.has-tenant-sidebar::before,
body.has-trainer-sidebar::before,
body.nb-admin::before,
body.nb::before,
body.page-tenant-purchases::before,
body.page-trainer-schedule::before,
body:has(.pkg-main)::before,
body:has(.gs-topbar)::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0;  /* noise disabled — looked like static */
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
html[data-theme="light"] body.nb-dash-host::before,
html[data-theme="light"] body.has-tenant-sidebar::before,
html[data-theme="light"] body.has-trainer-sidebar::before,
html[data-theme="light"] body.nb-admin::before,
html[data-theme="light"] body.nb::before,
html[data-theme="light"] body.page-tenant-purchases::before,
html[data-theme="light"] body.page-trainer-schedule::before,
html[data-theme="light"] body:has(.pkg-main)::before,
html[data-theme="light"] body:has(.gs-topbar)::before {
  opacity: 0;
}

/* === Sidebar — Studio Atelier typography === */

/* Tenant sidebar: #tenantSidebar (aside.sidebar.td-side) */
#tenantSidebar,
#tenantSidebar .sidebar-header,
#tenantSidebar .sidebar-body,
#tenantSidebar .nav-group-items {
  font-family: var(--font-body) !important;
}

/* Tenant sidebar brand */
#tenantSidebar .sidebar-brand,
#tenantSidebar .sidebar-brand span,
#tenantSidebar .sidebar-header a {
  font-family: var(--font-display) !important;
  font-variation-settings: "opsz" 48;
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Section group labels: Panou Principal, Servicii, etc. */
#tenantSidebar .nav-group-header .group-title {
  font-family: var(--font-display) !important;
  font-style: italic;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 10.5px;
  color: var(--text-tertiary, rgba(255,255,255,0.45));
  opacity: 0.85;
}
html[data-theme="light"] #tenantSidebar .nav-group-header .group-title {
  color: var(--text-tertiary, rgba(0,0,0,0.45));
}

/* Nav items */
#tenantSidebar .nav-link {
  font-family: var(--font-body) !important;
  font-weight: 400;
  font-size: 13.5px;
  letter-spacing: -0.005em;
}
#tenantSidebar .nav-item.active .nav-link,
#tenantSidebar .nav-link:hover {
  font-weight: 500;
}
#tenantSidebar .nav-item.active .nav-link {
  color: var(--gold-500, #d4af37);
}

/* Trainer sidebar: #tenant-sidebar (aside.tenant-sidebar) */
#tenant-sidebar,
.tenant-sidebar {
  font-family: var(--font-body) !important;
}

/* Trainer sidebar brand */
#tenant-sidebar .tenant-sidebar-brand,
#tenant-sidebar .tenant-sidebar-brand-text,
.tenant-sidebar .tenant-sidebar-brand {
  font-family: var(--font-display) !important;
  font-variation-settings: "opsz" 48;
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Trainer nav items */
#tenant-sidebar .tenant-sidebar-item,
.tenant-sidebar .tenant-sidebar-item {
  font-family: var(--font-body) !important;
  font-weight: 400;
  font-size: 13.5px;
  letter-spacing: -0.005em;
}
#tenant-sidebar .tenant-sidebar-item.active,
.tenant-sidebar .tenant-sidebar-item.active {
  font-weight: 500;
  color: var(--gold-500, #d4af37);
}

/* Trainer sidebar label text */
#tenant-sidebar .tenant-sidebar-label,
.tenant-sidebar .tenant-sidebar-label {
  font-family: var(--font-body) !important;
}

/* === editService gap fix: reduce left padding when sidebar is present === */
body.has-tenant-sidebar .es-layout,
body.has-tenant-sidebar .es-main {
  padding-left: 24px !important;
}
@media (min-width: 1280px) {
  body.has-tenant-sidebar .es-layout {
    padding-left: 32px !important;
  }
}

/* === Active sidebar item: gold left accent bar === */
.sidebar .nav-item.active .nav-link,
#tenantSidebar .nav-item.active .nav-link {
  position: relative;
}
.sidebar .nav-item.active .nav-link::before,
#tenantSidebar .nav-item.active .nav-link::before {
  content: '';
  position: absolute;
  left: 0;
  top: 20%;
  bottom: 20%;
  width: 2px;
  background: var(--gold-500, #d4af37);
  border-radius: 0 2px 2px 0;
}

/* Trainer sidebar active item */
#tenant-sidebar .tenant-sidebar-item.active,
.tenant-sidebar .tenant-sidebar-item.active {
  position: relative;
}
#tenant-sidebar .tenant-sidebar-item.active::before,
.tenant-sidebar .tenant-sidebar-item.active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 20%;
  bottom: 20%;
  width: 2px;
  background: var(--gold-500, #d4af37);
  border-radius: 0 2px 2px 0;
}

/* === Empty state — Fraunces italic === */
body.nb-dash-host .empty-state,
body.nb-dash-host .no-data,
body.has-tenant-sidebar .empty-state,
body.has-tenant-sidebar .no-data,
body.has-trainer-sidebar .empty-state,
body.nb-admin .empty-state,
body.nb .empty-state,
body.page-tenant-purchases .empty-state,
body.page-trainer-schedule .empty-state,
body:has(.pkg-main) .empty-state,
body:has(.gs-topbar) .empty-state {
  font-family: var(--font-display) !important;
  font-style: italic;
  font-weight: 400;
  font-size: 18px;
  color: var(--text-secondary);
  text-align: center;
  padding: 48px 24px;
  max-width: 480px;
  margin: 0 auto;
}

/* === Rust accent — destructive only === */
body.nb-dash-host .btn-danger,
body.nb-dash-host .btn-destructive,
body.has-tenant-sidebar .btn-danger,
body.has-tenant-sidebar .btn-destructive,
body.has-trainer-sidebar .btn-danger,
body.nb-admin .btn-danger,
body.nb .btn-danger,
body.page-tenant-purchases .btn-danger,
body.page-trainer-schedule .btn-danger,
body:has(.pkg-main) .btn-danger,
body:has(.gs-topbar) .btn-danger {
  background: var(--ink-rust) !important;
  border-color: var(--ink-rust) !important;
  color: #fff !important;
}
body.nb-dash-host .text-danger,
body.nb-dash-host .alert-danger,
body.has-tenant-sidebar .text-danger,
body.has-tenant-sidebar .alert-danger,
body.has-trainer-sidebar .text-danger,
body.nb-admin .text-danger,
body.nb-admin .alert-danger,
body.page-tenant-purchases .text-danger,
body.page-tenant-purchases .alert-danger,
body.page-trainer-schedule .text-danger,
body.page-trainer-schedule .alert-danger,
body:has(.pkg-main) .text-danger,
body:has(.gs-topbar) .text-danger {
  background: rgba(184, 70, 12, 0.08) !important;
  color: var(--ink-rust) !important;
  border-left: 3px solid var(--ink-rust);
}

/* === Section heading refinement — italic Fraunces accent === */
body.nb-dash-host .section-heading::before,
body.has-tenant-sidebar .section-heading::before,
body.has-trainer-sidebar .section-heading::before,
body.nb-admin .section-heading::before,
body.nb .section-heading::before,
body.page-tenant-purchases .section-heading::before,
body.page-trainer-schedule .section-heading::before,
body:has(.pkg-main) .section-heading::before,
body:has(.gs-topbar) .section-heading::before {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 12px;
  color: var(--text-tertiary);
  display: block;
  margin-bottom: 4px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* === Keyframes (kept for reference; all killed by NO MOTION block above) === */
@keyframes atelier-rule-draw {
  from { width: 0; }
  to { width: 32px; }
}
@keyframes atelier-underline-draw {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
@keyframes atelier-rise {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   v4 COMPACT LAYOUT — editService pattern global (no markup change)
   2026-05-27 — apply to all non-calendar tenant+trainer pages
   ============================================================ */

/* Section headings: gold left rule + Fraunces (h2/h3/card-header) */
body.has-tenant-sidebar:not([class*="calendar"]) main h2,
body.has-tenant-sidebar:not([class*="calendar"]) main h3,
body.has-tenant-sidebar:not([class*="calendar"]) main .card-header,
body.has-trainer-sidebar:not([class*="calendar"]) main h2,
body.has-trainer-sidebar:not([class*="calendar"]) main h3,
body.has-trainer-sidebar:not([class*="calendar"]) main .card-header,
body.nb-dash-host:not([class*="calendar"]) main h2,
body.nb-dash-host:not([class*="calendar"]) main h3,
body.nb-dash-host:not([class*="calendar"]) main .card-header {
  padding-left: 12px !important;
  border-left: 3px solid var(--gold-500) !important;
  border-bottom: none !important;
  background: transparent !important;
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
}

/* Cards: flat 12px radius 1px border */
body.has-tenant-sidebar:not([class*="calendar"]) main .card,
body.has-tenant-sidebar:not([class*="calendar"]) main .panel,
body.has-tenant-sidebar:not([class*="calendar"]) main .widget-card,
body.has-trainer-sidebar:not([class*="calendar"]) main .card,
body.has-trainer-sidebar:not([class*="calendar"]) main .panel,
body.nb-dash-host:not([class*="calendar"]) main .card,
body.nb-dash-host:not([class*="calendar"]) main .panel {
  background: var(--bg-secondary, #1a1a25) !important;
  border: 1px solid var(--border-color, rgba(200,200,240,0.12)) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  background-image: none !important;
}

/* Page main padding compact */
body.has-tenant-sidebar:not([class*="calendar"]) main,
body.has-trainer-sidebar:not([class*="calendar"]) main,
body.nb-dash-host:not([class*="calendar"]) main {
  padding: 24px 32px !important;
}
@media (min-width: 1280px) {
  body.has-tenant-sidebar:not([class*="calendar"]) main,
  body.has-trainer-sidebar:not([class*="calendar"]) main {
    padding: 32px 48px !important;
  }
}
@media (max-width: 768px) {
  body.has-tenant-sidebar:not([class*="calendar"]) main,
  body.has-trainer-sidebar:not([class*="calendar"]) main {
    padding: 16px 20px !important;
  }
}

/* Brand-rule auto-injected under main h1 */
body.has-tenant-sidebar:not([class*="calendar"]) main > h1::after,
body.has-tenant-sidebar:not([class*="calendar"]) main .page-header h1::after,
body.has-trainer-sidebar:not([class*="calendar"]) main > h1::after,
body.nb-dash-host:not([class*="calendar"]) main > h1::after {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: var(--gold-500);
  margin-top: 8px;
  margin-bottom: 24px;
}

/* Inputs: bg-tertiary, 6px radius, gold focus ring */
body.has-tenant-sidebar:not([class*="calendar"]) main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
body.has-tenant-sidebar:not([class*="calendar"]) main select,
body.has-tenant-sidebar:not([class*="calendar"]) main textarea,
body.has-trainer-sidebar:not([class*="calendar"]) main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
body.has-trainer-sidebar:not([class*="calendar"]) main select,
body.has-trainer-sidebar:not([class*="calendar"]) main textarea {
  background: var(--bg-tertiary, #20202d) !important;
  border: 1px solid var(--border-color) !important;
  color: var(--text-primary) !important;
  border-radius: 6px !important;
  padding: 8px 12px !important;
  box-shadow: none !important;
}
body.has-tenant-sidebar:not([class*="calendar"]) main input:focus,
body.has-tenant-sidebar:not([class*="calendar"]) main select:focus,
body.has-tenant-sidebar:not([class*="calendar"]) main textarea:focus,
body.has-trainer-sidebar:not([class*="calendar"]) main input:focus,
body.has-trainer-sidebar:not([class*="calendar"]) main select:focus,
body.has-trainer-sidebar:not([class*="calendar"]) main textarea:focus {
  border-color: var(--gold-500) !important;
  outline: 2px solid var(--gold-50) !important;
  outline-offset: 0;
}

/* Primary CTAs: gold + black text */
body.has-tenant-sidebar:not([class*="calendar"]) main .btn-primary,
body.has-tenant-sidebar:not([class*="calendar"]) main .btn-success,
body.has-trainer-sidebar:not([class*="calendar"]) main .btn-primary,
body.has-trainer-sidebar:not([class*="calendar"]) main .btn-success,
body.nb-dash-host:not([class*="calendar"]) main .btn-primary,
body.nb-dash-host:not([class*="calendar"]) main .btn-success {
  background: var(--gold-500) !important;
  border-color: var(--gold-500) !important;
  color: #18181b !important;
  font-weight: 600 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  background-image: none !important;
}
body.has-tenant-sidebar:not([class*="calendar"]) main .btn-primary:hover,
body.has-tenant-sidebar:not([class*="calendar"]) main .btn-success:hover,
body.has-trainer-sidebar:not([class*="calendar"]) main .btn-primary:hover {
  background: var(--gold-strong, #f2c300) !important;
  border-color: var(--gold-strong, #f2c300) !important;
}

/* Tables: flat with hover */
body.has-tenant-sidebar:not([class*="calendar"]) main table,
body.has-trainer-sidebar:not([class*="calendar"]) main table {
  border-collapse: collapse;
  width: 100%;
}
body.has-tenant-sidebar:not([class*="calendar"]) main tbody tr,
body.has-trainer-sidebar:not([class*="calendar"]) main tbody tr {
  border-bottom: 1px solid var(--border-color) !important;
  background: transparent !important;
}
body.has-tenant-sidebar:not([class*="calendar"]) main tbody tr:hover,
body.has-trainer-sidebar:not([class*="calendar"]) main tbody tr:hover {
  background: var(--gold-50) !important;
}
body.has-tenant-sidebar:not([class*="calendar"]) main thead th,
body.has-trainer-sidebar:not([class*="calendar"]) main thead th {
  background: var(--bg-tertiary) !important;
  border-bottom: 1px solid var(--border-color) !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--text-tertiary) !important;
}

/* === v5 EDITSERVICE GAP KILL — compact left padding === */
body.has-tenant-sidebar:not([class*="calendar"]) .es-layout {
  padding: 24px 24px 80px !important;
  gap: 32px !important;
  max-width: 1280px !important;
}
body.has-tenant-sidebar:not([class*="calendar"]) .es-topbar {
  padding: 12px 24px !important;
}
body.has-tenant-sidebar:not([class*="calendar"]) .es-aside {
  width: 180px !important;
}
body.has-tenant-sidebar:not([class*="calendar"]) .es-layout {
  grid-template-columns: 180px 1fr !important;
}

/* === v6 GAP REMOVE — editService aside flush against sidebar === */
body.has-tenant-sidebar:not([class*="calendar"]) .es-topbar {
  padding: 12px 16px !important;
}
body.has-tenant-sidebar:not([class*="calendar"]) .es-layout {
  padding: 24px 16px 80px 0 !important;
  gap: 24px !important;
  grid-template-columns: 200px 1fr !important;
  margin-left: 0 !important;
}
body.has-tenant-sidebar:not([class*="calendar"]) .es-aside {
  padding-left: 16px !important;
  border-left: 0 !important;
  width: auto !important;
}
body.has-tenant-sidebar:not([class*="calendar"]) .es-main {
  margin-left: var(--sidebar-width, 260px) !important;
  padding-left: 0 !important;
}


/* === v8 ES-MAIN DOUBLE OFFSET FIX ===
   sidebar-compact.css adds padding-left:232px to body.nb-dash-host (sidebar offset)
   editService.ejs .es-main has margin-left:260px (assumes body NOT padded)
   Result: double offset 492px gap. Kill the .es-main margin when nb-dash-host pads body. */
body.nb-dash-host .es-main {
  margin-left: 0 !important;
}
body.nb-dash-host .es-layout {
  padding: 24px 24px 80px 0 !important;
  gap: 24px !important;
  grid-template-columns: 180px 1fr !important;
  margin-left: 0 !important;
  max-width: 100% !important;
}
body.nb-dash-host .es-topbar {
  padding: 12px 0 !important;
}
body.nb-dash-host .es-aside {
  padding-left: 0 !important;
  width: auto !important;
}


/* ============================================================
   v9 ICON FONT PROTECTION — Geist body override was killing
   Font Awesome + Bootstrap Icons glyphs (rendered as empty boxes).
   Restore icon font-families with higher specificity.
   ============================================================ */
i.fa, i.fas, i.far, i.fal, i.fad,
.fa, .fas, .far, .fal, .fad,
[class*="fa-"]::before {
  font-family: "Font Awesome 6 Free" !important;
}
i.fab, .fab, [class^="fa-"][class*="brand"]::before {
  font-family: "Font Awesome 6 Brands" !important;
}
i.fas, .fas, i.fa, .fa { font-weight: 900 !important; }
i.far, .far { font-weight: 400 !important; }
i.fab, .fab { font-weight: 400 !important; }
i[class*="bi-"], .bi, [class*="bi-"]::before {
  font-family: "bootstrap-icons" !important;
}
/* FA5 fallback (older class names some pages use) */
i.fa[class*="fa-"]:not(.fab) { font-family: "Font Awesome 6 Free","Font Awesome 5 Free" !important; }

/* === v10 SIDEBAR WIDTH CONSISTENCY + BUTTON SIZING === */
/* Force 232px sidebar on ALL nb-dash-host pages (purchases overrode to 260) */
body.nb-dash-host #tenantSidebar,
body.nb-dash-host.page-tenant-purchases #tenantSidebar,
body.has-tenant-sidebar.nb-dash-host #tenantSidebar {
  width: 232px !important;
}
body.nb-dash-host.sidebar-collapsed #tenantSidebar,
body.nb-dash-host #tenantSidebar.collapsed {
  width: 56px !important;
}
/* CSV / small outline buttons — kill giant pill blobs (999px radius, 76px height) */
body.has-tenant-sidebar:not([class*="calendar"]) main .btn-sm,
body.has-tenant-sidebar:not([class*="calendar"]) main .btn-outline-primary.btn-sm,
body.has-tenant-sidebar:not([class*="calendar"]) main a.btn-sm,
body.has-trainer-sidebar:not([class*="calendar"]) main .btn-sm {
  border-radius: 6px !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 5px 10px !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  width: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

/* === v11 CSV/SM BUTTON FIX — drop main ancestor req (purchases uses .container-fluid not <main>) === */
body.page-tenant-purchases .btn-sm,
body.page-tenant-purchases a.btn-outline-primary,
body.nb-dash-host .tenant-purchases-container .btn-sm,
body.nb-dash-host .container-fluid .btn-sm,
body.has-tenant-sidebar .btn-sm.btn-outline-primary,
body.has-trainer-sidebar .btn-sm.btn-outline-primary {
  border-radius: 6px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 5px 10px !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  width: auto !important;
  aspect-ratio: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

/* === v12 KILL NOISE OVERLAY + CSV/OUTLINE BUTTON BLOB FIX === */
/* Belt-and-suspenders: fully disable the grain ::before on every scoped body */
body.nb-dash-host::before,
body.has-tenant-sidebar::before,
body.has-trainer-sidebar::before,
body.nb-admin::before,
body.nb::before,
body.page-tenant-purchases::before,
body.page-trainer-schedule::before,
body:has(.pkg-main)::before,
body:has(.gs-topbar)::before {
  display: none !important;
  content: none !important;
  background-image: none !important;
}

/* CSV / outline buttons rendered as solid gold square blobs (999px radius, 76px tall).
   Max-specificity override: outline = transparent bg + thin border + auto size. */
html body.page-tenant-purchases a.btn.btn-outline-primary,
html body.page-tenant-purchases a.btn.btn-sm,
html body.has-tenant-sidebar a.btn.btn-outline-primary.btn-sm,
html body.has-trainer-sidebar a.btn.btn-outline-primary.btn-sm,
html body.nb-dash-host a.btn.btn-sm.btn-outline-primary {
  background: transparent !important;
  background-image: none !important;
  border: 1px solid var(--border-color, rgba(200,200,240,0.2)) !important;
  color: var(--text-secondary, #b8b8c5) !important;
  border-radius: 6px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  width: auto !important;
  aspect-ratio: auto !important;
  padding: 5px 12px !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  box-shadow: none !important;
}
html body.page-tenant-purchases a.btn.btn-outline-primary:hover,
html body.has-tenant-sidebar a.btn.btn-outline-primary.btn-sm:hover {
  border-color: var(--gold-500, #d4af37) !important;
  color: var(--gold-500, #d4af37) !important;
  background: var(--gold-50, rgba(212,175,55,0.1)) !important;
}
