@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Sans+Condensed:wght@600;700&display=swap";:root{--color-bg:#fff;--color-bg-subtle:#f7f7f9;--color-surface:#fff;--color-border:#e4e4e9;--color-border-subtle:#edeef1;--color-text:#1c1c22;--color-text-muted:#6b6d76;--color-text-subtle:#9a9ba5;--color-magenta:#a21caf;--color-magenta-bg:#fbe9fb;--color-mint:#34d399;--color-mint-bg:#e6f9f1;--color-danger:#c0255c;--color-danger-bg:#fdeef2;--color-warning:#b45309;--color-warning-bg:#fef6e7;--color-focus-ring:#a21caf59;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:1rem;--radius-pill:999px;--shadow-sm:0 1px 2px #1c1c220a;--shadow-md:0 4px 16px #1c1c2212, 0 1px 3px #1c1c220d;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-heading:"IBM Plex Sans Condensed", var(--font-body);--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-2xl:2rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0}h1,h2,h3{font-family:var(--font-heading);color:var(--color-text);margin:0 0 var(--space-3);font-weight:700;line-height:1.2}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-base)}p{margin:0 0 var(--space-3)}a{color:var(--color-magenta);text-decoration:none}a:hover{text-decoration:underline}ul,ol{padding-left:var(--space-5);margin:0}label{font-size:var(--text-sm);color:var(--color-text-muted)}input,select,textarea{font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{border-color:var(--color-magenta);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--color-magenta)}button{font:inherit;color:#fff;background:var(--color-text);border:1px solid var(--color-text);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer;font-weight:600;transition:opacity .12s}button:hover{opacity:.85}button:disabled{cursor:not-allowed;opacity:.45}button:not([class]){color:var(--color-text);background:var(--color-surface);border-color:var(--color-border)}button:not([class]):hover{background:var(--color-bg-subtle);opacity:1}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:var(--space-2) var(--space-3)}code{background:var(--color-bg-subtle);border-radius:var(--radius-sm);padding:.1em .4em;font-family:ui-monospace,Consolas,monospace;font-size:.85em}.app-shell{height:100vh;display:flex}.app-sidebar{background:var(--color-bg-subtle);width:15.5rem;height:100vh;color:var(--color-text);border-right:1px solid var(--color-border);padding:var(--space-5) 0;flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.app-sidebar-brand{font-family:var(--font-heading);font-size:var(--text-xl);padding:0 var(--space-5) var(--space-5);font-weight:700}.app-sidebar nav{flex:1}.app-sidebar ul{margin:0;padding:0;list-style:none}.app-sidebar nav a{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);margin:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;text-decoration:none;display:flex}.app-sidebar nav a:hover{background:var(--color-border-subtle);color:var(--color-text)}.app-sidebar nav a.active{background:var(--color-magenta-bg);color:var(--color-magenta);font-weight:600}.nav-badge{border-radius:var(--radius-pill);background:var(--color-magenta);color:#fff;font-size:var(--text-xs);padding:.05rem .5rem;font-weight:700;display:inline-block}.app-sidebar-footer{padding:var(--space-4) var(--space-5) 0;border-top:1px solid var(--color-border);font-size:var(--text-sm)}.app-sidebar-footer p{margin:0 0 var(--space-3)}.app-sidebar-footer button{width:100%}.app-sidebar-role{color:var(--color-text-subtle)}.app-main{padding:var(--space-6);background:var(--color-bg);flex:1;overflow-y:auto}.page{max-width:72rem}.page h1{margin-top:0}.page-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.page-header h1{margin:0}.loading,.dev-note{color:var(--color-text-muted)}.dev-note{font-style:italic;font-size:var(--text-sm)}.form-error{color:var(--color-danger);background:var(--color-danger-bg);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.hub-links{margin:0 0 var(--space-4);gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.hub-links a{font-size:var(--text-lg);font-weight:600}.detail-list{gap:var(--space-2) var(--space-5);grid-template-columns:max-content 1fr;display:grid}.detail-list dt{color:var(--color-text-muted);font-weight:600;font-size:var(--text-sm)}.detail-list dd{margin:0}main.login-page{max-width:24rem;padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin:4rem auto}.login-form{gap:var(--space-3);flex-direction:column;display:flex}.login-form label{gap:var(--space-1);flex-direction:column;display:flex}.login-form h1{text-align:center}.signed-in,.unlinked-account-page,.student-landing-placeholder{gap:var(--space-2);flex-direction:column;display:flex}.dashboard-cards{gap:var(--space-5);flex-wrap:wrap;display:flex}.dashboard-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:17rem;box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5);flex:17rem}.dashboard-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.dashboard-card-header h2{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:600;font-family:var(--font-body);margin:0}.dashboard-card-controls{gap:var(--space-1);flex-shrink:0;display:flex}.dashboard-card-controls button{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.dashboard-hidden-cards{margin-top:var(--space-6)}.dashboard-card-stat{font-size:var(--text-2xl);font-family:var(--font-heading);color:var(--color-magenta);margin:0 0 var(--space-2);font-weight:700}.dashboard-card p{font-size:var(--text-sm);margin:0 0 var(--space-1)}.dashboard-card ul{font-size:var(--text-sm);margin:0;padding-left:1.1rem}.dashboard-card a{font-weight:500}.data-table{border-collapse:collapse;width:100%;max-width:56rem}.data-table th,.data-table td{text-align:left;padding:var(--space-3) var(--space-3) var(--space-3) 0;border-bottom:1px solid var(--color-border-subtle)}.data-table th{color:var(--color-text-muted);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.data-table th[role=button]{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table tbody tr:hover{background:var(--color-bg-subtle)}.students-filters,.finance-reports-range,.filters{align-items:flex-end;gap:var(--space-4);margin:var(--space-3) 0 var(--space-5);flex-wrap:wrap;display:flex}.students-filters label,.finance-reports-range label,.filters label{gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);flex-direction:column;display:flex}.students-filters-tags{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.tag-chip-list{gap:var(--space-2);margin:0 0 var(--space-3);flex-wrap:wrap;padding:0;list-style:none;display:flex}.tag-chip{align-items:center;gap:var(--space-2);background:var(--color-mint-bg);border-radius:var(--radius-pill);padding:.2rem var(--space-3);font-size:var(--text-sm);color:#0f6d4c;border:1px solid #0000;display:flex}.tag-chip button{color:inherit;font-weight:400;font-size:var(--text-xs);opacity:.7;background:0 0;border:none;padding:0}.tag-chip button:hover{opacity:1}.calendar-agenda{max-height:calc(100vh - 10rem);overflow-y:auto}.calendar-day{margin-bottom:var(--space-4)}.calendar-day h2{font-size:var(--text-sm);margin:0 0 var(--space-1);color:var(--color-text-muted)}.calendar-day ul{font-size:var(--text-sm);margin:0;padding-left:1.1rem}.calendar-page{max-width:78rem}.calendar-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.calendar-header h1{margin:0}.calendar-header-controls{align-items:center;gap:var(--space-4);display:flex}.calendar-filter{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);display:flex}.calendar-page .fc{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2)}.modal-backdrop{z-index:50;background:#1c1c2266;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-5);gap:var(--space-3);flex-direction:column;min-width:22rem;max-width:28rem;max-height:85vh;display:flex;overflow-y:auto}.modal h2{text-transform:capitalize;margin:0}.modal label{gap:var(--space-1);font-size:var(--text-sm);flex-direction:column;display:flex}.entry-form-datetime{gap:var(--space-3);display:flex}.entry-form-datetime label{flex:1}.entry-form-actions,.form-actions{gap:var(--space-2);margin-top:var(--space-2);display:flex}button.secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}button.danger{background:var(--color-danger);border-color:var(--color-danger)}.occurrence-scope-actions{gap:var(--space-2);flex-direction:column;display:flex}.recurrence-editor{gap:var(--space-2);border-top:1px solid var(--color-border);padding-top:var(--space-2);flex-direction:column;display:flex}.recurrence-weekdays{gap:var(--space-2);display:flex}.weekday-chip{padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:var(--text-xs);font-weight:500}.weekday-chip.active{background:var(--color-magenta);border-color:var(--color-magenta);color:#fff}.recurrence-custom-interval{align-items:center;gap:var(--space-2)!important;flex-direction:row!important}.recurrence-custom-interval input[type=number]{width:4rem}.recurrence-end{gap:var(--space-2);border:none;flex-direction:column;margin:0;padding:0;display:flex}.recurrence-end label{font-size:var(--text-sm);align-items:center;gap:var(--space-2)!important;flex-direction:row!important}.inline-checkbox,.checkbox-row,.session-type-checkbox{font-size:var(--text-sm);margin:0 var(--space-2) var(--space-2) 0;align-items:center;gap:var(--space-2)!important;flex-direction:row!important;display:inline-flex!important}.enrol-wizard{max-width:36rem}.wizard-steps{gap:var(--space-5);margin:0 0 var(--space-6);font-size:var(--text-sm);color:var(--color-text-subtle);padding:0;list-style:none;display:flex}.wizard-steps .active{color:var(--color-magenta);font-weight:600}.wizard-step{gap:var(--space-3);flex-direction:column;display:flex}.wizard-step label{gap:var(--space-1);font-size:var(--text-sm);flex-direction:column;display:flex}.schedule-slot-editor{gap:var(--space-4);flex-direction:column;display:flex}.schedule-slot{gap:var(--space-2);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);flex-direction:column;display:flex}.schedule-slot-header{justify-content:space-between;align-items:center;display:flex}.staff-privacy-settings,.staff-role-templates-settings,.locations-settings,.tags-settings,.membership-tiers-settings,.language-setting,.accounting-categories,.catalog-csv-import,.staff-csv-import{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);margin-bottom:var(--space-5)}.staff-privacy-settings>:first-child,.staff-role-templates-settings>:first-child{margin-top:0}.tier-list,.student-tags{margin:0 0 var(--space-4);gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.tier-list li{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border-subtle);display:flex}.tier-form{gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-4);margin-top:var(--space-4);flex-direction:column;display:flex}.tier-form label{gap:var(--space-1);font-size:var(--text-sm);flex-direction:column;display:flex}.add-session-type{align-items:center;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}
