/* The Groove 2026 visual system: cobalt, warm ivory and graphite. */
:root{--tg-blue:#35588f;--tg-blue-deep:#243f70;--tg-blue-light:#e7edf8;--tg-ivory:#f2ead8;--tg-paper:#f7f4ed;--tg-graphite:#474a54;--tg-ink:#222832;--tg-muted:#747782;--tg-line:#e2dccf;--tg-white:#fffefa;--tg-shadow:0 18px 48px rgba(44,54,75,.09)}
html{scroll-behavior:smooth}body{color:var(--tg-ink);background:var(--tg-paper)}
.groove-registration{--ink:#222832;--muted:#747782;--paper:#f2ead8;--green:#cddaf0;--teal:#35588f;--line:#e2dccf;background:radial-gradient(ellipse at 92% 8%,rgba(88,120,177,.14),transparent 32%),#f2ead8!important}.groove-registration .eyebrow{color:#526f9f}.groove-registration .reg-intro h1 em,.groove-registration .success-content h2 em{color:#35588f}.groove-registration .choice-card:hover,.groove-registration .choice-card.selected{border-color:#8fa7cf;background:#f0f4fb;box-shadow:0 10px 28px rgba(53,88,143,.12)}.groove-registration .choice-icon,.groove-registration .choice-arrow,.groove-registration .change-kind{color:#35588f}.groove-registration .reg-panel,.groove-registration .success-content{background:#fffefa}.groove-registration .consent-row a{color:#35588f;text-decoration:underline}.groove-registration .submit-registration{background:linear-gradient(110deg,#35588f,#45699e);box-shadow:0 12px 24px rgba(53,88,143,.16)}.groove-registration .submit-registration:hover{background:#243f70}.groove-registration .submit-registration b{background:#d4e0f4;color:#243f70}.groove-registration .package-preview,.groove-registration .package-payment-info,.groove-registration .student-code{background:#eff3f9;border-color:#dbe3f0}.groove-registration .success-dialog::backdrop{background:rgba(38,54,83,.78)}
/* Back-office shell */
#page-topbar.bb-topbar{background:rgba(250,248,242,.94);border-bottom-color:rgba(71,74,84,.14);box-shadow:0 8px 30px rgba(51,58,74,.07)}
.bb-topbar-current strong,.bb-account-copy strong{color:var(--tg-graphite)}.bb-menu-toggle,.bb-icon-button,.bb-account-button{background:var(--tg-white)!important;border-color:var(--tg-line)!important;color:var(--tg-graphite)!important}.bb-menu-toggle:hover,.bb-icon-button:hover,.bb-account-button:hover{border-color:#a8b7d2!important;background:var(--tg-blue-light)!important;color:var(--tg-blue)!important}.bb-menu-toggle .hamburger-icon span{background:var(--tg-graphite)!important}
.bb-sidebar,.bb-sidebar .navbar-brand-box{background:var(--tg-graphite)!important}.bb-sidebar{box-shadow:8px 0 32px rgba(27,31,42,.16)}.bb-sidebar .navbar-brand-box{border-bottom-color:rgba(255,255,255,.13)}.bb-sidebar .nav-link.menu-link.active{background:rgba(226,235,250,.14)!important;box-shadow:inset 3px 0 #a9c5f3}.bb-sidebar .nav-link.menu-link.active>i,.bb-sidebar .nav-link.menu-link:hover>i{color:#c3d5f6!important}.bb-menu-dot{background:#c6d8f7!important}.bb-sidebar-footer{border-top-color:rgba(255,255,255,.14)}
.page-content{background:radial-gradient(ellipse at 88% 0,rgba(202,216,240,.22),transparent 35%),var(--tg-paper)}.page-title-box h4,.page-title-box .page-title{color:var(--tg-graphite);font-weight:800;letter-spacing:-.03em}.page-title-box .breadcrumb-item a{color:var(--tg-blue)}
.card,.modal-content,.dropdown-menu,.popover{border:1px solid rgba(71,74,84,.1);border-radius:18px;box-shadow:var(--tg-shadow)}.card{background:var(--tg-white);overflow:hidden}.card-header{background:linear-gradient(120deg,rgba(242,234,216,.75),rgba(255,254,250,.9));border-bottom:1px solid var(--tg-line);color:var(--tg-graphite)}.card-header h5,.card-header h4,.card-title{color:var(--tg-graphite);font-weight:750}.card-body{min-width:0}.modal-content{overflow:hidden}.modal-header{background:var(--tg-paper);border-bottom-color:var(--tg-line)}.modal-footer{border-top-color:var(--tg-line)}
.btn-primary,.btn-primary:focus{background:var(--tg-blue)!important;border-color:var(--tg-blue)!important;color:white!important}.btn-primary:hover{background:var(--tg-blue-deep)!important;border-color:var(--tg-blue-deep)!important}.btn-success{background:#526f9f!important;border-color:#526f9f!important}.btn-outline-primary{color:var(--tg-blue)!important;border-color:#98aaca!important}.btn-outline-primary:hover{background:var(--tg-blue)!important;color:#fff!important}.text-primary{color:var(--tg-blue)!important}.bg-primary{background-color:var(--tg-blue)!important}.badge.bg-primary{background-color:var(--tg-blue)!important}
.form-control,.form-select,select.form-control{min-height:42px;border-color:#d8d6d1;border-radius:11px;background-color:#fffefa;color:var(--tg-ink)}.form-control:focus,.form-select:focus{border-color:#7992bc;box-shadow:0 0 0 .22rem rgba(53,88,143,.14)}.form-label,label{color:var(--tg-graphite)}.form-check-input:checked{background-color:var(--tg-blue);border-color:var(--tg-blue)}
.table{--bs-table-color:var(--tg-ink);--bs-table-bg:transparent;vertical-align:middle}.table thead th{background:#f0ebdf;color:var(--tg-graphite);font-size:.76rem;font-weight:800;letter-spacing:.035em;border-bottom-color:#ddd6c8}.table tbody tr:hover>*{background:rgba(231,237,248,.52)}.table td,.table th{border-color:rgba(71,74,84,.1)}.table-responsive{border-radius:12px}.dataTables_wrapper .dataTables_paginate .paginate_button.current{background:var(--tg-blue)!important;color:white!important;border-color:var(--tg-blue)!important}
.alert{border-radius:14px}.progress{background:#e8e4dc;border-radius:99px}.progress-bar{background:var(--tg-blue)}.nav-tabs .nav-link.active{color:var(--tg-blue);border-color:var(--tg-line) var(--tg-line) var(--tg-white)}.nav-pills .nav-link.active{background:var(--tg-blue)}
/* Public authentication */
body:has(.bb-auth-page){background:var(--tg-paper)}.bb-auth-page{position:relative;isolation:isolate;background:radial-gradient(ellipse at 7% 10%,rgba(98,131,190,.2),transparent 34%),linear-gradient(135deg,#eee7d8,#f8f6f0 56%,#e6ebf4);color:var(--tg-ink);min-height:calc(100vh - 80px);padding:38px 0}.bb-auth-page:before{content:"";position:absolute;z-index:-1;inset:0;background-image:linear-gradient(rgba(53,88,143,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(53,88,143,.035) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,black,transparent 88%)}.bb-auth-bg{background:radial-gradient(circle,rgba(70,105,166,.2),transparent 70%)}.bb-auth-card{border:1px solid rgba(71,74,84,.12);border-radius:26px;background:var(--tg-white);box-shadow:0 30px 90px rgba(44,54,75,.16);overflow:hidden}.bb-auth-visual{background:linear-gradient(145deg,#293f68,#35588f 56%,#526b98)}.bb-auth-visual:after{border-color:rgba(255,255,255,.14)}.bb-auth-logo-wrap img{filter:brightness(0) invert(1);width:min(300px,80%)!important}.bb-auth-hero-copy p,.bb-auth-feature-card{color:#f8f4eb}.bb-auth-feature-card{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);backdrop-filter:blur(14px)}.bb-auth-form-panel{background:var(--tg-white)}.bb-auth-form-header h2,.bb-auth-form-header p{color:var(--tg-graphite)}.bb-auth-field .form-control{background:#fff;border-color:#dedbd4}.bb-auth-input-wrap>i{color:var(--tg-blue)}.bb-auth-login-btn,.bb-auth-submit,.bb-auth-form button[type=submit]{background:linear-gradient(110deg,var(--tg-blue),#45699e)!important;color:#fff!important;border:0!important;box-shadow:0 12px 24px rgba(53,88,143,.23)}.bb-auth-login-btn:hover,.bb-auth-form button[type=submit]:hover{filter:brightness(.94)}.bb-auth-status{color:var(--tg-blue)}.bb-auth-check .form-check-input:checked{background-color:var(--tg-blue);border-color:var(--tg-blue)}
/* Student booking portal */
.student-portal{--ink:#222832;--muted:#747782;--teal:#35588f;--line:#e2dccf;--paper:#fffefa;--canvas:#f2ead8;background:radial-gradient(ellipse at 88% 5%,rgba(79,111,166,.12),transparent 35%),#f2ead8!important;color:#222832}.student-shell{max-width:1120px}.portal-header{background:rgba(255,254,250,.83);border:1px solid rgba(71,74,84,.13);border-radius:18px;box-shadow:0 10px 28px rgba(44,54,75,.07)}.studio-brand-mark{background:none!important;box-shadow:none!important;width:auto!important;height:auto!important}.studio-brand-mark img{width:120px;height:auto;max-height:46px;object-fit:contain}.studio-brand strong{color:#474a54}.studio-brand small{color:#767984}.portal-live-dot{background:#5276ad!important;box-shadow:0 0 0 5px rgba(82,118,173,.14)!important}.lookup-card,.subscription-card,.content-card,.profile-hero,.stat-card{background:#fffefa!important;border-color:rgba(71,74,84,.12)!important;box-shadow:0 17px 45px rgba(44,54,75,.075)!important}.lookup-card{border-radius:22px}.section-eyebrow,.profile-eyebrow,.portal-label{color:#526f9f!important}.btn-groove,.dialog-actions .btn-dialog-primary{background:#35588f!important;border-color:#35588f!important;color:#fff!important}.btn-groove:hover,.dialog-actions .btn-dialog-primary:hover{background:#243f70!important}.profile-points{background:linear-gradient(140deg,#35588f,#263f6c)!important}.student-avatar{background:#e8eef8!important;color:#35588f!important}.status-pill,.count-chip{background:#e9eef8!important;color:#35588f!important}.activity-table thead{background:#f0ebdf!important}.activity-table th{color:#474a54!important}.activity-table td{border-color:#e8e3d8!important}.course-card,.course-tile{background:#fffefa!important;border-color:#e1dbcf!important}.course-card button,.course-tile button{background:#35588f!important;color:#fff!important}.reserve-dialog{border-radius:20px!important;box-shadow:0 28px 90px rgba(28,37,56,.28)!important}.portal-footer{color:#737680!important}
/* FullCalendar and data-table controls */
.fc .fc-button-primary{background:var(--tg-blue)!important;border-color:var(--tg-blue)!important}.fc .fc-button-primary:hover{background:var(--tg-blue-deep)!important}.fc .fc-button-primary:disabled{opacity:.56}.fc .fc-col-header-cell{background:#f0ebdf}.fc .fc-col-header-cell-cushion{color:var(--tg-graphite);text-decoration:none}.fc .fc-daygrid-day-number{color:#474a54;text-decoration:none}.fc .fc-day-today{background:#edf2fa!important}.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length select{border:1px solid #d8d6d1;border-radius:9px;padding:6px 9px;background:#fffefa;color:#222832}
/* Compact legal footer on all public entry points */
.tg-legal-footer{width:100%;padding:26px clamp(16px,4vw,54px);background:#ede6d8;border-top:1px solid rgba(71,74,84,.15);color:var(--tg-graphite)}.tg-legal-footer-inner{max-width:1260px;margin:auto;display:grid;grid-template-columns:minmax(190px,1fr) minmax(280px,1.5fr) auto;gap:25px;align-items:center}.tg-legal-brand{display:flex;align-items:center;gap:12px;color:var(--tg-graphite);font-size:11px;font-weight:800;letter-spacing:.08em}.tg-legal-brand img{width:145px;max-height:48px;object-fit:contain}.tg-legal-links{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}.tg-legal-links a{color:#3f5f94;font-size:12px;font-weight:650;text-decoration:none}.tg-legal-links a:hover{text-decoration:underline}.tg-payments-mark{width:min(100%,250px);height:auto;display:block;object-fit:contain}.tg-legal-company{max-width:1260px;margin:17px auto 0;padding-top:14px;border-top:1px solid rgba(71,74,84,.12);color:#6e7078;font-size:10px;line-height:1.7}.tg-legal-company a{color:#3f5f94;text-decoration:none}
@media(max-width:900px){.tg-legal-footer-inner{grid-template-columns:1fr 1.3fr}.tg-payments-mark{grid-column:1/-1;width:210px}.tg-legal-brand img{width:130px}}
@media(max-width:767.98px){.page-content{padding:calc(64px + 14px) 12px 22px}.card{border-radius:14px}.card-body{padding:16px}.bb-auth-page{min-height:unset;padding:18px 10px 28px}.bb-auth-card{border-radius:20px}.bb-auth-visual{min-height:250px}.bb-auth-form-panel{padding:24px 20px}.tg-legal-footer{padding:22px 17px}.tg-legal-footer-inner{grid-template-columns:1fr;gap:16px}.tg-legal-brand{justify-content:center}.tg-legal-links{justify-content:center;gap:10px 14px}.tg-legal-links a{font-size:11px}.tg-payments-mark{grid-column:auto;width:min(240px,80%);margin:auto}.tg-legal-company{text-align:center;margin-top:14px}}
@media(max-width:390px){.bb-auth-form-panel{padding:21px 15px}.page-content{padding-left:9px;padding-right:9px}.tg-legal-links{gap:9px 11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Registration detail accents */
.groove-registration .reg-intro h1 em,.groove-registration .success-content h2 em{color:#35588f}.groove-registration .reg-brand i,.groove-registration .eyebrow,.groove-registration .privacy-note{color:#526f9f}.groove-registration .intro-orbit{border-color:rgba(53,88,143,.28)}.groove-registration .orbit-two{border-color:rgba(53,88,143,.32)}.groove-registration .intro-spark{color:#5276ad}.groove-registration .step-number{background:#e7edf8;color:#35588f}.groove-registration .choice-card:hover,.groove-registration .choice-card.selected{border-color:#8fa7cf;background:#f0f4fb}.groove-registration .choice-icon,.groove-registration .choice-arrow,.groove-registration .change-kind,.groove-registration .consent-row summary{color:#35588f}.groove-registration .guardian-fields{background:#f2f4f8}.groove-registration .guardian-icon{background:#e7edf8;color:#35588f}.groove-registration .field input:focus,.groove-registration .field select:focus{border-color:#7992bc;box-shadow:0 0 0 3px rgba(53,88,143,.14)}.groove-registration .consent-row input:checked+.checkmark{background:#35588f;border-color:#35588f}.groove-registration .consent-row input:focus-visible+.checkmark{outline-color:#afc2e3}.groove-registration .package-preview,.groove-registration .package-payment-info{background:#eff3f9;border-color:#dbe3f0}.groove-registration .package-preview strong,.groove-registration .package-payment-info strong{color:#474a54}.groove-registration .package-preview span,.groove-registration .package-payment-info span{color:#35588f}.groove-registration .package-preview small,.groove-registration .package-payment-info p,.groove-registration .package-payment-info small{color:#747782}.groove-registration .student-code{background:#eff3f9;border-color:#a9bddf}.groove-registration .student-code small{color:#526f9f}.groove-registration .submit-registration b{background:#d4e0f4;color:#243f70}

.bb-auth-feature-card i{color:#c6d8f7!important}.bb-auth-form-panel::before{background:radial-gradient(circle at 80% 14%,rgba(53,88,143,.08),transparent 32%),linear-gradient(180deg,rgba(242,234,216,.16),transparent 38%)}.bb-auth-pill{border-color:rgba(121,146,188,.36)!important;background:rgba(231,237,248,.72)!important;color:#35588f!important}.bb-auth-badge-dot{background:#9fb6dc!important;box-shadow:0 0 0 8px rgba(159,182,220,.14),0 0 22px rgba(159,182,220,.7)!important}
