/* Tenant-specific theme variables are provided by the server from validated hexadecimal settings. */
.gym-branded { --purple: var(--gym-primary); --violet: var(--gym-accent); --navy: var(--gym-sidebar); }
.gym-branded .sidebar { background: linear-gradient(165deg, var(--gym-sidebar), color-mix(in srgb, var(--gym-sidebar) 78%, var(--gym-primary))); }
.gym-branded .sidebar .brand-mark, .gym-branded .auth-showcase-brand .brand-mark { background: linear-gradient(135deg, var(--gym-accent), var(--gym-primary)); }
.gym-branded .sidebar .nav-link.active { background: color-mix(in srgb, var(--gym-primary) 23%, transparent); border-color: color-mix(in srgb, var(--gym-accent) 25%, transparent); }
.gym-branded .sidebar .nav-link.active::before { background: var(--gym-accent); }
.gym-branded .brand-accent, .gym-branded .member-logo span { color: var(--gym-accent); }
.gym-branded .btn-primary, .gym-branded .btn-primary:focus-visible { background: var(--gym-primary); border-color: var(--gym-primary); box-shadow: 0 8px 20px color-mix(in srgb,var(--gym-primary) 18%,transparent); }
.gym-branded .btn-primary:hover { background: color-mix(in srgb, var(--gym-primary) 82%, #131831); border-color: color-mix(in srgb, var(--gym-primary) 82%, #131831); }
.gym-branded .btn-soft { color: var(--gym-primary); background: color-mix(in srgb, var(--gym-primary) 10%, white); border-color: color-mix(in srgb, var(--gym-primary) 22%, white); }
.gym-branded .btn-soft:hover { background: color-mix(in srgb, var(--gym-primary) 16%, white); }
.gym-branded .dashboard-hero, .gym-branded .hero-card { background: linear-gradient(114deg, var(--gym-sidebar), var(--gym-primary)); }
.gym-branded .nutrition-banner { background: linear-gradient(115deg, var(--gym-sidebar), var(--gym-primary)); }
.gym-branded .stat-icon { color: var(--gym-primary); background: color-mix(in srgb, var(--gym-primary) 11%, white); }
.gym-branded .revenue-column .revenue-bar { background: linear-gradient(180deg, var(--gym-accent), var(--gym-primary)); }
.gym-branded .page-link { color: var(--gym-primary); }
.gym-branded .member-nav-link.active { color: var(--gym-primary); background: color-mix(in srgb,var(--gym-primary) 10%,white); }
.gym-brand-logo { width: 45px; height: 45px; flex: 0 0 45px; object-fit: contain; border-radius: 10px; background: rgba(255,255,255,.09); }
.member-logo .gym-brand-logo { margin-inline-end: .6rem; }
.member-logo { gap:.15rem; white-space: normal; }
.brand-name { font-size: clamp(.95rem,1.05vw,1.16rem); line-height: 1.5; white-space: normal; overflow-wrap:anywhere; }
.brand-name small { max-width:185px; }
.dashboard-hero { position: relative; }
.dashboard-hero .dashboard-cover { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-1; opacity:.19; }
.branding-preview { --preview-primary:#6651D8; --preview-accent:#A28EF5; --preview-sidebar:#11172E; border:1px solid #e4e5ee; border-radius:17px; overflow:hidden; }
.branding-preview-head { display:flex; align-items:center; gap:.7rem; background:var(--preview-sidebar); color:white; padding:1.1rem; }
.branding-preview-head strong { display:block; font-weight:800; overflow-wrap:anywhere; }
.branding-preview-head small { display:block; color:#dce0f5; }
.branding-preview-mark { flex:0 0 45px; width:45px; height:45px; border-radius:12px; display:grid; place-items:center; font-weight:800; background:var(--preview-primary); }
.branding-preview-body { padding:1.4rem; background:linear-gradient(155deg,#faf9ff,#fff); }
.branding-preview-body h4 { margin-block: .9rem; font-size:1.2rem; }
.branding-preview-body .btn-primary { background:var(--preview-primary);border-color:var(--preview-primary); }
.branding-upload-preview { max-height:110px; width:auto; object-fit:contain; }
.permission-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:1rem; }
.permission-group { border:1px solid #e6e5f2; border-radius:14px; padding:1rem; min-width:0; }
.permission-group legend { float:none; width:auto; font-size:.86rem; font-weight:800; padding:0 .45rem; }
.permission-check { display:flex; gap:.55rem; align-items:flex-start; border-radius:9px; padding:.45rem; font-size:.8rem; font-weight:600; cursor:pointer; }
.permission-check:hover { background:#f6f4fe; }
.permission-check input { margin-top:.25rem; flex:0 0 auto; }
@media(max-width:575px){.branding-preview-head { padding:.9rem; }.permission-groups { grid-template-columns:1fr; }}
