/* Shared visual refinement for the back office. Keep controls aligned with the studio's cobalt, ivory and graphite identity. */
:root{
  color-scheme:light;
  --tg-canvas:#f2ead8;--tg-surface:#fffefa;--tg-surface-2:#f7f4ed;
  --tg-ink:#222832;--tg-muted:#747782;--tg-border:#e2dccf;
  --tg-accent:#5276ad;--tg-accent-2:#35588f;--tg-cyan:#b8cbea;
  --tg-sidebar:#343842;--tg-sidebar-2:#474a54;--tg-glow:rgba(82,118,173,.14);
  --tg-shadow:0 16px 42px rgba(44,54,75,.075);
}

/* Shared, theme-aware loading state for navigation and background data refreshes. */
.tg-global-loader{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:20px;background:color-mix(in srgb,var(--tg-canvas) 46%,rgba(13,18,30,.62));backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}
.tg-global-loader.is-visible{opacity:1;visibility:visible;pointer-events:all}
.tg-global-loader-card{display:flex;align-items:center;flex-direction:column;min-width:min(270px,calc(100vw - 36px));padding:25px 30px 23px;border:1px solid color-mix(in srgb,var(--tg-accent-2) 24%,var(--tg-border));border-radius:20px;background:radial-gradient(ellipse at 50% 0,var(--tg-glow),transparent 68%),var(--tg-surface);color:var(--tg-ink);box-shadow:var(--tg-shadow),0 0 34px var(--tg-glow);transform:translateY(8px) scale(.985);transition:transform .2s ease}
.tg-global-loader.is-visible .tg-global-loader-card{transform:translateY(0) scale(1)}
.tg-global-loader-card strong{margin-top:13px;color:var(--tg-ink);font-size:13px;font-weight:800;letter-spacing:.01em}
.tg-global-loader-card small{margin-top:5px;color:var(--tg-muted);font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.tg-global-loader-mark{display:flex;align-items:flex-end;gap:5px;height:35px;padding:4px 8px}
.tg-global-loader-mark span{display:block;width:5px;height:14px;border-radius:9px;background:linear-gradient(180deg,var(--tg-accent-2),var(--tg-accent),var(--tg-cyan));box-shadow:0 0 11px var(--tg-glow);animation:tg-loader-pulse .72s ease-in-out infinite alternate}
.tg-global-loader-mark span:nth-child(2){height:25px;animation-delay:.12s}.tg-global-loader-mark span:nth-child(3){height:19px;animation-delay:.24s}.tg-global-loader-mark span:nth-child(4){height:29px;animation-delay:.36s}.tg-global-loader-mark span:nth-child(5){height:15px;animation-delay:.48s}
@keyframes tg-loader-pulse{from{transform:scaleY(.55);opacity:.65}to{transform:scaleY(1);opacity:1}}
@media(max-width:480px){.tg-global-loader-card{padding:22px 25px}}
@media(prefers-reduced-motion:reduce){.tg-global-loader,.tg-global-loader-card{transition:none}.tg-global-loader-mark span{animation:none}}
html[data-theme="dark"]{
  color-scheme:dark;
  --tg-canvas:#171a20;--tg-surface:#222630;--tg-surface-2:#292e39;
  --tg-ink:#f2f3f5;--tg-muted:#b0b4bd;--tg-border:#3a404c;
  --tg-accent:#a8c1e7;--tg-accent-2:#7898c8;--tg-cyan:#c3d5f2;
  --tg-sidebar:#12151b;--tg-sidebar-2:#1b1f27;--tg-glow:rgba(120,152,200,.16);
  --tg-shadow:0 18px 48px rgba(0,0,0,.24);
}

/* Sidebar: stronger grouping, clear active state, tactile icon buttons. */
.bb-sidebar,.bb-sidebar .navbar-brand-box{background:var(--tg-sidebar)!important}
.bb-sidebar{border-right:0!important;box-shadow:8px 0 34px rgba(25,31,43,.18)}
.bb-sidebar .navbar-brand-box{display:flex;align-items:center;justify-content:space-between;min-height:82px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.bb-sidebar-wordmark{display:grid;place-items:center;min-width:0;height:48px;padding:4px;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.bb-sidebar-logo-full{max-width:166px;max-height:36px;object-fit:contain;filter:brightness(0) invert(1)}
.bb-sidebar .bb-sidebar-logo-icon{background:transparent!important;border:0!important;border-radius:0!important;filter:brightness(0) invert(1)}
.bb-sidebar .bb-sidebar-collapse{display:grid;place-items:center;width:36px;height:36px;margin:0;border:1px solid rgba(255,255,255,.14);border-radius:11px;background:rgba(255,255,255,.07);color:#e6e9ee}
.bb-sidebar .bb-sidebar-collapse:hover{border-color:rgba(195,213,242,.5);background:rgba(195,213,242,.14);color:#fff}
.bb-sidebar #scrollbar>.container-fluid{padding:0 10px}
.bb-sidebar .navbar-nav{padding:9px 3px 18px}
.bb-sidebar .bb-nav-section{display:flex;align-items:center;gap:9px;margin:17px 9px 7px;padding:0!important;color:#aeb5c1!important;font-size:9px;font-weight:800;letter-spacing:1.45px;line-height:1.2}
.bb-sidebar .bb-nav-section:first-child{margin-top:9px}
.bb-sidebar .bb-nav-section:after{height:1px;flex:1;content:"";background:linear-gradient(90deg,rgba(255,255,255,.14),transparent)}
.bb-sidebar .bb-nav-section small{order:-1;display:grid;place-items:center;width:22px;height:20px;border:1px solid rgba(195,213,242,.2);border-radius:7px;background:rgba(195,213,242,.08);color:#c3d5f2;font-size:8px;letter-spacing:.3px}
.bb-sidebar .nav-item{margin:2px 0}
.bb-sidebar .nav-link.menu-link{position:relative;display:flex;align-items:center;gap:12px;min-height:45px;margin:0;padding:7px 12px;overflow:hidden;border:1px solid transparent;border-radius:13px;background:transparent;color:#d2d6de!important;font-size:12px;font-weight:600;transition:background .18s ease,border-color .18s ease,transform .18s ease,color .18s ease}
.bb-sidebar .nav-link.menu-link>i{display:grid;place-items:center;width:30px;height:30px;flex:0 0 auto;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(255,255,255,.055);color:#b7c2d4!important;font-size:17px;transition:all .18s ease}
.bb-sidebar .nav-link.menu-link:hover{transform:translateX(2px);border-color:rgba(195,213,242,.14);background:rgba(255,255,255,.065)!important;color:#fff!important}
.bb-sidebar .nav-link.menu-link:hover>i{border-color:rgba(195,213,242,.25);background:rgba(195,213,242,.13);color:#d3e1f7!important}
.bb-sidebar .nav-link.menu-link.active{border-color:rgba(195,213,242,.22);background:linear-gradient(105deg,rgba(82,118,173,.4),rgba(82,118,173,.13))!important;color:#fff!important;box-shadow:0 7px 20px rgba(0,0,0,.11)}
.bb-sidebar .nav-link.menu-link span,.bb-sidebar .nav-link.menu-link:hover span,.bb-sidebar .nav-link.menu-link:focus span,.bb-sidebar .nav-link.menu-link.active span,.bb-sidebar .nav-link.menu-link.active:hover span{color:#f5f7fa!important}
.bb-sidebar .nav-link.menu-link.active>i{border-color:rgba(218,231,250,.28);background:rgba(195,213,242,.18);color:#dbe8fb!important;box-shadow:0 0 18px rgba(142,174,222,.12)}
.bb-sidebar .nav-link.menu-link .bb-menu-dot{width:6px;height:6px;flex:0 0 auto;margin-left:auto;border-radius:50%;background:transparent!important;color:transparent!important;box-shadow:none}
.bb-sidebar .nav-link.menu-link.active .bb-menu-dot{background:#c5d8f5!important;color:#c5d8f5!important;box-shadow:0 0 0 4px rgba(197,216,245,.1),0 0 12px rgba(197,216,245,.7)}

/* Page title: transparent editorial heading and quiet breadcrumb, without the old white strip. */
.page-title-box{position:relative;display:flex;align-items:center;gap:18px;min-height:58px;margin:0 0 22px;padding:2px 2px 14px!important;border:0!important;border-bottom:1px solid var(--tg-border)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.page-title-box h4,.page-title-box .page-title{display:flex;align-items:center;gap:11px;margin:0;color:var(--tg-ink)!important;font-size:clamp(21px,2vw,28px)!important;font-weight:820!important;letter-spacing:-.045em!important;line-height:1.2}
.page-title-box h4:before,.page-title-box .page-title:before{width:4px;height:27px;flex:none;border-radius:8px;background:linear-gradient(180deg,var(--tg-accent),var(--tg-accent-2));content:"";box-shadow:0 4px 12px var(--tg-glow)}
.page-title-box .page-title-right{margin-left:auto}
.page-title-box .breadcrumb{display:flex;align-items:center;gap:5px;margin:0;padding:7px 11px;border:1px solid var(--tg-border);border-radius:999px;background:color-mix(in srgb,var(--tg-surface) 62%,transparent);font-size:10px;font-weight:650}
.page-title-box .breadcrumb-item,.page-title-box .breadcrumb-item.active{color:var(--tg-muted)}
.page-title-box .breadcrumb-item a{color:var(--tg-accent-2);text-decoration:none}
.page-title-box .breadcrumb-item a:hover{color:var(--tg-accent);text-decoration:underline}
.page-title-box .breadcrumb-item+.breadcrumb-item:before{color:var(--tg-muted)}

/* Consistent button spacing and surfaces across admin pages. */
.page-content .btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:36px;padding:.48rem .85rem;border-radius:11px;font-size:11px;font-weight:700;line-height:1.2;white-space:normal}
.page-content .btn-sm{min-height:31px;padding:.35rem .65rem;border-radius:9px;font-size:10px}
.page-content .btn-primary,.page-content .btn-primary:focus{border-color:var(--tg-accent-2)!important;background:linear-gradient(115deg,var(--tg-accent-2),var(--tg-accent))!important;color:#fff!important;box-shadow:0 7px 17px var(--tg-glow)}
.page-content .btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px)}
.page-content .btn-info{border-color:#5276ad!important;background:#5276ad!important;color:#fff!important}
.page-content .btn-secondary,.page-content .btn-light,.page-content .btn-outline-secondary{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important;color:var(--tg-ink)!important}
.page-content .btn-outline-primary{border-color:var(--tg-accent)!important;color:var(--tg-accent)!important}
.page-content .btn-danger{border-color:#bb5a62!important;background:#bb5a62!important;color:#fff!important}
.page-content .card-header .d-flex.flex-wrap,.page-content .card-header .d-flex.align-items-center.flex-wrap{gap:12px!important}
.page-content .card-header .flex-grow-1{display:flex;align-items:center;flex-wrap:wrap;gap:14px}
.page-content .order-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px!important}
.page-content .order-actions>.btn,.page-content .order-actions>a{margin:0!important}
.dataTables_wrapper .dt-buttons{display:flex;flex-wrap:wrap;gap:8px}
.dataTables_wrapper .dt-buttons .btn{margin:0!important}

/* Shared card, form, table and calendar surfaces follow both themes. */
.page-content .card,.page-content .modal-content,.bb-header-dropdown{border-color:var(--tg-border);background:var(--tg-surface);color:var(--tg-ink);box-shadow:var(--tg-shadow)}
.page-content .card-header{border-color:var(--tg-border);background:var(--tg-surface-2);color:var(--tg-ink)}
.page-content .table{--bs-table-bg:transparent;--bs-table-color:var(--tg-ink);--bs-table-border-color:var(--tg-border)}
.page-content .table thead th,.page-content .table-light th,.page-content .thead-light th{background:var(--tg-surface-2)!important;color:var(--tg-ink)!important;border-color:var(--tg-border)}
.page-content .table tbody tr:hover>*{background:var(--tg-glow)}
.page-content .form-control,.page-content .form-select,.page-content select.form-control{border-color:var(--tg-border);background-color:var(--tg-surface);color:var(--tg-ink)}
.page-content .form-control:focus,.page-content .form-select:focus{border-color:var(--tg-accent);box-shadow:0 0 0 .2rem var(--tg-glow)}
.page-content .text-primary{color:var(--tg-accent-2)!important}
.page-content .bg-primary{background-color:var(--tg-accent-2)!important}
.fc .fc-button-primary{border-color:var(--tg-accent-2)!important;background:var(--tg-accent-2)!important;color:#fff!important}
.fc .fc-button-primary:hover{filter:brightness(1.08)}

/* Public entry points share the same brand palette and theme tokens. */
.bb-auth-page{background:radial-gradient(ellipse at 7% 10%,rgba(98,131,190,.18),transparent 34%),linear-gradient(135deg,#eee7d8,#f8f6f0 56%,#e6ebf4)!important;color:var(--tg-ink)}
.bb-auth-login-btn,.bb-auth-submit,.bb-auth-form button[type=submit]{background:linear-gradient(110deg,var(--tg-accent-2),var(--tg-accent))!important}
.groove-registration .reg-intro h1 em,.groove-registration .success-content h2 em,.groove-registration .choice-icon,.groove-registration .choice-arrow,.groove-registration .change-kind,.groove-registration .consent-row summary{color:var(--tg-accent-2)!important}
.groove-registration .submit-registration,.groove-registration .consent-row input:checked+.checkmark{background:linear-gradient(110deg,var(--tg-accent-2),var(--tg-accent))!important}
.groove-registration .submit-registration b{background:#dbe5f4!important;color:#29466e!important}
.tg-legal-hero{background:linear-gradient(128deg,var(--tg-accent-2),#263f6c)!important}
.tg-legal-content h2,.tg-legal-nav a:hover,.tg-legal-bottom-nav a{color:var(--tg-accent-2)}
.tg-legal-nav .tg-legal-cta{background:var(--tg-accent-2)}
.tg-legal-links a,.tg-legal-company a{color:var(--tg-accent-2)}
.student-portal{--teal:var(--tg-accent-2);--paper:var(--tg-surface);--canvas:var(--tg-canvas);background:radial-gradient(ellipse at 88% 5%,var(--tg-glow),transparent 35%),var(--tg-canvas)!important;color:var(--tg-ink)}
.student-portal .lookup-card{background:radial-gradient(ellipse at 84% 8%,rgba(195,213,242,.22),transparent 36%),linear-gradient(120deg,#293f68,#35588f 60%,#526b98)!important}
.student-portal .profile-points{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;justify-items:start;column-gap:16px;row-gap:4px;width:min(100%,250px);min-height:92px;padding:15px 18px;border:1px solid rgba(255,255,255,.24);border-radius:17px;background:linear-gradient(140deg,var(--tg-accent-2),#263f6c)!important;color:#fff;box-shadow:0 12px 28px rgba(38,63,108,.2);overflow:hidden}
.student-portal .profile-points:after{position:absolute;z-index:-1;top:-34px;right:-24px;width:112px;height:112px;border:1px solid rgba(255,255,255,.12);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.13),transparent 70%);content:"";pointer-events:none}
.student-portal .profile-points>span{grid-column:1/-1;grid-row:1;color:rgba(255,255,255,.78);font-size:9px;font-weight:800;letter-spacing:1.15px}
.student-portal .profile-points strong{grid-column:1;grid-row:2;margin:0;color:#fff;font-family:Manrope,sans-serif;font-size:36px;font-weight:850;line-height:1}
.student-portal .profile-points small{grid-column:2;grid-row:2;max-width:96px;color:rgba(255,255,255,.82);font-size:9px;line-height:1.4;text-align:right}
.student-portal .student-course-foot button,.student-portal .course-card button,.student-portal .course-tile button{background:linear-gradient(110deg,var(--tg-accent-2),var(--tg-accent))!important;color:#fff}
html[data-theme="dark"] .bb-auth-page{background:radial-gradient(ellipse at 5% 0,rgba(120,152,200,.16),transparent 33%),radial-gradient(ellipse at 95% 92%,rgba(120,152,200,.08),transparent 32%),var(--tg-canvas)!important}
html[data-theme="dark"] .bb-auth-card,html[data-theme="dark"] .bb-auth-form-panel{background:var(--tg-surface)!important;border-color:var(--tg-border)!important;color:var(--tg-ink)}
html[data-theme="dark"] .bb-auth-form-header h2,html[data-theme="dark"] .bb-auth-field .form-label{color:var(--tg-ink)!important}
html[data-theme="dark"] .bb-auth-form-header p{color:var(--tg-muted)!important}
html[data-theme="dark"] .bb-auth-field .form-control{background:var(--tg-surface-2)!important;border-color:var(--tg-border)!important;color:var(--tg-ink)!important}
html[data-theme="dark"] .groove-registration{background:radial-gradient(ellipse at 92% 8%,var(--tg-glow),transparent 32%),var(--tg-canvas)!important;color:var(--tg-ink)!important}
html[data-theme="dark"] .groove-registration .reg-panel,html[data-theme="dark"] .groove-registration .success-content{background:var(--tg-surface)!important;border-color:var(--tg-border)!important;color:var(--tg-ink)}
html[data-theme="dark"] .groove-registration .choice-card,html[data-theme="dark"] .groove-registration .guardian-fields,html[data-theme="dark"] .groove-registration .field input,html[data-theme="dark"] .groove-registration .field select{background:var(--tg-surface-2)!important;border-color:var(--tg-border)!important;color:var(--tg-ink)!important}
html[data-theme="dark"] .groove-registration .reg-brand,html[data-theme="dark"] .groove-registration .panel-heading h2,html[data-theme="dark"] .groove-registration .form-top h2,html[data-theme="dark"] .groove-registration .field,html[data-theme="dark"] .groove-registration .consent-row{color:var(--tg-ink)!important}
html[data-theme="dark"] .groove-registration .choice-desc,html[data-theme="dark"] .groove-registration .consent-row details,html[data-theme="dark"] .groove-registration .reg-intro p{color:var(--tg-muted)!important}
html[data-theme="dark"] .student-portal .portal-header,html[data-theme="dark"] .student-portal .subscription-card,html[data-theme="dark"] .student-portal .content-card,html[data-theme="dark"] .student-portal .stat-card,html[data-theme="dark"] .student-portal .profile-hero{background:var(--tg-surface)!important;border-color:var(--tg-border)!important;color:var(--tg-ink)!important}
html[data-theme="dark"] .student-portal .lookup-card{background:radial-gradient(ellipse at 88% 0,rgba(120,152,200,.2),transparent 34%),linear-gradient(120deg,#17243b,#263953 66%,#1b2c46)!important}
html[data-theme="dark"] .student-portal .activity-table th{background:var(--tg-surface-2)!important;color:var(--tg-muted)!important}
html[data-theme="dark"] body.tg-legal-page{background:radial-gradient(ellipse at 88% 3%,var(--tg-glow),transparent 32%),var(--tg-canvas)!important;color:var(--tg-ink)}
html[data-theme="dark"] .tg-legal-header{background:color-mix(in srgb,var(--tg-canvas) 92%,transparent);border-color:var(--tg-border)}
html[data-theme="dark"] .tg-legal-index,html[data-theme="dark"] .tg-legal-content,html[data-theme="dark"] .tg-legal-mobile-index summary,html[data-theme="dark"] .tg-legal-mobile-index nav{background:var(--tg-surface)!important;border-color:var(--tg-border)!important;color:var(--tg-ink)!important}
html[data-theme="dark"] .tg-legal-content p,html[data-theme="dark"] .tg-legal-index a{color:var(--tg-muted)!important}
html[data-theme="dark"] .tg-legal-content h2{color:var(--tg-accent)!important;border-color:var(--tg-border)}
html[data-theme="dark"] .tg-legal-content .legal-meta{background:var(--tg-surface-2);color:var(--tg-ink)}
html[data-theme="dark"] .tg-legal-callout{background:var(--tg-surface-2);color:var(--tg-ink)}
html[data-theme="dark"] .tg-legal-footer{background:var(--tg-surface)!important;border-color:var(--tg-border)!important;color:var(--tg-muted)!important}
html[data-theme="dark"] .tg-legal-footer .tg-legal-links a,html[data-theme="dark"] .tg-legal-footer .tg-legal-company a{color:var(--tg-accent)!important}

/* Bring page-specific admin tools back to the same cobalt/graphite palette. */
.bb-dashboard .bb-metric-violet,.bb-dashboard .bb-metric-coral,.bb-dashboard .bb-metric-blue,.bb-dashboard .bb-metric-mint{--bb-accent:var(--tg-accent-2);--bb-tint:color-mix(in srgb,var(--tg-accent) 13%,var(--tg-surface))}
.bb-dashboard .bb-revenue-total{background:linear-gradient(110deg,#35588f,#5276ad)}
.bb-dashboard .bb-revenue-share{background:linear-gradient(110deg,#474a54,#687384)}
.bb-dashboard .bb-action-icon{background:color-mix(in srgb,var(--tg-accent) 13%,var(--tg-surface))!important;color:var(--tg-accent-2)!important}
.finance-hero{background:radial-gradient(ellipse at 88% 10%,rgba(195,213,242,.22),transparent 34%),linear-gradient(125deg,#293f68,#35588f 62%,#526b98)!important}
.finance-eyebrow,.instructor-courses-eyebrow{color:#d6e3f7!important}
.finance-section-label,.finance-filter-icon,.finance-loading .spinner-border,.finance-person i,.finance-footnote i{color:var(--tg-accent-2)!important}
.finance-filter-icon,.finance-live-tag,.finance-row-count,.finance-gate-icon{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important}
.finance-filter-controls .btn,.finance-gate-form .btn{border-color:var(--tg-accent-2)!important;background:var(--tg-accent-2)!important;color:#fff!important}
.finance-live-tag i,.legend-club{background:var(--tg-accent-2)!important}
.legend-teachers{background:#aab3c0!important}
.finance-positive,.finance-person i{color:var(--tg-accent-2)!important}
.instructor-courses-hero{background:radial-gradient(ellipse at 85% 5%,rgba(195,213,242,.22),transparent 34%),linear-gradient(125deg,#293f68,#35588f 65%,#526b98)!important}
.instructor-course-toolbar label i,.course-discipline i,.course-card-footer>span i,.course-students-summary i{color:var(--tg-accent-2)!important}
.instructor-course-card:hover,.instructor-course-card.is-selected{border-color:#a8bfdf;box-shadow:0 12px 26px rgba(53,88,143,.11)}
.course-instructor-avatar,.student-name-cell>i{border-color:#dce5f1;background:#edf2f9;color:var(--tg-accent-2)}
.btn-view-course-students{background:#e7edf8;color:var(--tg-accent-2)}
.btn-view-course-students:hover{background:var(--tg-accent-2);color:#fff}
.course-students-summary{border-color:#dbe4f0;background:#f3f6fb;color:#5e6d82}
.course-students-summary strong{color:var(--tg-accent-2)}
.groove-calendar-eyebrow,.groove-event-time{color:var(--tg-accent-2)!important}
.groove-calendar-nav:hover,.groove-calendar-today:hover{border-color:var(--tg-accent)!important;background:var(--tg-glow)!important;color:var(--tg-accent-2)!important}
.groove-calendar-view button.is-active{color:var(--tg-accent-2)!important}
.groove-calendar-day.day-today .groove-calendar-day-name{background:var(--tg-accent-2)!important}
.groove-calendar-event{border-color:#dbe4f0;border-left-color:var(--tg-accent-2);background:#f0f4fa}
.legend-dot{background:var(--tg-accent-2)}
html[data-theme="dark"] .finance-filterbar,html[data-theme="dark"] .finance-kpi,html[data-theme="dark"] .finance-panel,html[data-theme="dark"] .instructor-course-toolbar,html[data-theme="dark"] .instructor-course-card,html[data-theme="dark"] .course-students-panel,html[data-theme="dark"] .groove-calendar-card{border-color:var(--tg-border)!important;background:var(--tg-surface)!important;color:var(--tg-ink)}
html[data-theme="dark"] .finance-filter-title strong,html[data-theme="dark"] .finance-kpi>strong,html[data-theme="dark"] .finance-panel-heading h2,html[data-theme="dark"] .finance-person,html[data-theme="dark"] .finance-ledger td strong,html[data-theme="dark"] .finance-strong,html[data-theme="dark"] .instructor-course-card h3,html[data-theme="dark"] .course-instructor strong,html[data-theme="dark"] .course-students-heading h2,html[data-theme="dark"] .groove-calendar-heading h5,html[data-theme="dark"] .groove-calendar-period strong{color:var(--tg-ink)!important}
html[data-theme="dark"] .finance-filter-title small,html[data-theme="dark"] .finance-filter-title strong+small,html[data-theme="dark"] .finance-kpi-top,html[data-theme="dark"] .finance-kpi>small,html[data-theme="dark"] .finance-panel-heading p,html[data-theme="dark"] .instructor-course-toolbar label,html[data-theme="dark"] .course-discipline,html[data-theme="dark"] .course-instructor small,html[data-theme="dark"] .course-card-meta,html[data-theme="dark"] .groove-calendar-heading p,html[data-theme="dark"] .groove-calendar-period>span{color:var(--tg-muted)!important}
html[data-theme="dark"] .finance-table thead th,html[data-theme="dark"] .course-students-table thead th,html[data-theme="dark"] .groove-calendar-weekdays,html[data-theme="dark"] .groove-calendar-day,html[data-theme="dark"] .groove-calendar-view,html[data-theme="dark"] .groove-calendar-nav,html[data-theme="dark"] .groove-calendar-today{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important;color:var(--tg-ink)}
html[data-theme="dark"] .finance-table tbody td,html[data-theme="dark"] .course-students-table tbody td,html[data-theme="dark"] .groove-calendar-weekdays span,html[data-theme="dark"] .groove-calendar-day{border-color:var(--tg-border)!important}
html[data-theme="dark"] .groove-calendar-event{background:var(--tg-surface-2);border-color:var(--tg-border)}
html[data-theme="dark"] .groove-calendar-event strong,html[data-theme="dark"] .groove-event-teacher,html[data-theme="dark"] .groove-event-meta,html[data-theme="dark"] .groove-calendar-day-top{color:var(--tg-ink)}

@media(max-width:767.98px){
 .bb-sidebar .navbar-brand-box{min-height:70px;padding:10px 13px}
 .bb-sidebar-wordmark{height:43px}
 .page-title-box{align-items:flex-start;flex-direction:column;gap:10px;min-height:0;margin-bottom:17px;padding-bottom:12px!important}
 .page-title-box .page-title-right{margin-left:0}
 .page-title-box .breadcrumb{padding:6px 9px;font-size:9px}
 .page-content .card-header .flex-grow-1{gap:10px}
 .page-content.bb-cursanti-page .card-header .flex-grow-1{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .page-content.bb-cursanti-page .tg-cursanti-btn-danger{grid-column:1/-1}
 .page-content .card-header .flex-grow-1>.btn{flex:1 1 190px}
 .page-content .order-actions{gap:7px!important}
 .tg-legal-header-inner{padding:9px 14px}
}
@media(max-width:380px){.page-content.bb-cursanti-page .card-header .flex-grow-1{grid-template-columns:1fr}.page-content.bb-cursanti-page .tg-cursanti-btn-danger{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.bb-sidebar .nav-link.menu-link,.page-content .btn{transition:none!important}}

/* Theme-aware dialogs and finance access gate, including dialogs mounted at body level. */
.modal .modal-content,.modal-content,.modal .modal-bs-content,.modal-bs-content{overflow:hidden;border:1px solid var(--tg-border)!important;border-radius:18px!important;background:var(--tg-surface)!important;color:var(--tg-ink)!important;box-shadow:0 24px 72px rgba(13,20,32,.25)!important}
.modal .modal-header,.modal .modal-footer{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important;color:var(--tg-ink)!important}
.modal .modal-header{padding:17px 21px}
.modal .modal-title,.modal .modal-body,.modal .modal-body label,.modal .modal-body h1,.modal .modal-body h2,.modal .modal-body h3,.modal .modal-body h4,.modal .modal-body h5{color:var(--tg-ink)!important}
.modal .modal-body{padding:21px}
.modal .modal-body p,.modal .modal-body small,.modal .modal-body .text-muted,.modal .modal-body .form-text{color:var(--tg-muted)!important}
.modal .form-control,.modal .form-select,.modal input:not([type=checkbox]):not([type=radio]),.modal select,.modal textarea{border-color:var(--tg-border)!important;background-color:var(--tg-surface-2)!important;color:var(--tg-ink)!important}
.modal .form-control::placeholder,.modal input::placeholder,.modal textarea::placeholder{color:var(--tg-muted)!important;opacity:.8}
.modal .table{--bs-table-bg:transparent;--bs-table-color:var(--tg-ink);--bs-table-border-color:var(--tg-border)}
.modal .table thead th,.modal .table-light th{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important;color:var(--tg-ink)!important}
.modal .alert-light,.modal .bg-light,.modal .bg-white,.modal .card,.modal .input-group-text{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important;color:var(--tg-ink)!important}
.modal .btn,.modal-bs-content .btn{min-height:36px;border-radius:10px;font-weight:700}
.modal .close,.modal .btn-close{color:var(--tg-ink)!important}
.modal .modal-bs-content>.modal-header,.modal-bs-content>.modal-header,.modal .modal-bs-content>.modal-footer,.modal-bs-content>.modal-footer{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important;color:var(--tg-ink)!important}
.modal-bs-content .modal-body,.modal-bs-content .modal-body label,.modal-bs-content .modal-header .modal-title{color:var(--tg-ink)!important}
.modal-bs-content .form-control,.modal-bs-content .form-select,.modal-bs-content input,.modal-bs-content select,.modal-bs-content textarea{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important;color:var(--tg-ink)!important}
html[data-theme="dark"] .modal .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}
.swal2-popup{border:1px solid var(--tg-border)!important;border-radius:18px!important;background:var(--tg-surface)!important;color:var(--tg-ink)!important;box-shadow:0 24px 72px rgba(13,20,32,.28)!important}
.swal2-title,.swal2-html-container{color:var(--tg-ink)!important}
.swal2-input,.swal2-textarea,.swal2-select{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important;color:var(--tg-ink)!important}
.swal2-confirm{border-radius:10px!important;background:var(--tg-accent-2)!important}
dialog{border:1px solid var(--tg-border)!important;border-radius:20px!important;background:var(--tg-surface)!important;color:var(--tg-ink)!important;box-shadow:0 24px 72px rgba(13,20,32,.28)!important}
.student-portal .reserve-dialog,.groove-registration .success-dialog{border-color:var(--tg-border)!important;background:var(--tg-surface)!important;color:var(--tg-ink)!important}
.student-portal .reserve-dialog h3,.student-portal .reserve-dialog .dialog-course-summary,.student-portal .reserve-dialog .dialog-course-summary strong{color:var(--tg-ink)!important}
.student-portal .reserve-dialog p{color:var(--tg-muted)!important}
.student-portal .reserve-dialog .dialog-course-summary,.student-portal .reserve-dialog .dialog-close{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important}
.groove-registration .success-dialog .success-content{background:var(--tg-surface)!important;color:var(--tg-ink)!important}
dialog::backdrop{background:rgba(8,12,20,.66);backdrop-filter:blur(5px)}
.finance-gate{border-color:var(--tg-border)!important;background:radial-gradient(circle at 50% -4%,var(--tg-glow),transparent 39%),var(--tg-surface)!important;color:var(--tg-ink)!important;box-shadow:var(--tg-shadow)!important}
.finance-gate h1{color:var(--tg-ink)!important}
.finance-gate>p,.finance-gate>small{color:var(--tg-muted)!important}
.finance-gate .form-control{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important;color:var(--tg-ink)!important}
.finance-gate .form-control::placeholder{color:var(--tg-muted)!important}
.finance-gate-icon{border-color:var(--tg-border)!important;background:var(--tg-surface-2)!important;color:var(--tg-accent-2)!important}
.main-content>.footer,.main-content .footer{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;width:auto;height:auto!important;min-height:60px;clear:both;margin-top:24px!important;padding:18px 0!important;border-top:1px solid var(--tg-border)!important;background:var(--tg-surface)!important;color:var(--tg-muted)!important}
.main-content>.footer .container-fluid,.main-content .footer .container-fluid{padding-top:2px;padding-bottom:2px}
.tg-legal-footer{position:relative;clear:both;margin-top:24px!important;padding-top:26px!important;border-top:1px solid var(--tg-border)!important;background:var(--tg-surface)!important;color:var(--tg-muted)!important}
.footer a{color:var(--tg-accent-2)!important}
.footer img{max-height:24px;object-fit:contain}
.tg-legal-footer-inner:has(.tg-creator-credit){grid-template-columns:minmax(150px,.8fr) minmax(280px,1.5fr) auto auto}
.tg-creator-credit{display:flex;align-items:center;justify-content:flex-end;gap:7px;color:var(--tg-muted);font-size:10px;font-weight:650;white-space:nowrap}
.tg-creator-credit a{display:inline-flex;align-items:center}
.tg-creator-credit img{display:block;width:94px;max-height:32px;object-fit:contain}
@media(max-width:900px){.tg-legal-footer-inner:has(.tg-creator-credit){grid-template-columns:1fr auto}.tg-legal-footer-inner .tg-legal-links{grid-column:1/-1}.tg-legal-footer-inner .tg-payment-brands{grid-column:1}.tg-legal-footer-inner .tg-creator-credit{grid-column:2;grid-row:3}}
@media(max-width:767.98px){.tg-legal-footer-inner:has(.tg-creator-credit){grid-template-columns:1fr;justify-items:center}.tg-legal-footer-inner .tg-creator-credit{grid-column:auto;grid-row:auto;justify-content:center}}
@media(max-width:767.98px){.main-content>.footer,.main-content .footer{margin-top:24px!important;padding:15px 0!important}.tg-legal-footer{margin-top:26px!important;padding-top:22px!important}}
@media(max-width:575.98px){.modal-dialog{margin:12px!important}.modal .modal-content{border-radius:16px!important}.modal .modal-header{padding:14px 16px}.modal .modal-body{padding:16px}.modal .modal-footer{gap:8px;padding:12px 15px}.modal .modal-footer>.btn{flex:1 1 auto}}

/* Neon polish for data cards across admin, finance and the public student profile. */
.main-content .card.card-animate{--tg-stat-accent:var(--tg-accent-2);position:relative;isolation:isolate;overflow:hidden;border:1px solid color-mix(in srgb,var(--tg-stat-accent) 24%,var(--tg-border))!important;border-radius:17px!important;background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--tg-stat-accent) 13%,transparent),transparent 54%),var(--tg-surface)!important;box-shadow:var(--tg-shadow),0 0 18px color-mix(in srgb,var(--tg-stat-accent) 9%,transparent)!important;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.main-content .card.card-animate:before{position:absolute;z-index:-1;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,transparent,var(--tg-stat-accent),var(--tg-cyan),transparent);opacity:.62;content:"";animation:tg-stat-sheen 5s ease-in-out infinite}
.main-content .card.card-animate:after{position:absolute;z-index:-1;right:-33px;bottom:-44px;width:108px;height:108px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--tg-stat-accent) 23%,transparent),transparent 68%);content:"";animation:tg-stat-breathe 4.8s ease-in-out infinite}
.main-content .card.card-animate .card-body{position:relative;z-index:1}
.main-content .card.card-animate:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--tg-stat-accent) 48%,var(--tg-border))!important;box-shadow:var(--tg-shadow),0 0 25px color-mix(in srgb,var(--tg-stat-accent) 16%,transparent)!important}
.main-content .card.card-animate .avatar-title{border:1px solid color-mix(in srgb,var(--tg-stat-accent) 25%,transparent);box-shadow:0 0 17px color-mix(in srgb,var(--tg-stat-accent) 15%,transparent)}
.bb-metric,.finance-kpi,.finance-payment-kpi,.student-portal .stat-card{--tg-stat-accent:var(--tg-accent-2);position:relative;isolation:isolate;overflow:hidden;border:1px solid color-mix(in srgb,var(--tg-stat-accent) 25%,var(--tg-border))!important;box-shadow:var(--tg-shadow),0 0 20px color-mix(in srgb,var(--tg-stat-accent) 9%,transparent)!important;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.bb-metric:before,.finance-kpi:before,.finance-payment-kpi:before,.student-portal .stat-card:before{position:absolute;z-index:-1;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,transparent,var(--tg-stat-accent),var(--tg-cyan),transparent);opacity:.68;content:"";animation:tg-stat-sheen 5s ease-in-out infinite}
.bb-metric:after,.finance-kpi:after,.finance-payment-kpi:after,.student-portal .stat-card:after{position:absolute;z-index:-1;right:-35px;bottom:-55px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--tg-stat-accent) 20%,transparent),transparent 70%);opacity:.8;content:"";animation:tg-stat-breathe 4.8s ease-in-out infinite}
.bb-metric:hover,.finance-kpi:hover,.finance-payment-kpi:hover,.student-portal .stat-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--tg-stat-accent) 48%,var(--tg-border))!important;box-shadow:var(--tg-shadow),0 0 27px color-mix(in srgb,var(--tg-stat-accent) 15%,transparent)!important}
.bb-dashboard .bb-metric{background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--tg-stat-accent) 11%,transparent),transparent 58%),var(--tg-surface)!important}
.bb-metric-violet{--tg-stat-accent:#9b7bff}.bb-metric-coral{--tg-stat-accent:#ef8f82}.bb-metric-blue{--tg-stat-accent:#6faaff}.bb-metric-mint{--tg-stat-accent:#50d3b2}
.bb-revenue-card{border:1px solid rgba(255,255,255,.22);box-shadow:0 12px 30px rgba(27,49,62,.13),0 0 23px rgba(125,176,255,.14);transition:transform .22s ease,box-shadow .22s ease}
.bb-revenue-card:before{position:absolute;z-index:0;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),rgba(162,231,255,.9),transparent);opacity:.5;content:"";animation:tg-stat-sheen 5s ease-in-out infinite}
.bb-revenue-card:after{position:absolute;z-index:0;right:-45px;bottom:-70px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.22),transparent 70%);content:"";animation:tg-stat-breathe 4.8s ease-in-out infinite}
.bb-revenue-card:hover{transform:translateY(-3px);box-shadow:0 17px 38px rgba(27,49,62,.17),0 0 30px rgba(125,176,255,.22)}
.finance-kpi,.finance-payment-kpi{background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--tg-stat-accent) 10%,transparent),transparent 58%),var(--tg-surface)!important}
.finance-kpi:after{background:radial-gradient(circle,color-mix(in srgb,var(--tg-stat-accent) 20%,transparent),transparent 70%)}
.finance-kpi-top,.finance-kpi>small,.finance-payment-kpi span{color:var(--tg-muted)!important}.finance-kpi>strong,.finance-kpi>small b,.finance-payment-kpi strong{color:var(--tg-ink)!important}
.finance-kpi-top i{border:1px solid color-mix(in srgb,var(--tg-stat-accent) 24%,var(--tg-border));background:color-mix(in srgb,var(--tg-stat-accent) 12%,var(--tg-surface-2));box-shadow:0 0 14px color-mix(in srgb,var(--tg-stat-accent) 13%,transparent)}
.kpi-gross,.payment-card{--tg-stat-accent:#739bf0}.kpi-club,.payment-cash{--tg-stat-accent:#45c8a8}.kpi-teachers{--tg-stat-accent:#e7a35c}.kpi-classes{--tg-stat-accent:#a88bea}
.student-portal .stat-card{background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--tg-stat-accent) 12%,transparent),transparent 61%),var(--tg-surface)!important}
.student-portal .stat-card small,.student-portal .stat-card>span:last-child{color:var(--tg-muted)!important}.student-portal .stat-card strong{color:var(--tg-ink)!important}
.student-portal .stat-icon{border:1px solid color-mix(in srgb,var(--tg-stat-accent) 24%,var(--tg-border));background:color-mix(in srgb,var(--tg-stat-accent) 12%,var(--tg-surface-2))!important;color:var(--tg-stat-accent)!important;box-shadow:0 0 13px color-mix(in srgb,var(--tg-stat-accent) 12%,transparent)}
.student-portal .stat-present{--tg-stat-accent:#42bd91}.student-portal .stat-absent{--tg-stat-accent:#e8837d}.student-portal .stat-upcoming{--tg-stat-accent:#739bf0}
@keyframes tg-stat-sheen{0%,100%{opacity:.38;transform:scaleX(.78);transform-origin:left}50%{opacity:.82;transform:scaleX(1);transform-origin:left}}
@keyframes tg-stat-breathe{0%,100%{opacity:.48;transform:scale(.9)}50%{opacity:.9;transform:scale(1.06)}}
@media(prefers-reduced-motion:reduce){.main-content .card.card-animate,.bb-metric,.finance-kpi,.finance-payment-kpi,.student-portal .stat-card,.bb-revenue-card{transition:none!important}.main-content .card.card-animate:before,.main-content .card.card-animate:after,.bb-metric:before,.finance-kpi:before,.finance-payment-kpi:before,.student-portal .stat-card:before,.bb-metric:after,.finance-kpi:after,.finance-payment-kpi:after,.student-portal .stat-card:after,.bb-revenue-card:before,.bb-revenue-card:after{animation:none!important}}

/* Mobile header logo contrast, compact sidebar control, and uniform menu rows. */
@media(max-width:767.98px){
  .bb-topbar-brand{display:flex;align-items:center;justify-content:center;padding:5px 8px;border:0;border-radius:0;background:transparent;box-shadow:none}
  .bb-topbar-logo{display:block;filter:brightness(0) invert(1);object-fit:contain}
  .bb-sidebar .navbar-brand-box #vertical-hover,.bb-sidebar .bb-sidebar-collapse{display:grid!important;place-items:center;width:29px!important;min-width:29px;height:29px!important;min-height:29px;padding:0!important;flex:0 0 29px;border-radius:8px!important;overflow:hidden}
  .bb-sidebar .navbar-brand-box #vertical-hover>i,.bb-sidebar .bb-sidebar-collapse>i{display:block;font-size:14px!important;line-height:1!important}
}
.bb-sidebar .navbar-nav>.nav-item{width:100%;min-width:0}
.bb-sidebar .navbar-nav>.nav-item>.nav-link.menu-link{box-sizing:border-box;width:100%;height:45px;min-height:45px;padding:6px 12px}
.bb-sidebar .navbar-nav>.nav-item>.nav-link.menu-link>i{width:30px;height:30px;flex:0 0 30px}
.bb-sidebar .navbar-nav>.nav-item>.nav-link.menu-link>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
