@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--color-purple-50: #f5f3ff;--color-purple-100: #ede9fe;--color-purple-500: #8b5cf6;--color-purple-600: #7c3aed;--color-purple-700: #6d28d9;--color-blue-50: #eff6ff;--color-blue-100: #dbeafe;--color-blue-500: #3b82f6;--color-blue-600: #2563eb;--color-blue-700: #1d4ed8;--color-green-50: #f0fdf4;--color-green-100: #dcfce7;--color-green-500: #22c55e;--color-green-600: #16a34a;--color-green-700: #15803d;--color-orange-50: #fff7ed;--color-orange-100: #ffedd5;--color-orange-500: #f97316;--color-orange-600: #ea580c;--color-orange-700: #c2410c;--color-teal-50: #f0fdfa;--color-teal-100: #ccfbf1;--color-teal-500: #14b8a6;--color-teal-600: #0d9488;--color-teal-700: #0f766e;--color-red-50: #fef2f2;--color-red-100: #fee2e2;--color-red-500: #ef4444;--color-red-600: #dc2626;--color-red-700: #b91c1c;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-primary: var(--color-purple-600);--color-primary-hover: var(--color-purple-700);--color-success: var(--color-green-600);--color-warning: var(--color-orange-500);--color-danger: var(--color-red-600);--color-info: var(--color-blue-600);--bg-primary: #ffffff;--bg-secondary: var(--color-gray-50);--bg-tertiary: var(--color-gray-100);--text-primary: var(--color-gray-900);--text-secondary: var(--color-gray-600);--text-tertiary: var(--color-gray-400);--border-color: var(--color-gray-200);--border-radius-sm: .375rem;--border-radius-md: .5rem;--border-radius-lg: .75rem;--border-radius-xl: 1rem;--border-radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5;color:var(--text-primary);background-color:var(--bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-shell{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--bg-primary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:1000;transition:transform var(--transition-base)}.sidebar.collapsed{transform:translate(-100%)}.sidebar-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.sidebar-logo{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary)}.sidebar-nav{flex:1;padding:var(--spacing-md);overflow-y:auto}.nav-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-md);color:var(--text-secondary);text-decoration:none;font-weight:500;transition:all var(--transition-fast);margin-bottom:var(--spacing-xs)}.nav-item:hover{background:var(--color-gray-100);color:var(--text-primary)}.nav-item.active{background:var(--color-purple-50);color:var(--color-primary)}.nav-item svg{width:20px;height:20px}.main-content{flex:1;margin-left:260px;min-height:100vh}.header{background:var(--bg-primary);border-bottom:1px solid var(--border-color);padding:var(--spacing-md) var(--spacing-xl);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:var(--spacing-md)}.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:var(--spacing-sm)}.page-title{font-size:var(--font-size-xl);font-weight:600}.header-right{display:flex;align-items:center;gap:var(--spacing-md)}.campus-badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-full);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase}.campus-badge.sunshine{background:var(--color-purple-100);color:var(--color-purple-700)}.campus-badge.tots{background:var(--color-teal-100);color:var(--color-teal-700)}.campus-badge.both{background:var(--color-blue-100);color:var(--color-blue-700)}.page-content{padding:var(--spacing-xl);max-width:1400px;margin:0 auto}.card{background:var(--bg-primary);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.card-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:var(--font-size-lg);font-weight:600}.card-body{padding:var(--spacing-lg)}.stats-card{background:var(--bg-primary);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.stats-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stats-card.purple{border-left:4px solid var(--color-purple-500)}.stats-card.blue{border-left:4px solid var(--color-blue-500)}.stats-card.green{border-left:4px solid var(--color-green-500)}.stats-card.orange{border-left:4px solid var(--color-orange-500)}.stats-card.teal{border-left:4px solid var(--color-teal-500)}.stats-label{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.stats-value{font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary)}.stats-value.purple{color:var(--color-purple-600)}.stats-value.blue{color:var(--color-blue-600)}.stats-value.green{color:var(--color-green-600)}.stats-value.orange{color:var(--color-orange-600)}.class-card{background:var(--bg-primary);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-fast)}.class-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.class-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.class-name{font-size:var(--font-size-lg);font-weight:600}.student-count{background:var(--color-gray-100);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-full);font-size:var(--font-size-xs);font-weight:500;color:var(--text-secondary)}.student-card{background:var(--bg-primary);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);display:flex;gap:var(--spacing-md);cursor:pointer;transition:all var(--transition-fast)}.student-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.avatar{width:48px;height:48px;border-radius:var(--border-radius-full);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--font-size-lg);color:#fff;flex-shrink:0}.avatar.purple{background:var(--color-purple-500)}.avatar.blue{background:var(--color-blue-500)}.avatar.green{background:var(--color-green-500)}.avatar.orange{background:var(--color-orange-500)}.avatar.teal{background:var(--color-teal-500)}.student-info{flex:1;min-width:0}.student-name{font-weight:600;display:flex;align-items:center;gap:var(--spacing-sm)}.student-meta{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:var(--spacing-xs)}.student-actions{display:flex;gap:var(--spacing-sm)}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.form-input,.form-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);border:1px solid var(--border-color);border-radius:var(--border-radius-md);background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-purple-100)}.form-input::placeholder{color:var(--text-tertiary)}.form-hint{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:var(--spacing-xs)}.form-error{font-size:var(--font-size-xs);color:var(--color-danger);margin-top:var(--spacing-xs)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);font-weight:500;border-radius:var(--border-radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--color-gray-50)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background:var(--color-green-700)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-red-700)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-gray-100);color:var(--text-primary)}.btn-icon{padding:var(--spacing-sm)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-base)}.progress-bar{height:8px;background:var(--color-gray-200);border-radius:var(--border-radius-full);overflow:hidden}.progress-fill{height:100%;background:var(--color-green-500);border-radius:var(--border-radius-full);transition:width var(--transition-slow)}.progress-fill.warning{background:var(--color-orange-500)}.progress-fill.danger{background:var(--color-red-500)}.status-badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-full);font-size:var(--font-size-xs);font-weight:500}.status-badge.active{background:var(--color-green-100);color:var(--color-green-700)}.status-badge.inactive{background:var(--color-gray-100);color:var(--color-gray-600)}.search-bar{position:relative;width:100%;max-width:400px}.search-bar input{width:100%;padding:var(--spacing-sm) var(--spacing-md);padding-left:40px;font-size:var(--font-size-sm);border:1px solid var(--border-color);border-radius:var(--border-radius-md);background:var(--bg-primary)}.search-bar input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-purple-100)}.search-bar svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--text-tertiary)}.filter-tabs{display:flex;gap:var(--spacing-sm);padding:var(--spacing-xs);background:var(--color-gray-100);border-radius:var(--border-radius-md)}.filter-tab{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast)}.filter-tab:hover{color:var(--text-primary)}.filter-tab.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn var(--transition-fast)}.modal{background:#fff;background:var(--bg-primary);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;position:relative;animation:slideUp .3s ease-out}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--bg-primary);z-index:10}.modal-title{font-size:var(--font-size-lg);font-weight:600}.modal-body{padding:var(--spacing-lg);overflow-y:auto;flex-grow:1}.modal-footer{padding:var(--spacing-lg);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:var(--spacing-sm);flex-shrink:0;background:var(--bg-primary);z-index:10}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg)}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}.students-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md)}.quick-action{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-lg);background:var(--bg-primary);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;color:var(--text-primary)}.quick-action:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.quick-action svg{width:32px;height:32px;color:var(--color-primary);margin-bottom:var(--spacing-sm)}.quick-action span{font-size:var(--font-size-sm);font-weight:500}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner{width:24px;height:24px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.text-center{text-align:center}.text-right{text-align:right}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-secondary{color:var(--text-secondary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.stats-grid-3{grid-template-columns:repeat(3,1fr)}.stats-grid-2{grid-template-columns:repeat(2,1fr)}.student-profile-header{display:flex;gap:var(--spacing-lg);align-items:flex-start}.student-profile-info{flex:1}.student-profile-actions{display:flex;gap:var(--spacing-sm)}.payment-card{padding:var(--spacing-md);margin-bottom:var(--spacing-sm)}.payment-card-content{display:flex;justify-content:space-between;align-items:flex-start}.payment-actions{display:flex;gap:var(--spacing-sm)}@media(max-width:1024px){.stats-grid,.quick-actions{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.sidebar{transform:translate(-100%);width:280px;box-shadow:var(--shadow-xl);max-height:calc(100vh - 70px);max-height:calc(100dvh - 70px);bottom:70px;overflow-y:auto;padding-bottom:16px}.sidebar.open{transform:translate(0)}.sidebar-nav{overflow-y:auto;max-height:calc(100vh - 200px);padding-bottom:var(--spacing-xl)}.main-content{margin-left:0}.menu-toggle{display:flex!important}.header{padding:var(--spacing-xs) var(--spacing-sm)}.page-content{padding:var(--spacing-md)}.page-title{font-size:var(--font-size-lg)}.stats-grid,.stats-grid-3{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.stats-value{font-size:var(--font-size-xl)}.quick-actions{grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.quick-action{padding:var(--spacing-md)}.quick-action svg{width:24px;height:24px}.form-grid-2{grid-template-columns:1fr!important}table{display:block;overflow-x:auto;white-space:nowrap}.modal{max-width:calc(100% - var(--spacing-lg));margin:var(--spacing-md)}}@media(max-width:480px){.stats-grid,.stats-grid-3,.stats-grid-2{grid-template-columns:1fr;gap:var(--spacing-sm)}.student-profile-header{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.student-profile-header .avatar{align-self:center}.student-profile-actions{flex-direction:column;gap:var(--spacing-sm)}.student-profile-actions .btn{width:100%;justify-content:center}.payment-card-content{flex-direction:column;gap:var(--spacing-md)}.payment-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.payment-actions .btn{justify-content:center}.stats-card{padding:var(--spacing-md)}.stats-value{font-size:var(--font-size-lg)}.quick-actions{grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.quick-action{padding:var(--spacing-sm)}.quick-action span{font-size:var(--font-size-xs)}.classes-grid{grid-template-columns:1fr;gap:var(--spacing-sm)}.class-card{padding:var(--spacing-md)}.student-card{flex-direction:column;align-items:flex-start;padding:var(--spacing-md)}.student-card .avatar{margin-bottom:var(--spacing-sm)}.student-actions{width:100%;margin-top:var(--spacing-md);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.student-actions .btn{flex:1;justify-content:center}.card-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.card-header>div:last-child{width:100%;display:flex;gap:var(--spacing-sm)}.btn{min-height:44px;padding:var(--spacing-sm) var(--spacing-md)}.btn-sm{min-height:36px;padding:var(--spacing-xs) var(--spacing-sm)}.search-bar{max-width:100%}.filter-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.filter-tab{flex-shrink:0;min-height:36px}.header-right{gap:var(--spacing-sm)}.campus-badge{font-size:10px;padding:2px 6px}.page-title{font-size:var(--font-size-base)}.card-body{padding:var(--spacing-md)}.card-body table{font-size:var(--font-size-sm)}.modal-overlay{align-items:flex-end}.modal{max-width:100%;max-height:85vh;margin:0;border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0}.login-container{padding:var(--spacing-md)}[style*="grid-template-columns: repeat(4"]{grid-template-columns:repeat(2,1fr)!important}[style*="grid-template-columns: 1fr 1fr"]{grid-template-columns:1fr!important}}@media(max-width:360px){.page-content,.stats-card{padding:var(--spacing-sm)}.quick-actions,.student-actions{grid-template-columns:1fr}}@media(hover:none)and (pointer:coarse){.btn{min-height:48px}.nav-item{padding:var(--spacing-md);min-height:48px}.filter-tab{min-height:40px;padding:var(--spacing-sm) var(--spacing-lg)}.stats-card:hover,.class-card:hover,.student-card:hover{transform:none;box-shadow:var(--shadow-sm)}.student-card:active,.class-card:active{border-color:var(--color-primary);background:var(--color-gray-50)}}@supports (padding: max(0px)){.header{padding-left:max(var(--spacing-md),env(safe-area-inset-left));padding-right:max(var(--spacing-md),env(safe-area-inset-right))}.page-content{padding-left:max(var(--spacing-md),env(safe-area-inset-left));padding-right:max(var(--spacing-md),env(safe-area-inset-right));padding-bottom:max(var(--spacing-md),env(safe-area-inset-bottom))}.sidebar{padding-bottom:env(safe-area-inset-bottom)}}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg-primary);border-top:1px solid var(--border-color);z-index:1000;box-shadow:0 -2px 10px #0000001a}.bottom-nav-items{display:flex;justify-content:space-around;align-items:center;padding:var(--spacing-sm);padding-bottom:max(var(--spacing-sm),env(safe-area-inset-bottom))}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--spacing-xs) var(--spacing-sm);color:var(--text-secondary);text-decoration:none;font-size:var(--font-size-xs);font-weight:500;border-radius:var(--border-radius-md);transition:all var(--transition-fast);min-width:60px}.bottom-nav-item svg{width:24px;height:24px}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-item:active{background:var(--color-gray-100)}@media(max-width:768px){.mobile-bottom-nav{display:block}.page-content{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}}
