@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Sora:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Sora:wght@400;500;600;700&display=swap";.dashboard-container{color:var(--text);padding-left:20px;font-family:Sora,sans-serif;animation:.4s ease-out fadeIn}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:32px;display:grid}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:20px;flex-direction:column;gap:12px;padding:24px;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 15px #00000005}.kpi-card:hover{border-color:color-mix(in srgb, var(--primary) 40%, transparent);transform:translateY(-6px);box-shadow:0 14px 25px #0000000f}.kpi-card svg{background:color-mix(in srgb, var(--primary) 12%, transparent);color:var(--primary);box-sizing:content-box;border-radius:14px;width:24px;height:24px;padding:10px}.kpi-card h4{color:var(--subtext);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:13px;font-weight:600}.kpi-card p{color:var(--text);margin:0;font-family:DM Mono,monospace;font-size:28px;font-weight:700}.kpi-card.revenue svg{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.kpi-card.revenue p{color:var(--success)}.kpi-card.highlight{background:linear-gradient(135deg, var(--primary) 0%, #6366f1 100%);color:#fff;box-shadow:0 8px 20px color-mix(in srgb, var(--primary) 30%, transparent);border:none}.kpi-card.highlight svg{color:#fff;background:#fff3}.kpi-card.highlight h4{color:#ffffffd9}.kpi-card.highlight p{color:#fff;font-size:24px}.kpi-card.highlight small{background:#fff3;border-radius:99px;margin-top:auto;padding:4px 10px;font-family:DM Mono,monospace;font-size:13px;font-weight:600;display:inline-block}.section.grid-2{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px;display:grid}.chart-card{background:var(--card);border:1px solid var(--border);border-radius:20px;flex-direction:column;padding:24px;transition:box-shadow .3s;display:flex}.chart-card:hover{box-shadow:0 10px 30px #0000000a}.chart-card h3{color:var(--text);align-items:center;gap:8px;margin:0 0 24px;font-size:16px;font-weight:600;display:flex}.chart-card.full{grid-column:1/-1}.batch-table{border-collapse:separate;border-spacing:0;text-align:left;width:100%}.batch-table th{background:color-mix(in srgb, var(--primary) 8%, var(--card));color:var(--primary);text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid color-mix(in srgb, var(--primary) 20%, transparent);padding:14px 16px;font-family:DM Mono,monospace;font-size:11px;font-weight:700}.batch-table th:first-child{border-top-left-radius:12px}.batch-table th:last-child{border-top-right-radius:12px}.batch-table td{color:var(--text);border-bottom:1px solid var(--border);vertical-align:middle;padding:16px;font-family:Sora,sans-serif;font-size:14px}.batch-table td:nth-child(2),.batch-table td:nth-child(3){font-family:DM Mono,monospace;font-weight:500}.batch-table tr:hover td{background:color-mix(in srgb, var(--card) 40%, var(--bg))}.insight-card{background:linear-gradient(145deg, var(--card), color-mix(in srgb, var(--primary) 4%, var(--card)));border:1px solid color-mix(in srgb, var(--primary) 15%, var(--border));border-radius:20px;margin-top:32px;padding:30px}.insight-card h3{color:var(--text);align-items:center;gap:8px;margin:0 0 20px;font-size:18px;font-weight:600;display:flex}.insight-card h3:before{content:"✨"}.insight-list{flex-direction:column;gap:14px;display:flex}.insight-item{background:var(--bg);border-left:4px solid var(--primary);color:var(--text);border-radius:0 12px 12px 0;padding:16px 20px;font-size:14px;line-height:1.6;transition:transform .2s,background .2s;box-shadow:0 2px 8px #00000005}.insight-item:hover{background:color-mix(in srgb, var(--primary) 4%, var(--bg));transform:translate(6px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (width<=1024px){.section.grid-2{grid-template-columns:1fr}}@media (width<=768px){.kpi-grid{grid-template-columns:1fr 1fr}.batch-table-wrapper{border-radius:12px;overflow-x:auto}.batch-table{white-space:nowrap}}@media (width<=480px){.kpi-grid{grid-template-columns:1fr}}:root{--bg:#fff;--card:#f9fafb;--border:#e5e7eb;--text:#111827;--subtext:#6b7280;--primary:#2563eb;--primary-hover:#1d4ed8;--danger:#dc2626;--success:#10b981}.students-container{color:var(--text);background-color:var(--bg);min-height:100vh;padding:24px 28px;font-family:Sora,sans-serif}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h2{margin:0 0 4px;font-size:24px;font-weight:600}button:hover{opacity:.9}input,select{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;outline:none;padding:10px 14px;font-family:Sora,sans-serif;font-size:14px;transition:border-color .2s}input:focus,select:focus{border-color:var(--subtext)}.card-grid{border:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:14px;width:100%;max-height:72vh;overflow:hidden auto;flex-direction:column!important;display:flex!important}.card-grid::-webkit-scrollbar{width:5px}.card-grid::-webkit-scrollbar-track{background:0 0}.card-grid::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}.student-card{box-sizing:border-box;background:var(--card);border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:16px;padding:14px 20px;transition:background .15s;grid-template-columns:2.5fr 1fr 2fr 1fr!important;width:100%!important;display:grid!important}.student-card:last-child{border-bottom:none}.student-card:hover{background:color-mix(in srgb, var(--card) 80%, var(--border) 20%)}.student-card.left-card{background:color-mix(in srgb, var(--danger) 5%, var(--bg));border-bottom-color:color-mix(in srgb, var(--danger) 15%, var(--border))}.student-card.left-card:hover{background:color-mix(in srgb, var(--danger) 10%, var(--bg))}.student-card:active{background:color-mix(in srgb, var(--card) 60%, var(--border) 40%)}.card-top{justify-content:flex-start;align-items:center;gap:12px;display:flex;overflow:hidden}.card-top h3{white-space:nowrap;text-overflow:ellipsis;margin:0 0 4px;font-size:15px;font-weight:600;line-height:1.2;overflow:hidden}.subtext{color:var(--subtext);white-space:nowrap;font-family:DM Mono,monospace;font-size:12px}.fee{color:var(--text);white-space:nowrap;font-family:DM Mono,monospace;font-size:13px;font-weight:500}.student-card.left-card .fee,.student-card.left-card .card-top h3{color:#b91c1c}.batch-list{flex-wrap:nowrap;gap:6px;display:flex;overflow:hidden}.batch-item{align-items:center;gap:8px;display:flex}.batch-item strong{background:color-mix(in srgb, var(--border) 60%, transparent);white-space:nowrap;border-radius:99px;padding:4px 10px;font-family:DM Mono,monospace;font-size:12px;font-weight:500}.batch-actions{display:none}.meta{color:var(--subtext);white-space:nowrap;justify-content:flex-end;align-items:center;gap:6px;font-family:DM Mono,monospace;font-size:13px;display:flex}.icon{fill:currentColor;flex-shrink:0;width:14px;height:14px}.student-card.left-card .meta{color:#7f1d1d}.status{letter-spacing:.08em;text-transform:uppercase;border-radius:99px;flex-shrink:0;padding:4px 10px;font-family:DM Mono,monospace;font-size:10px;font-weight:600}.status.active{color:var(--success);background:#10b9811f;border:1px solid #10b98140}.status.left{color:var(--danger);background:#dc26261f;border:1px solid #dc262640}.full-modal{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg);border-radius:16px;width:100%;max-width:500px;max-height:90vh;padding:24px;overflow-y:auto;box-shadow:0 10px 25px #0000001a}.modal-header h2{margin:0}.modal-header button{color:var(--text);background:0 0;padding:4px}.form-group label{color:var(--subtext);text-transform:uppercase;font-size:12px;font-weight:600}.form-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.form-actions button[type=button]{background:var(--card);color:var(--text);border:1px solid var(--border)}.batch-section{border-top:1px solid var(--border);margin-top:24px;padding-top:20px}.batch-section h3{margin-bottom:16px;font-size:16px}.batch-section .batch-item{background:var(--card);border:1px solid var(--border);border-radius:8px;justify-content:space-between;margin-bottom:8px;padding:12px}.batch-section .batch-actions{align-items:center;gap:10px;display:flex}.add-batch{grid-template-columns:2fr 1fr auto;gap:10px;margin-top:16px;display:grid}.selected-batches{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.batch-chip{background:var(--text);color:#fff;border-radius:99px;align-items:center;gap:8px;padding:6px 12px;font-family:DM Mono,monospace;font-size:12px;display:flex}.batch-chip button{color:#fff;background:0 0;padding:0}@keyframes skeletonLoading{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;color:var(--subtext);padding:56px 20px}.empty-state h3{color:var(--text);margin:0 0 8px}.empty-state p{margin:0;font-size:14px}@media (width<=768px){.student-card{grid-template-rows:auto auto;grid-template-columns:1fr auto;row-gap:12px}.card-top{grid-column:1/-1}.fee{grid-column:1}.meta{grid-column:2;justify-content:flex-end}.batch-list{display:none}.add-batch{grid-template-columns:1fr}}.table-header{background:var(--card);border-bottom:2px solid var(--border);z-index:10;letter-spacing:.05em;text-transform:uppercase;width:100%;color:var(--subtext);align-items:center;padding:12px 20px;font-family:DM Mono,monospace;font-size:11px;font-weight:600;position:sticky;top:0;grid-template-columns:2.5fr 1fr 2fr 1fr!important;display:grid!important}@media (width<=768px){.table-header{display:none}}.toast{background:var(--card);color:var(--text);border:1px solid var(--border);z-index:999999;border-radius:10px;padding:12px 18px;font-size:14px;font-weight:500;animation:.25s slideIn;position:fixed;top:20px;right:20px;box-shadow:0 8px 20px #00000014}.toast.success{border-left:4px solid #16a34a}.toast.error{border-left:4px solid #dc2626}@keyframes slideIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.edit-page-container{color:var(--text);max-width:1000px;margin:0 auto;padding:0;font-family:Sora,sans-serif}.edit-page-header{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}.edit-page-header h2{margin:0 0 6px;font-size:24px;font-weight:600}.edit-page-header p{color:var(--subtext);margin:0;font-size:14px}.btn-fee{color:#fff;border:1px solid var(--border);background:#9a2102}.btn-fee:hover{background:var(--card);color:var(--text)}.edit-card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;padding:32px}.form-section h3{margin:0;font-size:18px;font-weight:600}.form-actions{justify-content:flex-end;margin-top:8px;display:flex}.btn-save{background:var(--primary);color:#fff;padding:10px 24px}.batch-list-wrapper{flex-direction:column;gap:10px;display:flex}.edit-batch-row{background:var(--bg);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;padding:16px;display:flex}.batch-info strong{margin-bottom:4px;font-size:15px;display:block}.batch-fee{color:var(--subtext);font-family:DM Mono,monospace;font-size:13px}.default-fee{opacity:.6;margin-left:6px}.batch-actions{align-items:center;gap:12px;display:flex}.btn-unenroll{background:var(--card);color:var(--text);border:1px solid var(--border)}.btn-remove{color:var(--danger);background:#dc26261a;border:1px solid #dc262633}.btn-remove:hover{background:var(--danger);color:#fff}.add-batch-controls{background:color-mix(in srgb, var(--bg) 50%, var(--card));border:1px dashed var(--border);border-radius:10px;grid-template-columns:2fr 1fr auto;gap:12px;margin-top:16px;padding:16px;display:grid}.add-batch-controls select,.add-batch-controls input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:10px 14px;font-family:Sora,sans-serif}.btn-add{background:var(--text);color:var(--bg)}.empty-batch-state{text-align:center;color:var(--subtext);background:var(--bg);border:1px dashed var(--border);border-radius:10px;padding:30px}@media (width<=768px){.input-grid{grid-template-columns:1fr}.edit-batch-row{flex-direction:column;align-items:flex-start;gap:16px}.batch-actions{justify-content:space-between;width:100%}.add-batch-controls{grid-template-columns:1fr}}.sidebar{background:var(--card);border-right:1px solid var(--border);z-index:100;white-space:nowrap;flex-direction:column;justify-content:space-between;width:72px;height:100vh;padding:24px 14px;font-family:Sora,sans-serif;transition:width .3s cubic-bezier(.4,0,.2,1),box-shadow .3s;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar:hover{width:240px;box-shadow:var(--shadow-md)}.sidebar-top{flex-direction:column;gap:32px;display:flex}.logo{align-items:center;gap:px;cursor:default;display:flex}.logo h2{color:var(--primary);text-align:center;min-width:24px;margin:0;font-size:20px;font-weight:700}.logo-text{color:var(--text);opacity:0;font-size:16px;font-weight:600;transition:opacity .2s}.nav{flex-direction:column;gap:8px;display:flex}.nav-item{color:var(--subtext);cursor:pointer;border-radius:10px;align-items:center;gap:16px;padding:12px;text-decoration:none;transition:all .2s;display:flex}.nav-item .icon{flex-shrink:0;transition:color .2s}.nav-text{opacity:0;font-size:14px;font-weight:500;transition:opacity .2s}.sidebar:hover .logo-text,.sidebar:hover .nav-text{opacity:1;transition-delay:.1s}.nav-item:hover{background:var(--primary-soft);color:var(--primary)}.nav-item:hover .icon{color:var(--primary)}.nav-item.active{background:var(--primary);color:#fff;box-shadow:0 4px 10px #2563eb33}.nav-item.active .icon{color:#fff}.sidebar-footer{margin-top:auto}.navbar{background:var(--card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.nav-left h3{margin:0;font-size:18px}.nav-right{align-items:center;gap:14px;display:flex}.avatar{background:var(--primary-soft);width:34px;height:34px;color:var(--primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.avatar:hover{transform:scale(1.05)}.user-menu{position:relative}.dropdown{background:var(--card);border:1px solid var(--border);width:180px;box-shadow:var(--shadow-md);border-radius:12px;animation:.2s fadeIn;position:absolute;top:45px;right:0;overflow:hidden}.dropdown-item{cursor:pointer;align-items:center;gap:10px;padding:10px 14px;transition:background .2s;display:flex}.dropdown-item:hover{background:var(--primary-soft)}.dropdown-item.logout{color:#ef4444}.layout{background:var(--bg);min-height:100vh;display:flex;position:relative}.main{flex-direction:column;flex:1;min-width:0;transition:width .3s cubic-bezier(.4,0,.2,1);display:flex}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);min-height:64px;padding-left:64px;position:sticky;top:0}.content{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;padding:24px 24px 24px 64px;overflow-y:auto}.content::-webkit-scrollbar{width:6px}.content::-webkit-scrollbar-track{background:0 0}.content::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}@media (width<=768px){.content{padding:16px}}.teachers-container{color:var(--text);max-width:1200px;margin:0 auto;padding-left:28px;font-family:Sora,sans-serif;animation:.4s ease-out fadeIn}.page-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:32px;display:flex}.page-header h2{background:linear-gradient(90deg, var(--primary), #8b5cf6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0 0 6px;font-size:26px;font-weight:700}.page-header p{color:var(--subtext);margin:0;font-size:14px}.page-header button{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 20px;font-family:Sora,sans-serif;font-weight:600;transition:all .2s}.page-header button:hover{box-shadow:0 6px 15px var(--primary-soft);transform:translateY(-2px)}.page-header button:first-of-type{background:var(--card);color:var(--text);border:1px solid var(--border);box-shadow:none}.page-header button:first-of-type:hover{border-color:var(--primary);color:var(--primary)}.search-bar{margin-bottom:24px}.search-bar input{border:1px solid var(--border);background:var(--card);width:100%;max-width:400px;color:var(--text);border-radius:10px;padding:12px 16px;font-family:Sora,sans-serif;font-size:14px}.search-bar input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft);outline:none}.stats-strip{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:32px;display:grid}.stat{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;gap:8px;padding:20px 24px;transition:transform .2s;display:flex}.stat:hover{border-color:color-mix(in srgb, var(--primary) 30%, transparent);transform:translateY(-4px)}.stat p{color:var(--subtext);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:13px;font-weight:600}.stat h3{color:var(--primary);margin:0;font-family:DM Mono,monospace;font-size:28px;font-weight:700}.card-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.teacher-card{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:20px;flex-direction:column;padding:24px;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;box-shadow:0 4px 15px #00000005}.teacher-card:hover{border-color:color-mix(in srgb, var(--primary) 40%, transparent);transform:translateY(-6px);box-shadow:0 14px 25px #0000000f}.card-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.card-header h3{color:var(--text);margin:0 0 4px;font-size:18px;font-weight:600}.card-header .subject{color:var(--subtext);background:color-mix(in srgb, var(--border) 40%, transparent);border-radius:8px;padding:4px 10px;font-size:13px;display:inline-block}.badge{letter-spacing:.05em;background:color-mix(in srgb, var(--primary) 12%, transparent);color:var(--primary);border-radius:99px;padding:6px 12px;font-family:DM Mono,monospace;font-size:12px;font-weight:700}.badge.high{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.main-metric{color:var(--success);flex-direction:column;margin-bottom:24px;font-family:DM Mono,monospace;font-size:32px;font-weight:700;line-height:1.1;display:flex}.main-metric small{color:var(--subtext);text-transform:uppercase;letter-spacing:.02em;margin-top:6px;font-family:Sora,sans-serif;font-size:13px;font-weight:600}.extra-metrics{background:color-mix(in srgb, var(--bg) 60%, var(--card));border:1px solid color-mix(in srgb, var(--border) 50%, transparent);border-radius:12px;justify-content:space-between;padding:16px;display:flex}.extra-metrics div{flex-direction:column;gap:4px;display:flex}.extra-metrics div:last-child{align-items:flex-end}.extra-metrics p{color:var(--subtext);margin:0;font-size:12px;font-weight:500}.extra-metrics strong{color:var(--text);font-family:DM Mono,monospace;font-size:15px}.full-modal{-webkit-backdrop-filter:blur(6px);z-index:1000;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--card);border-radius:20px;width:100%;max-width:440px;padding:32px;animation:.3s cubic-bezier(.16,1,.3,1) forwards bounceFadeIn;box-shadow:0 20px 40px #00000026}.modal-content h2{margin:0 0 24px;font-size:22px;font-weight:600}.grid-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:var(--subtext);font-size:13px;font-weight:600}.grid-form select{border:1px solid var(--border);background:var(--bg);color:var(--text);box-sizing:border-box;border-radius:10px;width:100%;padding:12px 14px;font-family:Sora,sans-serif;font-size:14px}.grid-form select:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft);outline:none}.form-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;margin-top:16px;padding-top:24px;display:flex}.form-actions button{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-family:Sora,sans-serif;font-weight:600}.form-actions button[type=submit]{background:var(--primary);color:#fff}.form-actions button[type=button]{color:var(--text);border:1px solid var(--border);background:0 0}.empty{text-align:center;background:var(--card);border:1px dashed var(--border);border-radius:20px;margin-top:20px;padding:60px 20px}.empty h3{color:var(--text);margin:0 0 8px;font-size:18px}.empty p{color:var(--subtext);margin:0;font-size:14px}@keyframes bounceFadeIn{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.batches-container{padding-left:20px}.batch-card{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:16px;padding:16px;transition:all .25s}.batch-card:hover{transform:translateY(-4px)}.card-header{justify-content:space-between;display:flex}.badge{background:#eef2ff;border-radius:8px;padding:4px 8px}.meta{color:var(--subtext);margin-top:10px;font-size:13px}.search-bar{margin-top:10px;margin-bottom:20px}.landing-container{background:var(--bg);color:var(--text);min-height:100vh;font-family:Sora,sans-serif;animation:.5s ease-out fadeIn;overflow-x:hidden}.text-gradient{background:linear-gradient(135deg, var(--primary), #8b5cf6);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.mono-number{letter-spacing:-.02em;font-family:DM Mono,monospace;font-weight:700}.landing-nav{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:24px 5%;display:flex}.landing-logo{color:var(--text);align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.logo-icon{color:var(--primary)}.btn-nav-login{background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--primary);cursor:pointer;border:none;border-radius:99px;padding:8px 24px;font-family:Sora,sans-serif;font-weight:600;transition:all .2s}.btn-nav-login:hover{background:var(--primary);color:#fff}.hero{text-align:center;max-width:1000px;margin:0 auto;padding:80px 5% 100px;position:relative}.hero-glow{background:radial-gradient(circle, color-mix(in srgb, var(--primary) 15%, transparent) 0%, transparent 70%);z-index:0;pointer-events:none;width:600px;height:600px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero-content{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.hero-badge{background:var(--card);border:1px solid var(--border);color:var(--subtext);box-shadow:var(--shadow-sm);border-radius:99px;margin-bottom:24px;padding:8px 16px;font-size:13px;font-weight:600}.hero h1{letter-spacing:-.02em;margin:0 0 24px;font-size:56px;font-weight:800;line-height:1.15}.hero-subtitle{color:var(--subtext);max-width:650px;margin:0 0 40px;font-size:18px;line-height:1.6}.hero-actions{gap:16px;margin-bottom:60px;display:flex}.btn-primary-large,.btn-secondary-large{cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:14px 32px;font-family:Sora,sans-serif;font-size:16px;font-weight:600;transition:all .2s;display:flex}.btn-primary-large{background:var(--primary);color:#fff;box-shadow:0 8px 20px var(--primary-soft);border:none}.btn-primary-large:hover{box-shadow:0 12px 25px var(--primary-soft);transform:translateY(-2px)}.btn-secondary-large{background:var(--card);color:var(--text);border:1px solid var(--border)}.btn-secondary-large:hover{background:var(--bg);border-color:var(--primary)}.hero-stats{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.hero-stat-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);text-align:left;box-shadow:var(--shadow-sm);background:#ffffffb3;border-radius:20px;padding:20px 32px}.dark .hero-stat-card{background:#1e293bb3}.hero-stat-card h3{color:var(--text);margin:0 0 4px;font-size:28px}.hero-stat-card p{color:var(--subtext);text-transform:uppercase;margin:0;font-size:13px;font-weight:600}.hero-stat-card.highlight h3{color:var(--success)}.section-header{text-align:center;margin-bottom:60px}.section-header h2{margin:0 0 16px;font-size:36px;font-weight:700}.section-header p{color:var(--subtext);max-width:600px;margin:0 auto;font-size:16px}.features-section{max-width:1200px;margin:0 auto;padding:80px 5%}.features-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px;display:grid}.feature-card{background:var(--card);border:1px solid var(--border);border-radius:24px;padding:40px 32px;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.feature-card:hover{box-shadow:var(--shadow-md);border-color:color-mix(in srgb, var(--primary) 30%, transparent);transform:translateY(-8px)}.icon-wrapper{border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:24px;display:flex}.icon-wrapper.blue{background:color-mix(in srgb, var(--primary) 15%, transparent);color:var(--primary)}.icon-wrapper.green{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.icon-wrapper.purple{color:#8b5cf6;background:#8b5cf626}.feature-card h3{color:var(--text);margin:0 0 12px;font-size:20px;font-weight:600}.feature-card p{color:var(--subtext);margin:0;font-size:15px;line-height:1.6}.how-it-works{background:color-mix(in srgb, var(--card) 50%, var(--bg));padding:80px 5%}.steps-container{justify-content:center;align-items:center;gap:24px;max-width:1000px;margin:0 auto;display:flex}.step-card{background:var(--bg);border:1px solid var(--border);text-align:center;box-shadow:var(--shadow-sm);z-index:2;border-radius:20px;flex:1;padding:32px;position:relative}.step-number{color:color-mix(in srgb, var(--border) 80%, transparent);margin-bottom:16px;font-family:DM Mono,monospace;font-size:32px;font-weight:700}.step-card h4{color:var(--text);margin:0 0 8px;font-size:18px}.step-card p{color:var(--subtext);margin:0;font-size:14px}.step-connector{background:var(--border);flex-shrink:0;width:40px;height:2px}.cta-section{max-width:1000px;margin:0 auto;padding:100px 5%}.cta-card{background:linear-gradient(135deg, var(--primary) 0%, #6366f1 100%);text-align:center;color:#fff;box-shadow:0 20px 40px color-mix(in srgb, var(--primary) 30%, transparent);border-radius:32px;padding:64px 5%}.cta-icon{color:#ffffffe6;margin-bottom:24px}.cta-card h2{margin:0 0 16px;font-size:36px;font-weight:700}.cta-card p{color:#fffc;max-width:500px;margin:0 auto 40px;font-size:16px;line-height:1.6}.btn-cta{color:var(--primary);cursor:pointer;background:#fff;border:none;border-radius:12px;align-items:center;gap:10px;padding:16px 32px;font-family:Sora,sans-serif;font-size:16px;font-weight:700;transition:transform .2s;display:inline-flex}.btn-cta:hover{transform:scale(1.05)}.landing-footer{text-align:center;border-top:1px solid var(--border);color:var(--subtext);padding:40px;font-size:14px}@media (width<=900px){.steps-container{flex-direction:column}.step-connector{width:2px;height:40px}.hero h1{font-size:42px}}@media (width<=600px){.hero-actions{flex-direction:column;width:100%}.btn-primary-large,.btn-secondary-large{justify-content:center}.hero h1{font-size:36px}}.registration-container{color:var(--text);max-width:1000px;margin:0 auto;padding:0;font-family:Sora,sans-serif}.registration-header{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}.registration-header h2{margin:0 0 6px;font-size:24px;font-weight:600}.registration-header p{color:var(--subtext);margin:0;font-size:14px}.btn-back{color:var(--subtext);border:1px solid var(--border);background:0 0}.btn-submit{background:var(--primary);color:#fff;padding:10px 24px}.btn-cancel{color:var(--text);border:1px solid var(--border);background:0 0;padding:10px 24px}.registration-card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;padding:32px}.batch-selector select{border:1px solid var(--border);background:var(--bg);width:100%;max-width:400px;color:var(--text);cursor:pointer;border-radius:10px;padding:12px 14px;font-family:Sora,sans-serif;font-size:14px}.batch-selector select:disabled{opacity:.6;cursor:not-allowed}.selected-batches-area{background:color-mix(in srgb, var(--border) 20%, transparent);border:1px dashed var(--border);border-radius:10px;margin-top:8px;padding:16px}.selected-batches-area h4{color:var(--subtext);margin:0 0 12px;font-size:13px;font-weight:600}.chip-container{flex-wrap:wrap;gap:10px;display:flex}.reg-batch-chip{background:var(--text);color:var(--bg);border-radius:99px;align-items:center;gap:12px;padding:8px 16px;font-family:DM Mono,monospace;font-size:13px;font-weight:500;display:flex}.reg-batch-chip button{color:var(--bg);opacity:.7;background:0 0;padding:0;font-size:14px}.reg-batch-chip button:hover{opacity:1;transform:scale(1.1)}@media (width<=768px){.input-grid{grid-template-columns:1fr}.registration-header{flex-direction:column;align-items:flex-start;gap:16px}.btn-back{align-self:flex-start}}.fees-loading{height:50vh;color:var(--subtext);justify-content:center;align-items:center;font-family:Sora,sans-serif;font-size:16px;display:flex}.fees-container{color:var(--text);max-width:1100px;margin:0 auto;padding-left:28px;font-family:Sora,sans-serif;animation:.4s ease-out fadeIn}.fees-header{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}.fees-header h2{color:var(--text);margin:0 0 6px;font-size:26px;font-weight:700}.fees-header p{color:var(--subtext);margin:0;font-size:14px}.btn-back{color:var(--subtext);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:8px 16px;font-family:Sora,sans-serif;font-weight:500;transition:all .2s}.btn-back:hover{background:var(--card);color:var(--text)}.fees-student-card{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--card)), var(--card));border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:16px;margin-bottom:32px;padding:24px}.fees-student-card h3{color:var(--text);margin:0 0 8px;font-size:20px;font-weight:600}.student-meta{color:var(--subtext);gap:16px;font-family:DM Mono,monospace;font-size:14px;display:flex}.fees-summary-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:40px;display:grid}.summary-card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;gap:8px;padding:24px;transition:transform .2s,box-shadow .2s;display:flex}.summary-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.summary-card h4{color:var(--subtext);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:13px;font-weight:600}.summary-card p{color:var(--text);margin:0;font-family:DM Mono,monospace;font-size:32px;font-weight:700}.summary-card p.paid{color:var(--success)}.summary-card p.remaining{color:var(--danger)}.fees-batch-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;display:grid}.fees-batch-card{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;padding:24px;display:flex}.batch-top{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;display:flex}.batch-top h3{margin:0 0 4px;font-size:18px;font-weight:600}.batch-top span{color:var(--subtext);font-size:13px}.status{letter-spacing:.05em;border-radius:99px;padding:4px 10px;font-family:DM Mono,monospace;font-size:11px;font-weight:700}.status.paid{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.status.due{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger)}.batch-info{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.batch-info p{color:var(--subtext);justify-content:space-between;margin:0;font-size:14px;display:flex}.batch-info p strong,.batch-info p:after{color:var(--text);font-family:DM Mono,monospace;font-weight:500}.remaining-text{border-top:1px solid var(--border);padding-top:8px;font-weight:600;color:var(--danger)!important;margin-top:8px!important}.btn-collect{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;margin-bottom:24px;padding:12px;font-family:Sora,sans-serif;font-weight:600;transition:all .2s}.btn-collect:hover{background:var(--primary-hover);transform:translateY(-2px)}.payment-history{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:16px}.payment-history h4{color:var(--text);margin:0 0 16px;font-size:14px;font-weight:600}.empty-history{color:var(--subtext);text-align:center;margin:0;padding:10px 0;font-size:13px;font-style:italic}.payment-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.payment-item:last-child{border-bottom:none;padding-bottom:0}.payment-item strong{color:var(--success);margin-bottom:2px;font-family:DM Mono,monospace;font-size:15px;display:block}.payment-item p{color:var(--subtext);margin:0;font-size:12px;font-weight:500}.payment-date{color:var(--subtext);font-family:DM Mono,monospace;font-size:12px}.modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:1000;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.payment-modal{background:var(--card);border-radius:20px;width:100%;max-width:440px;padding:28px;animation:.3s cubic-bezier(.16,1,.3,1) forwards bounceFadeIn;box-shadow:0 20px 40px #00000026}.modal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal-header h3{margin:0;font-size:20px;font-weight:600}.modal-header button{color:var(--subtext);cursor:pointer;background:0 0;border:none;padding:4px;font-size:18px}.modal-header button:hover{color:var(--danger)}.input-group{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.input-group label{color:var(--subtext);font-size:13px;font-weight:600}.input-group input,.input-group select,.input-group textarea{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;padding:12px 14px;font-family:Sora,sans-serif;font-size:14px;transition:all .2s}.input-group textarea{resize:vertical;min-height:80px}.input-group input:focus,.input-group select:focus,.input-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft);outline:none}.modal-footer{justify-content:flex-end;gap:12px;margin-top:32px;display:flex}.btn-submit:hover{opacity:.9}@media (width<=768px){.fees-header{flex-direction:column;align-items:flex-start;gap:16px}.btn-back{align-self:flex-start}}.add-teacher-container{color:var(--text);max-width:1000px;margin:0 auto;padding-left:18px;font-family:Sora,sans-serif;animation:.4s ease-out fadeIn}.section-hint{color:var(--subtext);margin:-8px 0 8px;font-size:13px}.input-group input,.input-group select{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;padding:12px 14px;font-family:Sora,sans-serif;font-size:14px;transition:all .2s}.input-group input:focus,.input-group select:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft);outline:none}.assignment-box{background:color-mix(in srgb, var(--bg) 50%, var(--card));border:1px dashed var(--border);border-left:4px solid var(--primary);border-radius:12px;margin-top:8px;padding:24px;animation:.3s cubic-bezier(.16,1,.3,1) slideDown}.assignment-box h4{color:var(--primary);margin:0 0 20px;font-size:15px}.form-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;margin-top:40px;padding-top:24px;display:flex}.btn-cancel{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:10px;padding:10px 24px;font-family:Sora,sans-serif;font-weight:500}.btn-submit{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 24px;font-family:Sora,sans-serif;font-weight:600}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.input-grid{grid-template-columns:1fr}}.edit-teacher-container{color:var(--text);max-width:900px;margin:0 auto;font-family:Sora,sans-serif;animation:.4s ease-out fadeIn}.form-card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:20px;padding:32px}.form-section{flex-direction:column;gap:16px;display:flex}.form-section h3{color:var(--text);margin:0;font-size:18px;font-weight:600}.divider{border:none;border-top:1px dashed var(--border);margin:32px 0}.input-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.input-group{flex-direction:column;gap:8px;display:flex}.input-group label{color:var(--subtext);text-transform:uppercase;letter-spacing:.03em;font-size:13px;font-weight:600}.input-group input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;padding:12px 14px;font-family:Sora,sans-serif;font-size:14px;transition:all .2s}.input-group input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft);outline:none}.form-actions{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.btn-cancel{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:10px;padding:10px 24px;font-family:Sora,sans-serif;font-weight:500;transition:all .2s}.btn-cancel:hover{background:var(--bg)}.btn-submit{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 24px;font-family:Sora,sans-serif;font-weight:600;transition:all .2s}.btn-submit:hover{box-shadow:0 4px 12px var(--primary-soft);transform:translateY(-2px)}.btn-delete{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);cursor:pointer;border-radius:10px;padding:10px 24px;font-family:Sora,sans-serif;font-weight:600;transition:all .2s}.btn-delete:hover{background:var(--danger);color:#fff}.loading-state{text-align:center;color:var(--subtext);padding:40px}@media (width<=768px){.input-grid{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse;align-items:stretch;gap:20px}.form-actions div{flex-direction:column;gap:12px;display:flex}}:root{--bg:#fff;--card:#f9fafb;--border:#e5e7eb;--text:#111827;--subtext:#6b7280;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-soft:#2563eb26;--success:#10b981;--error:#dc2626;--danger:#dc2626;--shadow-sm:0 4px 10px #0000000d;--shadow-md:0 8px 20px #00000014}.dark{--bg:#0f172a;--card:#1e293b;--border:#334155;--text:#f1f5f9;--subtext:#94a3b8;--primary:#3b82f6;--primary-hover:#60a5fa;--primary-soft:#3b82f633;--success:#34d399;--error:#ef4444;--danger:#ef4444;--shadow-sm:0 4px 10px #0006;--shadow-md:0 8px 20px #00000080}:root,.dark{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root,.dark{--lightningcss-light: ;--lightningcss-dark:initial}}:root{--bg:#fff;--card:#f9fafb;--border:#e5e7eb;--text:#111827;--subtext:#6b7280;--primary:#2563eb;--primary-soft:#2563eb33;--primary-hover:#1d4ed8;--danger:#dc2626;--success:#10b981}*,:before,:after{box-sizing:border-box}body{background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:Sora,sans-serif;transition:background-color .3s,color .3s}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.2}h1{font-size:24px}h2{font-size:20px}h3{font-size:16px;font-weight:500}p{color:var(--subtext);margin:0;font-size:14px}.card,.teacher-card,.kpi-card{background:var(--card);border:1px solid var(--border);will-change:transform;border-radius:14px;transition:transform .2s,box-shadow .2s,border-color .2s}.teacher-card:hover,.kpi-card:hover{transform:translateY(-4px)scale(1.01);box-shadow:0 10px 25px #0000000d}button{background:var(--text);color:#8d8989;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-family:Sora,sans-serif;font-size:13px;font-weight:500;transition:all .15s}button:hover{opacity:.9;transform:translateY(-1px)}button:active{transform:scale(.97)}input,select,textarea{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:10px 14px;font-family:Sora,sans-serif;font-size:14px;transition:all .2s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft);outline:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--subtext)}.dashboard-container{animation:.3s forwards fadeIn}@keyframes modalFade{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.skeleton{background:linear-gradient(90deg, var(--card) 25%, var(--border) 50%, var(--card) 75%);background-size:200% 100%;border-radius:4px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.icon{fill:currentColor;width:14px;height:14px}
