body{-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--color-primary:#4e50c3;--color-primary-dark:#1a56db;--color-accent-gold:#7a5900;--color-accent-orange:#f07c3a;--color-accent-yellow:#f5a623;--color-cta-pink:#ff6b8a;--color-white:#fff;--color-soft-bg:#fffef5;--color-border:#e5e7eb;--color-text-primary:#111827;--color-text-secondary:#6b7280;--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--font-family-primary:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;--font-family-display:"Playfair Display",serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-md:1.125rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:1.875rem;--font-size-3xl:2.25rem;--font-size-4xl:3rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.25;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:2;--space-0:0;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-none:0;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-round:50%;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--shadow-2xl:0 25px 50px -12px #00000040;--shadow-hover:0 8px 32px #0000001a;--container-max-width:1200px;--container-padding:0 1.5rem;--navbar-height:68px;--sidebar-width:260px;--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:350ms ease;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--opacity-disabled:0.5;--opacity-muted:0.7}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:var(--color-border);border-radius:var(--radius-xl)}::-webkit-scrollbar-thumb{background:var(--color-primary);border-radius:var(--radius-xl)}::-webkit-scrollbar-thumb:hover{background:var(--color-primary-dark)}::selection{background:var(--color-primary);color:var(--color-white)}body{-webkit-font-smoothing:antialiased;background-color:var(--color-white);font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal)}body,h1,h2,h3,h4,h5,h6{color:var(--color-text-primary)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-md)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--space-4)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark);text-decoration:underline}img{display:block;height:auto;max-width:100%}button,input,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit}button{background:none;border:none;cursor:pointer}input,select,textarea{background:none;border:none;outline:none}.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.d-flex{display:flex}.d-grid{display:grid}.d-block{display:block}.d-inline-block{display:inline-block}.d-none{display:none}.d-inline-flex{display:inline-flex}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-1{flex:1 1}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.align-center{align-items:center}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-stretch{align-items:stretch}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.m-0{margin:var(--space-0)}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.m-5{margin:var(--space-5)}.mt-0{margin-top:var(--space-0)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mb-0{margin-bottom:var(--space-0)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.ml-0{margin-left:var(--space-0)}.ml-1{margin-left:var(--space-1)}.ml-2{margin-left:var(--space-2)}.ml-3{margin-left:var(--space-3)}.ml-4{margin-left:var(--space-4)}.ml-5{margin-left:var(--space-5)}.mr-0{margin-right:var(--space-0)}.mr-1{margin-right:var(--space-1)}.mr-2{margin-right:var(--space-2)}.mr-3{margin-right:var(--space-3)}.mr-4{margin-right:var(--space-4)}.mr-5{margin-right:var(--space-5)}.mx-auto{margin-left:auto;margin-right:auto}.p-0{padding:var(--space-0)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.pt-0{padding-top:var(--space-0)}.pt-1{padding-top:var(--space-1)}.pt-2{padding-top:var(--space-2)}.pt-3{padding-top:var(--space-3)}.pt-4{padding-top:var(--space-4)}.pt-5{padding-top:var(--space-5)}.pb-0{padding-bottom:var(--space-0)}.pb-1{padding-bottom:var(--space-1)}.pb-2{padding-bottom:var(--space-2)}.pb-3{padding-bottom:var(--space-3)}.pb-4{padding-bottom:var(--space-4)}.pb-5{padding-bottom:var(--space-5)}.pl-0{padding-left:var(--space-0)}.pl-1{padding-left:var(--space-1)}.pl-2{padding-left:var(--space-2)}.pl-3{padding-left:var(--space-3)}.pl-4{padding-left:var(--space-4)}.pl-5{padding-left:var(--space-5)}.pr-0{padding-right:var(--space-0)}.pr-1{padding-right:var(--space-1)}.pr-2{padding-right:var(--space-2)}.pr-3{padding-right:var(--space-3)}.pr-4{padding-right:var(--space-4)}.pr-5{padding-right:var(--space-5)}.w-25{width:25%}.w-50{width:50%}.w-75{width:75%}.w-100{width:100%}.max-width{max-width:var(--container-max-width)}.min-height-100{min-height:100vh}.full-height{height:100%}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.text-white{color:var(--color-white)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.text-gold{color:var(--color-accent-gold)}.fw-400{font-weight:var(--font-weight-regular)}.fw-500{font-weight:var(--font-weight-medium)}.fw-600{font-weight:var(--font-weight-semibold)}.fw-700{font-weight:var(--font-weight-bold)}.fw-800{font-weight:var(--font-weight-extrabold)}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.radius-sm{border-radius:var(--radius-sm)}.radius-md{border-radius:var(--radius-md)}.radius-lg{border-radius:var(--radius-lg)}.radius-xl{border-radius:var(--radius-xl)}.radius-round{border-radius:var(--radius-round)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-hover{transition:box-shadow var(--transition-fast)}.shadow-hover:hover{box-shadow:var(--shadow-hover)}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.pointer{cursor:pointer}.not-allowed{cursor:not-allowed}.default-cursor{cursor:default}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:-webkit-sticky;position:sticky}.top-0{top:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.z-1{z-index:1}.z-10{z-index:10}.z-100{z-index:100}.btn{align-items:center;border:2px solid #0000;border-radius:var(--radius-lg);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);gap:var(--space-2);justify-content:center;line-height:var(--line-height-snug);min-height:40px;min-width:80px;padding:.625rem 1.25rem;text-align:center;transition:all var(--transition-fast)}.btn-primary{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.btn-primary:hover{background-color:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-text-secondary);border-color:var(--color-text-secondary);color:var(--color-white)}.btn-secondary:hover{background-color:var(--color-text-primary);border-color:var(--color-text-primary)}.btn-outline{background-color:initial;border-color:var(--color-primary);color:var(--color-primary)}.btn-outline:hover{background-color:var(--color-primary);color:var(--color-white)}.btn-danger{background-color:var(--color-danger);border-color:var(--color-danger);color:var(--color-white)}.btn-danger:hover{background-color:#dc2626;border-color:#dc2626}.btn-success{background-color:var(--color-success);border-color:var(--color-success);color:var(--color-white)}.btn-success:hover{background-color:#059669;border-color:#059669}.btn-warning{background-color:var(--color-warning);border-color:var(--color-warning);color:var(--color-white)}.btn-warning:hover{background-color:#d97706;border-color:#d97706}.btn-pink{background-color:var(--color-cta-pink);border-color:var(--color-cta-pink);color:var(--color-white)}.btn-pink:hover{background-color:#e8557a;border-color:#e8557a}.btn-lg{font-size:var(--font-size-base);min-height:48px;min-width:100px;padding:.75rem 2rem}.btn-sm{font-size:var(--font-size-xs);min-height:32px;min-width:60px;padding:.375rem .75rem}.card{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);transition:all var(--transition-fast)}.card-hover:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px)}.stat-card{composes:card;text-align:center}.teacher-card{composes:card;overflow:hidden;padding:0}.student-card{composes:card;align-items:center;display:flex;gap:var(--space-4)}.dashboard-card{composes:card;background:var(--color-soft-bg)}.profile-card{composes:card;margin:0 auto;max-width:400px}.navbar{background:var(--color-white);border-bottom:1px solid var(--color-border);height:var(--navbar-height);justify-content:space-between;padding:0 var(--space-6);position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-index-sticky)}.nav-logo,.navbar{align-items:center;display:flex}.nav-logo{color:var(--color-accent-gold);cursor:pointer;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);gap:var(--space-2)}.nav-link{color:var(--color-text-secondary);cursor:pointer;font-weight:var(--font-weight-medium);padding:var(--space-1) 0;position:relative;transition:color var(--transition-fast)}.nav-link-active,.nav-link:hover{color:var(--color-accent-gold)}.nav-link-active:after{background:var(--color-accent-gold);border-radius:var(--radius-round);bottom:-2px;content:"";height:2px;left:0;position:absolute;right:0}.nav-right{align-items:center;display:flex;gap:var(--space-4)}.sidebar{background:var(--color-white);border-right:1px solid var(--color-border);height:100vh;overflow-y:auto;padding:var(--space-6);position:-webkit-sticky;position:sticky;top:0;width:var(--sidebar-width)}.sidebar-link{align-items:center;border-radius:var(--radius-lg);color:var(--color-text-secondary);cursor:pointer;display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);transition:all var(--transition-fast)}.sidebar-link:hover{color:var(--color-text-primary)}.sidebar-active,.sidebar-link:hover{background-color:var(--color-soft-bg)}.sidebar-active{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.table{border-collapse:collapse;width:100%}.table-header{background-color:var(--color-soft-bg);border-bottom:2px solid var(--color-border);font-weight:var(--font-weight-semibold);padding:var(--space-3) var(--space-4);text-align:left}.table-row{border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.table-hover:hover{background-color:var(--color-soft-bg)}.form-group{margin-bottom:var(--space-4)}.label{color:var(--color-text-primary);display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}.input,.select,.textarea{background:var(--color-white);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--font-size-sm);padding:var(--space-3) var(--space-4);transition:border-color var(--transition-fast);width:100%}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #4e50c31a}.input.error,.select.error,.textarea.error{border-color:var(--color-danger)}.error{color:var(--color-danger)}.error,.helper-text{font-size:var(--font-size-xs);margin-top:var(--space-1)}.helper-text{color:var(--color-text-secondary)}.badge{align-items:center;border-radius:var(--radius-xl);display:inline-flex;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);padding:.25rem .625rem}.badge-primary{background:var(--color-primary);color:var(--color-white)}.badge-success{background:var(--color-success);color:var(--color-white)}.badge-danger{background:var(--color-danger);color:var(--color-white)}.badge-warning{background:var(--color-warning);color:var(--color-white)}.avatar{border-radius:var(--radius-round);object-fit:cover}.avatar-sm{height:32px;width:32px}.avatar-md{height:48px;width:48px}.avatar-lg{height:72px;width:72px}.spinner{border:4px solid var(--color-border);border-radius:var(--radius-round);border-top-color:var(--color-primary);display:inline-block;height:40px;width:40px}.skeleton{animation:skeletonLoading 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--color-border) 25%,#f0f0f0 50%,var(--color-border) 75%);background-size:200% 100%;border-radius:var(--radius-lg)}.modal{background:var(--color-white);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);left:50%;max-width:500px;padding:var(--space-8);position:fixed;top:50%;transform:translate(-50%,-50%);width:90%;z-index:var(--z-index-modal)}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.modal-body{margin-bottom:var(--space-6)}.modal-footer{display:flex;gap:var(--space-3);justify-content:flex-end}.toast{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--color-white);padding:var(--space-4)}.success-toast{background:var(--color-success)}.error-toast{background:var(--color-danger)}.warning-toast{background:var(--color-warning)}.dropdown{display:inline-block;position:relative}.dropdown-item{color:var(--color-text-secondary);cursor:pointer;display:block;padding:var(--space-2) var(--space-4);transition:background var(--transition-fast)}.dropdown-item:hover{background:var(--color-soft-bg);color:var(--color-text-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{animation:fadeIn var(--transition-slow) ease both}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fadeUp{animation:fadeUp var(--transition-slow) ease both}@keyframes slideLeft{0%{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}.slideLeft{animation:slideLeft var(--transition-slow) ease both}@keyframes slideRight{0%{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}.slideRight{animation:slideRight var(--transition-slow) ease both}@keyframes zoomIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.zoomIn{animation:zoomIn var(--transition-slow) ease both}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.bounce{animation:bounce 2s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.float{animation:float 3s ease-in-out infinite}@keyframes blobAnimation{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.05)}}.blobAnimation{animation:blobAnimation 4s ease-in-out infinite}@keyframes cardAppear{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.cardAppear{animation:cardAppear .5s ease both}@keyframes spinner{to{transform:rotate(1turn)}}.spinner{animation:spinner .8s linear infinite}@keyframes skeletonLoading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeletonLoading{animation:skeletonLoading 1.5s ease-in-out infinite}.hoverGrow{transition:transform var(--transition-fast)}.hoverGrow:hover{transform:scale(1.05)}.hoverLift{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.hoverLift:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px)}.hide-mobile{display:block}.hide-desktop{display:none}.container{margin:0 auto;max-width:var(--container-max-width);padding:var(--container-padding)}@media (max-width:1200px){.grid-4{grid-template-columns:repeat(3,1fr)}}@media (max-width:992px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.navbar{padding:0 var(--space-4)}.hide-mobile,.nav-link{display:none}.hide-desktop{display:block}}@media (max-width:992px){.sidebar{padding:var(--space-4);width:200px}}@media (max-width:768px){.sidebar{box-shadow:var(--shadow-xl);height:100vh;left:-100%;position:fixed;top:0;transition:left var(--transition-base);width:280px;z-index:var(--z-index-modal)}.sidebar.open{left:0}.card{padding:var(--space-4)}.teacher-card{max-width:260px;min-width:260px}}@media (max-width:576px){.btn{justify-content:center;width:100%}}@media (max-width:768px){.form-group{margin-bottom:var(--space-3)}}@media (max-width:992px){.dashboard-grid{grid-template-columns:1fr 1fr}}@media (max-width:768px){.dashboard-grid{grid-template-columns:1fr}}@media (max-width:1400px){.container{max-width:1140px}}@media (max-width:1200px){.container{max-width:960px}}@media (max-width:992px){.container{max-width:720px}}@media (max-width:768px){.container{max-width:540px}}@media (max-width:576px){.container{max-width:100%;padding:0 var(--space-4)}}@media (max-width:400px){.container{padding:0 var(--space-3)}}
/*# sourceMappingURL=main.fc2465f6.css.map*/