/* P03: green academic workspaces, bounded scrolling, no third-party assets. */
.gs-p03 .sidebar {height:100dvh;display:flex;flex-direction:column;overflow:hidden}
.gs-p03 .sidebar .brand,.gs-p03 .sidebar-foot {flex-shrink:0}
.gs-p03 .sidebar nav {flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:24px;scrollbar-width:thin}
.gs-p03 .sidebar .nav-label {margin-top:20px}
.gs-p03 .sidebar .nav-item {margin-bottom:4px;min-height:42px}
.gs-p03 .sidebar-foot {padding-top:14px;margin-top:8px}
.ga-notice {display:flex;gap:20px;align-items:center;justify-content:space-between;background:#edf7f1;border:1px solid #cce7d9;border-left:4px solid var(--green);border-radius:12px;padding:18px 20px;margin:18px 0;color:#164f3c;line-height:1.6}
.ga-notice p {margin:4px 0 0}.ga-notice button{flex-shrink:0}
.ga-warning {background:#fff7e9;border-color:#ead5ab;border-left-color:#ba801d;color:#795819}
.ga-filters,.ga-hierarchy-filters {display:flex;gap:16px;align-items:end;flex-wrap:wrap}
.ga-filters {margin:20px 0;padding:16px;background:#fff;border:1px solid var(--line,#e1eae8);border-radius:12px}
.ga-filters>label {min-width:200px;flex:1}.ga-filters input,.ga-filters select{width:100%}
.ga-hierarchy-filters label{min-width:200px;flex:1}
.ga-cycle-group {margin:28px 0 34px}
.ga-cycle-group>header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 2px 16px}
.ga-cycle-group>header h2{font-size:22px;margin:5px 0}.ga-cycle-group>header>span{color:var(--muted,#668078);font-size:13px}
.ga-class-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px}
.ga-class-card {padding:22px;margin:0;display:flex;flex-direction:column;border-top:3px solid #9dcdb4;transition:box-shadow .16s,transform .16s}
.ga-class-card:hover{box-shadow:0 10px 25px #1a644311;transform:translateY(-2px)}
.ga-class-card h2 {font-size:25px;margin:10px 0 4px}.ga-class-card h2 a{color:var(--navy);text-decoration:none}
.ga-class-card p{font-size:12px;color:var(--muted);margin:4px 0 16px}
.ga-card-kicker{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--green)}
.ga-card-count{display:flex;gap:8px;align-items:baseline;margin:8px 0 16px;color:var(--muted)}
.ga-card-count strong{font-size:30px;color:var(--navy)}.ga-card-count small{margin-left:auto}
.ga-card-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:16px;margin-top:auto}
.ga-link{display:inline-flex;align-items:center;gap:7px;font-weight:600;text-decoration:none;font-size:13px;padding:6px 0}
.ga-link .icon{width:17px;height:17px}
.ga-class-meta{display:flex;flex-wrap:wrap;gap:12px 28px;padding:0 2px 20px;font-size:13px;color:var(--muted)}
.ga-class-meta span{display:flex;align-items:center;gap:8px}.ga-class-meta .icon{color:var(--green);width:18px;height:18px}
.ga-pager{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 4px;margin-bottom:18px;font-size:13px;color:var(--muted)}
.ga-pager>div{display:flex;gap:8px}.ga-pager button{padding:8px 12px}
.ga-status-tabs{margin-bottom:0;overflow-x:auto;white-space:nowrap}
.ga-status-tabs button{display:flex;gap:9px;align-items:center}.ga-status-tabs button span{font-size:11px;padding:2px 6px;border-radius:20px;background:#ecf2ef;min-width:20px}
.ga-status-tabs button.active span{background:#d5eee1;color:#00663f}
.ga-fee-classes>summary,.ga-results-detail>summary {cursor:pointer;list-style-position:inside;padding:18px 22px;font-weight:700;color:var(--navy)}
.ga-fee-classes .ga-hierarchy-filters{margin-bottom:18px}.ga-fee-classes .ga-class-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.ga-fee-classes .ga-class-card {box-shadow:none;background:#fcfefc}
.ga-family-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:22px;margin:22px 0}
.ga-child-card{padding:24px;margin:0}.ga-child-card .profile{gap:18px;margin-bottom:24px;align-items:center}
.ga-child-card h2{font-size:22px;margin:6px 0}.ga-child-card p{margin:5px 0;color:var(--muted)}
.ga-child-card .gs-large{width:72px;height:88px;flex-shrink:0}
.ga-child-balances{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ga-child-balances>div{font-size:12px;color:var(--muted)}.ga-child-balances b{display:block;font-size:17px;color:var(--navy);margin-top:7px}
.ga-family-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;align-items:center}
.ga-family-links button{padding:8px 12px}.ga-family-links>a{margin-right:auto}
.ga-calendar-toolbar {display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:20px 0}
.ga-calendar-date {display:flex;align-items:end;gap:8px}.ga-calendar-date input{min-width:145px}
.ga-calendar-date>button{height:40px}.ga-calendar-date>button span:not(.icon){display:none}
.ga-calendar-caption{display:flex;justify-content:space-between;align-items:center;margin:20px 0 12px;gap:12px}.ga-calendar-caption>span{font-size:13px;color:var(--muted)}
.ga-calendar-scroll {max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--line,#e1eae8);border-radius:14px;background:#fff;scrollbar-width:thin}
.ga-calendar{display:grid;min-width:1100px;grid-template-columns:repeat(7,minmax(155px,1fr));align-items:stretch}
.ga-calendar-day{min-width:0;grid-template-columns:1fr}
.ga-day{border-right:1px solid var(--line,#e1eae8);min-width:0;min-height:290px}.ga-day:last-child{border-right:0}
.ga-day>header{display:flex;flex-direction:column;gap:6px;padding:18px 12px;text-transform:capitalize;text-align:center;background:#f4f8f5;border-bottom:1px solid var(--line)}
.ga-day>header span{font-size:12px;color:var(--muted)}.ga-today>header{background:#e0f1e7;box-shadow:inset 0 -3px var(--green)}
.ga-day-lessons{display:flex;flex-direction:column;gap:12px;padding:12px 9px}
.ga-calendar-day .ga-day-lessons {display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));padding:20px;gap:20px}
.ga-lesson{display:flex;flex-direction:column;gap:8px;border-left:3px solid var(--green);border-radius:9px;padding:13px 11px;background:#f0f8f3;box-shadow:0 1px 2px #0f4e1110}
.ga-lesson-time{font-weight:800;color:var(--green);font-size:13px}.ga-lesson>strong{font-size:15px;color:var(--navy)}
.ga-lesson>span:not(.badge){font-size:12px;color:var(--muted)}.ga-lesson .ga-teacher-name{font-size:12px;line-height:1.4}
.ga-lesson>small{font-size:11px;color:var(--muted)}.ga-lesson>.badge{align-self:flex-start;font-size:9px}
.ga-cancelled{background:#f3f4f5;border-left-color:#a1aaa8;opacity:.7}.ga-cancelled .ga-lesson-time{text-decoration:line-through}
.ga-lesson-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}.ga-lesson-actions button{font-size:11px;padding:6px}.ga-lesson-actions .icon{width:13px;height:13px}
.ga-free{text-align:center;font-size:12px;color:#8b9d95;padding:36px 0;line-height:1.5}
.ga-teacher-month .panel-head{gap:20px;align-items:center}.ga-teacher-month .panel-head small{display:block;color:var(--muted);margin-top:6px}
.ga-teacher-month .kpis{padding:18px;margin:0;gap:14px}.ga-teacher-month .kpi{box-shadow:none;border:1px solid var(--line)}
.ga-teacher-month>p{padding:0 20px 18px;margin:0}.ga-choice-actions{display:flex;justify-content:center;gap:20px;padding:20px;flex-wrap:wrap}
.gs-p03 #ga-pay-preview{display:block}.gs-p03 .ga-results-detail{margin-bottom:14px}
@media(max-width:1100px){.ga-teacher-month .kpis{grid-template-columns:repeat(2,1fr)}.ga-family-grid{grid-template-columns:1fr}.ga-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){
 .ga-class-grid,.ga-fee-classes .ga-class-grid{grid-template-columns:1fr}
 .ga-filters,.ga-hierarchy-filters,.ga-notice{align-items:stretch;flex-direction:column}
 .ga-filters>label,.ga-hierarchy-filters label{min-width:0;width:100%}
 .ga-cycle-group>header,.ga-calendar-caption,.ga-teacher-month .panel-head{align-items:flex-start;flex-direction:column;gap:10px}
 .ga-calendar-toolbar{justify-content:flex-start}.ga-calendar-date{order:3;width:100%;justify-content:space-between}
 .ga-family-grid{grid-template-columns:minmax(0,1fr)}.ga-child-card{padding:18px}
 .ga-child-balances{grid-template-columns:1fr;gap:12px}.ga-child-balances>div{display:flex;justify-content:space-between;align-items:center}.ga-child-balances b{margin:0}
 .ga-teacher-month .kpis{grid-template-columns:1fr}.ga-pager{flex-direction:column;align-items:flex-start}
 .ga-class-meta{gap:12px}.ga-calendar-day .ga-day-lessons{grid-template-columns:1fr}
 .ga-class-card{padding:18px}.ga-child-card .profile{flex-wrap:wrap}
}
@media print{
 .ga-filters,.ga-hierarchy-filters,.ga-calendar-toolbar,.ga-pager,.ga-choice-actions,.ga-card-footer button,.ga-family-links button{display:none!important}
 .ga-calendar-scroll{overflow:visible}.ga-calendar{min-width:0;grid-template-columns:1fr}.ga-day{break-inside:avoid;border:1px solid #ddd;margin-bottom:14px;min-height:0}
 .ga-class-grid{grid-template-columns:repeat(2,1fr)}.ga-lesson{box-shadow:none}.ga-family-grid{grid-template-columns:1fr}
}

@media(max-width:760px){
 .gs-p03 .sidebar{display:none}
 .gs-p03 .sidebar.open{display:flex;position:fixed;inset:0 auto 0 0;width:232px;max-width:86vw;z-index:60;background:#fff;box-shadow:12px 0 30px #102a2d22}
}
