@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-content:""}}}:root{--primary:#059669;--primary-hover:#047857;--primary-light:#f0fdf4;--primary-border:#bbf7d0;--bg:#f4f6f9;--surface:#fff;--text-main:#111827;--text-muted:#6b7280;--text-light:#9ca3af;--border:#e5e7eb;--border-light:#f3f4f6;--radius:10px;--radius-lg:14px;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 16px #00000014;--sidebar-w:256px;--topbar-h:60px}*{box-sizing:border-box;margin:0;padding:0}[x-cloak]{display:none!important}body{background:var(--bg);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;font-size:15px;line-height:1.6}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes dotBounce{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-up{animation:.3s ease-out both fadeUp}.slide-in{animation:.25s ease-out both slideIn}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:50ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.15s}#page-transition{z-index:99999;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;display:none;position:fixed;inset:0}#page-transition.active{display:flex}#page-transition img{object-fit:contain;width:72px;height:72px}#page-transition .dots{gap:.5rem;display:flex}#page-transition .dot{background:var(--primary);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite both dotBounce}#page-transition .dot:first-child{animation-delay:-.32s}#page-transition .dot:nth-child(2){animation-delay:-.16s}.initial-loading-screen{z-index:9999;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;display:flex;position:fixed;inset:0}.initial-loading-logo{object-fit:contain;width:80px;height:80px}.three-dots-loading{align-items:center;gap:.5rem;display:flex}.three-dots-loading .dot{background:var(--primary);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite both dotBounce}.three-dots-loading .dot:first-child{animation-delay:-.32s}.three-dots-loading .dot:nth-child(2){animation-delay:-.16s}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8,#f0f0f0 75%) 0 0/200% 100%;border-radius:6px;animation:1.5s infinite shimmer}.student-auth-page{background:linear-gradient(135deg,#059669,#047857 60%,#065f46);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative;overflow:hidden}.student-layout{min-height:100vh;display:flex}.student-sidebar{width:var(--sidebar-w);border-right:1px solid var(--border);z-index:100;box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.student-sidebar-brand{border-bottom:1px solid var(--border-light);align-items:center;gap:.75rem;padding:1.25rem 1.25rem 1rem;display:flex}.student-sidebar-brand img{object-fit:contain;width:36px;height:36px}.student-sidebar-brand-name{color:var(--text-main);font-size:1rem;font-weight:800;line-height:1.2}.student-sidebar-brand-sub{color:var(--text-muted);font-size:.75rem;font-weight:500}.student-sidebar-profile{background:var(--primary-light);border:1px solid var(--primary-border);border-radius:var(--radius-lg);margin:.875rem .875rem 0;padding:.875rem;animation:.3s ease-out slideIn}.student-sidebar-profile-photo{object-fit:cover;border:2px solid var(--primary-border);border-radius:50%;flex-shrink:0;width:38px;height:38px}.student-sidebar-profile-avatar{background:#d1fae5;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.student-sidebar-profile-name{color:#065f46;font-size:.9375rem;font-weight:700}.student-sidebar-profile-grade{color:var(--primary);font-size:.8125rem;font-weight:600}.student-sidebar-profile-no{color:var(--text-muted);letter-spacing:.04em;font-size:.75rem;font-weight:600}.student-sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:1rem .75rem;display:flex;overflow-y:auto}.student-sidebar-section{letter-spacing:.12em;color:var(--text-light);text-transform:uppercase;padding:.875rem .5rem .375rem;font-size:.6875rem;font-weight:700}.student-nav-item{border-radius:var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:.75rem;width:100%;padding:.6875rem .875rem;font-family:inherit;font-size:.9375rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex;position:relative}.student-nav-item:hover{color:var(--text-main);background:#f9fafb}.student-nav-item.active{background:var(--primary-light);color:var(--primary);font-weight:600}.student-nav-item.active:before{content:"";background:var(--primary);border-radius:0 3px 3px 0;width:3px;position:absolute;top:20%;bottom:20%;left:0}.student-nav-item.disabled{color:#d1d5db;cursor:not-allowed}.student-nav-item svg{flex-shrink:0;transition:transform .15s}.student-nav-item:hover svg{transform:translate(1px)}.student-nav-soon{color:var(--text-light);background:#f3f4f6;border-radius:4px;margin-left:auto;padding:.2rem .625rem;font-size:.6875rem;font-weight:600}.student-sidebar-footer{border-top:1px solid var(--border-light);padding:.75rem;position:relative}.student-sidebar-user-btn{border-radius:var(--radius);border:1px solid var(--border);cursor:pointer;text-align:left;background:#f9fafb;align-items:center;gap:.625rem;width:100%;padding:.625rem .75rem;font-family:inherit;transition:all .15s;display:flex}.student-sidebar-user-btn:hover{background:#f3f4f6;border-color:#d1d5db}.student-topbar{height:var(--topbar-h);border-bottom:1px solid var(--border);z-index:99;box-shadow:0 1px 0 var(--border-light);background:#fff;justify-content:space-between;align-items:center;padding:0 2rem;display:flex;position:sticky;top:0}.student-topbar-title{color:var(--text-main);font-size:1.0625rem;font-weight:700}.student-topbar-date{color:var(--text-light);margin-top:1px;font-size:.8125rem}.student-main{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-height:100vh;display:flex}.student-content{box-sizing:border-box;flex:1;width:100%;max-width:1100px;margin:0 auto;padding:1.75rem 2rem}.s-card{border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;transition:box-shadow .2s;overflow:hidden}.s-card:hover{box-shadow:var(--shadow-md)}.s-card-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:1.125rem 1.375rem;display:flex}.s-card-title{color:var(--text-main);font-size:1rem;font-weight:700}.s-card-sub{color:var(--text-muted);margin-top:1px;font-size:.875rem}.s-module-card{border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);cursor:pointer;background:#fff;flex-direction:column;align-items:flex-start;gap:.625rem;padding:1.375rem 1.25rem;transition:all .2s;display:flex}.s-module-card:hover{box-shadow:var(--shadow-md);border-color:#d1d5db;transform:translateY(-2px)}.s-module-card--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.s-module-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.s-module-label{color:var(--text-main);font-size:.9375rem;font-weight:700;line-height:1.3}.s-module-sub{color:var(--text-muted);font-size:.875rem}.s-module-soon{color:var(--text-light);background:#f3f4f6;border-radius:4px;padding:.2rem .625rem;font-size:.75rem;font-weight:600}.s-stat-card{border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;padding:1.25rem 1.375rem;transition:all .2s}.s-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.s-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.5rem;font-size:.75rem;font-weight:700}.s-stat-value{color:var(--text-main);font-size:1.5rem;font-weight:900}.badge{border-radius:999px;align-items:center;padding:.25rem .75rem;font-size:.8125rem;font-weight:600;display:inline-flex}.badge-green{color:#166534;background:#dcfce7}.badge-yellow{color:#854d0e;background:#fef9c3}.badge-red{color:#991b1b;background:#fee2e2}.badge-blue{color:#1e40af;background:#dbeafe}.badge-gray{color:#374151;background:#f3f4f6}.btn-primary{background:var(--primary);border-radius:var(--radius);color:#fff;cursor:pointer;border:none;align-items:center;gap:.5rem;padding:.6875rem 1.5rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #05966940}.btn-secondary{border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text-main);cursor:pointer;background:#fff;align-items:center;gap:.5rem;padding:.6875rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:all .15s;display:inline-flex}.btn-secondary:hover{background:#f9fafb;border-color:#d1d5db}.student-input{border:1.5px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-main);background:#fff;outline:none;padding:.6875rem .875rem;font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.student-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0596691a}.student-input::placeholder{color:var(--text-light)}.s-dropdown{border:1px solid var(--border);border-radius:var(--radius-lg);z-index:200;background:#fff;position:absolute;overflow:hidden;box-shadow:0 12px 32px #0000001f}.s-dropdown-item{color:var(--text-main);cursor:pointer;background:0 0;border:none;align-items:center;gap:.625rem;width:100%;padding:.5625rem .875rem;font-family:inherit;font-size:.875rem;text-decoration:none;transition:background .1s;display:flex}.s-dropdown-item:hover{background:#f9fafb}.s-dropdown-item.danger{color:#dc2626}.s-dropdown-item.danger:hover{background:#fff1f2}@media(max-width:768px){.student-sidebar{transform:translate(-100%)}.student-main{margin-left:0}.student-content{padding:1.25rem 1rem}}.absolute{position:absolute}.relative{position:relative}.static{position:static}.container{width:100%}.-mt-\[4\.9rem\]{margin-top:-4.9rem}.-mb-px{margin-bottom:-1px}.flex{display:flex}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[335\/376\]{aspect-ratio:335/376}.min-h-screen{min-height:100vh}.w-\[448px\]{width:448px}.w-full{width:100%}.max-w-\[335px\]{max-width:335px}.max-w-none{max-width:none}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[\#19140035\]{border-color:#19140035}.border-\[\#e3e3e0\]{border-color:#e3e3e0}.border-transparent{border-color:#0000}.bg-\[\#1b1b18\]{background-color:#1b1b18}.bg-\[\#FDFDFC\]{background-color:#fdfdfc}.bg-\[\#dbdbd7\]{background-color:#dbdbd7}.bg-\[\#fff2f2\]{background-color:#fff2f2}.text-\[13px\]{font-size:13px}.leading-\[20px\]{--tw-leading:20px;line-height:20px}.text-\[\#1b1b18\]{color:#1b1b18}.text-\[\#706f6c\]{color:#706f6c}.text-\[\#F53003\],.text-\[\#f53003\]{color:#f53003}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-\[0px_0px_1px_0px_rgba\(0\,0\,0\,0\.03\)\,0px_1px_2px_0px_rgba\(0\,0\,0\,0\.06\)\]{--tw-shadow:0px 0px 1px 0px var(--tw-shadow-color,#00000008), 0px 1px 2px 0px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0px_0px_0px_1px_rgba\(26\,26\,0\,0\.16\)\]{--tw-shadow:inset 0px 0px 0px 1px var(--tw-shadow-color,#1a1a0029);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.delay-300{transition-delay:.3s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-750{--tw-duration:.75s;transition-duration:.75s}.not-has-\[nav\]\:hidden:not(:has(:is(nav))){display:none}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-1\/2:before{content:var(--tw-content);top:50%}.before\:bottom-1\/2:before{content:var(--tw-content);bottom:50%}.before\:left-\[0\.4rem\]:before{content:var(--tw-content);left:.4rem}.before\:border-l:before{content:var(--tw-content);border-left-style:var(--tw-border-style);border-left-width:1px}.before\:border-\[\#e3e3e0\]:before{content:var(--tw-content);border-color:#e3e3e0}@media(hover:hover){.hover\:border-\[\#1915014a\]:hover{border-color:#1915014a}.hover\:border-\[\#19140035\]:hover{border-color:#19140035}}@media(prefers-color-scheme:dark){.dark\:block{display:block}.dark\:hidden{display:none}.dark\:border-\[\#3E3E3A\]{border-color:#3e3e3a}.dark\:border-\[\#eeeeec\]{border-color:#eeeeec}.dark\:bg-\[\#0a0a0a\]{background-color:#0a0a0a}.dark\:bg-\[\#1D0002\]{background-color:#1d0002}.dark\:bg-\[\#3E3E3A\]{background-color:#3e3e3a}.dark\:bg-\[\#161615\]{background-color:#161615}.dark\:bg-\[\#eeeeec\]{background-color:#eeeeec}.dark\:text-\[\#1C1C1A\]{color:#1c1c1a}.dark\:text-\[\#A1A09A\]{color:#a1a09a}.dark\:text-\[\#EDEDEC\]{color:#ededec}.dark\:text-\[\#F61500\]{color:#f61500}.dark\:text-\[\#FF4433\]{color:#f43}.dark\:shadow-\[inset_0px_0px_0px_1px_\#fffaed2d\]{--tw-shadow:inset 0px 0px 0px 1px var(--tw-shadow-color,#fffaed2d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.dark\:before\:border-\[\#3E3E3A\]:before{content:var(--tw-content);border-color:#3e3e3a}@media(hover:hover){.dark\:hover\:border-\[\#3E3E3A\]:hover{border-color:#3e3e3a}.dark\:hover\:border-\[\#62605b\]:hover{border-color:#62605b}}}@starting-style{.starting\:opacity-0{opacity:0}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
