:root{--primary-color:#4e73df;--primary-gradient:linear-gradient(135deg, #4e73df 0%, #224abe 100%);--accent-gradient:linear-gradient(135deg, #4e73df 0%, #a259ff 100%);--bg-dark:#0a0b10;--bg-sidebar:#11121a;--bg-card:rgba(20, 22, 30, 0.7);--glass-border:rgba(255, 255, 255, 0.08);--text-main:#f0f2f5;--text-muted:#94a3b8;--success-color:#10b981;--danger-color:#ef4444;--warning-color:#f59e0b;--sidebar-width:260px;--header-height:80px;--shadow-lg:0 10px 25px -5px rgba(0, 0, 0, 0.3);--bg-body:var(--bg-dark);--glass-bg:var(--bg-card)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background-color:var(--bg-dark);background-image:radial-gradient(circle at 0 0,rgba(78,115,223,.15) 0,transparent 40%),radial-gradient(circle at 100% 100%,rgba(162,89,255,.1) 0,transparent 40%);background-attachment:fixed;color:var(--text-main);line-height:1.6;overflow-x:hidden}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:2000;padding:.65rem .9rem;border-radius:10px;background:var(--primary-color);color:#fff;font-weight:600;text-decoration:none;transform:translateY(-180%);transition:transform .2s ease}.skip-link:focus{transform:translateY(0)}.layout-wrapper{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--glass-border);display:flex;flex-direction:column;position:fixed;height:100vh;z-index:1000;transition:all .3s ease}.main-content{flex:1;margin-left:var(--sidebar-width);padding:2rem;width:calc(100% - var(--sidebar-width))}.sidebar-header{padding:2rem;display:flex;align-items:center;gap:12px}.sidebar-logo{width:40px;height:40px;background:var(--accent-gradient);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.2rem;box-shadow:0 4px 12px rgba(78,115,223,.4)}.sidebar-brand{font-weight:700;font-size:1.25rem;letter-spacing:-.5px}.sidebar-brand span{color:var(--primary-color)}.sidebar-menu{flex:1;padding:1rem;list-style:none}.sidebar-menu ul{list-style:none;margin:0;padding:0}.menu-item{margin-bottom:.5rem}.menu-link{display:flex;align-items:center;gap:12px;padding:.8rem 1rem;color:var(--text-muted);text-decoration:none;border-radius:12px;transition:all .2s ease;font-weight:500}.menu-link i{font-size:1.1rem;width:20px}.menu-link:hover{background:rgba(255,255,255,.05);color:var(--text-main)}.menu-link.active{background:rgba(78,115,223,.15);color:var(--primary-color);box-shadow:inset 0 0 0 1px rgba(78,115,223,.2)}.sidebar-footer{padding:1.5rem;border-top:1px solid var(--glass-border)}.user-snippet{display:flex;align-items:center;gap:12px;padding:.5rem;border-radius:12px;background:rgba(255,255,255,.03)}.user-snippet .avatar-small,.user-snippet img{width:36px;height:36px;border-radius:10px;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600}.user-snippet-info{flex:1;min-width:0}.user-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-status{font-size:.75rem;color:var(--success-color);display:flex;align-items:center;gap:4px}.logout-link{display:flex;align-items:center;gap:10px;padding:.8rem 1rem;color:var(--danger-color);text-decoration:none;margin-top:1rem;border-radius:12px;transition:all .2s;font-size:.9rem}.logout-link:hover{background:rgba(239,68,68,.1)}.logout-link.loading{pointer-events:none;opacity:.7}.logout-link.loading i{animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-title h1{font-size:1.75rem;font-weight:700}.page-title p{color:var(--text-muted);font-size:.9rem}.top-bar-actions{display:flex;align-items:center;gap:1.5rem}.search-box{position:relative;width:300px}.search-box i{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-muted)}.search-box input{width:100%;padding:.75rem 1rem .75rem 2.8rem;background:rgba(255,255,255,.05);border:1px solid var(--glass-border);border-radius:12px;color:#fff;font-family:inherit;transition:all .2s}.search-box input:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.08)}.icon-button{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid var(--glass-border);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.icon-button:hover{background:rgba(255,255,255,.1);color:var(--text-main)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2rem}.glass-card{background:var(--bg-card);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:24px;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease}.glass-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.assignment-card{padding:0;display:flex;flex-direction:column;overflow:hidden}.assignment-card .premium-badge{font-size:.7rem;font-weight:600;padding:.3rem .75rem;border-radius:8px}.assignment-card .premium-btn-primary{border-radius:10px;font-weight:600;transition:all .2s ease}.stat-item-premium{display:flex;flex-direction:column}.stat-label{color:var(--text-muted);font-size:.9rem;font-weight:500}.stat-value{font-size:2rem;font-weight:700;margin:.5rem 0;letter-spacing:-1px}.stat-trend{font-size:.85rem;display:flex;align-items:center;gap:4px}.stat-trend.up{color:var(--success-color)}.stat-trend.down{color:var(--danger-color)}.table-container{background:var(--bg-card);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:24px;overflow:hidden;margin-top:2rem}.table-header{padding:1.5rem 2rem;border-bottom:1px solid var(--glass-border);display:flex;justify-content:space-between;align-items:center}.premium-table{width:100%;border-collapse:collapse}.premium-table th{text-align:left;padding:1.25rem 2rem;color:var(--text-muted);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:1px;background:rgba(255,255,255,.02)}.premium-table td{padding:1.25rem 2rem;border-bottom:1px solid var(--glass-border)}.premium-table tr:last-child td{border-bottom:none}.premium-table tr:hover{background:rgba(255,255,255,.03)}.premium-input{background:rgba(255,255,255,.05);border:1px solid var(--glass-border);border-radius:12px;padding:.8rem 1rem;color:#fff;width:100%;font-family:inherit;transition:all .2s;appearance:none;-webkit-appearance:none;-moz-appearance:none}select.premium-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='rgba(255,255,255,0.5)'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:1.25rem;padding-right:3rem;cursor:pointer}select.premium-input option{background-color:#1a1c24;color:#fff;padding:1rem}.premium-input:focus{outline:0;border-color:var(--primary-color);box-shadow:0 0 0 4px rgba(78,115,223,.1);background:rgba(255,255,255,.08)}.premium-btn{padding:.8rem 1.5rem;border-radius:12px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .3s cubic-bezier(.4, 0, .2, 1);display:inline-flex;align-items:center;gap:8px;border:none;text-decoration:none}.premium-btn-primary{background:var(--primary-gradient);color:#fff;box-shadow:0 4px 15px rgba(78,115,223,.3)}.premium-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(78,115,223,.4)}.premium-btn-outline{background:0 0;border:1px solid var(--glass-border);color:var(--text-main)}.premium-btn-outline:hover{background:rgba(255,255,255,.05);border-color:var(--text-muted)}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.auth-card{width:100%;max-width:480px;background:var(--bg-card);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:32px;padding:3rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.5)}.auth-logo{margin-bottom:2rem;text-align:center}.auth-title{font-size:2rem;font-weight:700;text-align:center;margin-bottom:.5rem}.auth-subtitle{color:var(--text-muted);text-align:center;margin-bottom:2.5rem}.alert{padding:1rem;border-radius:12px;margin-bottom:1.5rem;display:flex;align-items:center;gap:10px}.alert-success{background:rgba(16,185,129,.1);color:#10b981;border:1px solid rgba(16,185,129,.2)}.alert-warning{background:rgba(245,158,11,.1);color:#f59e0b;border:1px solid rgba(245,158,11,.2)}.alert-danger{background:rgba(239,68,68,.1);color:#ef4444;border:1px solid rgba(239,68,68,.2)}.premium-badge{display:inline-block;padding:.4rem .8rem;border-radius:8px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.badge-blue{background:rgba(78,115,223,.15);color:#4e73df}.badge-green{background:rgba(16,185,129,.15);color:#10b981}.badge-yellow{background:rgba(245,158,11,.15);color:#f59e0b}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-15px)}100%{transform:translateY(0)}}.animate-fade-up{animation:fadeInUp .8s ease-out forwards}.animate-float{animation:float 4s ease-in-out infinite}.gradient-text{background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.section-container{padding:8rem 5%;max-width:1400px;margin:0 auto}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem}.step-card{text-align:center;position:relative;padding:2rem}.step-number{width:50px;height:50px;background:var(--primary-gradient);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.25rem;margin:0 auto 1.5rem}.menu-toggle{display:none;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid var(--glass-border);color:var(--text-main);align-items:center;justify-content:center;cursor:pointer;transition:all .2s;margin-right:1rem}.menu-toggle:hover{background:rgba(255,255,255,.1)}.nav-desktop{display:flex!important}.home-sidebar{display:none!important}@media (max-width:992px){.nav-desktop{display:none!important}.menu-toggle{display:flex!important}.home-sidebar{display:flex!important;transform:translateX(-100%);background:rgba(10,11,16,.98);backdrop-filter:blur(20px)}.home-sidebar .sidebar-header{padding:1.5rem 1.5rem .5rem!important}.home-sidebar.active{transform:translateX(0)}.home-menu-link{display:flex!important;align-items:center!important;gap:20px!important;padding:1.5rem!important;margin-bottom:1.2rem!important;background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.05)!important;border-radius:20px!important;text-decoration:none!important;transition:all .3s cubic-bezier(.4, 0, .2, 1)!important;animation:slideInRight .4s ease forwards;opacity:0}.home-icon-box{width:54px;height:54px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;box-shadow:0 8px 20px rgba(0,0,0,.3)}.home-menu-text{flex:1;min-width:0}.home-link-title{display:block;font-weight:600;font-size:1.15rem;color:var(--text-main);line-height:1.3}.home-link-subtitle{display:block;font-size:.8rem;color:var(--text-muted);font-weight:400;margin-top:4px;line-height:1.4}.home-sidebar .menu-item:first-child .home-menu-link{animation-delay:.1s}.home-sidebar .menu-item:nth-child(2) .home-menu-link{animation-delay:.2s}.home-sidebar .menu-item:nth-child(3) .home-menu-link{animation-delay:.3s}.home-menu-link:hover{background:rgba(78,115,223,.1)!important;border-color:rgba(78,115,223,.2)!important;transform:translateX(10px)!important}}@keyframes slideInRight{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.sidebar-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);z-index:999;padding:0;margin:0;display:none;opacity:0;transition:opacity .3s ease}.sidebar-overlay.active{display:block;opacity:1}@media (max-width:1024px){:root{--sidebar-width:240px}.main-content{padding:1.5rem}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:992px){.sidebar{transform:translateX(-100%);visibility:hidden;box-shadow:none}.sidebar.active{transform:translateX(0);visibility:visible;box-shadow:20px 0 50px rgba(0,0,0,.5)}.main-content{margin-left:0;width:100%;padding-top:calc(var(--header-height) + 1.5rem)}.top-bar{position:fixed;top:0;left:0;right:0;background:rgba(10,11,16,.85);backdrop-filter:blur(15px);z-index:900;padding:1rem 1.5rem;margin-bottom:0;border-bottom:1px solid var(--glass-border);height:var(--header-height);display:flex;align-items:center}.menu-toggle{display:flex}.top-bar .page-title h1{font-size:1.5rem}}@media (max-width:768px){.section-container{padding:4rem 5%}.top-bar-actions .search-box{display:none}.feature-grid{grid-template-columns:1fr}.responsive-grid-stack{grid-template-columns:1fr!important;gap:1rem!important}.auth-card{padding:2.5rem 2rem}}@media (max-width:576px){.auth-card{padding:2rem 1.5rem;border-radius:24px}.stats-grid{grid-template-columns:1fr}.top-bar .page-title h1{font-size:1.25rem}.top-bar .page-title p{display:none}.premium-table td,.premium-table th{padding:1rem 1.25rem}.sidebar-brand{font-size:1.1rem}.auth-title{font-size:1.75rem}}.loader-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(10,11,16,.8);backdrop-filter:blur(12px);display:none;align-items:center;justify-content:center;flex-direction:column;z-index:9999}.loader-container{text-align:center;padding:3rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:24px;box-shadow:0 20px 50px rgba(0,0,0,.5)}.edu-spinner{width:60px;height:60px;border:4px solid rgba(78,115,223,.1);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s cubic-bezier(.5,0,.5,1) infinite;margin:0 auto 1.5rem;position:relative}.edu-spinner::after{content:'';position:absolute;top:-4px;left:-4px;width:60px;height:60px;border:4px solid transparent;border-bottom:4px solid var(--accent-color);border-radius:50%;opacity:.5}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.loader-text{font-size:1.1rem;font-weight:500;color:var(--text-main)}.loader-subtext{font-size:.85rem;color:var(--text-muted);margin-top:8px}.btn-upload:disabled,button:disabled{cursor:wait}input:disabled,select:disabled{cursor:not-allowed;opacity:.65;transform:none!important}@media (prefers-reduced-motion:reduce){.edu-spinner{animation-duration:2s}}.blob-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;overflow:hidden;pointer-events:none}.floating-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.15;animation:blob-float 20s infinite alternate}.blob-1{top:-10%;left:-10%;width:600px;height:600px;background:radial-gradient(circle,var(--primary-color) 0,transparent 70%)}.blob-2{bottom:-10%;right:-10%;width:500px;height:500px;background:radial-gradient(circle,var(--accent-color) 0,transparent 70%);animation-delay:-5s}@keyframes blob-float{0%{transform:translate(0,0) scale(1)}33%{transform:translate(5%,10%) scale(1.1)}66%{transform:translate(-10%,5%) scale(.9)}100%{transform:translate(0,0) scale(1)}}.glow-border{position:relative;border:1px solid var(--glass-border);transition:border .3s ease}.glow-border:hover{border-color:rgba(78,115,223,.5);box-shadow:0 0 20px rgba(78,115,223,.2)}.glass-card-premium{background:rgba(255,255,255,.03);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.05);border-radius:24px;box-shadow:0 25px 50px -12px rgba(0,0,0,.5)}.neon-text{text-shadow:0 0 10px rgba(78,115,223,.5)}@media (max-width:576px){.auth-card{padding:2rem}.stats-grid{grid-template-columns:1fr}}.mobile-hint{display:none;font-size:.75rem;color:var(--text-muted);margin-top:12px;text-align:center;opacity:.7;animation:fadeIn 1s ease}@media (max-width:768px){.mobile-hint{display:block}}@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:.7;transform:translateY(0)}}.upload-zone{border:2px dashed rgba(255,255,255,.15);border-radius:20px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .3s ease;background:rgba(255,255,255,.02);position:relative;overflow:hidden}.upload-zone.drag-over,.upload-zone:hover{border-color:var(--primary-color);background:rgba(78,115,223,.05);box-shadow:0 0 30px rgba(78,115,223,.1)}.upload-zone.drag-over{transform:scale(1.01)}.upload-empty-state{transition:opacity .3s ease}.upload-empty-state.hidden{display:none}.upload-queue{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.upload-item{display:flex;gap:1rem;padding:1rem;background:rgba(255,255,255,.03);border:1px solid var(--glass-border);border-radius:16px;transition:all .3s ease;animation:slideInUp .3s ease}.upload-item.state-completed{border-color:rgba(16,185,129,.3);background:rgba(16,185,129,.05)}.upload-item.state-failed{border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.05)}.upload-preview{width:60px;height:60px;border-radius:12px;background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;border:1px solid var(--glass-border)}.upload-preview img{width:100%;height:100%;object-fit:cover}.file-icon{font-size:2rem}.upload-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.5rem}.upload-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.upload-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.upload-size{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.progress-container{width:100%;height:6px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden}.progress-bar{height:100%;background:var(--primary-gradient);border-radius:3px;transition:width .3s ease;width:0%}.upload-item.state-completed .progress-bar{background:linear-gradient(135deg,#10b981 0,#059669 100%)}.upload-item.state-failed .progress-bar{background:linear-gradient(135deg,#ef4444 0,#dc2626 100%)}.progress-text{font-size:.75rem;color:var(--text-muted);font-weight:500}.upload-actions{display:flex;gap:.5rem;align-items:center;margin-top:.25rem}.btn-upload{padding:.4rem .8rem;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;border:none;display:inline-flex;align-items:center;gap:4px;transition:all .2s ease;font-family:inherit}.btn-pause{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.btn-pause:hover{background:rgba(245,158,11,.25)}.btn-resume{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}.btn-resume:hover{background:rgba(16,185,129,.25)}.btn-start{background:rgba(78,115,223,.15);color:#4e73df;border:1px solid rgba(78,115,223,.3)}.btn-start:hover{background:rgba(78,115,223,.25)}.btn-retry{background:rgba(78,115,223,.15);color:#4e73df;border:1px solid rgba(78,115,223,.3)}.btn-retry:hover{background:rgba(78,115,223,.25)}.btn-cancel{background:rgba(239,68,68,.1);color:#ef4444;border:1px solid rgba(239,68,68,.2);padding:.4rem .6rem}.btn-cancel:hover{background:rgba(239,68,68,.2)}.upload-success{display:inline-flex;align-items:center;gap:6px;color:#10b981;font-weight:600;font-size:.85rem}.upload-error{font-size:.8rem;color:#ef4444;margin-top:.25rem;display:none}@keyframes slideInUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.upload-item{flex-direction:column}.upload-preview{width:100%;height:120px}.upload-zone{padding:2rem 1rem}}.assignment-management-intro{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 1.75rem;margin-bottom:1.5rem;background:linear-gradient(110deg,rgba(78,115,223,.16),rgba(162,89,255,.08));border:1px solid rgba(78,115,223,.24);border-left:4px solid var(--primary-color);border-radius:20px}.assignment-management-intro h2{margin:.25rem 0 .3rem;font-size:1.3rem}.assignment-management-intro p{color:var(--text-muted);font-size:.9rem}.assignment-eyebrow{color:var(--primary-color);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.assignment-intro-mark{display:grid;place-items:center;width:64px;height:64px;flex:0 0 auto;border-radius:18px;background:rgba(78,115,223,.18);color:#91a8ff;font-size:1.6rem}.assignment-list{display:grid;gap:1rem}.assignment-row{position:relative;overflow:hidden;padding:1.5rem 1.75rem}.assignment-row::before{position:absolute;inset:0 auto 0 0;width:3px;content:'';background:linear-gradient(180deg,var(--primary-color),rgba(162,89,255,.6))}.assignment-row:hover{transform:translateY(-2px)}.assignment-row__top{display:flex;align-items:flex-start;gap:1rem}.assignment-file-mark{display:grid;place-items:center;width:48px;height:48px;flex:0 0 auto;border-radius:14px;background:rgba(78,115,223,.16);color:#91a8ff;font-size:1.2rem}.assignment-row__heading{min-width:0}.assignment-row__heading h3{margin:.3rem 0 .75rem;font-size:1.15rem;line-height:1.35;overflow-wrap:anywhere}.assignment-target{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.assignment-target__section{color:var(--text-muted);font-size:.8rem}.assignment-row__description{margin:1.25rem 0 1.5rem 4rem;color:var(--text-muted);font-size:.9rem;line-height:1.65;overflow-wrap:anywhere}.assignment-row__description--empty{font-style:italic;opacity:.75}.assignment-row__footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-left:4rem;padding-top:1rem;border-top:1px solid var(--glass-border)}.assignment-file-name{display:flex;align-items:center;min-width:0;gap:.5rem;color:var(--text-muted);font-size:.8rem}.assignment-file-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.6rem}.assignment-actions form{margin:0}.assignment-actions .premium-btn{padding:.65rem 1rem;font-size:.82rem;white-space:nowrap}.assignment-delete-button{color:var(--danger-color);border-color:rgba(239,68,68,.25)}.assignment-delete-button:hover{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.5)}.assignment-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.5rem;color:var(--text-muted);font-size:.85rem}.assignment-pagination .premium-btn{padding:.65rem 1rem}.assignment-empty{display:grid;justify-items:center;padding:4rem 2rem;text-align:center}.assignment-empty-icon{display:grid;place-items:center;width:72px;height:72px;margin-bottom:1rem;border-radius:22px;background:rgba(78,115,223,.14);color:#91a8ff;font-size:1.8rem}.assignment-empty h2{margin-bottom:.5rem}.assignment-empty p{margin-bottom:1.5rem;color:var(--text-muted)}.assignment-edit-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:1.5rem}.assignment-form-card{padding:2rem}.assignment-form-heading{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.assignment-form-heading__icon{display:grid;place-items:center;width:46px;height:46px;flex:0 0 auto;border-radius:14px;background:rgba(78,115,223,.16);color:#91a8ff}.assignment-form-heading h2{margin-top:.25rem;font-size:1.25rem}.assignment-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.assignment-field{margin-bottom:1.25rem}.assignment-field label{display:block;margin-bottom:.5rem;color:var(--text-muted);font-size:.85rem;font-weight:600}.assignment-field__optional{margin-left:.35rem;color:var(--text-muted);font-size:.75rem;font-weight:400}.assignment-field__help{margin-top:.5rem;color:var(--text-muted);font-size:.78rem}.assignment-current-file{display:flex;align-items:center;gap:.5rem;margin-bottom:.65rem;padding:.75rem .9rem;overflow:hidden;border:1px solid var(--glass-border);border-radius:12px;background:rgba(255,255,255,.03);color:var(--text-muted);font-size:.8rem}.assignment-current-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-file-input{padding:.65rem;color-scheme:dark}.assignment-form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--glass-border)}.assignment-edit-aside{display:grid;gap:1rem}.assignment-preview-card{border-top:3px solid var(--primary-color)}.assignment-preview-card h2{margin:.5rem 0 1rem;font-size:1.15rem;overflow-wrap:anywhere}.assignment-preview-card p{margin-top:1.25rem;color:var(--text-muted);font-size:.85rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.assignment-tip-card{display:flex;align-items:flex-start;gap:.75rem;color:var(--warning-color)}.assignment-tip-card p{margin-top:.35rem;color:var(--text-muted);font-size:.8rem;line-height:1.55}.icon-button:focus-visible,.logout-link:focus-visible,.menu-link:focus-visible,.menu-toggle:focus-visible,.premium-btn:focus-visible{outline:3px solid rgba(145,168,255,.8);outline-offset:3px}@media (max-width:992px){.assignment-edit-layout{grid-template-columns:1fr}.assignment-edit-aside{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (max-width:768px){.assignment-management-intro{align-items:flex-start;padding:1.25rem}.assignment-intro-mark{width:50px;height:50px;border-radius:14px;font-size:1.2rem}.assignment-row{padding:1.25rem}.assignment-row__description,.assignment-row__footer{margin-left:0}.assignment-row__footer{align-items:flex-start;flex-direction:column}.assignment-actions{width:100%;justify-content:flex-start}.assignment-form-card{padding:1.25rem}.assignment-form-grid{grid-template-columns:1fr;gap:0}}@media (max-width:576px){.assignment-management-intro h2{font-size:1.1rem}.assignment-row__top{gap:.75rem}.assignment-file-mark{width:40px;height:40px;border-radius:12px;font-size:1rem}.assignment-row__heading h3{font-size:1rem}.assignment-actions .premium-btn{flex:1;justify-content:center}.assignment-edit-aside{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.animate-fade-up,.assignment-actions,.assignment-row,.glass-card,.menu-link,.premium-btn,.sidebar,.sidebar-overlay,.skip-link{transition:none!important;animation:none!important}}.student-assignment-panel{margin-top:2rem;overflow:hidden;border:1px solid var(--glass-border);border-radius:24px;background:var(--bg-card);box-shadow:var(--shadow-lg)}.student-assignment-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 1.75rem;border-bottom:1px solid var(--glass-border);background:linear-gradient(110deg,rgba(78,115,223,.13),rgba(162,89,255,.04))}.student-assignment-heading{min-width:0}.student-assignment-kicker{display:block;margin-bottom:.35rem;color:var(--primary-color);font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.student-assignment-heading h2{display:flex;align-items:center;gap:.65rem;margin:0;font-size:1.2rem}.student-assignment-heading h2 i{color:var(--primary-color)}.student-assignment-heading p{margin:.45rem 0 0;color:var(--text-muted);font-size:.82rem}.student-assignment-header>.premium-badge{flex:0 0 auto;white-space:nowrap}.student-assignment-list{display:grid;gap:.7rem;padding:1rem}.student-assignment-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;border:1px solid transparent;border-radius:17px;background:rgba(255,255,255,.025);transition:transform .2s ease,background .2s ease,border-color .2s ease}.student-assignment-item:hover{border-color:rgba(78,115,223,.25);background:rgba(78,115,223,.06);transform:translateY(-2px)}.student-assignment-item__icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(78,115,223,.18);border-radius:14px;background:rgba(78,115,223,.12);color:#91a8ff;font-size:1.05rem}.student-assignment-item__body{min-width:0}.student-assignment-item__meta{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin-bottom:.45rem}.student-assignment-item__meta .premium-badge{padding:.25rem .6rem;font-size:.64rem}.student-assignment-item__meta time{color:var(--text-muted);font-size:.72rem}.student-assignment-item__meta time i{margin-right:.3rem;opacity:.7}.student-assignment-item h3{margin:0;color:var(--text-main);font-size:.98rem;line-height:1.35;overflow-wrap:anywhere}.student-assignment-item__description{display:-webkit-box;margin:.35rem 0 0;overflow:hidden;color:var(--text-muted);font-size:.78rem;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.student-assignment-item__teacher{margin:.55rem 0 0;color:var(--text-muted);font-size:.72rem}.student-assignment-item__teacher i{margin-right:.3rem;opacity:.7}.student-assignment-item__teacher strong{color:var(--text-main);font-weight:600}.student-assignment-item__action{padding:.62rem .9rem;border-radius:10px;font-size:.76rem;white-space:nowrap}.student-assignment-empty{display:grid;justify-items:center;padding:4rem 1.5rem;text-align:center}.student-assignment-empty i{margin-bottom:1rem;color:var(--text-muted);font-size:3rem;opacity:.35}.student-assignment-empty h3{margin-bottom:.4rem}.student-assignment-empty p{margin:0;color:var(--text-muted);font-size:.85rem}@media (max-width:768px){.student-assignment-header{align-items:flex-start;padding:1.25rem}.student-assignment-list{padding:.75rem}.student-assignment-item{grid-template-columns:auto minmax(0,1fr);align-items:start}.student-assignment-item__action{grid-column:2;justify-self:start}}@media (max-width:480px){.student-assignment-header{flex-direction:column;gap:.9rem}.student-assignment-item{grid-template-columns:1fr}.student-assignment-item__icon{width:40px;height:40px;border-radius:12px;font-size:.95rem}.student-assignment-item__action{grid-column:auto;width:100%;justify-content:center}}@media (prefers-reduced-motion:reduce){.student-assignment-item{transition:none}}.pwa-install-button{position:fixed;right:1rem;bottom:1rem;z-index:3000;display:inline-flex;align-items:center;gap:.55rem;padding:.7rem 1rem;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:var(--primary-gradient);color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.35);cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;transition:transform .2s ease,box-shadow .2s ease}.pwa-install-button:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(0,0,0,.45)}.pwa-install-button:focus-visible{outline:3px solid rgba(145,168,255,.9);outline-offset:3px}.pwa-install-button svg{width:1rem;height:1rem}@media (max-width:480px){.pwa-install-button{right:.75rem;bottom:.75rem}}@media (prefers-reduced-motion:reduce){.pwa-install-button{transition:none}}:root{color-scheme:dark}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid rgba(145,168,255,.9);outline-offset:3px}h1,h2,h3,h4{text-wrap:balance}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:0s!important}}