@charset "UTF-8";body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}body,html{overflow-y:scroll}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.sidebar{background:#fff;border-right:1px solid #e5e7eb;box-shadow:0 0 1px #0000000d;display:flex;flex-direction:column;height:100vh;left:0;overflow-y:auto;position:fixed;top:0;width:280px;z-index:1000}.sidebar-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:flex-start;min-height:60px;padding:1rem 1.5rem;width:100%}.sidebar-logo{display:block!important;margin:0;opacity:1!important;padding:0;position:relative;transition:all .2s ease;visibility:visible!important;z-index:10}.sidebar-logo:hover{opacity:.85;transform:scale(1.02)}.sidebar-nav{flex:1 1;gap:.125rem;padding:.5rem 0}.sidebar-nav-item{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;font-size:.95rem;gap:.75rem;padding:.5rem 1.5rem;text-align:left;transition:all .2s;width:100%}.sidebar-nav-item:hover{background:#f3f4f6;color:#1f2937}.sidebar-nav-item:focus{outline:none}.sidebar-nav-item.active{background:#eff6ff;border-left:3px solid #4d8eff;color:#4d8eff;font-weight:500}.nav-icon{font-size:1.1rem;text-align:center;width:24px}.nav-label{flex:1 1}.sidebar-actions{border-bottom:1px solid #e5e7eb;border-top:1px solid #e5e7eb;padding:1rem 1.5rem}.sidebar-action-btn{align-items:center;background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1rem;transition:background .2s;width:100%}.sidebar-action-btn:hover{background:#3b7ae8}.action-icon{font-size:1.1rem}.sidebar-footer{border-top:1px solid #e5e7eb;margin-top:auto;padding:1.5rem}.user-profile{gap:.75rem;width:100%}.user-avatar,.user-profile{align-items:center;display:flex}.user-avatar{background:#4d8eff;border-radius:50%;color:#fff;flex-shrink:0;font-size:.9rem;font-weight:600;height:40px;justify-content:center;width:40px}.profile-avatar-clickable{cursor:pointer;transition:all .2s}.profile-avatar-clickable:hover{box-shadow:0 2px 8px #4d8eff4d;transform:scale(1.05)}.profile-container{align-items:center;display:flex;gap:.75rem;width:100%}.profile-menu-overlay{z-index:9999}.profile-menu{min-width:240px;position:fixed;z-index:10000}.user-info{display:flex;flex:1 1;flex-direction:column;gap:.125rem;min-width:0}.user-name{color:#1f2937;font-size:.9rem;font-weight:500}.user-name,.user-school{line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-school{color:#6b7280;font-size:.8rem}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:#f9fafb}.sidebar::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover{background:#9ca3af}.dashboard-layout{background:#f8f9fa;display:flex;min-height:100vh}.dashboard-main{display:flex;flex:1 1;flex-direction:column;margin-left:280px;transition:margin-left .3s ease}.dashboard-content{background:#f8f9fa;flex:1 1;min-height:100vh;overflow-y:auto;padding:1rem 2rem 2rem}@media (max-width:768px){.dashboard-main{margin-left:0}}.landing-page{background:#f8f9fa;color:#1f2937;min-height:100vh}.landing-page .landing-header{background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 2px #0000000d;padding:1rem 0;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.landing-page .landing-header .header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 2rem}.landing-page .landing-header .logo h1{color:#4d8eff;cursor:pointer;font-size:1.5rem;font-weight:700;margin:0;transition:color .2s}.landing-page .landing-header .logo h1:hover{color:#3b7ae8}.landing-page .landing-header .logo img{cursor:pointer;height:32px;transition:opacity .2s,transform .2s;width:auto}.landing-page .landing-header .logo img:hover{opacity:.85;transform:scale(1.02)}.landing-page .landing-header .nav-links{align-items:center;display:flex;gap:2rem}.landing-page .landing-header .nav-links a{color:#6b7280;font-size:1rem;font-weight:500;text-decoration:none;transition:color .2s}.landing-page .landing-header .nav-links a:hover{color:#4d8eff}.landing-page .landing-header .nav-login{background:#0000;border:none;color:#6b7280;cursor:pointer;font-size:1rem;font-weight:500;padding:0;transition:color .2s}.landing-page .landing-header .nav-login:hover{color:#4d8eff}.landing-page .landing-header .nav-signup{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.landing-page .landing-header .nav-signup:hover{background:#3b7ae8;box-shadow:0 4px 12px #4d8eff4d;transform:translateY(-1px)}.hero-section{grid-gap:4rem;align-items:center;display:grid;gap:4rem;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1200px;padding:5rem 2rem}.hero-content{max-width:600px}.hero-title{color:#1f2937;font-size:3.5rem;font-weight:800;line-height:1.1;margin-bottom:1.5rem}.hero-subtitle{color:#6b7280;font-size:1.25rem;line-height:1.6;margin-bottom:2rem}.cta-button{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem 2.5rem;transition:all .2s}.cta-button:hover{background:#3b7ae8;box-shadow:0 10px 20px #4d8eff4d;transform:translateY(-2px)}.cta-button.large{font-size:1.25rem;padding:1.25rem 3rem}.cta-subtext{color:#6b7280;font-size:.9rem;margin-top:1rem}.hero-demo{position:relative}.demo-window{background:#fff;border-radius:1rem;box-shadow:0 20px 60px #00000026;overflow:hidden}.demo-header{align-items:center;background:#f3f4f6;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;padding:.75rem 1rem}.demo-dots{display:flex;gap:.5rem}.dot{border-radius:50%;height:12px;width:12px}.dot.red{background:#ef4444}.dot.yellow{background:#f59e0b}.dot.green{background:#10b981}.demo-title{color:#6b7280;font-size:.875rem}.demo-content{display:flex;height:350px}.demo-sidebar{background:#f9fafb;border-right:1px solid #e5e7eb;padding:1.5rem 1rem;width:200px}.demo-nav-item{border-radius:.5rem;color:#6b7280;cursor:default;font-size:.9rem;margin-bottom:.5rem;padding:.75rem 1rem}.demo-nav-item.active{background:#4d8eff;color:#fff;font-weight:600}.demo-main{flex:1 1;padding:2rem}.demo-main h3{color:#111827;margin-bottom:1.5rem}.demo-table{display:flex;flex-direction:column;gap:1rem}.demo-row{align-items:center;background:#f9fafb;border-radius:.5rem;display:flex;justify-content:space-between;padding:1rem}.demo-score{color:#4d8eff;font-weight:700}.demo-status{color:#10b981;font-size:.9rem}.features-section{background:#fff;padding:5rem 2rem}.section-content{margin:0 auto;max-width:1200px}.features-section h2{color:#1f2937;font-size:2.5rem;font-weight:700;margin-bottom:3rem;text-align:center}.features-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.feature-card{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;box-shadow:0 1px 3px #0000001a;padding:2rem;transition:all .2s}.feature-card:hover{border-color:#4d8eff;box-shadow:0 4px 12px #4d8eff26;transform:translateY(-4px)}.feature-icon{font-size:2.5rem;margin-bottom:1rem}.feature-card h3{color:#1f2937;font-size:1.25rem;font-weight:700;margin-bottom:.75rem}.feature-card p{color:#6b7280;line-height:1.6}.how-it-works-section{background:#f8f9fa;padding:5rem 2rem}.how-it-works-section h2{color:#1f2937;font-size:2.5rem;font-weight:700;margin-bottom:3rem;text-align:center}.steps-container{align-items:center;display:flex;flex-wrap:wrap;gap:2rem;justify-content:center}.step{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;box-shadow:0 1px 3px #0000001a;max-width:300px;padding:2.5rem 2rem;text-align:center;transition:all .3s ease}.step:hover{border-color:#4d8eff;box-shadow:0 4px 12px #4d8eff33;transform:translateY(-6px)}.step-number{background:#4d8eff;box-shadow:0 4px 12px #4d8eff4d;font-size:2rem;height:70px;margin:0 auto 1.5rem;width:70px}.step h3{color:#1f2937;font-size:1.4rem;font-weight:700;margin-bottom:1rem}.step p{color:#6b7280;font-size:1.05rem;line-height:1.7}.step-arrow{color:#4d8eff;font-size:2.5rem;font-weight:400}.pricing-section{background:#fff;padding:5rem 2rem}.pricing-section h2{color:#1f2937;font-size:2.5rem;font-weight:700;margin-bottom:.5rem;text-align:center}.pricing-subtitle{color:#6b7280;font-size:1.1rem;margin-bottom:3rem;text-align:center}.pricing-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin:0 auto;max-width:1000px}.pricing-card{background:#fff;border-radius:1rem;box-shadow:0 4px 6px #0000001a;padding:2.5rem 2rem;position:relative;transition:all .2s}.pricing-card:hover{box-shadow:0 10px 20px #00000026;transform:translateY(-4px)}.pricing-card.featured{border:2px solid #4d8eff;box-shadow:0 10px 30px #4d8eff33;transform:scale(1.05)}.featured-badge{background:#4d8eff;border-radius:1rem;color:#fff;font-size:.875rem;font-weight:600;left:50%;padding:.25rem 1rem;position:absolute;top:-12px;transform:translateX(-50%)}.pricing-card h3{color:#111827;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.price{margin-bottom:2rem}.price-amount{color:#111827;font-size:3rem;font-weight:800}.price-period{color:#6b7280;font-size:1rem}.features-list{list-style:none;margin-bottom:2rem;padding:0}.features-list li{border-bottom:1px solid #f3f4f6;color:#374151;padding:.75rem 0}.pricing-button{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#374151;cursor:pointer;font-weight:600;padding:.875rem;transition:all .2s;width:100%}.pricing-button:hover{background:#4d8eff1a;border-color:#4d8eff;color:#4d8eff}.pricing-button.primary{background:#4d8eff;border-color:#4d8eff;color:#fff}.pricing-button.primary:hover{background:#3b7ae8}.cta-section{background:#f8f9fa;color:#1f2937;padding:5rem 2rem;text-align:center}.cta-section h2{color:#1f2937;font-size:2.5rem;font-weight:700;margin-bottom:1rem}.cta-section p{color:#6b7280;font-size:1.25rem;margin-bottom:2rem}.cta-button.large{background:#4d8eff;color:#fff}.cta-button.large:hover{background:#3b7ae8;color:#fff}.landing-footer{background:#fff;border-top:1px solid #e5e7eb;color:#1f2937;padding:3rem 2rem 1rem}.footer-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:0 auto 2rem;max-width:1200px}.footer-section h4{color:#1f2937;font-weight:700;margin-bottom:1rem}.footer-section p{color:#6b7280;line-height:1.6}.footer-section ul{list-style:none;padding:0}.footer-section ul li{margin-bottom:.75rem}.footer-section ul li a{color:#6b7280;text-decoration:none;transition:color .2s}.footer-section ul li a:hover{color:#4d8eff}.footer-section ul li button.footer-link{background:none;border:none;color:#6b7280;cursor:pointer;font-family:inherit;font-size:inherit;padding:0;text-align:left;text-decoration:none;transition:color .2s}.footer-section ul li button.footer-link:hover{color:#4d8eff}.footer-bottom{border-top:1px solid #e5e7eb;color:#6b7280;padding-top:2rem;text-align:center}@media (max-width:768px){.hero-section{grid-template-columns:1fr;padding:3rem 1rem}.hero-title{font-size:2.5rem}.hero-demo{order:-1}.nav-links{display:none}.steps-container{flex-direction:column}.step-arrow{transform:rotate(90deg)}.pricing-grid{grid-template-columns:1fr}.pricing-card.featured{transform:scale(1)}}.auth-page{align-items:center;background:#fff;box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;overflow-y:auto;padding:2rem 1rem}.auth-container{margin:auto;max-width:480px;position:relative;width:100%;z-index:1}.auth-header{margin-bottom:1.5rem;text-align:center}.auth-logo{cursor:pointer;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.05));height:40px;margin:0 auto;transition:all .2s ease;width:auto}.auth-logo:hover{filter:drop-shadow(0 4px 8px rgba(77,142,255,.2));opacity:.85;transform:scale(1.02)}.auth-card{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;box-shadow:0 4px 6px #00000012,0 2px 4px #0000000f,0 0 0 1px #0000000d;box-sizing:border-box;padding:1.75rem 2rem;transition:all .3s ease;width:100%}.auth-card:hover{box-shadow:0 10px 15px #0000001a,0 4px 6px #0000000d}.auth-card h2{color:#1f2937;font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.25rem;text-align:center}.auth-subtitle{color:#6b7280;font-size:.95rem;line-height:1.5;margin-bottom:1.25rem;text-align:center}.auth-form{gap:.75rem}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:.4rem}.form-group input{background:#fff;border:1.5px solid #e5e7eb;border-radius:.5rem;color:#1f2937;font-size:1rem;padding:.75rem 1rem;transition:all .2s ease}.form-group input:hover{border-color:#d1d5db}.form-group input::placeholder{color:#9ca3af}.form-group input:focus{background:#fff;border-color:#4d8eff;box-shadow:0 0 0 4px #4d8eff1a}.form-hint{color:#6b7280;font-size:.85rem}.form-footer{display:flex;justify-content:flex-end;margin-top:-.25rem}.forgot-password{color:#4d8eff;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s}.forgot-password:hover{color:#3b7ae8;text-decoration:underline}.auth-button{background:linear-gradient(135deg,#4d8eff,#3b7ae8);border:none;border-radius:.5rem;box-shadow:0 2px 4px #4d8eff33;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.25rem;padding:.75rem;transition:all .2s ease;width:100%}.auth-button:hover{background:linear-gradient(135deg,#3b7ae8,#2563eb);box-shadow:0 4px 12px #4d8eff66;transform:translateY(-2px)}.auth-button:active{transform:translateY(0)}.auth-button:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.google-button{align-items:center;background:#fff;border:1.5px solid #e5e7eb;border-radius:.5rem;box-shadow:0 1px 2px #0000000d;color:#374151;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.75rem;justify-content:center;padding:.75rem;transition:all .2s ease;width:100%}.google-button img{height:20px;width:20px}.google-button:hover{background:#f9fafb;border-color:#4d8eff;box-shadow:0 4px 12px #4d8eff26;transform:translateY(-2px)}.google-button:active{transform:translateY(0)}.google-button:disabled{background:#f3f4f6;cursor:not-allowed;transform:none}.auth-divider{align-items:center;color:#9ca3af;display:flex;margin:1rem 0;text-align:center}.auth-divider:after,.auth-divider:before{border-bottom:1px solid #e5e7eb;content:"";flex:1 1}.auth-divider span{font-size:.875rem;padding:0 1rem}.auth-switch{color:#6b7280;font-size:.9rem;margin-top:.75rem;text-align:center}.auth-link{color:#4d8eff;cursor:pointer;font-weight:600;transition:color .2s}.auth-link:hover{color:#3b7ae8;text-decoration:underline}.auth-terms{color:#9ca3af;font-size:.8rem;margin-top:.75rem;text-align:center}.invite-banner{align-items:flex-start;background:linear-gradient(135deg,#f0f7ff,#e7f3ff);border:1.5px solid #4d8eff;border-radius:.75rem;box-shadow:0 2px 8px #4d8eff1a;display:flex;gap:1rem;margin-bottom:1.5rem;overflow:hidden;padding:1.25rem;position:relative}.invite-banner:before{content:"";height:100%;left:0;position:absolute;top:0;width:4px}.invite-banner-icon,.invite-banner:before{background:linear-gradient(135deg,#4d8eff,#3b7ae8)}.invite-banner-icon{align-items:center;border-radius:.5rem;box-shadow:0 2px 8px #4d8eff40;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.invite-banner-icon svg{height:20px;width:20px}.invite-banner-content{flex:1 1;min-width:0}.invite-banner-label{color:#4d8eff;font-size:.8125rem;font-weight:600;letter-spacing:.5px;margin:0 0 .5rem;text-transform:uppercase}.invite-banner-school{color:#1f2937;font-size:1.125rem;font-weight:700;letter-spacing:-.01em;margin:0 0 .5rem}.invite-banner-role{background:#fff;border:1px solid #dbeafe;border-radius:.375rem;box-shadow:0 1px 2px #0000000d;color:#4d8eff;display:inline-block;font-size:.8125rem;font-weight:600;padding:.25rem .75rem}.error-message{margin-bottom:.75rem;padding:.625rem 1rem}.success-message{border:1px solid #bbf7d0;color:#16a34a;padding:1.5rem;text-align:center}.success-message p{color:#16a34a;margin:.5rem 0}@media (max-width:480px){.auth-page{padding:1rem .5rem}.auth-card{padding:2rem 1.5rem}.auth-header{margin-bottom:1.5rem}.auth-logo{height:36px}.auth-card h2{font-size:1.5rem}.auth-subtitle{font-size:.9rem;margin-bottom:1.5rem}.form-row{grid-template-columns:1fr}.form-group{gap:.4rem}.auth-form{gap:.875rem}}@media (max-height:800px){.auth-page{padding:1rem}.auth-card{padding:2rem}.auth-header{margin-bottom:1.5rem}.auth-logo{height:36px}.auth-subtitle{margin-bottom:1.5rem}.auth-form{gap:.875rem}}.otp-input-container{display:flex;gap:.75rem;justify-content:center;margin:1rem 0}.otp-input{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;color:#1f2937;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:1.5rem;font-weight:700;height:3.5rem;text-align:center;transition:all .2s ease;width:3.5rem}.otp-input:focus{background:#f8f9fa;border-color:#4d8eff;box-shadow:0 0 0 4px #4d8eff1a;outline:none;transform:scale(1.05)}.otp-input.filled{background:linear-gradient(135deg,#f0f7ff,#fff);border-color:#4d8eff;color:#1f2937}.otp-input.error{background:#fef2f2;border-color:#ef4444}.otp-input:disabled{background:#f3f4f6;cursor:not-allowed;opacity:.6}.email-highlight{color:#4d8eff;font-weight:600}.success-icon-wrapper{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;box-shadow:0 2px 8px #10b9814d;color:#fff;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.success-message{align-items:flex-start;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1.5px solid #86efac;border-radius:.75rem;display:flex;gap:1rem;padding:1rem}.success-message p{color:#166534;margin:0}@media (max-width:480px){.otp-input-container{gap:.5rem}.otp-input{font-size:1.25rem;height:3rem;width:3rem}}.dashboard-page{margin:0 auto;max-width:1200px;padding:1rem 2rem 2rem}.dashboard-welcome{margin-bottom:1.5rem;margin-top:0}.dashboard-welcome h1{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.dashboard-subtitle{color:#6b7280;font-size:1rem;margin:0}.dashboard-stats{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.stat-card{gap:1rem;transition:transform .2s,border-color .2s,box-shadow .2s}.stat-card:hover{border-color:#4d8eff;box-shadow:0 4px 6px -1px #0000001a;transform:translateY(-2px)}.stat-icon{background:#eff6ff;border-radius:.5rem;font-size:2rem;height:60px;width:60px}.stat-value{font-weight:600;margin-bottom:.25rem}.stat-label{font-size:.9rem}.stat-action{background:#4d8eff;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:.5rem 1rem;transition:background .2s}.stat-action:hover{background:#3b7ae8}.dashboard-quick-actions{margin-top:2rem}.dashboard-quick-actions h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 1rem}.action-buttons{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.action-btn{align-items:flex-start;border:1px solid #e5e7eb;border-radius:.75rem;display:flex;gap:1rem;padding:1.5rem;text-align:left;width:100%}.action-btn:hover{border-color:#4d8eff;box-shadow:0 4px 6px -1px #0000001a;transform:translateY(-2px)}.action-btn.primary{background:linear-gradient(135deg,#eff6ff,#dbeafe)}.action-icon{flex-shrink:0;font-size:1.5rem}.action-title{color:#1f2937;font-size:1.1rem;font-weight:600;margin-bottom:.25rem}.action-desc{color:#6b7280;font-size:.9rem}.delete-modal-overlay{animation:fadeIn .2s ease;background:#00000080;bottom:0;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.delete-modal,.delete-modal-overlay{align-items:center;display:flex;padding:2rem}.delete-modal{animation:slideUp .2s ease;background:#fff;border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;flex-direction:column;max-width:400px;text-align:center;width:100%}.delete-modal-icon{align-items:center;background:#fef2f2;border-radius:50%;display:flex;height:64px;justify-content:center;margin-bottom:1.5rem;width:64px}.delete-modal-icon svg{height:48px;width:48px}.delete-modal-title{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 .75rem}.delete-modal-message{color:#6b7280;font-size:.95rem;line-height:1.5;margin:0 0 2rem}.delete-modal-actions{display:flex;gap:.75rem;width:100%}.delete-modal-cancel,.delete-modal-confirm{border:none;border-radius:.5rem;cursor:pointer;flex:1 1;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.delete-modal-cancel{background:#f3f4f6;color:#374151}.delete-modal-cancel:hover{background:#e5e7eb}.delete-modal-confirm{background:#ef4444;color:#fff}.delete-modal-confirm:hover{background:#dc2626;box-shadow:0 4px 12px #ef44444d;transform:translateY(-1px)}.edit-name-modal-overlay{align-items:center;animation:fadeIn .2s ease;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:2rem;position:fixed;right:0;top:0;z-index:2000}.edit-name-modal{animation:slideUp .2s ease;background:#fff;border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;max-width:500px;padding:2rem;width:100%}.edit-name-modal-title{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.edit-name-modal-input-group{margin-bottom:1.5rem}.edit-name-modal-label{color:#374151;display:block;font-size:.95rem;font-weight:500;margin-bottom:.75rem}.edit-name-modal-input{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;box-sizing:border-box;color:#1f2937;font-size:.95rem;padding:.75rem 1rem;transition:all .2s;width:100%}.edit-name-modal-input:focus{border-color:#4d8eff;box-shadow:0 0 0 3px #4d8eff1a;outline:none}.edit-name-modal-input::placeholder{color:#9ca3af}.edit-name-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.edit-name-modal-cancel,.edit-name-modal-confirm{border:none;border-radius:.5rem;cursor:pointer;font-size:.95rem;font-weight:600;min-width:100px;padding:.75rem 1.5rem;transition:all .2s}.edit-name-modal-cancel{background:#f3f4f6;color:#374151}.edit-name-modal-cancel:hover{background:#e5e7eb}.edit-name-modal-confirm{background:#4d8eff;color:#fff}.edit-name-modal-confirm:hover:not(:disabled){background:#3b7ae8;box-shadow:0 4px 12px #4d8eff4d;transform:translateY(-1px)}.edit-name-modal-confirm:disabled{cursor:not-allowed;opacity:.5}.error-modal-overlay{animation:fadeIn .2s ease;background:#00000080;bottom:0;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.error-modal,.error-modal-overlay{align-items:center;display:flex;padding:2rem}.error-modal{animation:slideUp .2s ease;background:#fff;border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;flex-direction:column;max-width:400px;text-align:center;width:100%}.error-modal-icon{align-items:center;background:#fef2f2;border-radius:50%;display:flex;height:64px;justify-content:center;margin-bottom:1.5rem;width:64px}.error-modal-icon svg{height:48px;width:48px}.error-modal-title{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 .75rem}.error-modal-message{color:#6b7280;font-size:.95rem;line-height:1.5;margin:0 0 2rem}.error-modal-actions{display:flex;gap:.75rem;justify-content:center;width:100%}.error-modal-button{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;min-width:100px;padding:.75rem 2rem;transition:all .2s}.error-modal-button:hover{background:#3b7ae8;box-shadow:0 4px 12px #4d8eff4d;transform:translateY(-1px)}.assessments-submission-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;box-sizing:border-box;display:flex;height:100vh;justify-content:center;left:0;margin:0;overflow:auto;padding:20px;position:fixed;right:0;top:0;width:100vw;z-index:10000}.assessments-submission-modal{animation:modalEnter .3s cubic-bezier(.4,0,.2,1);background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;margin:auto;max-height:90vh;max-width:700px;overflow:hidden;width:100%}@keyframes modalEnter{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.assessments-submission-modal .modal-header{align-items:flex-start;background:linear-gradient(90deg,#4d8eff,#6aa2ff);box-sizing:border-box;color:#fff;display:flex;flex-shrink:0;gap:1rem;justify-content:space-between;padding:24px 28px;width:100%}.assessments-submission-modal .header-left{align-items:flex-start;display:flex;flex:1 1;gap:1rem}.assessments-submission-modal .modal-header h2{color:#fff;font-size:24px;font-weight:700;letter-spacing:-.3px;margin:0 0 4px}.assessments-submission-modal .modal-header p{color:#fffffff2;font-size:14px;margin:0}.assessments-submission-modal .close-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:28px;height:32px;justify-content:center;line-height:1;padding:0;transition:background .2s;width:32px}.assessments-submission-modal .close-btn:hover{background:#ffffff1a}.assessments-submission-modal .modal-content{flex:1 1;gap:24px;overflow-y:auto;padding:32px 28px}.assessments-submission-modal .modal-content,.assessments-submission-modal form{box-sizing:border-box;display:flex;flex-direction:column;max-width:100%;width:100%}.assessments-submission-modal form{flex:1 1;margin:0}.assessments-submission-modal .form-section{box-sizing:border-box;display:flex;flex-direction:column;gap:8px;width:100%}.assessments-submission-modal .form-section.primary-field{gap:12px;margin-bottom:8px}.assessments-submission-modal .form-section.primary-field .form-label{color:#1f2937;font-size:16px;font-weight:700}.assessments-submission-modal .form-section.primary-field .form-input,.assessments-submission-modal .form-section.primary-field .form-select{background:#f0f7ff;border:2px solid #e2e8f0;border-radius:12px;font-size:16px;padding:16px 20px;transition:all .2s}.assessments-submission-modal .form-section.primary-field .form-input:focus,.assessments-submission-modal .form-section.primary-field .form-select:focus{background:#fff;border-color:#4285f4;box-shadow:0 0 0 4px #4285f41a;outline:none;transform:scale(1.01)}.assessments-submission-modal .form-label{align-items:center;color:#374151;display:flex;font-size:14px;font-weight:600;gap:4px}.assessments-submission-modal .required{color:#ef4444;font-weight:700}.assessments-submission-modal .form-input,.assessments-submission-modal .form-select{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;color:#1f2937;font-size:15px;padding:12px 16px;transition:all .2s;width:100%}.assessments-submission-modal .form-select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%234a5568' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;cursor:pointer;padding-right:40px}.assessments-submission-modal .form-input::placeholder{color:#9ca3af}.assessments-submission-modal .form-input:focus,.assessments-submission-modal .form-select:focus{border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a;outline:none}.assessments-submission-modal .upload-area{align-items:center;background:#f9fafb;border:2px dashed #d1d5db;border-radius:12px;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:200px;padding:40px 20px;text-align:center;transition:all .3s}.assessments-submission-modal .upload-area:hover{background:#e8f0fe;border-color:#4285f4;border-style:solid}.assessments-submission-modal .upload-area.drag-active{background:#dbeafe;border-color:#4285f4;border-style:solid;transform:scale(1.02)}.assessments-submission-modal .upload-icon{font-size:48px;margin-bottom:4px}.assessments-submission-modal .upload-text{color:#1f2937;font-size:16px;font-weight:600;margin:0}.assessments-submission-modal .upload-subtext{color:#6b7280;font-size:14px;margin:0}.assessments-submission-modal .upload-hint{color:#9ca3af;font-size:13px;margin-top:4px}.assessments-submission-modal .file-selected{align-items:center;background:#f0fdf4;border:2px solid #10b981;border-radius:12px;box-sizing:border-box;display:flex;gap:16px;padding:16px 20px}.assessments-submission-modal .file-icon{flex-shrink:0;font-size:32px}.assessments-submission-modal .file-details{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.assessments-submission-modal .file-name{color:#065f46;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assessments-submission-modal .file-size{color:#047857;font-size:13px}.assessments-submission-modal .file-remove-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#ef4444;cursor:pointer;display:flex;flex-shrink:0;font-size:24px;height:32px;justify-content:center;line-height:1;padding:4px;transition:all .2s;width:32px}.assessments-submission-modal .file-remove-btn:hover{background:#fee2e2;color:#dc2626}.assessments-submission-modal .form-error{background:#fff5f5;border:1px solid #fecaca;border-radius:8px;color:#991b1b;font-size:14px;font-weight:500;margin-top:4px;padding:12px 16px}.assessments-submission-modal .modal-footer{background:#fff;border-top:1px solid #e5e7eb;box-sizing:border-box;display:flex;flex-shrink:0;gap:12px;justify-content:flex-end;padding:20px 28px;width:100%}.assessments-submission-modal .btn-cancel{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:all .2s}.assessments-submission-modal .btn-cancel:hover{background:#f9fafb;border-color:#9ca3af}.assessments-submission-modal .btn-submit{background:linear-gradient(90deg,#4d8eff,#6aa2ff);border:none;border-radius:8px;box-shadow:0 4px 12px #4d8eff4d;color:#fff;cursor:pointer;font-size:15px;font-weight:700;padding:12px 24px;transition:all .2s}.assessments-submission-modal .btn-submit:hover:not(:disabled){box-shadow:0 6px 16px #4d8eff66;transform:translateY(-2px)}.assessments-submission-modal .btn-submit:disabled{box-shadow:0 4px 12px #4d8eff4d;cursor:not-allowed;opacity:.6;transform:none}@media (max-width:768px){.assessments-submission-modal-overlay{padding:10px}.assessments-submission-modal{border-radius:12px;margin:10px;max-height:95vh;max-width:100%}.assessments-submission-modal .modal-header{padding:20px}.assessments-submission-modal .modal-content{gap:20px;padding:24px 20px}.assessments-submission-modal .form-section.primary-field .form-input,.assessments-submission-modal .form-section.primary-field .form-select{font-size:15px;padding:14px 16px}.assessments-submission-modal .upload-area{min-height:150px;padding:30px 16px}.assessments-submission-modal .upload-icon{font-size:40px}.assessments-submission-modal .modal-footer{flex-direction:column-reverse;padding:16px 20px}.assessments-submission-modal .btn-cancel,.assessments-submission-modal .btn-submit{width:100%}}.assessments-page{margin:0 auto;max-width:1400px;padding:1rem 2rem 2rem}.search-input{box-sizing:border-box;min-width:200px}.assessment-select{-webkit-appearance:menulist!important;appearance:menulist!important;background:#fff!important;background-image:none!important;border:1px solid #d1d5db!important;border-radius:.5rem!important;box-sizing:border-box!important;color:#1f2937!important;font-size:.95rem!important;min-width:200px!important;padding:.75rem 3.5rem .75rem 1rem!important}.apply-btn,.reset-btn{border-radius:.5rem;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s;white-space:nowrap}.reset-btn{background:#fff;border:1px solid #d1d5db;color:#374151}.reset-btn:hover{background:#f9fafb;border-color:#9ca3af}.apply-btn{background:#4d8eff;border:none;color:#fff}.apply-btn:hover{background:#3b7ae8;box-shadow:0 4px 12px #4d8eff4d;transform:translateY(-1px)}.assessments-content{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;min-height:400px;padding:2rem}.assessments-table-container{isolation:auto;overflow-x:auto;overflow-y:visible;position:relative;z-index:1}.assessments-table{border-collapse:collapse;border-spacing:0;isolation:auto;position:relative;width:100%;z-index:1}.assessments-table thead{background:#f9fafb}.assessments-table th{color:#6b7280;font-size:.875rem;font-weight:600;letter-spacing:.05em;text-align:left;text-transform:uppercase;white-space:nowrap}.assessments-table td,.assessments-table th{border-bottom:1px solid #e5e7eb;padding:1rem}.assessments-table td{color:#1f2937;font-size:.95rem;vertical-align:middle}.assessments-table tbody tr{isolation:auto;position:relative;transition:background .2s;z-index:auto}.assessments-table tbody tr:hover{background:#f9fafb}.assessments-table tbody tr:last-child td{border-bottom:none}.assessment-name-cell{color:#1f2937;font-weight:500}.assessment-name-text{display:block;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.created-date{color:#6b7280}.submissions,.total-marks{text-align:center}.assessments-table td.student-average,.assessments-table td.submissions,.assessments-table td.total-marks,.assessments-table th.student-average,.assessments-table th.submissions,.assessments-table th.total-marks{text-align:center!important}.marks-badge,.submissions-badge{background:#eff6ff;border-radius:9999px;color:#1e40af;display:inline-block;font-size:.875rem;font-weight:500;min-width:40px;padding:.375rem .75rem;text-align:center}.student-average{min-width:100px;text-align:center}.student-average .no-data{color:#9ca3af}.evaluation-cell,.status-cell{min-width:120px;text-align:center;vertical-align:middle}.evaluation-header,.status-header{text-align:center!important}.evaluation-cell .no-data,.evaluation-cell .status-badge,.status-cell .status-badge{align-items:center;display:inline-flex;justify-content:center;margin:0 auto}.publish-btn,.status-badge{border-radius:.5rem;display:inline-block;font-size:.875rem;font-weight:500;padding:.375rem .75rem;white-space:nowrap}.publish-btn.published,.status-badge.complete{background:#f0fdf4;color:#16a34a}.publish-btn.unpublished,.status-badge.processing{background:#dbeafe;color:#1e40af}.status-badge.failed{color:#dc2626}.evaluation-cell .no-data{color:#9ca3af}.actions-cell{width:50px;z-index:auto}.actions-cell>div{display:inline-block}.menu-container{isolation:isolate;z-index:10}.menu-container:has(.dropdown-menu){z-index:10000}.menu-trigger{align-items:center;background:none;color:#6b7280;display:flex;font-size:1.5rem;height:32px;justify-content:center;padding:.5rem;transition:color .2s;width:32px}.menu-overlay{background:#0000;cursor:default;z-index:9998}.dropdown-menu{-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#fff!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;flex-direction:column;isolation:isolate;min-width:220px;mix-blend-mode:normal!important;opacity:1!important;padding:.375rem 0;pointer-events:auto;transform:translateZ(0);will-change:transform;z-index:10001!important}.menu-item{background:#fff!important;border-radius:0;margin:0;padding:.75rem 1.25rem;position:relative;transition:all .15s ease;white-space:nowrap;z-index:1}.menu-item:first-child{margin-top:0}.menu-item:last-child{margin-bottom:0}.menu-item:not(:last-child):after{background:#e5e7eb;bottom:0;content:"";height:1px;left:1.25rem;position:absolute;right:1.25rem}.menu-item:hover:not(:disabled){background:#f3f4f6!important}.menu-item.delete{margin-top:.25rem;padding-top:.875rem}.add-assessment-btn{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s;white-space:nowrap}.menu-item-before-delete:after{display:none!important}.menu-item.muted,.menu-item:disabled{color:#9ca3af;cursor:not-allowed;opacity:.6}.menu-item.delete:hover:not(:disabled){background:#fef2f2}@media (max-width:768px){.assessments-page{padding:1rem}.filters-section{flex-direction:column}.apply-btn,.assessment-select,.reset-btn,.search-input{width:100%}.assessments-table-container{overflow-x:scroll}.pagination-container{align-items:stretch;flex-direction:column;padding:1rem}.pagination-info{justify-content:center;width:100%}.pagination-controls{flex-wrap:wrap;justify-content:center}.pagination-pages{justify-content:center;order:-1;width:100%}}.export-modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.export-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;left:50%;max-height:90vh;max-width:560px;overflow:hidden;position:fixed;top:50%;transform:translate(-50%,-50%);width:90%;z-index:1001}.export-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.export-modal-header h2{color:#111827;font-size:1.25rem;font-weight:600;margin:0}.export-modal-header .close-btn{background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;font-size:1.5rem;padding:4px;transition:all .15s ease}.export-modal-header .close-btn:hover{background:#f3f4f6;color:#111827}.export-modal-body{flex:1 1;overflow-y:auto;padding:24px}.export-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.875rem;margin-bottom:20px;padding:12px 16px}.export-section{margin-bottom:24px}.export-section:last-child{margin-bottom:0}.export-section h3{color:#374151;font-size:.875rem;font-weight:600;letter-spacing:.05em;margin:0 0 12px;text-transform:uppercase}.format-option,.format-options{display:flex;gap:12px}.format-option{align-items:center;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;flex:1 1;padding:16px;transition:all .15s ease}.format-option:hover{background:#f9fafb;border-color:#d1d5db}.format-option.selected{background:#ecfdf5;border-color:#10b981}.format-option input{display:none}.format-icon{font-size:1.5rem}.format-label{color:#111827;font-weight:500}.scope-options{display:flex;flex-direction:column;gap:8px}.scope-option{align-items:flex-start;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;display:flex;gap:12px;padding:14px 16px;transition:all .15s ease}.scope-option:hover{background:#f9fafb;border-color:#d1d5db}.scope-option.selected{background:#ecfdf5;border-color:#10b981}.scope-option input[type=radio]{accent-color:#10b981;height:16px;margin-top:2px;width:16px}.scope-content{display:flex;flex-direction:column;gap:2px}.scope-label{color:#111827;font-size:.9375rem;font-weight:500}.scope-description{color:#6b7280;font-size:.8125rem}.assessment-select-export{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:.875rem;margin-left:28px;margin-top:8px;padding:10px 14px;width:100%;width:calc(100% - 28px)}.assessment-select-export:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b9811a;outline:none}.columns-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.columns-group{display:flex;flex-direction:column;gap:8px}.columns-group-label{color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-bottom:4px;text-transform:uppercase}.column-checkbox{align-items:center;cursor:pointer;display:flex;gap:10px;padding:6px 0}.column-checkbox input[type=checkbox]{accent-color:#10b981;cursor:pointer;height:16px;width:16px}.column-checkbox span{color:#374151;font-size:.875rem}.export-modal-footer{align-items:center;background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px 24px}.export-preview{align-items:baseline;display:flex;gap:6px}.preview-count{color:#10b981;font-size:1.25rem;font-weight:700}.preview-label{color:#6b7280;font-size:.875rem}.export-actions{display:flex;gap:12px}.export-modal .cancel-btn{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:.875rem;font-weight:500;padding:10px 20px;transition:all .15s ease}.export-modal .cancel-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.export-modal .cancel-btn:disabled{cursor:not-allowed;opacity:.5}.export-btn-primary{align-items:center;background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:8px;padding:10px 24px;transition:all .15s ease}.export-btn-primary:hover:not(:disabled){background:#059669}.export-btn-primary:disabled{background:#9ca3af;cursor:not-allowed}.export-btn-primary .spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}@media (max-width:640px){.export-modal{max-height:95vh;width:95%}.format-options{flex-direction:column}.columns-grid{grid-template-columns:1fr}.export-modal-footer{flex-direction:column;gap:16px}.export-preview{align-self:flex-start}.export-actions{width:100%}.export-btn-primary,.export-modal .cancel-btn{flex:1 1;justify-content:center}}.marks-page{margin:0 auto;max-width:1400px;padding:1rem 2rem 2rem}.page-header h1{margin:0 0 .75rem}.export-btn{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#374151;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.export-btn:hover{background:#f9fafb;border-color:#9ca3af}.mark-button{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s;white-space:nowrap}.mark-button:hover{background:#3b7ae8;box-shadow:0 4px 12px #4d8eff4d;transform:translateY(-1px)}.active-job-section{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;margin-bottom:2rem;padding:2rem}.filters-section{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.assessment-select,.search-input{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#1f2937;flex:1 1;font-size:.95rem;min-width:200px;padding:.75rem 1rem}.assessment-select-wide{max-width:500px;min-width:350px}.assessment-select:focus,.search-input:focus{border-color:#4d8eff;box-shadow:0 0 0 3px #4d8eff1a;outline:none}.reset-filters-btn{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#374151;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.reset-filters-btn:hover{background:#f9fafb;border-color:#9ca3af}.apply-filters-btn{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.apply-filters-btn:hover{background:#3b7ae8}.marks-content{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden;padding:0}.empty-state p{margin:0 0 1.5rem}.empty-action-btn{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:background .2s}.empty-action-btn:hover{background:#3b7ae8;box-shadow:0 4px 12px #4d8eff4d;transform:translateY(-1px)}.skeleton-icon{border-radius:.25rem}.skeleton-input,.skeleton-select{border-radius:.5rem}.pagination-loading-overlay{align-items:center;background:#ffffffe6;border-radius:.5rem;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.pagination-spinner{align-items:center;display:flex;flex-direction:column;gap:1rem}.pagination-spinner .spinner-circle{animation:spin .8s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:48px;width:48px}.pagination-spinner p{color:#6b7280;font-size:.95rem;font-weight:500;margin:0}.submissions-table-container{position:relative}.submissions-table{border-spacing:0}.submissions-table th{background:#f9fafb;position:-webkit-sticky;position:sticky;top:0;z-index:10}.submissions-table th:first-child{max-width:120px;min-width:120px;width:120px}.submissions-table th:nth-child(2){max-width:180px;min-width:180px;width:180px}.submissions-table th:nth-child(3){max-width:200px;min-width:200px;width:200px}.submissions-table th:nth-child(4){max-width:150px;min-width:150px;width:150px}.submissions-table th:nth-child(5){max-width:180px;min-width:180px;text-align:center;width:180px}.submissions-table th:nth-child(6){text-align:center}.submissions-table th:last-child,.submissions-table th:nth-child(6){max-width:56px;min-width:56px;width:56px}.submissions-table td{box-sizing:border-box;overflow:hidden;vertical-align:middle}.submissions-table tbody tr{border-bottom:1px solid #e5e7eb}.submissions-table td:first-child{max-width:120px;min-width:120px;width:120px}.submissions-table td:nth-child(2){max-width:180px;min-width:180px;width:180px}.submissions-table td:nth-child(3){max-width:200px;min-width:200px;width:200px}.submissions-table td:nth-child(4){border-bottom:none;max-width:150px;min-width:150px;text-align:left;width:150px}.submissions-table td:nth-child(5){max-width:180px;min-width:180px;text-align:center;width:180px}.submissions-table td:nth-child(6){text-align:center}.submissions-table td:last-child,.submissions-table td:nth-child(6){max-width:56px;min-width:56px;width:56px}.submissions-table tbody tr:last-child{border-bottom:none}.roll-number{color:#6b7280;font-size:.95rem}.student-name{box-sizing:border-box;max-width:180px;min-width:180px;padding-right:32px;position:relative;width:180px}.student-name-text{display:inline-block;height:1.5rem;line-height:1.5;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.submitted-date{color:#6b7280}.assessment-period{color:#6b7280;font-size:.95rem}.student-mark{align-items:center;border-bottom:none;display:flex;gap:.5rem;vertical-align:middle;width:100%}.mark-badge{background:#dbeafe;color:#1e40af;font-weight:600;min-width:50px}.mark-badge,.percentage-badge{align-items:center;border:none;border-radius:.375rem;box-sizing:border-box;display:inline-flex;flex-shrink:0;font-size:.875rem;justify-content:center;line-height:1.2;min-height:24px;padding:.375rem .625rem;text-align:center;white-space:nowrap}.percentage-badge{background:#f3f4f6;color:#6b7280;font-weight:500;min-width:55px}.no-mark{align-items:center;color:#9ca3af;display:inline-flex;font-size:.95rem;min-height:24px;padding:.375rem 0}.progress-bar-wrapper{background:#e5e7eb;border-radius:4px;height:8px;overflow:hidden;width:100%}.progress-bar-fill{background:#4d8eff;border-radius:4px}.status-cell{max-width:200px;min-width:200px;overflow:visible;text-align:center;vertical-align:middle;white-space:nowrap;width:200px}.status-badge-container{display:flex;gap:.5rem;width:-webkit-fit-content;width:fit-content}.status-badge,.status-badge-container{align-items:center;justify-content:center;margin:0 auto}.status-badge{border-radius:.5rem;box-sizing:border-box;display:inline-flex;font-size:.8125rem;font-weight:500;gap:.25rem;max-width:100%;overflow:visible;white-space:nowrap}.view-report-icon{align-items:center;background:#0000;border:none;border-radius:.25rem;color:#6b7280;cursor:pointer;display:flex;height:28px;justify-content:center;line-height:1;padding:.375rem;transition:all .2s;width:28px}.view-report-icon:hover{background:#f3f4f6;color:#4d8eff}.view-report-icon svg{height:16px;width:16px}.status-badge.complete{background:#d1fae5;color:#065f46}.status-badge.processing{background:#dbeafe;color:#1e40af}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.failed{background:#fee2e2;color:#991b1b}.retry-button{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#991b1b;cursor:pointer;display:inline-flex;font-size:.8125rem;font-weight:500;gap:.5rem;line-height:1;padding:.5rem 1rem;transition:all .2s;white-space:nowrap}.retry-button:hover{background:#fee2e2;border-color:#fca5a5;color:#7f1d1d;transform:translateY(-1px)}.retry-button:active{background:#fef2f2;transform:translateY(0)}.retry-button svg{color:#991b1b;flex-shrink:0;height:14px;width:14px}.retry-button span{font-size:.8125rem;font-weight:500}.retry-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.retry-button:disabled:hover{background:#fef2f2;border-color:#fecaca;color:#991b1b;transform:none}.retry-button svg.spinning{animation:spin 1s linear infinite}.view-icon-cell{overflow:visible;text-align:center;width:56px}.actions-cell{overflow:visible;text-align:right;width:56px}.menu-container{display:inline-block;position:relative}.menu-trigger{background:#0000;border:none;border-radius:.25rem;color:#374151;cursor:pointer;font-size:1.25rem;font-weight:600;line-height:1;margin-right:2px;padding:.25rem .5rem;transition:all .2s}.menu-trigger:hover{background:#f3f4f6;color:#1f2937}.menu-trigger:focus-visible{background:#f3f8ff;box-shadow:0 0 0 3px #4d8eff59;outline:none}.menu-overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.dropdown-menu{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;min-width:200px;overflow:hidden;position:fixed;z-index:1001}.menu-item{background:#fff;display:block;font-size:.9rem}.menu-item.delete{color:#dc2626}.menu-item.delete:hover{background:#fef2f2}@media (max-width:768px){.pagination-container{align-items:stretch;flex-direction:column;padding:1rem}.pagination-info{justify-content:center;text-align:center;width:100%}.pagination-controls{flex-wrap:wrap;justify-content:center;width:100%}.pagination-pages{justify-content:center;order:-1;width:100%}.pagination-btn{flex:1 1;justify-content:center;min-width:auto}}.edit-student-name{align-items:center;display:flex;gap:.5rem;height:1.5rem;position:relative;width:100%}.student-name-input{background:#fff;border:1px solid #4d8eff;border-radius:.375rem;box-sizing:border-box;color:#1f2937;flex:1 1;font-size:.95rem;font-weight:500;height:1.5rem;line-height:1.5;margin:0;max-width:calc(100% - 32px);min-width:0;padding:0 .5rem}.student-name-input:focus{border-color:#3b7ae8;box-shadow:0 0 0 2px #4d8eff1a;outline:none}.save-btn-small{align-items:center;background:#4d8eff;border:none;border-radius:.25rem;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:.875rem;height:24px;justify-content:center;max-width:24px;min-width:24px;position:absolute;right:0;top:50%;transform:translateY(-50%);transition:all .2s;width:24px}.save-btn-small:hover{background:#3b7ae8}@media (max-width:768px){.header-top{flex-direction:column}.header-actions{justify-content:flex-end;width:100%}.filters-section{flex-direction:column}.assessment-select,.search-input{width:100%}.submissions-table{font-size:.85rem}.submissions-table td,.submissions-table th{padding:.75rem .5rem}}:root{--react-pdf-annotation-layer:1;--annotation-unfocused-field-background:url('data:image/svg+xml;charset=utf-8,<svg width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" style="fill:rgba(0,54,255,.13)"/></svg>');--input-focus-border-color:Highlight;--input-focus-outline:1px solid Canvas;--input-unfocused-border-color:#0000;--input-disabled-border-color:#0000;--input-hover-border-color:#000;--link-outline:none}@media screen and (forced-colors:active){:root{--input-focus-border-color:CanvasText;--input-unfocused-border-color:ActiveText;--input-disabled-border-color:GrayText;--input-hover-border-color:Highlight;--link-outline:1.5px solid LinkText}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation :is(input,textarea):required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{left:0;pointer-events:none;position:absolute;top:0;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translateX(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{height:100%;position:absolute;width:100%}.annotationLayer section{box-sizing:border-box;margin:0;pointer-events:auto;position:absolute;text-align:left;text-align:initial;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:none;outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{font-size:1em;height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{background:#ff0;box-shadow:0 2px 10px #ff0;opacity:.2}.annotationLayer .textAnnotation img{cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input,.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .textWidgetAnnotation :is(input,textarea){background-image:url('data:image/svg+xml;charset=utf-8,<svg width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" style="fill:rgba(0,54,255,.13)"/></svg>');background-image:var(--annotation-unfocused-field-background);border:2px solid #0000;border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px*var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation :is(input,textarea):required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled]{background:none;border:2px solid #0000;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation :is(input,textarea):hover{border:2px solid #000;border:2px solid var(--input-hover-border-color)}.annotationLayer .buttonWidgetAnnotation.checkBox input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation :is(input,textarea):hover{border-radius:2px}.annotationLayer .choiceWidgetAnnotation select:focus,.annotationLayer .textWidgetAnnotation :is(input,textarea):focus{background:none;border:2px solid Highlight;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-color:initial;background-image:none}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid Highlight;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid Highlight;border:2px solid var(--input-focus-border-color);outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{font-size:calc(9px*var(--total-scale-factor));min-width:calc(180px*var(--total-scale-factor));pointer-events:none;position:absolute;width:100%}.annotationLayer .popup{word-wrap:break-word;background-color:#ff9;border-radius:calc(2px*var(--total-scale-factor));box-shadow:0 calc(2px*var(--total-scale-factor)) calc(5px*var(--total-scale-factor)) #888;cursor:pointer;font:message-box;margin-left:calc(5px*var(--total-scale-factor));max-width:calc(180px*var(--total-scale-factor));padding:calc(6px*var(--total-scale-factor));pointer-events:auto;position:absolute;white-space:normal}.annotationLayer .popup>*{font-size:calc(9px*var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px*var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid #333;margin-top:calc(2px*var(--total-scale-factor));padding-top:calc(2px*var(--total-scale-factor))}.annotationLayer .richText>*{font-size:calc(9px*var(--total-scale-factor));white-space:pre-wrap}.annotationLayer .caretAnnotation,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .fileAttachmentAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .highlightAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .lineAnnotation svg line,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .squareAnnotation svg rect,.annotationLayer .squigglyAnnotation,.annotationLayer .stampAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .underlineAnnotation{cursor:pointer}.annotationLayer section svg{height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer .annotationTextContent{color:#0000;height:100%;opacity:0;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.annotationLayer .annotationTextContent span{display:inline-block;width:100%}:root{--react-pdf-text-layer:1;--highlight-bg-color:#b400aa;--highlight-selected-bg-color:#006400}@media screen and (forced-colors:active){:root{--highlight-bg-color:Highlight;--highlight-selected-bg-color:ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translateX(-100%)}.textLayer{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;inset:0;line-height:1;overflow:hidden;position:absolute;text-align:left;text-align:initial;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:#0000;cursor:text;margin:0;position:absolute;transform-origin:0 0;white-space:pre}.textLayer span.markedContent{height:0;top:0}.textLayer .highlight{background-color:#b400aa;background-color:var(--highlight-bg-color);border-radius:4px;margin:-1px;padding:1px}.textLayer .highlight.appended{position:static}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:#006400;background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:#0000}.textLayer .endOfContent{cursor:default;display:block;inset:100% 0 0;position:absolute;-webkit-user-select:none;user-select:none;z-index:-1}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{display:none;height:0;left:0;position:absolute;top:0;width:0}.pdf-viewer-overlay{align-items:center;background:#000000bf;bottom:0;display:flex;justify-content:center;left:0;overflow:auto;padding:2rem;position:fixed;right:0;top:0;z-index:10000}.pdf-viewer-container{background:#fff;border-radius:.75rem;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:95vh;max-width:95vw;overflow:hidden}.pdf-viewer-header{align-items:center;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem 1.5rem}.pdf-viewer-title{color:#111827;font-size:1.1rem;font-weight:700}.pdf-viewer-close{align-items:center;background:#0000;border:none;border-radius:.5rem;color:#6b7280;cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;line-height:1;transition:all .2s ease;width:32px}.pdf-viewer-close:hover{background:#f3f4f6;color:#111827}.pdf-viewer-controls{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:.75rem 1.5rem}.pdf-page-controls{align-items:center;display:flex;gap:.75rem}.pdf-page-controls button{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#374151;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1rem;transition:all .2s ease}.pdf-page-controls button:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.pdf-page-controls button:disabled{cursor:not-allowed;opacity:.5}.pdf-page-info{color:#6b7280;font-size:.875rem;font-weight:600;min-width:100px;text-align:center}.pdf-zoom-controls{align-items:center;display:flex;gap:.5rem;margin-left:auto}.pdf-zoom-controls button{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#374151;cursor:pointer;font-size:.875rem;font-weight:700;min-width:36px;padding:.5rem .75rem;transition:all .2s ease}.pdf-zoom-controls button:hover:not(:disabled){background:#f9fafb;border-color:#4d8eff;color:#4d8eff}.pdf-zoom-controls button:disabled{cursor:not-allowed;opacity:.5}.pdf-zoom-info{color:#374151;font-size:.875rem;font-weight:600;min-width:50px;text-align:center}.pdf-reset-zoom{margin-left:.5rem;min-width:auto!important;padding:.5rem 1rem!important}.pdf-viewer-content{align-items:flex-start;background:#f3f4f6;display:flex;flex:1 1;justify-content:center;overflow:auto;padding:2rem}.pdf-error,.pdf-loading{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;padding:3rem}.pdf-spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#4d8eff;height:48px;margin-bottom:1rem;width:48px}.pdf-error p{color:#dc2626;font-size:1rem;margin-bottom:1rem}.pdf-error button{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-weight:600;padding:.5rem 1.5rem;transition:all .2s ease}.pdf-error button:hover{background:#3b7ae8}.pdf-page{background:#fff;border-radius:.25rem;box-shadow:0 4px 12px #00000026}.react-pdf__Page{margin:0 auto}.react-pdf__Page__canvas{display:block}.react-pdf__Page__annotations,.react-pdf__Page__textContent{border:1px solid #0000}.pdf-viewer-inline-wrapper{background:#f9fafb;border:1px solid #f3f4f6;border-radius:.625rem;min-height:400px;padding:1rem;width:100%}.pdf-viewer-inline-controls{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem}.pdf-viewer-inline-content{align-items:flex-start;background:#fff;border-radius:.5rem;display:flex;justify-content:center;min-height:300px;overflow:auto;padding:1rem}.report-detail-page{background:#f8f9fa;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:17px;height:100vh;scrollbar-gutter:stable both-edges}.report-detail-error{align-items:center;color:#6b7280;display:flex;font-size:1.2rem;height:100vh;justify-content:center}.skeleton-icon,.skeleton-logo,.skeleton-select{border-radius:.5rem}.skeleton-avatar{border-radius:50%}.skeleton-box{border-radius:.5rem}.report-detail-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000a;display:flex;padding:1.25rem 2rem;position:relative;z-index:10}.report-detail-header .header-actions{align-items:center;display:flex;flex:0 0 auto;gap:.75rem;justify-content:flex-end;margin-left:auto}.share-btn{align-items:center;background:#4d8eff;border:none;border-radius:.625rem;box-shadow:0 2px 4px #4d8eff40,0 1px 2px #0000001a;color:#fff;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:700;justify-content:center;letter-spacing:.01em;padding:.75rem 1.75rem;transition:all .2s ease;white-space:nowrap}.share-btn:hover{background:#3b7ae8;box-shadow:0 4px 12px #4d8eff59,0 2px 4px #0000001a;transform:translateY(-1px)}.share-btn:active{box-shadow:0 2px 4px #4d8eff40;transform:translateY(0)}.header-left{align-items:center;flex:0 0 auto;gap:1rem}.back-btn{align-items:center;background:#0000!important;border:none!important;border-radius:0!important;box-shadow:none!important;display:inline-flex;font-size:1.25rem;height:auto;justify-content:center;line-height:1;padding:0 .25rem!important;width:auto}.back-btn,.back-btn:hover{color:#111827}.report-detail-header .back-btn{color:#111827!important}.student-selector{margin-left:1rem}.student-dropdown{-webkit-appearance:none;appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23374151' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;border:1px solid #d1d5db;border-radius:.625rem;box-shadow:0 1px 2px #0000000a;color:#1f2937;cursor:pointer;font-size:.95rem;font-weight:600;padding:.625rem 2.5rem .625rem 1rem;transition:all .2s ease}.student-dropdown:hover{border-color:#9ca3af;box-shadow:0 2px 4px #0000000f}.student-dropdown:focus{border-color:#4d8eff;box-shadow:0 0 0 3px #4d8eff1a,0 2px 4px #0000000f;outline:none}.header-center{align-items:center;display:flex;flex-direction:column;gap:.5rem;justify-content:center;left:50%;position:absolute;text-align:center;transform:translateX(-50%)}.header-center h1{color:#111827;font-size:1.75rem;font-weight:700;letter-spacing:-.01em;margin:0}.score-badge-header{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #3b82f633;border-radius:.75rem;box-shadow:0 1px 2px #3b82f61a;color:#1e40af;display:inline-block;font-size:.95rem;font-weight:700;padding:.5rem 1rem}.action-btn{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#374151;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all .2s}.action-btn:hover{background:#f3f4f6}.action-btn.primary{background:#4d8eff;border-color:#4d8eff;color:#fff}.action-btn.primary:hover{background:#3b7ae8}.report-detail-content{background:#f8f9fa;flex:1 1;min-height:calc(100vh - 80px);overflow:hidden}.icon-sidebar,.report-detail-content{display:flex;height:calc(100vh - 80px);position:relative}.icon-sidebar{align-items:center;background:#fff;border-right:1px solid #e5e7eb;box-shadow:1px 0 3px #00000005;flex-direction:column;flex-shrink:0;overflow:visible;width:60px}.sidebar-logo{align-items:center;border:none;cursor:pointer;display:flex;justify-content:center;padding:1rem .5rem;transition:none;width:100%}.sidebar-logo,.sidebar-logo:hover{background:#0000;color:#4d8eff}.logo-placeholder{align-items:center;background:#0000;border:none;border-radius:0;color:#4d8eff!important;display:flex;font-size:1.1rem;font-weight:700;justify-content:center;letter-spacing:.05em}.logo-image,.logo-placeholder{height:40px;transition:all .2s ease;width:40px}.logo-image{display:block;object-fit:contain}.sidebar-logo:hover .logo-image{opacity:.85;transform:scale(1.1)}.sidebar-nav{align-items:center;display:flex;flex:1 1 auto;flex-direction:column;gap:.5rem;min-height:0;overflow-x:hidden;overflow-y:auto;padding:1rem .25rem 80px;width:100%}.questions-sidebar{box-shadow:1px 0 3px #00000005;width:300px}.nav-item{align-items:center;border-radius:.5rem;cursor:pointer;display:flex;font-size:1.2rem;height:40px;justify-content:center;transition:all .2s;width:40px}.nav-item:focus{outline:none}.nav-item:hover{background:#f3f4f6}.nav-item.active{background:#eff6ff;color:#4d8eff}.sidebar-profile{align-items:center;background:#fff;border-top:1px solid #e5e7eb;bottom:0;display:flex;justify-content:center;left:0;min-height:60px;padding:1rem .5rem;position:absolute;right:0;width:100%;z-index:10}.profile-container{position:relative}.profile-avatar{align-items:center;background:linear-gradient(135deg,#4d8eff,#3b7ae8);border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:.9rem;font-weight:600;height:40px;justify-content:center;min-height:40px;min-width:40px;transition:all .2s;width:40px}.profile-avatar:hover{box-shadow:0 2px 8px #4d8eff4d;transform:scale(1.05)}.profile-menu-overlay{background:#0000;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.profile-menu{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;bottom:60px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;display:flex;flex-direction:column;left:70px;min-width:220px;padding:.5rem 0;position:absolute;z-index:1001}.profile-menu-item{align-items:center;background:none;border:none;color:#374151;cursor:pointer;display:flex;font-size:.9rem;gap:.75rem;padding:.75rem 1rem;text-align:left;transition:background .2s;width:100%}.profile-menu-item:hover{background:#f3f4f6}.profile-menu-item.sign-out{color:#dc2626}.profile-menu-item.sign-out:hover{background:#fef2f2}.profile-menu-item .menu-icon{align-items:center;display:flex;font-size:1rem;justify-content:center;width:20px}.profile-menu-divider{background:#e5e7eb;height:1px;margin:.5rem 0}.rdp-questions-list{flex:1 1;overflow-y:auto;padding:.5rem;width:100%}.rdp-question-item{align-items:flex-start;background:#fff;border:1px solid #f3f4f6;border-left:3px solid #0000;border-radius:.625rem;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:.625rem;margin-bottom:.5rem;padding:1rem .75rem;transition:all .2s ease;width:100%}.rdp-question-divider{display:none}.rdp-question-item:hover{background:#f9fafb;border-color:#e5e7eb #e5e7eb #e5e7eb #0000;box-shadow:0 1px 3px #0000000d;transform:translateY(-1px)}.rdp-question-item.active{background:linear-gradient(135deg,#eff6ff,#f0f9ff);border-color:#dbeafe #dbeafe #dbeafe #4d8eff;box-shadow:0 2px 6px #4d8eff1f,0 1px 2px #0000000d}.rdp-question-header-item{align-items:center;color:#111827;display:flex;font-size:.9rem;font-weight:700;gap:.625rem;width:100%}.rdp-question-number{color:#3b82f6;font-weight:700;letter-spacing:-.01em}.rdp-question-score-badge{align-items:center;background:#fff;border:1px solid #dbeafe;border-radius:.5rem;box-shadow:0 1px 2px #3b82f61a;color:#1e40af;display:inline-flex;font-size:.8rem;font-weight:700;justify-content:center;line-height:1.2;padding:.25rem .625rem}.rdp-question-preview{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#6b7280;display:-webkit-box;font-size:.85rem;font-weight:400;line-height:1.5;overflow:hidden;text-overflow:ellipsis;width:100%}.rdp-edit-icon{font-size:.9rem;opacity:.6}.question-details-panel{background:#0000;box-sizing:border-box;margin:0 auto;max-width:900px;overflow-y:scroll;padding:2.5rem 3rem;scrollbar-gutter:stable both-edges;width:100%}.no-question-selected{background:#fff;border:1px solid #f3f4f6;border-radius:.75rem;color:#9ca3af;font-size:1.1rem;font-weight:500;margin:2rem;padding:3rem}.question-header{align-items:flex-start;border-bottom:2px solid #f3f4f6;display:flex;justify-content:space-between;margin-bottom:2.5rem;padding-bottom:1.75rem}.question-title{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.question-title h2{align-items:center;color:#111827;display:flex;font-size:1.75rem;font-weight:700;gap:.75rem;letter-spacing:-.02em;margin:0}.question-score-badge-header{align-items:center;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #3b82f640;border-radius:.75rem;box-shadow:0 2px 4px #3b82f626,0 1px 2px #0000000d;color:#1e40af;display:inline-flex;font-size:1rem;font-weight:700;justify-content:center;line-height:1;margin-left:.75rem;padding:.5rem 1rem}.score-input-group{align-items:center;display:flex;gap:.5rem}.score-input{background:#f8fbff;border:1px solid #d7dcea;border-radius:12px;box-shadow:inset 0 1px 0 #10182805;color:#111827;font-size:1rem;font-weight:700;height:34px;padding:0 8px;text-align:center;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;width:56px}.score-input:disabled{background:#f9fafb;color:#1f2937}.score-input:focus{background:#fff;border-color:#8bb3ff;box-shadow:0 0 0 3px #4d8eff26;outline:none}.out-of{color:#111827;font-size:.98rem}.out-of strong{font-weight:800}.score-input::-webkit-inner-spin-button,.score-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.score-input[type=number]{-moz-appearance:textfield}.question-actions{display:flex;gap:.5rem}.edit-btn{align-items:center;background:#fff!important;border:1px solid #d1d5db!important;border-radius:.625rem;box-shadow:0 1px 2px #0000000d;color:#374151!important;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:700;gap:.5rem;padding:.625rem 1.25rem;transition:all .2s ease}.edit-btn:hover{background:#f9fafb!important;border-color:#9ca3af!important;box-shadow:0 2px 6px #0000001a;color:#111827!important;transform:translateY(-1px)}.edit-btn:active{box-shadow:0 1px 2px #0000000d;transform:translateY(0)}.cancel-btn,.save-btn{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#374151;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all .2s}.cancel-btn:hover,.save-btn:hover{background:#f3f4f6}.save-btn{background:#10b981;border-color:#10b981}.save-btn:hover{background:#059669}.feedback-section,.mark-breakdown-section,.question-text-section,.student-answer-section{background:#fff;border:1px solid #f3f4f6;border-radius:.75rem;box-shadow:0 1px 3px #0000000a;margin-bottom:2.5rem;padding:1.5rem;transition:all .2s ease}.feedback-section:hover,.mark-breakdown-section:hover,.question-text-section:hover,.student-answer-section:hover{border-color:#e5e7eb;box-shadow:0 2px 6px #0000000f}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.section-label{font-weight:700}.enhance-btn{background:#0000;border:none;border-radius:.5rem;color:#4d8eff;cursor:pointer;font-size:.875rem;font-weight:600;padding:.375rem .75rem;transition:all .2s ease}.enhance-btn:hover{background:#f0f9ff;color:#3b7ae8}.enhance-overlay{background:#0f172a52;inset:0;position:fixed;z-index:10019}.enhance-popup{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;bottom:20px;box-shadow:0 20px 50px #10182833,0 8px 24px #1018281f;max-width:calc(100vw - 24px);padding:1.5rem;position:fixed;right:20px;width:440px;z-index:10020}.enhance-header{align-items:center;display:flex;gap:8px;justify-content:space-between;position:relative}.enhance-title{color:#111827;font-size:1.1rem;font-weight:700;letter-spacing:-.01em;padding-right:28px}.enhance-close{background:#0000;border:none;color:#6b7280;cursor:pointer;font-size:20px;line-height:1}.enhance-close:hover{color:#111827}.enhance-input{background:#fff;border:1px solid #d1d5db;border-radius:.75rem;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,Arial,sans-serif;font-size:.95rem;line-height:1.6;min-height:96px;padding:1rem;resize:vertical;transition:all .2s ease;width:100%}.enhance-input:focus{border-color:#4d8eff;box-shadow:0 0 0 3px #4d8eff1a,0 2px 4px #0000000d;outline:none}.enhance-input::placeholder{color:#94a3b8;font-family:inherit;font-weight:600;letter-spacing:.1px}.enhance-bulk{align-items:center;display:flex;gap:10px;margin:12px 2px}.enhance-bulk-checkbox{accent-color:#4d8eff;height:22px;width:22px}.enhance-bulk-text{display:flex;flex-direction:column;line-height:1.2}.enhance-bulk-title{color:#0f172a;font-size:1rem;font-weight:800}.enhance-bulk-subtext{color:#6b7280;font-size:.9rem;margin-top:2px}.enhance-cta{background:#4d8eff;border:none;border-radius:.625rem;box-shadow:0 2px 4px #4d8eff40;color:#fff;cursor:pointer;font-size:.95rem;font-weight:700;margin-top:.75rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.enhance-cta:disabled{cursor:not-allowed;opacity:.6}.enhance-cta:hover:not(:disabled){background:#3b7ae8;box-shadow:0 4px 12px #4d8eff59,0 2px 4px #0000001a;transform:translateY(-1px)}.enhance-spinner-wrap{align-items:center;display:flex;flex-direction:column;height:160px;justify-content:center}.enhance-spinner{animation:spin 1.1s cubic-bezier(.25,.8,.25,1) infinite;height:64px;position:relative;width:64px}.enhance-spinner:before{background:#0000;border-radius:50%;box-shadow:0 -28px 0 2px #4d8eff,19.8px -19.8px 0 2px #80a8ff,28px 0 0 2px #4d8eff,19.8px 19.8px 0 2px #80a8ff,0 28px 0 2px #4d8eff,-19.8px 19.8px 0 2px #80a8ff,-28px 0 0 2px #4d8eff,-19.8px -19.8px 0 2px #80a8ff;content:"";height:14px;left:50%;margin:-7px 0 0 -7px;position:absolute;top:50%;width:14px}.enhance-spinner-text{color:#586174;font-weight:600;letter-spacing:.15px;margin-top:12px}.content-box{word-wrap:break-word;background:#f9fafb;border:1px solid #f3f4f6;border-radius:.625rem;color:#1f2937;font-size:.95rem;line-height:1.7;margin:0;padding:1.25rem;transition:all .2s ease;white-space:pre-wrap}.question-text-section .content-box.editable{background:#fff;border:1px solid #d1d5db;border-radius:.625rem;min-height:80px;padding:1.25rem}.feedback-section .content-box{background:#f9fafb;border:1px solid #f3f4f6}.feedback-section .content-box.editable{background:#fff;border:1px solid #d1d5db;border-radius:.625rem;min-height:120px;padding:1.25rem}.mark-breakdown-section .content-box{background:#f9fafb;border:1px solid #f3f4f6}.mark-breakdown-section .content-box.editable{background:#fff;border:1px solid #d1d5db;border-radius:.625rem;min-height:100px;padding:1.25rem}.student-answer-section .content-box{background:#f9fafb;border:1px solid #f3f4f6}.student-answer-section .content-box.editable{background:#fff;border:1px solid #d1d5db;border-radius:.625rem;min-height:150px;padding:1.25rem}.student-answer-text{word-wrap:break-word;font-family:inherit;white-space:pre-wrap}.content-box.editable{background:#fff;border:1px solid #d1d5db;border-radius:.625rem;box-sizing:border-box;color:#1f2937;display:block;font-family:inherit;font-size:.95rem;padding:1.25rem;resize:vertical;transition:all .2s ease;width:100%}.content-box.editable:focus{background:#fff;border-color:#4d8eff;box-shadow:0 0 0 3px #4d8eff1a,0 2px 4px #0000000d;outline:none}.content-box.editable:hover{background:#fff;border-color:#9ca3af;cursor:text}.editable-wrapper{position:relative}.edit-chip{background:#ffffffe6;border:1px solid #e5e7eb;border-radius:999px;box-shadow:0 1px 2px #0000000f;color:#374151;cursor:pointer;font-size:.85rem;line-height:1;opacity:0;padding:4px 8px;position:absolute;right:10px;top:8px;transition:opacity .15s ease,transform .15s ease;visibility:hidden}.content-box.editable:focus+.edit-chip,.editable-wrapper:hover .edit-chip{opacity:1;visibility:visible}.content-box ul{margin:0;padding-left:1.5rem}.content-box li{line-height:1.6;margin-bottom:.625rem}.content-box p{margin:0 0 .75rem}.content-box p:last-child{margin-bottom:0}.view-toggle{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:.5rem;display:flex;gap:.25rem;padding:.25rem}.toggle-btn{background:#0000;border:none;border-radius:.375rem;color:#6b7280;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1rem;transition:all .2s ease}.toggle-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#1f2937}.toggle-btn:hover:not(.active){background:#ffffff80;color:#1f2937}.share-toast{align-items:flex-start;background:#1f2937;border:1px solid #ffffff1a;border-radius:.75rem;box-shadow:0 10px 30px #00000040,0 4px 12px #00000026;color:#fff;display:flex;gap:.75rem;max-width:380px;padding:1rem 1.25rem;position:fixed;right:20px;top:90px;z-index:10010}.share-toast-icon{font-size:20px;line-height:1}.share-toast-content{flex:1 1}.share-toast-title{font-weight:700;margin-bottom:6px}.share-toast-message{color:#e5e7eb;font-size:.95rem;line-height:1.4}.share-toast-close{background:#0000;border:none;color:#e5e7eb;cursor:pointer;font-size:18px;line-height:1}.editable-active{background:#f0f6ff!important;border-color:#4d8eff!important}.eth-right .ieh-save,.ieh-actions .ieh-save{background:#4d8eff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:700;padding:10px 14px}.eth-right .ieh-save:hover,.ieh-actions .ieh-save:hover{background:#3b7ae8}.edit-top-header{background:#0b0f19;border-bottom:1px solid #ffffff14;color:#fff;font-size:17px;justify-content:space-between;padding:16px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.edit-top-header,.eth-left{align-items:center;display:flex}.eth-left{gap:14px}.back-btn.inverse{background:#0000;border:none;color:#c7d2fe;font-size:1.25rem}.back-btn.inverse:hover{color:#fff}.eth-student{color:#e5e7eb;font-weight:700}.eth-center{font-weight:700;left:50%;position:absolute;text-align:center;transform:translateX(-50%)}.eth-assessment{color:#fff;font-size:1.1rem}.eth-right{align-items:center;display:flex}.edit-questions-page{background:#f5f5f5;display:flex;flex-direction:column;height:100vh;overflow:hidden}.edit-questions-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 2px #0000000d;display:flex;justify-content:space-between;padding:1rem 2rem;transition:background-color .3s ease}.edit-questions-header.black-header{background:#1a1a1a;border-bottom:none;color:#fff}.header-title{align-items:center;color:#111827;display:flex;font-size:1.25rem;font-weight:600;gap:1rem}.black-header .header-title{color:#fff}.edit-mode-indicator{color:#fffc;font-size:.875rem;font-weight:400;margin-left:1rem}.header-actions{gap:.75rem}.back-btn{background:#0000;border:none;border-radius:.375rem;color:#4d8eff;cursor:pointer;padding:.5rem 1rem;transition:background-color .2s}.back-btn:hover{background:#f3f4f6}.edit-btn,.view-submissions-btn{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;color:#374151;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.edit-btn:hover,.view-submissions-btn:hover{background:#f9fafb;border-color:#9ca3af}.edit-btn{background:#4d8eff;border-color:#4d8eff;color:#fff}.edit-btn:hover{background:#3b7ae8;border-color:#3b7ae8}.black-header .view-submissions-btn{background:#0000;border:1px solid #ffffff4d;color:#fff}.black-header .view-submissions-btn:hover{background:#ffffff1a;border-color:#ffffff80}.save-all-btn,.save-changes-btn{background:#4d8eff;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.save-all-btn{background:#fff;color:#1a1a1a}.save-all-btn:hover:not(:disabled){background:#f3f4f6}.save-changes-btn{background:#4d8eff;color:#fff}.save-changes-btn:hover:not(:disabled){background:#3b7ae8}.save-all-btn:disabled,.save-changes-btn:disabled{cursor:not-allowed;opacity:.5}.cancel-btn{background:#0000;border:1px solid #ffffff4d;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.cancel-btn:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff80}.cancel-btn:disabled{cursor:not-allowed;opacity:.5}.edit-questions-content{display:flex;flex:1 1;overflow:hidden}.questions-sidebar{background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;overflow-y:auto;width:350px}.questions-list{flex:1 1}.question-item{border-left:3px solid #0000;cursor:pointer;padding:1rem 1.25rem;transition:background-color .2s}.question-item:hover{background:#f9fafb}.question-item.active{background:#eff6ff;border-left-color:#4d8eff}.question-header-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.question-number{color:#111827;font-size:.875rem;font-weight:600}.question-item.active .question-number{color:#4d8eff}.question-marks-badge{background:#f3f4f6;border-radius:.25rem;color:#6b7280;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.question-preview{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#6b7280;display:-webkit-box;font-size:.8125rem;line-height:1.4;overflow:hidden;text-overflow:ellipsis}.question-divider{background:#e5e7eb;height:1px;margin:0 1.25rem}.question-details-panel{background:#fff;flex:1 1;overflow-y:auto;padding:2rem}.question-detail-header{border-bottom:1px solid #e5e7eb;margin-bottom:2rem;padding-bottom:1rem}.question-title-section{align-items:center;display:flex;gap:1rem}.question-title-text{color:#111827;font-size:1.5rem;font-weight:600;margin:0}.question-marks-display{background:#f3f4f6;border-radius:.375rem;color:#6b7280;font-size:.875rem;padding:.375rem .75rem}.marks-input-section{align-items:center;display:flex;gap:.5rem}.marks-input{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;font-weight:500;padding:.375rem .5rem;text-align:center;width:60px}.marks-input:focus{border-color:#4d8eff;box-shadow:0 0 0 3px #4d8eff1a;outline:none}.marks-label{color:#6b7280;font-size:.875rem}.marking-guide-section,.question-text-section{margin-bottom:2rem}.section-label{color:#374151;font-size:.875rem;font-weight:600;letter-spacing:.05em;margin-bottom:.75rem;text-transform:uppercase}.content-editor{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden}.rich-text-area{background:#fff;border:none;color:#111827;font-family:inherit;font-size:.9375rem;line-height:1.6;outline:none;padding:1rem;resize:vertical;width:100%}.rich-text-area.editable{background:#fafafa}.rich-text-area.editable:focus{background:#fff;box-shadow:0 0 0 3px #4d8eff1a}.rich-text-content{word-wrap:break-word;color:#111827;font-size:.9375rem;line-height:1.6;padding:1rem;white-space:pre-wrap}.error-message{font-size:1rem;padding:2rem}.no-question-selected{align-items:center;color:#6b7280;display:flex;font-size:1rem;height:100%;justify-content:center}.question-details-panel::-webkit-scrollbar,.questions-sidebar::-webkit-scrollbar{width:8px}.question-details-panel::-webkit-scrollbar-track,.questions-sidebar::-webkit-scrollbar-track{background:#f1f1f1}.question-details-panel::-webkit-scrollbar-thumb,.questions-sidebar::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.question-details-panel::-webkit-scrollbar-thumb:hover,.questions-sidebar::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.student-share-page{background:#f7f8fb;display:flex;flex-direction:column;min-height:100vh;scrollbar-gutter:stable both-edges}.ssv-header{background:#4d8eff;color:#fff;min-height:56px;padding:14px 0}.ssv-header-inner{gap:14px;margin:0 auto;max-width:1200px;padding:0 20px;position:relative}.ssv-header-inner,.ssv-left{align-items:center;display:flex}.ssv-left{gap:12px}.ssv-center{left:50%;max-width:70%;pointer-events:none;position:absolute;text-overflow:ellipsis;transform:translateX(-50%);white-space:nowrap}.ssv-right{align-items:center;display:flex;margin-left:auto}.ssv-left,.ssv-right{align-items:center;display:flex;gap:12px;justify-content:flex-end}.ssv-center{overflow:hidden;text-align:center}.chip{background:#fff;border:1px solid #4d8eff;border-radius:9999px;color:#4d8eff;font-size:.9rem;font-weight:600;padding:6px 10px}.ssv-name,.ssv-title{font-weight:700}.ssv-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssv-score{background:#fff;border:1px solid #4d8eff;border-radius:9999px;color:#4d8eff;font-size:.9rem;font-weight:700;padding:6px 12px}.ssv-score-mobile{display:none}@media (max-width:640px){.ssv-score-full{display:none}.ssv-score-mobile{display:inline}}.ssv-content{grid-gap:20px;align-items:start;box-sizing:border-box;display:grid;gap:20px;grid-template-columns:320px 1fr;height:calc(100vh - 56px);margin:0 auto;max-width:1200px;overflow:hidden;padding:20px;width:100%}.ssv-sidebar{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #e5e7eb;border-radius:10px;height:calc(100vh - 72px);overflow:hidden;overflow-y:auto;position:-webkit-sticky;position:sticky;top:56px}.ssv-qitem{align-items:center;border-bottom:1px solid #f1f5f9;border-left:4px solid #0000;cursor:pointer;display:flex;justify-content:space-between;min-height:56px;padding:12px 14px;width:100%}.ssv-qitem:hover{background:#f8fafc}.ssv-qitem.active{background:#eef4ff;border-left-color:#4d8eff}.ssv-qitem-title{display:flex;flex-direction:column;gap:2px}.ssv-qitem-title .qnum{color:#111827;font-weight:700}.ssv-qitem-title .qsnippet{color:#4b5563;font-size:.85rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssv-badge{background:#eef4ff;border:1px solid #cfe0ff;border-radius:9999px;color:#0f172a;flex-shrink:0;font-size:.8rem;font-weight:700;padding:2px 8px}.ssv-panel{word-wrap:break-word;background:#fff;border:1px solid #e5e7eb;border-radius:12px;height:calc(100vh - 96px);min-width:0;overflow-wrap:break-word;overflow-x:hidden;overflow-y:auto;padding:16px;scrollbar-gutter:stable both-edges}.ssv-panel,.ssv-qheader{box-sizing:border-box;width:100%}.ssv-qheader{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;gap:10px;margin-bottom:12px;padding-bottom:12px}.ssv-qtitle{color:#0f172a;font-size:1.25rem;font-weight:800}.ssv-qbadge{align-items:center;background:#f3f7ff;border:1px solid #cfe0ff;border-radius:9999px;color:#0f172a;display:inline-flex;font-size:.85rem;font-weight:700;justify-content:center;padding:4px 10px}.ssv-section{margin-bottom:16px}.ssv-section-title{color:#111827;font-weight:700;margin-bottom:8px}.ssv-card{word-wrap:break-word;background:#f9fbff;border:1px solid #e5e7eb;border-radius:10px;box-sizing:border-box;overflow-wrap:break-word;padding:14px;white-space:pre-wrap;width:100%}.skeleton{background:#eef2f7;overflow:hidden;position:relative}.skeleton:after{animation:shimmer 1.3s infinite;background:linear-gradient(90deg,#fff0,#fff9 50%,#fff0);bottom:0;content:"";left:-150px;position:absolute;top:0;width:150px}.sk-line{border-radius:6px;height:14px}.sk-line.lg{height:18px}.sk-card{border-radius:10px;height:100px}@media (max-width:960px){.ssv-content{grid-template-columns:1fr;height:calc(100vh - 56px);padding:14px}.ssv-sidebar{height:auto;position:static}}@media (max-width:640px){.chip.hide-mobile{display:none}.ssv-content{gap:12px;grid-template-columns:84px 1fr;height:calc(100vh - 48px)}.ssv-sidebar{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #e5e7eb;border-radius:10px;display:block;height:calc(100vh - 60px);overflow-y:auto;position:-webkit-sticky;position:sticky;top:48px}.ssv-panel{height:calc(100vh - 76px);overflow-y:auto;scrollbar-gutter:stable both-edges}.ssv-qitem{border-bottom:1px solid #f1f5f9;display:block;padding:10px}.ssv-qitem.active{background:#eef4ff;border-left:2px solid #4d8eff}.ssv-qitem-title{align-items:flex-start;display:flex;flex-direction:column;gap:4px}.ssv-qitem-title .qsnippet{display:none}.ssv-qitem-title .qnum{font-weight:800}.ssv-badge{display:inline-block;font-size:.75rem;margin-top:4px;padding:2px 6px}.ssv-panel{padding:14px}.ssv-section{margin-bottom:14px}.ssv-card{padding:12px}.ssv-qtitle{font-size:1.15rem}}.import-students-modal-overlay{align-items:center;background:#00000080;bottom:0;box-sizing:border-box;display:flex;height:100vh;justify-content:center;left:0;margin:0;overflow:auto;padding:20px;position:fixed;right:0;top:0;width:100vw;z-index:10000}.import-students-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;margin:auto;max-height:90vh;max-width:800px;overflow:hidden;width:100%}.import-students-modal .modal-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;box-sizing:border-box;display:flex;flex-shrink:0;justify-content:space-between;padding:24px 28px;width:100%}.import-students-modal .modal-header h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0}.import-students-modal .modal-close-btn{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.import-students-modal .modal-close-btn:hover{background:#f3f4f6;color:#374151}.template-section{box-sizing:border-box;display:flex;flex-direction:column;gap:16px;padding:28px 28px 0;width:100%}.import-header{gap:16px}.import-icon{flex-shrink:0;font-size:32px}.import-header h3{color:#1a202c;font-size:18px;margin:0 0 4px}.import-header p{color:#718096;font-size:14px}.btn-open-template{background:#4285f4;border-radius:8px;box-shadow:0 2px 4px #4285f433;font-size:15px;gap:8px;padding:14px 28px;transition:all .2s}.btn-open-template:hover{background:#3367d6;box-shadow:0 4px 8px #4285f44d;transform:translateY(-1px)}.instructions-section{box-sizing:border-box;margin-top:28px;padding:0 28px;width:100%}.instructions-title{align-items:center;color:#1f2937;display:flex;font-size:15px;font-weight:600;gap:8px;margin:0 0 16px}.import-steps{grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.import-step{border-radius:8px;color:#1f2937;font-size:14px;font-weight:500;gap:14px;padding:14px 16px;transition:all .2s}.import-step:hover{background:#f9fafb;border-color:#d1d5db}.step-number{background:#4285f4;font-size:13px}.upload-section{box-sizing:border-box;margin-top:24px;padding:0 28px 28px;width:100%}.upload-label{font-size:14px;font-weight:600;margin-bottom:8px}.file-upload-area{margin-top:8px}.file-upload-label{background:#fafafa;border-radius:10px;padding:32px 24px;transition:all .2s}.file-upload-label:hover{border-color:#4285f4}.file-upload-label.drag-active{background:#e8f0fe;border-color:#4285f4;border-style:solid}.file-upload-label.has-file{background:#f0fdf4;border-color:#10b981;border-style:solid}.file-icon,.upload-icon{display:block;font-size:40px;margin-bottom:10px}.file-name{color:#2d3748;font-size:15px;margin:8px 0 4px}.file-size{color:#718096;font-size:13px}.file-hint{color:#a0aec0;font-size:13px;margin-top:4px}.import-message{border-radius:8px;font-size:14px;font-weight:500;margin-top:12px;padding:12px 16px}.success-message{background:#f0fdf4;border:1px solid #86efac;color:#166534}.warning-message{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.error-details{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:13px}.error-details ul{color:#7f1d1d}.error-details strong{color:#991b1b}@media (max-width:768px){.import-students-modal{margin:10px;max-width:100%}.import-students-modal .modal-content{gap:24px;padding:20px}.import-steps{grid-template-columns:1fr}}.modal-overlay{padding:1rem}.add-student-modal{background:#fff;border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{border-bottom:1px solid #e5e7eb;padding:1.5rem}.modal-header h2{color:#1f2937;font-size:1.5rem;font-weight:600}.modal-close{color:#6b7280;font-size:1.5rem;line-height:1;padding:.25rem;transition:color .2s}.modal-close:hover:not(:disabled){color:#1f2937}.modal-close:disabled{cursor:not-allowed;opacity:.5}.modal-body{padding:1.5rem}.error-message{font-size:.875rem}.form-group{margin-bottom:1.25rem}.form-group label{font-size:.875rem}.form-group label .required{color:#dc2626}.form-group input,.form-group select{font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-group input:disabled,.form-group select:disabled{background:#f3f4f6;cursor:not-allowed}.modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding:1.5rem}.btn-secondary{border:1px solid #d1d5db;color:#374151;font-size:.95rem;font-weight:500}.btn-secondary:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-secondary:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#4d8eff;font-size:.95rem;padding:.75rem 1.5rem;transition:all .2s}.btn-primary:hover:not(:disabled){background:#3b7ae8;box-shadow:0 4px 12px #4d8eff4d;transform:translateY(-1px)}.btn-primary:disabled{transform:none}@media (max-width:640px){.form-row{grid-template-columns:1fr}.add-student-modal{margin:.5rem;max-width:100%}}.edit-student-modal{background:#fff;border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.readonly-info{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;color:#374151;display:flex;font-size:.95rem;gap:1rem;padding:.75rem}.readonly-info span{font-weight:500}.readonly-info .text-muted{color:#9ca3af;font-weight:400}.field-note{color:#6b7280;font-size:.75rem;font-style:italic;margin:.5rem 0 0}.students-page{margin:0 auto;max-width:1400px;padding:1rem 2rem 2rem}.header-top{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;width:100%}.page-header h1{margin:0 0 .5rem}.page-subtitle{color:#6b7280;font-size:1rem}.header-actions{align-items:center;display:flex;flex:1 1;gap:1rem;justify-content:space-between}.header-buttons{align-items:center;display:flex;gap:.75rem}.search-input{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#1f2937;font-size:.95rem;min-width:250px;padding:.75rem 1rem}.search-input:focus{border-color:#4d8eff;box-shadow:0 0 0 3px #4d8eff1a;outline:none}.students-content{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden;padding:0}.empty-state{padding:4rem 2rem}.empty-icon{font-size:4rem}.empty-state h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.skeleton{animation:skeleton-loading 1.5s ease-in-out infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;border-radius:.25rem}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{border-radius:.25rem}.skeleton-badge,.skeleton-button,.skeleton-input{border-radius:.5rem}.loading-state{font-size:1rem;padding:4rem 2rem}.students-table-container{overflow-x:auto}.students-table{border-collapse:collapse;width:100%}.students-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb}.students-table th{color:#374151;font-size:.875rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:left;text-transform:uppercase}.students-table td{border-bottom:1px solid #e5e7eb;color:#1f2937;font-size:.95rem;padding:1rem}.students-table tbody tr:hover{background:#f9fafb}.students-table tbody tr:last-child td{border-bottom:none}.student-id{color:#6b7280}.total-submissions{color:#1f2937;font-weight:500}.average-score{white-space:nowrap}.actions-cell{position:relative;text-align:center}.actions-menu-wrapper{display:inline-block;position:relative}.actions-menu-trigger{align-items:center;background:none;border:none;border-radius:.375rem;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:background .2s}.actions-menu-trigger:hover{background:#f3f4f6}.three-dots{color:#6b7280;display:inline-block;font-size:1.5rem;font-weight:700;line-height:.8}.actions-menu-dropdown{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;max-width:200px;min-width:150px;overflow:hidden;position:fixed;z-index:9999}.menu-item{align-items:center;background:none;border:none;border-bottom:1px solid #f3f4f6;color:#374151;cursor:pointer;display:flex;font-size:.875rem;padding:.75rem 1rem;text-align:left;transition:background .2s;width:100%}.menu-item:last-child{border-bottom:none}.menu-item:hover{background:#f9fafb}.menu-item-danger{color:#dc2626}.menu-item-danger:hover{background:#fef2f2;color:#991b1b}.pagination-container{background:linear-gradient(180deg,#fff,#fafbfc);border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px 0 #0000000d;gap:1.5rem;justify-content:space-between;margin-top:2rem;padding:1.25rem 1.5rem}.pagination-container,.pagination-info{align-items:center;display:flex;flex-wrap:wrap}.pagination-info{color:#6b7280;font-size:.875rem;font-weight:500;gap:.5rem}.pagination-info:before{content:"📄";font-size:1.125rem;opacity:.7}.pagination-text{align-items:center;display:flex;gap:.25rem}.pagination-text strong{color:#374151;font-weight:600}.pagination-note{color:#9ca3af;font-size:.8125rem;font-style:italic;font-weight:400;margin-left:.25rem}.pagination-controls{align-items:center;display:flex;gap:.5rem}.pagination-btn{align-items:center;background:#fff;border:1.5px solid #e5e7eb;border-radius:.5rem;color:#374151;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.375rem;min-height:2.5rem;padding:.625rem 1.25rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.pagination-btn:hover:not(:disabled){background:#f9fafb;border-color:#4d8eff;box-shadow:0 2px 4px #4d8eff1a;color:#4d8eff;transform:translateY(-1px)}.pagination-btn:active:not(:disabled){box-shadow:0 1px 2px #4d8eff1a;transform:translateY(0)}.pagination-btn:disabled{background:#f9fafb;border-color:#e5e7eb;cursor:not-allowed;opacity:.4}.pagination-pages{align-items:center;background:#f9fafb;border-radius:.5rem;display:flex;gap:.375rem;padding:.25rem}.pagination-page-btn{align-items:center;background:#fff;border:1.5px solid #0000;border-radius:.375rem;color:#374151;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;height:2.5rem;justify-content:center;min-width:2.75rem;padding:0 .875rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.pagination-page-btn:hover{background:#fff;border-color:#4d8eff;box-shadow:0 2px 4px #4d8eff26;color:#4d8eff;transform:translateY(-1px)}.pagination-page-btn.active{background:linear-gradient(135deg,#4d8eff,#3b7ae8);border-color:#4d8eff;box-shadow:0 2px 6px #4d8eff4d;color:#fff;transform:translateY(-1px)}.pagination-page-btn.active:hover{background:linear-gradient(135deg,#3b7ae8,#2d6ad8);box-shadow:0 3px 8px #4d8eff66}@media (max-width:768px){.header-top{flex-direction:column}.students-table{font-size:.85rem}.students-table td,.students-table th{padding:.75rem .5rem}.actions-cell{flex-direction:column}.pagination-container{align-items:stretch;flex-direction:column;padding:1rem}.pagination-info{justify-content:center;width:100%}.pagination-controls{flex-wrap:wrap;justify-content:center}.pagination-pages{justify-content:center;order:-1;width:100%}}.student-detail-page{margin:0 auto;max-width:1400px;padding:1rem 2rem 2rem}.back-button{display:inline-flex;font-weight:500;margin-bottom:1.5rem;margin-top:0;transition:all .2s}.back-button:hover{color:#2563eb}.student-detail-page .page-header{grid-gap:1rem;align-items:center;display:grid;gap:1rem;grid-template-columns:1fr auto 1fr;margin-bottom:2rem;margin-top:0}.student-detail-page .page-header .back-button{justify-self:start;margin-bottom:0}.student-detail-page .header-content{align-items:center;display:flex;flex-direction:column;gap:.5rem;justify-self:center;text-align:center}.student-detail-page .header-spacer{display:block}.student-detail-page .header-content h1{color:#1f2937;font-size:1.5rem;font-weight:600;line-height:1.3;margin:0}.student-detail-page .page-subtitle{color:#6b7280;font-size:1rem;line-height:1.5;margin:0}.student-info-section{margin-bottom:2rem}.info-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.info-card h2{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.info-grid{grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.info-item{gap:.5rem}.info-item label{color:#6b7280;font-size:.875rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.info-value{color:#1f2937;font-size:1rem;font-weight:500}.submissions-section{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.submissions-section h2{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:3rem 2rem}.empty-icon{font-size:3rem;margin-bottom:1rem}.empty-state p{color:#6b7280;font-size:1rem;margin:0}.submissions-table-container{overflow-x:auto}.submissions-table{border-collapse:collapse;width:100%}.submissions-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb}.submissions-table th{color:#374151;font-size:.875rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:left;text-transform:uppercase}.submissions-table td{border-bottom:1px solid #e5e7eb;color:#1f2937;font-size:.95rem;padding:1rem}.submissions-table tbody tr:hover{background:#f9fafb}.submissions-table tbody tr:last-child td{border-bottom:none}.assessment-name{color:#1f2937;font-weight:500}.submission-date{color:#6b7280}.score-badge{border-radius:.375rem;display:inline-block;font-size:.875rem;font-weight:600;padding:.375rem .75rem}.score-badge.excellent{background:#d1fae5;color:#065f46}.score-badge.good{background:#dbeafe;color:#1e40af}.score-badge.average{background:#fef3c7;color:#92400e}.score-badge.below-average{background:#fee2e2;color:#991b1b}.status-badge{border-radius:.375rem;display:inline-block;font-size:.875rem;font-weight:600;padding:.375rem .75rem;text-transform:capitalize}.status-badge.status-completed{background:#d1fae5;color:#065f46}.status-badge.status-processing{background:#dbeafe;color:#1e40af}.status-badge.status-failed{background:#fee2e2;color:#991b1b}.status-badge.status-pending,.status-badge.status-uploaded{background:#f3f4f6;color:#374151}.view-button{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background .2s}.view-button:hover{background:#2563eb}.student-detail-page .loading-state{align-items:center;color:#6b7280;display:flex;flex-direction:column;font-size:1rem;justify-content:center;min-height:300px;padding:4rem 2rem;text-align:center}@keyframes student-detail-spin{to{transform:rotate(1turn)}}.student-detail-page .loading-state:before{animation:student-detail-spin .8s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#4d8eff;content:"";height:40px;margin-bottom:1rem;width:40px}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;font-size:.95rem;line-height:1.5;margin-top:1rem;padding:1rem 1.5rem}@media (max-width:768px){.student-detail-page{padding:1rem}.info-grid{grid-template-columns:1fr}.submissions-table{font-size:.85rem}.submissions-table td,.submissions-table th{padding:.75rem .5rem}}.insights-page{margin:0 auto;max-width:1400px;padding:1rem 2rem 2rem}.header-controls{align-items:center;gap:1rem;justify-content:space-between;margin-top:1rem}.tabs-pill{background:#f3f4f6;border-radius:999px;display:flex;gap:.5rem;padding:4px}.tabs-pill .insights-tab{background:#0000;border-radius:999px;color:#374151;font-weight:600;padding:.5rem 1rem}.tabs-pill .insights-tab:focus{outline:none}.tabs-pill .insights-tab.active{background:linear-gradient(90deg,#4d8eff,#3b7ae8);color:#fff}.insights-content{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:visible}.header-controls .selectors{align-items:center;display:flex;gap:.75rem}.insights-tabs{background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;gap:0;padding:0 1.5rem}.insights-tab{background:none;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:.95rem;font-weight:500;padding:1rem 1.5rem;position:relative;transition:all .2s}.insights-tab:focus{outline:none}.insights-tab:hover{color:#1f2937}.insights-tab.active{background:#fff;border-bottom-color:#4d8eff;color:#4d8eff}.insights-tab-content{min-height:400px;padding:2rem}.empty-state{color:#6b7280;padding:3rem 0}.empty-state p{font-size:.95rem;margin-bottom:2rem}.selectors{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}.selector-group{display:flex;flex-direction:column;gap:.5rem;min-width:200px}.selector-group label{color:#374151;font-size:.9rem;font-weight:500}.insights-select{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#1f2937;cursor:pointer;font-size:.95rem;padding:.75rem 1rem;transition:border-color .2s}.insights-select:focus{border-color:#4d8eff;box-shadow:0 0 0 3px #4d8eff1a;outline:none}.loading-state{color:#6b7280;padding:3rem;text-align:center}.insights-data{display:flex;flex-direction:column;gap:2rem}.top-row{align-items:stretch;display:flex;gap:1.5rem}.top-row .stats-grid{flex:1 1}.chart-placeholder{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;display:flex;flex-direction:column;gap:.75rem;justify-content:center;max-width:45%;padding:1rem;width:420px}.chart-title{color:#374151;font-size:.95rem;font-weight:600}.chart-box{background:linear-gradient(180deg,#f9fafb,#fff);border:1px dashed #e5e7eb;border-radius:.5rem;box-sizing:border-box;min-height:160px;padding:.5rem;width:100%}.stats-grid{grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stats-grid.five-cols{grid-template-columns:repeat(5,1fr)}.stats-grid.three-cols{grid-template-columns:repeat(3,1fr)}.stats-grid.four-cols{grid-template-columns:repeat(4,1fr)}.row-top-bottom{display:flex;gap:1rem}.bar-chart.small{flex:1 1}.bar-chart.full{width:100%}.h-bar{align-items:center;display:flex;gap:.75rem;margin-bottom:.75rem}.h-label{color:#374151;flex:0 0 140px;font-weight:600}.h-track{background:#f3f4f6;flex:1 1;height:34px;overflow:visible;position:relative}.h-fill,.h-track{border-radius:999px}.h-fill{bottom:0;display:block;height:100%;left:0;position:absolute;top:0}.h-fill.top{background:linear-gradient(90deg,#10b981,#059669)}.h-fill.bottom{background:linear-gradient(90deg,tomato,#e5533d)}.h-value{align-items:center;bottom:0;color:#fff;display:flex;font-weight:700;position:absolute;right:8px;top:0;z-index:2}.h-axis{color:#6b7280;display:flex;font-size:.75rem;justify-content:space-between;margin-top:10px}.chart-legend{display:flex;gap:.75rem;margin-bottom:.5rem}.legend-item{align-items:center;color:#374151;display:flex;font-size:.9rem;gap:.5rem}.legend-color{border-radius:2px;display:inline-block;height:12px;width:12px}.legend-color.top{background:linear-gradient(90deg,#10b981,#059669)}.legend-color.bottom{background:linear-gradient(90deg,tomato,#e5533d)}.h-fill .tooltip{display:none}.h-fill:hover .tooltip{background:#000000bf;border-radius:4px;color:#fff;display:block;font-size:.75rem;padding:2px 6px;position:absolute;right:8px}.v-bars{align-items:end;display:flex;gap:.5rem;height:260px;padding-top:8px}.v-bar{align-items:center;display:flex;flex-direction:column;gap:6px;width:48px}.v-fill{align-items:flex-end;border-radius:6px 6px 0 0;color:#fff;display:flex;font-weight:700;justify-content:center;position:relative;width:100%}.v-tooltip{background:#000000bf;border-radius:4px;color:#fff;display:none;font-size:.75rem;padding:3px 6px;position:absolute;top:-28px}.v-fill:hover .v-tooltip{display:block}.v-label{color:#374151;font-size:.75rem;text-align:center;word-break:break-word}.q-bars{align-items:end;display:flex;gap:.5rem;height:200px}.q-bar{align-items:center;display:flex;flex-direction:column;gap:6px;width:48px}.q-fill{align-items:flex-end;border-radius:6px 6px 0 0;color:#fff;display:flex;font-weight:700;justify-content:center;position:relative;width:100%}.q-fill .tooltip{display:none}.q-fill:hover .tooltip{background:#000000bf;border-radius:4px;color:#fff;display:block;font-size:.75rem;padding:3px 6px;position:absolute;top:-26px}.q-label{color:#374151;font-size:.75rem}.stat-card{border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000000d;flex-direction:column;gap:6px;padding:1.5rem;position:relative;text-align:center}.stat-card .stat-value{align-self:center;text-align:center}.stat-card .stat-label{text-align:center}.stat-value{color:#1f2937;font-size:2rem;margin-bottom:.5rem}.stat-label{color:#6b7280;font-size:.85rem}.stat-card .stat-label{margin-top:4px}.first-row .stat-card{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:1.25rem;text-align:center}.first-row .stat-value{color:#111827;font-size:2.25rem;font-weight:800;margin-bottom:.25rem}.first-row .stat-label{color:#6b7280;font-size:.85rem;margin-top:4px}.info-icon{align-items:center;background:#f3f4f6;border-radius:50%;color:#6b7280;cursor:pointer;display:inline-flex;font-size:.75rem;font-weight:600;height:18px;justify-content:center;margin-left:6px;vertical-align:middle;width:18px}.progress-section{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.progress-section.two-bars{grid-template-columns:repeat(2,1fr)}.third-row .chart-full{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem}.chart-box.large{height:320px;width:100%}.mid-row{align-items:flex-start;display:flex;gap:1.5rem}.progress-card.large{flex:2 1}.students-summary{display:flex;flex:1 1;flex-direction:column;gap:.75rem}.students-list.small{padding:.75rem}.students-list.small h4{font-size:.95rem;margin:0 0 .5rem}.progress-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000000d;padding:1.5rem}.progress-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.progress-label{color:#1f2937;font-size:.95rem;font-weight:600}.progress-value{color:#4d8eff;font-size:1.1rem;font-weight:700}.progress-bar-container{background:#f3f4f6;border-radius:.5rem;height:12px;margin-bottom:.5rem;overflow:hidden;position:relative;width:100%}.progress-bar-fill{background:linear-gradient(90deg,#4d8eff,#3b7ae8);border-radius:.5rem;height:100%;position:relative;transition:width .3s ease}.progress-bar-fill.good{background:linear-gradient(90deg,#10b981,#059669)}.progress-bar-fill.bad{background:linear-gradient(90deg,#ef4444,#dc2626)}.progress-bar-fill:after{border-bottom:4px solid #0000;border-left:6px solid #4d8eff;border-top:4px solid #0000;content:"";height:0;position:absolute;right:0;top:50%;transform:translate(50%,-50%);width:0}.progress-bar-fill.good:after{border-left-color:#10b981}.progress-bar-fill.bad:after{border-left-color:#ef4444}.progress-card.student-status.good .progress-value{color:#10b981}.progress-card.student-status.bad .progress-value{color:#ef4444}.progress-range{color:#9ca3af;display:flex;font-size:.75rem;justify-content:space-between}.second-row .progress-range{margin-top:.5rem;padding:0 .25rem}.students-lists{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.students-list{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000000d;padding:1.5rem}.students-list h3{color:#1f2937;font-size:1rem;font-weight:600;margin:0 0 1rem}.students-items{display:flex;flex-direction:column;gap:.75rem}.student-item{background:#f9fafb;border-radius:.5rem;gap:1rem;padding:.75rem;transition:background .2s}.student-item:hover{background:#f3f4f6}.student-rank{color:#6b7280;font-size:.9rem;font-weight:600;min-width:40px}.student-name{color:#1f2937;font-size:.9rem}.student-score{color:#4d8eff;font-size:.9rem}.no-data{color:#9ca3af;font-size:.9rem;padding:1rem;text-align:center}@media (max-width:768px){.progress-section,.stats-grid,.students-lists{grid-template-columns:1fr}.header-controls .selectors,.selectors{align-items:stretch;flex-direction:column}.top-row{flex-direction:column}.chart-placeholder{max-width:none;width:100%}.stats-grid.five-cols{gap:1rem;grid-template-columns:repeat(2,1fr)}.progress-section.two-bars{grid-template-columns:1fr}.chart-box.large{height:220px}}.school-context-section{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px solid #bae6fd;border-radius:12px;margin-top:32px;padding:24px}.school-context-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.school-context-header h3{color:#1e40af;font-size:20px;font-weight:700;margin:0}.context-label{background:#fff;border-radius:12px;color:#0369a1;font-size:12px;font-weight:600;padding:4px 12px}.school-context-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.context-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:16px}.context-label-small{color:#64748b;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.context-value{color:#1e40af;font-size:28px;font-weight:700;margin-bottom:8px}.comparison{color:#475569;font-size:13px;margin-top:8px}.comparison-good{color:#059669;font-weight:600}.comparison-bad{color:#dc2626;font-weight:600}.class-list,.subject-list{display:flex;flex-direction:column;gap:8px}.class-item,.subject-item{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:8px 0}.class-item:last-child,.subject-item:last-child{border-bottom:none}.class-name,.subject-name{color:#475569;font-size:14px;font-weight:500}.class-value,.subject-value{color:#1e40af;font-size:16px;font-weight:700}.top-performers-list{display:flex;flex-direction:column;gap:8px}.performer-item{align-items:center;display:flex;gap:12px;padding:8px 0}.performer-rank{color:#667eea;font-size:12px;font-weight:700;min-width:24px}.performer-name{color:#475569;flex:1 1;font-size:14px;font-weight:500}.performer-score{color:#1e40af;font-size:14px;font-weight:600}.trend-display{border-radius:6px;font-size:14px;font-weight:600;margin-top:8px;padding:8px 12px}.trend-display.up{background:#d1fae5;color:#065f46}.trend-display.down{background:#fee2e2;color:#991b1b}@media (max-width:768px){.school-context-grid{grid-template-columns:1fr}}.infotooltip-portal{pointer-events:none;position:absolute;transform:translate(-50%,-100%);z-index:99999}.infotooltip-bubble{background:#000000e6;border-radius:6px;box-shadow:0 8px 24px #0003;color:#fff;font-size:.9rem;max-width:420px;padding:8px 10px;pointer-events:auto;white-space:normal;word-break:break-word}.infotooltip-bubble.fade-in{animation:infotooltip-fade .18s ease forwards}@keyframes infotooltip-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.settings-page{margin:0 auto;max-width:1200px;padding:1rem 2rem 2rem}.page-header{margin-bottom:1.5rem;margin-top:0}.page-header h1{font-size:1.5rem}.settings-content{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden}.settings-tabs{background:#f9fafb;border-bottom:none;display:flex;gap:0;padding:0 1.5rem;position:relative}.settings-tab{background:none;border:none;border-bottom:2px solid #0000;box-shadow:none;color:#6b7280;cursor:pointer;font-size:.95rem;font-weight:500;outline:none;padding:1rem 1.5rem;position:relative;transition:border-color .15s ease,color .15s ease,background .15s ease;white-space:nowrap}.settings-tab:focus{border:none;box-shadow:none;outline:none}.settings-tab:focus-visible{box-shadow:none;outline:none}.settings-tab:hover{color:#1f2937}.settings-tab.active{background:#fff;border:none;border-bottom:2px solid #4d8eff;color:#4d8eff}.settings-form{padding:2rem}.form-section{max-width:800px}.form-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.form-section h2{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0}.form-group{margin-bottom:1.5rem}.form-group label{color:#374151;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.form-row{grid-gap:1rem;gap:1rem}.form-row-inputs{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.email-input-wrapper{align-items:center;display:flex;position:relative}.email-icon{color:#6b7280;font-size:1rem;left:.75rem;position:absolute;z-index:1}.email-input-wrapper input{padding-left:2.5rem}.form-group input,.form-group select{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;box-sizing:border-box;color:#1f2937;font-size:.9rem;padding:.75rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:#4d8eff;box-shadow:0 0 0 3px #4d8eff1a}.photo-upload{gap:1rem}.photo-preview,.photo-upload{align-items:center;display:flex}.photo-preview{background:linear-gradient(135deg,#4d8eff,#3b7ae8);border-radius:50%;color:#fff;flex-shrink:0;font-size:1.5rem;font-weight:600;height:80px;justify-content:center;overflow:hidden;width:80px}.photo-preview img{height:100%;object-fit:cover;width:100%}.upload-box{background:#f9fafb;border:2px dashed #d1d5db;border-radius:.5rem;cursor:pointer;flex:1 1;padding:2rem;text-align:center;transition:border-color .2s}.upload-box:hover{background:#f3f4f6;border-color:#4d8eff}.upload-box span:first-child{display:block;font-size:2rem;margin-bottom:.5rem}.upload-box span:last-of-type{color:#6b7280;display:block;font-size:.9rem;margin-bottom:.25rem}.upload-box small{color:#9ca3af;display:block;font-size:.8rem}.save-btn{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 2rem;transition:all .2s}.save-btn:hover:not(:disabled){background:#3b7ae8;box-shadow:0 4px 12px #4d8eff4d;transform:translateY(-1px)}.save-btn:disabled{cursor:not-allowed;opacity:.6}.success-message{background:#d1fae5;color:#065f46}.error-message,.success-message{border-radius:.5rem;font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}.coming-soon{color:#6b7280;font-size:.95rem;padding:2rem 0}.confirm-modal-overlay{align-items:center;animation:fadeIn .2s ease;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2000}.confirm-modal-content{animation:slideUp .3s ease;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:32px;text-align:center;width:100%}.confirm-modal-icon{align-items:center;border-radius:50%;display:flex;font-size:32px;height:64px;justify-content:center;margin:0 auto 20px;width:64px}.confirm-modal-icon.danger{background:#fff5f5;border:2px solid #feb2b2}.confirm-modal-icon.warning{background:#fffaf0;border:2px solid #fbd38d}.confirm-modal-icon.info{background:#ebf8ff;border:2px solid #90cdf4}.confirm-modal-title{color:#1a202c;font-size:20px;font-weight:700;margin-bottom:12px}.confirm-modal-message{color:#4a5568;font-size:15px;line-height:1.6;margin-bottom:28px}.confirm-modal-actions{display:flex;gap:12px;justify-content:center}.confirm-btn-cancel,.confirm-btn-confirm{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;min-width:100px;padding:12px 28px;transition:all .2s}.confirm-btn-cancel{background:#f7fafc;border:2px solid #e2e8f0;color:#4a5568}.confirm-btn-cancel:hover{background:#edf2f7;border-color:#cbd5e0}.confirm-btn-confirm{color:#fff}.confirm-btn-confirm.danger{background:#e53e3e}.confirm-btn-confirm.danger:hover{background:#c53030;box-shadow:0 4px 12px #e53e3e4d}.confirm-btn-confirm.warning{background:#ed8936}.confirm-btn-confirm.warning:hover{background:#dd6b20}.confirm-btn-confirm.info{background:#4285f4}.confirm-btn-confirm.info:hover{background:#3367d6}@media (max-width:480px){.confirm-modal-content{padding:24px}.confirm-modal-actions{flex-direction:column}.confirm-btn-cancel,.confirm-btn-confirm{width:100%}}.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker__sr-only{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.react-datepicker-wrapper{border:0;display:inline-block;padding:0}.react-datepicker{background-color:#fff;border:1px solid #aeaeae;border-radius:.3rem;color:#000;display:inline-block;font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;line-height:normal;position:relative}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker-popper{line-height:0;z-index:1}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker__header{background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative;text-align:center}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:.3rem}.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__year-dropdown-container--select{display:inline-block;margin:0 15px}.react-datepicker-time__header,.react-datepicker-year-header,.react-datepicker__current-month{color:#000;font-size:.944rem;font-weight:700;margin-top:0}h2.react-datepicker__current-month{margin:0;padding:0}.react-datepicker-time__header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.react-datepicker__navigation{align-items:center;background:none;border:none;cursor:pointer;display:flex;height:32px;justify-content:center;overflow:hidden;padding:0;position:absolute;text-align:center;text-indent:-999em;top:2px;width:32px;z-index:1}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{display:block;margin-left:auto;margin-right:auto;position:relative;top:0}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover :before{border-color:#a6a6a6}.react-datepicker__navigation-icon{font-size:20px;position:relative;top:-1px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{left:-7px;transform:rotate(45deg)}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{right:-7px;transform:rotate(225deg)}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;margin:2px;width:4rem}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;margin:2px;width:4rem}.react-datepicker__input-time-container{clear:both;float:left;margin:5px 0 10px 15px;text-align:left;width:100%}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{display:inline-block;margin-left:5px}.react-datepicker__time-container{border-left:1px solid #aeaeae;float:right;width:85px}.react-datepicker__time-container--with-today-button{border:1px solid #aeaeae;border-radius:.3rem;display:inline;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{background:#fff;border-bottom-right-radius:.3rem;position:relative}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{border-bottom-right-radius:.3rem;margin:0 auto;overflow-x:hidden;text-align:center;width:85px}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{box-sizing:initial;height:calc(195px + .85rem);list-style:none;margin:0;overflow-y:scroll;padding-left:0;padding-right:0;width:100%}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{background-color:#f0f0f0;cursor:pointer}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{background-color:initial;cursor:default}.react-datepicker__week-number{color:#ccc;display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{background-color:#f0f0f0;border-radius:.3rem}.react-datepicker__week-number--selected{background-color:#216ba5;border-radius:.3rem;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{margin-bottom:-8px;text-align:center;white-space:nowrap}.react-datepicker__week{white-space:nowrap}.react-datepicker__day,.react-datepicker__day-name,.react-datepicker__time-name{color:#000;display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.react-datepicker__day--disabled,.react-datepicker__day-name--disabled,.react-datepicker__time-name--disabled{color:#ccc;cursor:default}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{background-color:#f0f0f0;border-radius:.3rem}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{background-color:#3dcc4a;border-radius:.3rem;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{background-color:#ff6803;border-radius:.3rem;color:#fff;position:relative}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{background-color:#333;border-radius:4px;bottom:100%;color:#fff;left:50%;opacity:0;padding:4px;position:absolute;transform:translateX(-50%);transition:visibility 0s,opacity .3s ease-in-out;visibility:hidden;white-space:nowrap}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{opacity:1;visibility:visible}.react-datepicker__day--in-range,.react-datepicker__day--in-selecting-range,.react-datepicker__day--selected,.react-datepicker__month-text--in-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--selected,.react-datepicker__quarter-text--in-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--selected,.react-datepicker__year-text--in-range,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--selected{background-color:#216ba5;border-radius:.3rem;color:#fff}.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{background-color:#bad9f1;border-radius:.3rem;color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:#1d5d90;color:#fff}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{color:#ccc;cursor:default}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{background-color:#333;border-radius:4px;bottom:70%;color:#fff;left:50%;opacity:0;padding:4px;position:absolute;transform:translateX(-50%);transition:visibility 0s,opacity .3s ease-in-out;visibility:hidden;white-space:nowrap}.react-datepicker__input-container{display:inline-block;position:relative;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{box-sizing:initial;padding:.5rem;position:absolute}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__month-read-view,.react-datepicker__month-year-read-view,.react-datepicker__year-read-view{border:1px solid #0000;border-radius:.3rem;position:relative}.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover,.react-datepicker__year-read-view:hover{cursor:pointer}.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__year-read-view--down-arrow{right:-16px;top:0;transform:rotate(135deg)}.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown,.react-datepicker__year-dropdown{background-color:#f0f0f0;border:1px solid #aeaeae;border-radius:.3rem;left:25%;position:absolute;text-align:center;top:30px;width:50%;z-index:1}.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover,.react-datepicker__year-dropdown:hover{cursor:pointer}.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable,.react-datepicker__year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__month-option,.react-datepicker__month-year-option,.react-datepicker__year-option{display:block;line-height:20px;margin-left:auto;margin-right:auto;width:100%}.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type,.react-datepicker__year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type,.react-datepicker__year-option:last-of-type{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem;-webkit-user-select:none;user-select:none}.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover,.react-datepicker__year-option:hover{background-color:#ccc}.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected,.react-datepicker__year-option--selected{left:15px;position:absolute}.react-datepicker__close-icon{background-color:initial;border:0;cursor:pointer;display:table-cell;height:100%;outline:0;padding:0 6px 0 0;position:absolute;right:0;top:0;vertical-align:middle}.react-datepicker__close-icon:after{background-color:#216ba5;border-radius:50%;color:#fff;content:"×";cursor:pointer;display:table-cell;font-size:12px;height:16px;line-height:1;padding:2px;text-align:center;vertical-align:middle;width:16px}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{background-color:#ccc;cursor:default}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;clear:left;font-weight:700;padding:5px 0;text-align:center}.react-datepicker__portal{align-items:center;background-color:#000c;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:2147483647}.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{line-height:3rem;width:3rem}@media (max-height:550px),(max-width:400px){.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{line-height:2rem;width:2rem}}.react-datepicker__portal .react-datepicker-time__header,.react-datepicker__portal .react-datepicker__current-month{font-size:1.44rem}.react-datepicker__children-container{height:auto;margin:.4rem;padding-left:.2rem;padding-right:.2rem;width:13.8rem}.react-datepicker__aria-live{border:0;-webkit-clip-path:circle(0);clip-path:circle(0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.react-datepicker__calendar-icon{height:1em;vertical-align:-.125em;width:1em}.school-setup-page{animation:fadeIn .4s ease-in;background:linear-gradient(135deg,#f8f9fa,#fff);min-height:100vh;padding:2rem 1rem}.school-setup-container{margin:0 auto;max-width:900px;width:100%}.setup-header{margin-bottom:2.5rem;text-align:center}.step-indicator{align-items:center;display:flex;gap:.5rem;justify-content:center;margin-bottom:2rem}.step-number{background:#e5e7eb;color:#9ca3af;font-size:14px;font-weight:600;height:36px;transition:all .3s ease;width:36px}.step-number.active{background:linear-gradient(135deg,#4d8eff,#3b7ae8);box-shadow:0 4px 12px #4d8eff4d;color:#fff;transform:scale(1.1)}.step-divider{background:#e5e7eb;height:2px;transition:all .3s ease;width:60px}.step-divider.active{background:linear-gradient(90deg,#4d8eff,#3b7ae8)}.setup-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#1f2937,#4d8eff);-webkit-background-clip:text;background-clip:text;color:#1f2937;font-size:2.25rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem}.setup-header p{color:#6b7280;font-size:1rem;font-weight:400}.setup-card{animation:slideUp .4s ease-out;background:#fff;border:1px solid #e5e7eb;border-radius:1rem;box-shadow:0 4px 6px #00000012,0 2px 4px #0000000f;padding:2.5rem;transition:all .3s ease}.setup-card:hover{box-shadow:0 10px 15px #0000001a,0 4px 6px #0000000d}.form-group{margin-bottom:24px}.form-group .optional{color:#a0aec0;font-size:13px;font-weight:400}.form-group input,.form-group select,.form-group textarea{border:1px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:14px;padding:12px 16px;transition:all .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4d8eff;box-shadow:0 0 0 4px #4d8eff1a;outline:none;transform:translateY(-1px)}.form-group input.error,.form-group select.error{background:#fff5f5;border-color:#fc8181}.form-group input.error:focus,.form-group select.error:focus{border-color:#e53e3e;box-shadow:0 0 0 3px #e53e3e1a}.form-group textarea{line-height:1.5;resize:vertical}.periods-list,.years-list{margin-bottom:30px}.periods-list h3,.years-list h3{color:#2d3748;font-size:18px;font-weight:600;margin-bottom:15px}.periods-grid,.years-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:15px}.year-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000000d;color:#1f2937;cursor:pointer;overflow:hidden;padding:1.5rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.year-card:before{background:linear-gradient(135deg,#4d8eff,#3b7ae8);content:"";height:100%;left:0;position:absolute;top:0;transform:scaleY(0);transition:transform .3s ease;width:4px}.year-card:hover{background:linear-gradient(135deg,#f8f9fa,#fff);border-color:#4d8eff;box-shadow:0 8px 16px #4d8eff26;transform:translateY(-4px)}.year-card:hover:before{transform:scaleY(1)}.year-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.year-header h4{color:#1f2937;font-size:1.25rem;font-weight:700;letter-spacing:-.01em;margin:0}.period-actions,.year-actions{display:flex;gap:8px}.icon-btn{background:#f8f9fa;border:1px solid #e5e7eb;border-radius:.5rem;color:#6b7280;cursor:pointer;font-size:14px;padding:.5rem .75rem;transition:all .2s ease}.icon-btn:hover{background:#f0f7ff;border-color:#4d8eff;color:#4d8eff;transform:scale(1.05)}.year-dates{margin:8px 0}.period-dates{color:#4b5563!important;font-weight:500;margin:8px 0;position:relative;z-index:10}.year-meta{margin-top:8px}.period-card{background:linear-gradient(135deg,#f0f7ff,#e7f3ff);border:2px solid #dbeafe;border-radius:.75rem;box-shadow:0 2px 8px #4d8eff26;color:#1f2937;cursor:pointer;overflow:visible;padding:1.5rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.period-card:hover{background:linear-gradient(135deg,#fff,#f0f7ff);border-color:#4d8eff;box-shadow:0 8px 24px #4d8eff40;transform:translateY(-4px)}.period-header{align-items:center;margin-bottom:12px;position:relative;z-index:10}.period-card .period-actions{position:relative;z-index:3}.period-card .icon-btn{background:#fff;border:1px solid #d1d5db;color:#6b7280}.period-card .icon-btn:hover{background:#f8f9fa;border-color:#4d8eff;color:#4d8eff}.period-header h4{color:#1f2937!important;font-size:1.125rem;font-weight:700;letter-spacing:-.01em;margin:0;position:relative;z-index:10}.empty-message{display:none}.btn-add{align-items:center;background:#f8f9fa;border:2px dashed #d1d5db;border-radius:.5rem;color:#4d8eff;cursor:pointer;display:flex;font-weight:600;gap:.5rem;justify-content:center;margin-top:0;padding:1rem 1.5rem;transition:all .3s ease;width:100%}.btn-add:hover{background:#f0f7ff;border-color:#4d8eff;box-shadow:0 4px 12px #4d8eff1a;color:#3b7ae8;transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg,#4d8eff,#3b7ae8);border-radius:.5rem;box-shadow:0 2px 4px #4d8eff4d;font-size:.9375rem;padding:.875rem 1.75rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#3b7ae8,#2563eb);box-shadow:0 4px 12px #4d8eff66;transform:translateY(-2px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{border:1.5px solid #e5e7eb;border-radius:.5rem;color:#4d8eff;padding:.75rem 1.5rem;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:#f8f9fa;border-color:#4d8eff;color:#3b7ae8;transform:translateY(-1px)}.btn-download-template{align-items:center;background:#48bb78;border:none;border-radius:8px;box-shadow:0 4px 12px #48bb784d;color:#fff;cursor:pointer;display:inline-flex;font-size:15px;font-weight:600;gap:8px;padding:14px 24px;transition:all .3s}.btn-download-template:hover{background:#38a169;box-shadow:0 6px 20px #48bb7866;transform:translateY(-2px)}.add-form{background:#f7fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:20px;padding:24px}.add-form h4{color:#2d3748;font-size:16px;font-weight:600;margin-bottom:20px}.form-actions{margin-top:20px}.hint-text{color:#718096;font-size:13px;font-style:italic;margin-top:8px}.field-error{background:#fff5f5}.date-error,.field-error{border-left:3px solid #fc8181;border-radius:4px;margin-bottom:16px;padding:10px 12px}.date-error{font-size:13px;grid-column:1/-1;margin-top:12px}.setup-actions{align-items:center;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-top:2.5rem;padding-top:2rem}.success-message{background:#f0fff4;border:1px solid #9ae6b4;border-radius:8px;color:#22543d;margin-bottom:20px;padding:16px}.success-message ul{list-style-position:inside;margin:0;padding-left:20px}.warning-message{background:#fffaf0;border:1px solid #fbd38d;border-radius:8px;color:#744210;padding:16px;text-align:center}.import-instructions{background:linear-gradient(135deg,#f8f9fa,#fff);border:1.5px solid #e5e7eb;border-radius:.75rem;margin-bottom:1.5rem;padding:1.75rem;transition:all .3s ease}.import-instructions:hover{border-color:#4d8eff;box-shadow:0 4px 12px #4d8eff1a}.import-header{align-items:flex-start;display:flex;gap:1rem;margin-bottom:1.5rem}.import-icon-wrapper{align-items:center;background:linear-gradient(135deg,#f0f7ff,#e7f3ff);border:1px solid #dbeafe;border-radius:.75rem;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.import-header h3{color:#1f2937;font-size:1.125rem;font-weight:700;letter-spacing:-.01em;margin:0 0 .25rem}.import-header p{color:#6b7280;font-size:.875rem;margin:0}.import-steps{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1.5rem}.import-step{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;color:#374151;display:flex;font-size:.8125rem;gap:.75rem;padding:.75rem;transition:all .2s ease}.import-step:hover{background:#f8f9fa;border-color:#4d8eff}.step-number{border-radius:50%;flex-shrink:0;font-size:.75rem;font-weight:700;height:28px;width:28px}.btn-open-template,.step-number{align-items:center;background:linear-gradient(135deg,#4d8eff,#3b7ae8);box-shadow:0 2px 4px #4d8eff4d;color:#fff;display:flex;justify-content:center}.btn-open-template{border:none;border-radius:.5rem;cursor:pointer;font-size:.9375rem;font-weight:600;margin-bottom:1rem;padding:.875rem 1.75rem;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.btn-open-template:hover{background:linear-gradient(135deg,#3b7ae8,#2563eb);box-shadow:0 4px 12px #4d8eff66;transform:translateY(-2px)}.template-note{background:#f8fafc;border-radius:6px;color:#718096;font-size:13px;padding:12px;text-align:center}.template-note strong{color:#2d3748}.divider-dot{color:#cbd5e0;margin:0 8px}.file-upload-area{margin-top:.5rem}.file-upload-label{align-items:center;background:#f8f9fa;border:2px dashed #d1d5db;border-radius:.75rem;cursor:pointer;display:block;display:flex;flex-direction:column;justify-content:center;min-height:140px;padding:2rem 1.5rem;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1)}.file-upload-label:hover{background:#f0f7ff;border-color:#4d8eff;box-shadow:0 4px 12px #4d8eff1a;transform:translateY(-2px)}.upload-icon{opacity:.6}.file-icon,.upload-icon{display:block;margin-bottom:.75rem}.file-name{font-size:.9375rem;font-weight:600;margin:.5rem 0 .25rem}.file-size{color:#6b7280;font-size:.8125rem}.file-hint{color:#9ca3af;font-size:.8125rem;margin-top:.25rem}@media (max-width:768px){.school-setup-page{padding:1.25rem 1rem}.setup-header h1{font-size:1.75rem}.step-indicator{gap:.25rem;margin-bottom:1.5rem}.step-number{font-size:.75rem;height:32px;width:32px}.step-divider{width:30px}.setup-card{padding:1.5rem}.form-row,.periods-grid,.years-grid{grid-template-columns:1fr}.setup-actions{flex-direction:column;gap:.75rem;margin-top:2rem;padding-top:1.5rem}.setup-actions>div{display:flex;flex-direction:column;gap:.5rem;width:100%}.import-instructions{margin-bottom:1rem;padding:1.25rem}.file-upload-label{min-height:120px;padding:1.5rem 1rem}}.admin-overview{margin:0 auto;max-width:1400px;padding:32px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:40px}.stat-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;cursor:pointer;display:flex;gap:20px;padding:24px;transition:all .3s ease}.stat-card:hover{box-shadow:0 8px 20px #0000001f;transform:translateY(-4px)}.stat-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;font-size:28px;height:64px;justify-content:center;width:64px}.stat-content{flex:1 1}.stat-value{color:#1a202c;font-size:32px;font-weight:700;line-height:1;margin-bottom:4px}.stat-label{color:#718096;font-size:14px;font-weight:500}.quick-actions-section{margin-bottom:40px}.quick-actions-section h2{color:#1a202c;font-size:20px;font-weight:700;margin-bottom:20px}.quick-actions-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.quick-action-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;padding:24px;text-align:center;transition:all .3s ease}.quick-action-card:hover{background:linear-gradient(135deg,#667eea0d,#764ba20d);border-color:#667eea;transform:translateY(-2px)}.quick-action-icon{font-size:36px;margin-bottom:12px}.quick-action-title{color:#2d3748;font-size:16px;font-weight:600;margin-bottom:6px}.quick-action-desc{color:#718096;font-size:13px}.recent-activity-section{margin-bottom:40px}.recent-activity-section h2{color:#1a202c;font-size:20px;font-weight:700;margin-bottom:20px}.activity-list{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.activity-item{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;gap:16px;padding:16px 20px}.activity-item:last-child{border-bottom:none}.activity-icon{flex-shrink:0;font-size:20px}.activity-message{color:#4a5568;flex:1 1;font-size:14px}.performance-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;cursor:pointer;margin-bottom:40px;padding:20px;transition:all .3s ease}.performance-card:hover{border-color:#d1d5db;box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.performance-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.performance-header h2{color:#1a202c;font-size:18px;font-weight:700;margin:0}.trend-indicator{align-items:center;border-radius:12px;display:flex;font-size:13px;font-weight:600;gap:4px;padding:4px 10px}.trend-indicator.up{background:#d1fae5;color:#065f46}.trend-indicator.down{background:#fee2e2;color:#991b1b}.performance-value{margin-bottom:12px}.average-value{color:#1a202c;display:block;font-size:36px;font-weight:700;line-height:1;margin-bottom:6px}.average-label{color:#718096;font-size:13px;font-weight:500}.performance-bar{background:#f1f5f9;border-radius:2px;height:4px;margin-bottom:12px;overflow:hidden;width:100%}.performance-bar-fill{background:#4d8eff;border-radius:2px;height:100%;transition:width .5s ease}.performance-hint{color:#4d8eff;font-size:13px;font-weight:500;margin:0;transition:color .2s ease}.performance-card:hover .performance-hint{color:#3b7ae8}.school-info-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:28px}.school-info-card h2{color:#1a202c;font-size:20px;font-weight:700;margin-bottom:20px}.info-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:24px}.info-item{display:flex;flex-direction:column;gap:6px}.info-label{color:#718096;font-size:13px;font-weight:500}.info-value{color:#2d3748;font-size:15px;font-weight:600}.btn-edit-school{background:#4285f4;border:none;border-radius:8px;box-shadow:0 2px 4px #4285f44d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s}.btn-edit-school:hover{background:#3367d6;box-shadow:0 4px 8px #4285f466}@media (max-width:768px){.admin-overview{padding:20px}.quick-actions-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:1fr}}@media (max-width:480px){.quick-actions-grid,.stats-grid{grid-template-columns:1fr}}.admin-analytics{margin:0 auto;max-width:1400px;padding:32px}.admin-analytics .page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:32px}.admin-analytics .page-header h1{color:#1a202c;font-size:28px;font-weight:700;margin-bottom:4px}.admin-analytics .page-subtitle{color:#718096;font-size:15px}.header-controls{display:flex;gap:16px}.period-select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 16px;transition:all .3s}.period-select:hover{border-color:#667eea}.period-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.btn-compare{background:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .3s}.btn-compare:hover{background:#5568d3;box-shadow:0 4px 8px #667eea4d;transform:translateY(-1px)}.overview-value{margin-bottom:8px}.trend-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px}.trend-badge.up{background:#d1fae5;color:#065f46}.trend-badge.down{background:#fee2e2;color:#991b1b}.teacher-table{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.teacher-table table{border-collapse:collapse;width:100%}.teacher-table thead{background:#f7fafc}.teacher-table th{color:#4a5568;font-size:13px;font-weight:600;letter-spacing:.5px;padding:16px;text-align:left;text-transform:uppercase}.teacher-table td{border-top:1px solid #e2e8f0;color:#2d3748;font-size:14px;padding:16px}.teacher-table tbody tr:hover{background:#f7fafc}.teacher-table tbody tr.clickable-row{cursor:pointer}.teacher-table tbody tr.clickable-row:hover{background:#e2e8f0}.breakdown-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.breakdown-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.breakdown-card h3{color:#1a202c;font-size:18px;font-weight:600;margin-bottom:20px}.trends-container{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(500px,1fr))}.trend-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.trend-card h3{color:#1a202c;font-size:18px;font-weight:600;margin-bottom:20px}.student-insights-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.insight-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.insight-card h3{color:#1a202c;font-size:18px;font-weight:600;margin-bottom:20px}.participation-display{padding:20px;text-align:center}.participation-value{color:#667eea;font-size:48px;font-weight:700;margin-bottom:8px}.participation-label{color:#718096;font-size:14px}.empty-state{font-style:italic}.error-message{margin:20px}.admin-analytics .loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:400px}.admin-analytics .spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#667eea;height:48px;margin-bottom:16px;width:48px}.admin-analytics .loading-state p{color:#718096;font-size:15px}@media (max-width:768px){.admin-analytics{padding:20px}.admin-analytics .page-header{align-items:flex-start;flex-direction:column;gap:16px}.breakdown-grid,.student-insights-grid,.trends-container{grid-template-columns:1fr}.chart-container{height:300px}.teacher-table{overflow-x:auto}}.drill-down-detail{margin:0 auto;max-width:1400px;padding:32px}.detail-header{margin-bottom:32px}.detail-header h1{color:#1a202c;font-size:28px;font-weight:700;margin:16px 0}.overview-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.overview-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px;text-align:center}.overview-label{color:#718096;font-size:13px;font-weight:500;margin-bottom:8px}.overview-value{color:#1a202c;font-size:32px;font-weight:700}.chart-container{cursor:pointer}.table-container{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.table-container table{border-collapse:collapse;width:100%}.table-container thead{background:#f7fafc}.table-container th{color:#4a5568;font-size:13px;font-weight:600;letter-spacing:.5px;padding:16px;text-align:left;text-transform:uppercase}.table-container td{border-top:1px solid #e2e8f0;color:#2d3748;font-size:14px;padding:16px}.table-container tbody tr:hover{background:#f7fafc}.students-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.students-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.students-card h3{color:#1a202c;font-size:18px;font-weight:600;margin-bottom:20px}.student-list{display:flex;flex-direction:column;gap:12px}.student-item{align-items:center;background:#f7fafc;border-radius:8px;display:flex;gap:12px;padding:12px}.student-item.risk{background:#fee2e2}.student-rank{color:#667eea;font-weight:700;min-width:30px}.student-name{color:#2d3748;flex:1 1;font-size:14px;font-weight:500}.student-score{color:#1a202c;font-weight:600}@media (max-width:768px){.drill-down-detail{padding:20px}.chart-container{height:300px}.table-container{overflow-x:auto}.students-grid{grid-template-columns:1fr}}.period-comparison{margin:0 auto;max-width:1400px;padding:32px}.comparison-header{margin-bottom:32px}.comparison-header h1{color:#1a202c;font-size:28px;font-weight:700;margin:16px 0}.btn-back{background:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;color:#4a5568;cursor:pointer;font-size:14px;font-weight:600;margin-bottom:16px;padding:10px 20px;transition:all .3s}.btn-back:hover{background:#edf2f7;border-color:#cbd5e0}.period-selectors{display:flex;gap:24px;margin-bottom:32px}.period-selector{flex:1 1}.period-selector label{color:#4a5568;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.period-selector select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:14px;padding:12px 16px;transition:all .3s;width:100%}.period-selector select:hover{border-color:#cbd5e0}.period-selector select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.section{margin-bottom:48px}.section h2{color:#1a202c;font-size:22px;font-weight:700;margin-bottom:24px}.comparison-overview{grid-gap:24px;align-items:center;display:grid;gap:24px;grid-template-columns:1fr auto 1fr}.comparison-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:32px;text-align:center}.comparison-card.center{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.comparison-card h3{color:#4a5568;font-size:18px;font-weight:600;margin-bottom:16px}.comparison-card.center h3{color:#fff}.comparison-value{color:#1a202c;font-size:48px;font-weight:700;margin-bottom:12px}.comparison-card.center .comparison-value{color:#fff}.comparison-meta{color:#718096;display:flex;flex-direction:column;font-size:14px;gap:8px}.comparison-card.center .comparison-meta{color:#ffffffe6}.change-indicator{font-size:48px;margin-bottom:8px}.change-value{font-size:32px;font-weight:700;margin-bottom:4px}.change-percent{font-size:16px;opacity:.9}.chart-container{height:400px;margin-bottom:24px;padding:24px}.chart-container,.comparison-table{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.comparison-table{overflow:hidden}.comparison-table table{border-collapse:collapse;width:100%}.comparison-table thead{background:#f7fafc}.comparison-table th{color:#4a5568;font-size:13px;font-weight:600;letter-spacing:.5px;padding:16px;text-align:left;text-transform:uppercase}.comparison-table td{border-top:1px solid #e2e8f0;color:#2d3748;font-size:14px;padding:16px}.comparison-table tbody tr:hover{background:#f7fafc}.comparison-table td.positive{color:#059669;font-weight:600}.comparison-table td.negative{color:#dc2626;font-weight:600}.empty-state{color:#a0aec0;font-size:16px}.loading-state{min-height:400px}.error-message{background:#fee2e2;color:#991b1b;margin:20px 0;padding:16px;text-align:center}@media (max-width:768px){.period-comparison{padding:20px}.comparison-overview{grid-template-columns:1fr}.period-selectors{flex-direction:column}.chart-container{height:300px}}.confirm-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:20000}.confirm-dialog{animation:slideUp .3s ease-out;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:480px;padding:32px;text-align:center;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.confirm-icon{font-size:56px;line-height:1;margin-bottom:20px}.confirm-title{color:#1a202c;font-size:22px;font-weight:700;line-height:1.3;margin-bottom:12px}.confirm-message{background:#f8fafc;border-left:3px solid #e53e3e;border-radius:8px;color:#4a5568;font-size:15px;line-height:1.6;margin-bottom:32px;padding:16px;text-align:left}.confirm-actions{display:flex;gap:12px;justify-content:flex-end}.btn-confirm-cancel{background:#fff;border:2px solid #e2e8f0;border-radius:8px;color:#4a5568;cursor:pointer;font-size:14px;font-weight:600;min-width:100px;padding:12px 24px;transition:all .2s}.btn-confirm-cancel:hover{background:#f7fafc;border-color:#cbd5e0;color:#2d3748}.btn-confirm-action{border:none;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;font-size:14px;font-weight:600;min-width:100px;padding:12px 24px;transition:all .2s}.btn-confirm-action.danger{background:#e53e3e}.btn-confirm-action.danger:hover{background:#c53030;box-shadow:0 4px 12px #e53e3e66;transform:translateY(-1px)}.btn-confirm-action.warning{background:#ed8936}.btn-confirm-action.warning:hover{background:#dd6b20}.btn-confirm-action.info{background:#4285f4}.btn-confirm-action.info:hover{background:#3367d6}@media (max-width:480px){.confirm-dialog{padding:24px}.confirm-actions{flex-direction:column}.btn-confirm-action,.btn-confirm-cancel{width:100%}}.financial-years-page{margin:0 auto;max-width:1200px;padding:32px}.form-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:28px}.form-card h3{color:#2d3748;font-size:18px;font-weight:600}.academic-year-modal .form-group,.form-card h3{margin-bottom:20px}.academic-year-modal .form-group input[type=text]{box-sizing:border-box;max-width:100%;width:100%}.academic-year-modal .form-group:first-child{max-width:calc(50% - 10px)}.field-error{color:#c53030;font-size:13px;font-weight:500;margin-top:4px}.academic-year-modal .form-group{box-sizing:border-box;width:100%}.academic-year-modal .form-row .form-group{box-sizing:border-box;display:flex;flex:1 1;flex-direction:column;margin:0;max-width:100%;min-width:0;padding:0;width:100%}.academic-year-modal .form-row .form-group:first-child,.academic-year-modal .form-row .form-group:last-child{max-width:100%;min-width:0;width:100%}.academic-year-modal form>.form-group:first-child{box-sizing:border-box;display:flex;flex-direction:column;max-width:100%;width:100%}.academic-year-modal form>.form-group:first-child input{box-sizing:border-box;max-width:100%;width:100%}.years-list{display:flex;flex-direction:column;gap:16px}.year-card-large{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px;transition:all .3s ease}.year-card-large:hover{box-shadow:0 4px 12px #0000001a}.year-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.year-info h3{color:#2d3748;font-size:20px;font-weight:600;margin-bottom:8px}.year-dates{color:#718096;font-size:14px;margin-bottom:4px}.year-meta{color:#a0aec0;font-size:13px}.year-actions{display:flex;gap:8px}.btn-view-periods{background:#4285f4;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.btn-view-periods:hover{background:#3367d6;transform:translateX(4px)}.spinner{border-top-color:#667eea}.academic-year-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;overflow:auto;padding:20px;position:fixed;right:0;top:0;z-index:10000}.academic-year-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;margin:auto;max-height:90vh;max-width:500px;overflow:visible;position:relative;width:100%;z-index:10001}.academic-year-modal .modal-header{overflow:visible}.academic-year-modal form{max-height:calc(90vh - 100px);overflow:visible;overflow-x:visible;overflow-y:auto}.academic-year-modal .modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:24px 28px}.academic-year-modal .modal-header h3{color:#1a202c;font-size:20px;font-weight:600;margin:0}.academic-year-modal form{padding:28px;position:relative}.academic-year-modal .error-message{margin:0 28px 20px}.academic-year-modal .form-group,.academic-year-modal .form-row,.academic-year-modal .form-row .form-group{overflow:visible}.academic-year-modal .date-picker-wrapper{box-sizing:border-box;overflow:visible;width:100%}.academic-year-modal .form-row .form-group .date-picker-wrapper{display:flex;flex:1 1 auto;flex-direction:column;padding:0}.academic-year-modal .date-picker-wrapper .custom-datepicker,.academic-year-modal .form-row .form-group .date-picker-wrapper{box-sizing:border-box;margin:0;max-width:100%!important;min-width:0;width:100%!important}.react-datepicker-popper[data-placement^=top]{margin-bottom:8px!important}.react-datepicker__portal{z-index:10003!important}@media (max-width:768px){.financial-years-page{padding:20px}.form-row{grid-template-columns:1fr}.year-card-header{flex-direction:column;gap:12px}.year-actions{justify-content:flex-end;width:100%}.academic-year-modal{margin:10px;max-width:100%}.academic-year-modal .modal-header,.academic-year-modal form{padding:20px}}.assessment-periods-page{margin:0 auto;max-width:1200px;padding:32px}.header-left,.page-header{align-items:flex-start}.header-left{display:flex;flex:1 1;gap:8px;min-width:0}.btn-back-icon{align-items:center;background:none;border:none;border-radius:8px;color:#4285f4;cursor:pointer;display:flex;flex-shrink:0;font-size:24px;font-weight:600;height:40px;justify-content:center;margin-top:0;padding:8px;transition:all .2s;width:40px}.btn-back-icon:hover{background:#f1f5f9;color:#3367d6}.assessment-periods-page .header-content{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;min-width:0}.header-title-group{align-items:flex-start;display:flex;flex-direction:column;gap:4px;width:100%}.header-title-group h1{color:#1a202c;display:inline-block;font-size:28px;font-weight:700;line-height:1.2;margin:0;padding:0;white-space:nowrap}.page-subtitle{display:block;line-height:1.4;margin:0;padding:0;text-align:left}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;width:100%}.form-group,.form-row{box-sizing:border-box}.form-group .hint{color:#a0aec0;font-size:12px;font-weight:400;margin-left:5px}.form-group input{border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-size:14px;padding:12px 16px;transition:all .2s;width:100%}.form-group input:focus{border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a;outline:none}.form-group input.error{background:#fff5f5;border-color:#fc8181}.form-group input.error:focus{border-color:#e53e3e;box-shadow:0 0 0 3px #e53e3e1a}.date-error{background:#fff5f5;border:1px solid #feb2b2;border-radius:8px;color:#c53030;font-size:14px;font-weight:500;margin-top:8px;padding:12px 16px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.period-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;overflow:auto;padding:20px;position:fixed;right:0;top:0;z-index:10000}.period-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;margin:auto;max-height:90vh;max-width:500px;overflow:visible;position:relative;width:100%;z-index:10001}.period-modal .modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:24px 28px}.period-modal .modal-header h3{color:#1a202c;font-size:20px;font-weight:600;margin:0}.modal-close-btn{align-items:center;background:none;border:none;border-radius:6px;color:#718096;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.modal-close-btn:hover{background:#f1f5f9;color:#1a202c}.period-modal form{max-height:calc(90vh - 100px);overflow:visible;overflow-x:visible;overflow-y:auto;padding:28px;position:relative}.period-modal .error-message{margin:0 28px 20px}.period-modal .form-group,.period-modal .form-row{overflow:visible}.period-modal .form-row .form-group{box-sizing:border-box;display:flex;flex-direction:column;margin:0;max-width:100%;min-width:0;padding:0;width:100%}.period-modal .form-row .form-group .date-picker-wrapper{display:flex;flex:1 1 auto;flex-direction:column;padding:0}.period-modal .date-picker-wrapper .custom-datepicker,.period-modal .form-row .form-group .date-picker-wrapper{box-sizing:border-box;margin:0;max-width:100%!important;min-width:0;width:100%!important}.date-picker-wrapper{box-sizing:border-box;flex:1 1;min-width:0;position:relative;width:100%;z-index:1}.custom-datepicker{background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="%23718096" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>') no-repeat;background-position:right 12px center;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;cursor:pointer;font-family:inherit;font-size:14px;max-width:100%!important;min-width:0;overflow:visible;padding:12px 40px 12px 16px;text-overflow:ellipsis;transition:all .2s;white-space:nowrap;width:100%!important}.custom-datepicker:hover{border-color:#cbd5e0}.custom-datepicker:focus{border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a;outline:none}.custom-datepicker.error{background-color:#fff5f5!important;border-color:#fc8181!important}.custom-datepicker.error:focus{border-color:#e53e3e!important;box-shadow:0 0 0 3px #e53e3e1a!important}.react-datepicker{border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 10px 40px #0000001f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden;z-index:10003!important}.react-datepicker-popper{position:fixed!important;z-index:10003!important}.react-datepicker-popper[data-placement^=bottom-start],.react-datepicker-popper[data-placement^=bottom]{margin-top:8px!important}.react-datepicker__triangle{display:none}.react-datepicker__header{background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:0;padding:16px 16px 12px}.react-datepicker__current-month{color:#1a202c;font-size:15px;font-weight:700;margin-bottom:12px}.react-datepicker__day-names{margin-top:8px;padding:0 8px}.react-datepicker__day-name{color:#718096;font-size:11px;font-weight:600;line-height:2rem;text-transform:uppercase;width:2.5rem}.react-datepicker__month-container{background:#fff}.react-datepicker__month{margin:12px}.react-datepicker__week{display:flex;justify-content:space-around}.react-datepicker__day{border-radius:8px;color:#2d3748;font-size:14px;font-weight:500;height:2.5rem;line-height:2.5rem;margin:.2rem;transition:all .15s;width:2.5rem}.react-datepicker__day:hover{background:#f1f5f9;color:#1a202c;font-weight:600}.react-datepicker__day--keyboard-selected,.react-datepicker__day--selected{background:#4285f4;box-shadow:0 2px 8px #4285f440;color:#fff;font-weight:600}.react-datepicker__day--today{background:#0000;border:2px solid #4285f4;color:#4285f4;font-weight:700}.react-datepicker__day--today:hover{background:#f1f5f9}.react-datepicker__day--disabled{color:#e2e8f0;cursor:not-allowed}.react-datepicker__day--disabled:hover{background:#0000}.react-datepicker__day--outside-month{color:#cbd5e0;opacity:.5}.react-datepicker__month-dropdown-container,.react-datepicker__year-dropdown-container{margin:0 6px}.react-datepicker__month-select,.react-datepicker__year-select{-webkit-appearance:auto;appearance:auto;background:#fff;border:1px solid #cbd5e0;border-radius:6px;color:#1a202c;cursor:pointer;font-size:14px;font-weight:600;height:auto;line-height:1.5;min-width:110px;padding:8px 12px;transition:all .2s;vertical-align:middle}.react-datepicker__month-select:hover,.react-datepicker__year-select:hover{background:#f8fafc;border-color:#4285f4}.react-datepicker__month-select:focus,.react-datepicker__year-select:focus{border-color:#4285f4;box-shadow:0 0 0 2px #4285f41a;outline:none}.react-datepicker__month-select option,.react-datepicker__year-select option{background:#fff;color:#1a202c;padding:8px}.react-datepicker__navigation{background:#0000;border:1px solid #e2e8f0;border-radius:6px;height:28px;top:20px;transition:all .2s;width:28px}.react-datepicker__navigation:hover{background:#f8fafc;border-color:#cbd5e0}.react-datepicker__navigation-icon:before{border-color:#4a5568;border-width:2px 2px 0 0;height:7px;width:7px}.react-datepicker__today-button{background:#f8fafc;border-top:1px solid #e2e8f0;color:#4285f4;cursor:pointer;font-size:13px;font-weight:600;padding:10px;transition:all .2s}.react-datepicker__today-button:hover{background:#f1f5f9}.btn-primary{box-shadow:0 2px 4px #4285f44d}.btn-primary:hover:not(:disabled){box-shadow:0 4px 8px #4285f466}.btn-icon{background:#4285f41a;border:none;border-radius:6px;cursor:pointer;font-size:16px;padding:8px 12px;transition:all .2s}.btn-icon:hover{background:#4285f433;transform:scale(1.05)}.periods-grid{display:flex;flex-direction:column;gap:16px}.period-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;box-sizing:border-box;padding:24px;transition:all .3s ease;width:100%}.period-card:hover{background:#e8f0fe;border-color:#cbd5e0;box-shadow:0 4px 12px #0000001a}.period-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.period-info h3{color:#2d3748;display:flex;font-weight:600;gap:8px;margin-bottom:8px}.period-icon,.period-info h3{align-items:center;font-size:20px}.period-icon{display:inline-flex}.period-dates{align-items:center;color:#718096;display:flex;font-size:14px;gap:6px;margin-bottom:4px}.date-icon{font-size:14px;opacity:.7}.period-meta{align-items:center;color:#a0aec0;display:flex;font-size:13px;gap:6px}.assessment-icon{font-size:13px;opacity:.7}.period-actions{display:flex;gap:8px}.empty-state{box-shadow:0 1px 3px #0000001a;padding:60px 20px}.empty-icon{font-size:64px;margin-bottom:20px}.empty-state h3{color:#2d3748;font-size:20px;font-weight:600;margin-bottom:8px}.empty-state p{margin-bottom:24px}.loading-state p{color:#718096;font-size:15px}@media (max-width:768px){.assessment-periods-page{padding:20px}.page-header{flex-wrap:wrap;margin-left:-20px;margin-right:-20px;padding:0 20px}.header-title-group{align-items:flex-start;flex-direction:column;gap:8px}.header-title-group h1{font-size:24px;white-space:normal}.page-subtitle{font-size:14px;white-space:normal}.form-row{grid-template-columns:1fr}.period-modal{margin:10px;max-width:100%}.period-modal .modal-header,.period-modal form{padding:20px}}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:24px 28px}.modal-header h2{color:#1a202c;font-size:20px;font-weight:700;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#a0aec0;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.modal-close:hover{background:#f7fafc;color:#718096}.modal-content form{padding:28px}.modal-actions{border-top:1px solid #e2e8f0;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px}.form-group{margin-bottom:20px}.form-group label{color:#2d3748;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input,.form-group select{border:1px solid #e2e8f0;border-radius:8px;font-size:14px;padding:12px 16px;transition:all .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a;outline:none}.form-hint{color:#718096;display:block;font-size:13px;margin-top:6px}.btn-primary:hover:not(:disabled){background:#3367d6}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-secondary{background:#fff;border:2px solid #e2e8f0;border-radius:8px;color:#4285f4;cursor:pointer;font-weight:600;padding:10px 24px;transition:all .2s}.btn-secondary:hover:not(:disabled){background:#f7fafc;border-color:#4285f4}.invite-success{padding:40px 28px;text-align:center}.success-icon,.warning-icon{font-size:64px;margin-bottom:16px}.invite-success h3{color:#1a202c;font-size:22px;font-weight:700;margin-bottom:12px}.invite-success p{color:#4a5568;font-size:15px;margin-bottom:8px}.success-note{color:#718096;font-size:14px;margin-top:12px}.invite-url-box{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:8px;margin:20px 0;padding:16px}.invite-url-input{border:1px solid #cbd5e0;border-radius:6px;color:#2d3748;flex:1 1;font-family:Courier New,monospace;font-size:13px;padding:10px 12px}.btn-copy{background:#4285f4;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:10px 20px;white-space:nowrap}.btn-copy:hover{background:#3367d6}.teachers-page{margin:0 auto;max-width:1200px;padding:32px}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:32px}.page-header h1{color:#1a202c;font-size:28px;font-weight:700;margin-bottom:4px}.page-subtitle{color:#718096;font-size:15px}.section{margin-bottom:40px}.section h2{color:#2d3748;font-size:18px;font-weight:600;margin-bottom:16px}.members-list{display:flex;flex-direction:column;gap:12px}.member-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:16px;padding:20px;transition:all .2s}.member-card:hover{box-shadow:0 2px 8px #00000014}.admin-card{border-left:4px solid #4285f4}.member-avatar{align-items:center;background:#4285f4;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:16px;font-weight:600;height:48px;justify-content:center;width:48px}.member-info{flex:1 1}.member-name{color:#1a202c;font-size:16px;font-weight:600;margin-bottom:4px}.member-email{color:#718096;font-size:14px;margin-bottom:4px}.member-meta{color:#a0aec0;font-size:13px}.member-actions{display:flex;gap:8px}.invites-list{display:flex;flex-direction:column;gap:12px}.invite-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:16px;padding:16px 20px}.invite-card.expired{background:#faf8f5;opacity:.7}.invite-icon{flex-shrink:0;font-size:24px}.invite-info{flex:1 1}.invite-email{color:#2d3748;font-size:15px;font-weight:600;margin-bottom:4px}.invite-meta{color:#718096;font-size:13px}.invite-actions{align-items:center;display:flex;gap:12px}.btn-primary{background:#4285f4;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s}.btn-primary:hover{background:#3367d6}.btn-link{background:none;border:none;border-radius:6px;color:#4285f4;cursor:pointer;font-size:14px;font-weight:600;padding:8px 12px;transition:all .2s}.btn-link:hover{background:#f7fafc}.btn-link.danger{color:#e53e3e}.btn-link.danger:hover{background:#fff5f5}.btn-action-secondary{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#718096;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .2s}.btn-action-secondary:hover{border-color:#cbd5e0;color:#4a5568}.empty-state{background:#fff;border:1px dashed #cbd5e0;border-radius:12px;padding:40px 20px;text-align:center}.empty-state p{color:#718096;font-size:15px}.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#4285f4;height:48px;margin-bottom:16px;width:48px}.error-message{background:#fff5f5;border:1px solid #feb2b2;border-radius:8px;color:#c53030;font-size:14px;margin-bottom:20px;padding:12px 16px}@media (max-width:768px){.teachers-page{padding:20px}.member-card{align-items:flex-start;flex-direction:column}.invite-actions{flex-direction:column;width:100%}.invite-actions button{width:100%}}.file-upload-area{margin-bottom:2rem}.upload-label{color:#374151;display:block;font-size:.95rem;font-weight:500;margin-bottom:.75rem}.upload-zone{background:#f9fafb;border:2px dashed #d1d5db;border-radius:.75rem;cursor:pointer;padding:3rem 2rem;text-align:center;transition:all .2s}.upload-zone.compact{padding:1.5rem 2rem}.upload-zone.drag-active,.upload-zone:hover:not(.disabled){background:#eff6ff;border-color:#4d8eff}.upload-zone.drag-active{border-style:solid}.upload-zone.disabled{cursor:not-allowed;opacity:.6}.upload-content{align-items:center;display:flex;flex-direction:column;gap:1rem}.upload-zone.compact .upload-content{gap:.5rem}.upload-zone.compact .upload-icon{font-size:2rem;margin-bottom:0}.upload-zone.compact .upload-main-text{font-size:.95rem}.upload-zone.compact .upload-sub-text{font-size:.875rem}.upload-zone.compact .upload-info{font-size:.8rem;margin-top:.25rem}.upload-icon{font-size:3rem;margin-bottom:.5rem}.upload-text{display:flex;flex-direction:column;gap:.5rem}.upload-main-text{color:#1f2937;font-size:1.1rem;font-weight:500}.upload-sub-text{color:#6b7280;font-size:.95rem}.upload-info{color:#6b7280;display:flex;font-size:.875rem;gap:1rem;margin-top:.5rem}.uploading-spinner{animation:spin .8s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#4d8eff;height:24px;margin:0 auto;width:24px}.uploaded-files-list{margin-bottom:2rem}.list-header{margin-bottom:1rem}.list-header h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0}.files-container{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.file-card{align-items:flex-start;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;display:flex;gap:1rem;padding:1rem;transition:all .2s}.file-card.valid{border-left:4px solid #10b981}.file-card.invalid{border-left:4px solid #ef4444}.file-card.uploading{border-left:4px solid #4d8eff}.file-status-icon{display:none;flex-shrink:0;font-size:1.5rem;width:0}.file-status-indicator{align-items:center;display:flex;flex-shrink:0;height:12px;justify-content:center;margin-top:.25rem;width:12px}.status-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.status-dot-success{background-color:#10b981;box-shadow:0 0 0 2px #10b98133}.status-dot-error{background-color:#ef4444;box-shadow:0 0 0 2px #ef444433}.status-dot-uploading{animation:pulse 1.5s ease-in-out infinite;background-color:#4d8eff;box-shadow:0 0 0 2px #4d8eff33}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.file-progress-container{align-items:center;display:flex;gap:.75rem;margin-top:.5rem;width:100%}.file-progress-bar{background-color:#e5e7eb;border-radius:2px;flex:1 1;height:3px;overflow:hidden;position:relative}.file-progress-fill{background:linear-gradient(90deg,#4d8eff,#3d7eef);border-radius:2px;height:100%;position:relative;transition:width .3s ease-out}.file-progress-fill:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#ffffff4d 50%,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.file-progress-text{color:#6b7280;font-size:.75rem;font-weight:500;min-width:35px;text-align:right}.file-info{display:flex;flex:1 1;flex-direction:column;gap:.5rem}.file-name{color:#1f2937;font-size:.95rem;font-weight:500}.file-message{font-size:.875rem;line-height:1.5}.file-message.success{color:#10b981}.file-message.error{color:#ef4444}.file-message.uploading{color:#4d8eff}.file-roll-number{color:#6b7280;font-size:.875rem}.remove-btn{background:none;border:none;color:#ef4444;cursor:pointer;flex-shrink:0;font-size:1.5rem;line-height:1;padding:.25rem .5rem;transition:color .2s}.remove-btn:hover:not(:disabled){color:#dc2626}.remove-btn:disabled{cursor:not-allowed;opacity:.5}.evaluate-section{border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;padding-top:1rem}.evaluate-all-btn{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 2rem;transition:background .2s}.evaluate-all-btn:hover:not(:disabled){background:#3d7eef}.evaluate-all-btn:disabled{background:#9ca3af;cursor:not-allowed}.submissions-upload-page{margin:0 auto;max-width:1200px;padding:2rem}.page-header{margin-bottom:2rem}.back-button{align-items:center;background:none;border:none;color:#4d8eff;cursor:pointer;display:flex;font-size:.95rem;gap:.5rem;margin-bottom:1rem;padding:.5rem 0}.back-button:hover{text-decoration:underline}.page-header h1{color:#1f2937;font-size:1.75rem;font-weight:600;margin:0}.assessment-selector-section{margin-bottom:2rem}.assessment-selector-wrapper{display:flex;flex-direction:column;gap:.75rem}.assessment-selector-wrapper label{color:#374151;font-size:.95rem;font-weight:500}.selector-row{align-items:flex-start;display:flex;gap:1rem}.select-container{align-items:center;display:flex;flex:1 1;position:relative}.assessment-select{background:#fff;border:1px solid #d1d5db;border-radius:.5rem;color:#1f2937;flex:1 1;font-size:.95rem;min-width:300px;padding:.75rem 1rem}.assessment-select:focus{border-color:#4d8eff;box-shadow:0 0 0 3px #4d8eff1a;outline:none}.spinner-overlay{align-items:center;display:flex;justify-content:center;pointer-events:none;position:absolute;right:2.5rem}.spinner-circle{animation:spin-animation .8s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#4d8eff;height:20px;width:20px}@keyframes spin-animation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-submissions-spinner{align-items:center;display:flex;gap:.5rem;padding:.5rem 0}.loading-submissions-spinner span{color:#6b7280;font-size:.875rem}.create-assessment-btn{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:background .2s;white-space:nowrap}.create-assessment-btn:hover{background:#3d7eef}.create-assessment-btn:disabled{background:#9ca3af;cursor:not-allowed}.upload-section-wrapper{margin-bottom:2rem}.uploaded-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.uploaded-header-title{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0}.uploaded-section-header .evaluate-all-btn{background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 2rem;transition:background .2s;white-space:nowrap}.uploaded-section-header .evaluate-all-btn:hover:not(:disabled){background:#3d7eef}.uploaded-section-header .evaluate-all-btn:disabled{background:#9ca3af;cursor:not-allowed}.wizard-page{background:#f8fafc;min-height:100vh;padding:1.5rem 2rem}.wizard-bg,.wizard-bg-shape{display:none}.wizard-container{margin:0;max-width:1100px;position:relative;z-index:1}.wizard-header{margin-bottom:1.5rem}.wizard-back-btn{align-items:center;background:#0000;border:none;color:#4d8eff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;margin-bottom:.75rem;padding:.5rem 0;transition:color .2s}.wizard-back-btn:hover{color:#3b7ae8}.wizard-back-btn svg{height:16px;width:16px}.wizard-title-section{color:#1f2937}.wizard-title{color:#111827;font-size:1.875rem;font-weight:700;margin:0 0 .375rem}.wizard-subtitle{color:#6b7280;font-size:1rem;margin:0}.wizard-stepper{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 1px 3px #0000000f;gap:0;justify-content:center;margin-bottom:1.5rem;padding:1.25rem 2rem}.wizard-step,.wizard-stepper{align-items:center;display:flex}.wizard-step{gap:.75rem;opacity:.45;transition:all .3s}.wizard-step.active{opacity:1}.wizard-step.completed{opacity:.85}.wizard-step-indicator{align-items:center;background:#f3f4f6;border:2px solid #0000;border-radius:50%;color:#9ca3af;display:flex;flex-shrink:0;font-size:.9375rem;font-weight:700;height:36px;justify-content:center;transition:all .3s;width:36px}.wizard-step.active .wizard-step-indicator{background:#4d8eff;box-shadow:0 2px 8px #4d8eff59;color:#fff}.wizard-step.completed .wizard-step-indicator{background:#10b981;color:#fff}.wizard-step-indicator svg{height:18px;width:18px}.wizard-step-label{display:flex;flex-direction:column}.wizard-step-title{color:#6b7280;font-size:.9375rem;font-weight:600}.wizard-step.active .wizard-step-title{color:#111827}.wizard-step.completed .wizard-step-title{color:#374151}.wizard-step-desc{color:#9ca3af;font-size:.75rem}.wizard-step-connector{background:linear-gradient(90deg,#e5e7eb,#d1d5db);border-radius:1px;flex-shrink:0;height:2px;margin:0 1.25rem;width:56px}.wizard-card{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #00000008;overflow:hidden;width:100%}.wizard-error{align-items:center;background:#fef2f2;border-bottom:1px solid #fecaca;color:#dc2626;display:flex;font-size:.875rem;gap:.75rem;padding:.875rem 1.5rem}.wizard-error svg{flex-shrink:0;height:18px;width:18px}.wizard-step-content{padding:1.5rem 2rem}.wizard-section-header{align-items:flex-start;border-bottom:1px solid #f3f4f6;display:flex;gap:1rem;margin-bottom:1.25rem;padding-bottom:1rem}.wizard-section-header-success{background:#ecfdf5;border-bottom:1px solid #a7f3d0;border-radius:0;margin:-1.5rem -2rem 1.25rem;padding:1.25rem 2rem}.wizard-section-icon{align-items:center;background:#eff6ff;border:1px solid #dbeafe;border-radius:.75rem;display:flex;flex-shrink:0;font-size:1.375rem;height:48px;justify-content:center;width:48px}.wizard-section-header-success .wizard-section-icon{background:#dcfce7;border-color:#86efac}.wizard-section-header h2{color:#111827;font-size:1.25rem;font-weight:700;margin:0 0 .25rem}.wizard-section-header p{color:#6b7280;font-size:.9375rem;margin:0}.wizard-form{gap:1.5rem}.wizard-field,.wizard-form{display:flex;flex-direction:column}.wizard-field{flex:1 1;gap:.5rem}.wizard-field-full{width:100%}.wizard-field-row{display:flex;gap:1.25rem}.wizard-field label{color:#374151;font-size:.875rem;font-weight:600}.wizard-field label .required{color:#ef4444;margin-left:2px}.wizard-field input,.wizard-field select{background:#fafafa;border:1.5px solid #d1d5db;border-radius:.5rem;color:#1f2937;font-size:1rem;padding:.8125rem 1rem;transition:all .2s}.wizard-field input:hover,.wizard-field select:hover{border-color:#9ca3af}.wizard-field input:focus,.wizard-field select:focus{background:#fff;border-color:#4d8eff;box-shadow:0 0 0 3px #4d8eff1a;outline:none}.wizard-field input::placeholder{color:#9ca3af}.wizard-upload-grid{grid-gap:1.75rem;display:grid;gap:1.75rem;grid-template-columns:1fr 1fr}.wizard-upload-section{display:flex;flex-direction:column;gap:.875rem}.wizard-upload-header h3{align-items:center;color:#111827;display:flex;font-size:1rem;font-weight:600;gap:.5rem;margin:0 0 .25rem}.wizard-upload-header h3 .optional{color:#9ca3af;font-size:.8125rem;font-weight:400}.wizard-upload-header p{color:#6b7280;font-size:.8125rem;margin:0}.wizard-dropzone{align-items:center;background:#fafafa;border:2px dashed #d1d5db;border-radius:.75rem;cursor:pointer;display:flex;justify-content:center;min-height:140px;padding:1.75rem;text-align:center;transition:all .2s}.wizard-dropzone:hover:not(.extracting):not(.has-file):not(.has-error){background:#f8fafc;border-color:#4d8eff}.wizard-dropzone.drag-active,.wizard-dropzone.extracting{background:#eff6ff;border-color:#4d8eff;border-style:solid}.wizard-dropzone.extracting{cursor:wait}.wizard-dropzone.has-file.success{background:#ecfdf5;border-color:#10b981;border-style:solid;cursor:default}.wizard-dropzone.has-error{background:#fef2f2;border-color:#f87171;border-style:dashed}.wizard-dropzone-optional{background:#fafafa;border-color:#e5e7eb}.wizard-dropzone-extracting{align-items:center;color:#3b82f6;display:flex;flex-direction:column;font-weight:500;gap:.75rem}.wizard-file-success{align-items:center;display:flex;gap:1rem;padding:.25rem 0;text-align:left;width:100%}.wizard-file-success-icon{align-items:center;background:#ecfdf5;border-radius:10px;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.wizard-file-success-icon svg{stroke:#10b981;height:22px;width:22px}.wizard-file-success-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem;min-width:0}.wizard-file-success-name{color:#111827;font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wizard-file-success-meta,.wizard-file-success-status{color:#6b7280;font-size:.8125rem;font-weight:400}.wizard-file-remove{background:#0000;border:none;border-radius:6px;color:#9ca3af;height:32px;transition:all .15s ease;width:32px}.wizard-file-remove svg{height:16px;width:16px}.wizard-dropzone-error{align-items:center;color:#dc2626;display:flex;flex-direction:column;font-size:.875rem;gap:.5rem}.wizard-error-icon{font-size:1.5rem}.wizard-retry-link{background:none;border:none;color:#4d8eff;cursor:pointer;font-size:.8125rem;padding:0;text-decoration:underline}.wizard-retry-link:hover{color:#3b7ae8}.wizard-dropzone-content{align-items:center;display:flex;flex-direction:column;gap:.625rem}.wizard-dropzone-icon{color:#6b7280;height:40px;width:40px}.wizard-dropzone-optional .wizard-dropzone-icon{color:#9ca3af}.wizard-dropzone-icon svg{height:100%;width:100%}.wizard-dropzone-text{color:#4b5563;font-size:.9375rem;margin:0}.wizard-dropzone-link{color:#4d8eff;cursor:pointer;font-weight:600}.wizard-dropzone-link:hover{text-decoration:underline}.wizard-dropzone-hint{color:#9ca3af;font-size:.75rem;margin:0}.wizard-file-preview{align-items:center;display:flex;gap:.875rem;text-align:left;width:100%}.wizard-file-icon{flex-shrink:0;font-size:2.25rem}.wizard-file-info{display:flex;flex:1 1;flex-direction:column;gap:.125rem;min-width:0}.wizard-file-name{color:#111827;font-size:.9375rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wizard-file-size{color:#6b7280;font-size:.8125rem}.wizard-file-remove{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;flex-shrink:0;font-size:1.25rem;height:30px;justify-content:center;transition:all .2s;width:30px}.wizard-file-remove:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.wizard-upload-tip{align-items:flex-start;background:#fffbeb;border:1px solid #fde68a;border-radius:.5rem;color:#92400e;display:flex;font-size:.8125rem;gap:.5rem;padding:.75rem 1rem}.wizard-tip-icon{flex-shrink:0}.wizard-summary-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.wizard-summary-row{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:.75rem 0}.wizard-summary-row:last-child{border-bottom:none}.wizard-summary-label{color:#6b7280;font-size:.875rem}.wizard-summary-value{color:#111827;font-size:.9375rem;font-weight:600}.wizard-extraction-card{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.75rem;padding:1.5rem}.wizard-extraction-card h3{align-items:center;color:#1e40af;display:flex;font-size:1rem;font-weight:700;gap:.5rem;margin:0 0 1rem}.wizard-extraction-loading{align-items:center;display:flex;gap:1rem}.wizard-spinner{animation:spin 1s linear infinite;border:3px solid #bfdbfe;border-radius:50%;border-top-color:#4d8eff;height:36px;width:36px}.wizard-progress-container{align-items:center;display:flex;gap:12px;max-width:280px;width:100%}.wizard-progress-bar{background:#e2e8f0;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.wizard-progress-fill{background:linear-gradient(90deg,#4d8eff,#3b82f6);border-radius:4px;height:100%;transition:width .3s ease}.wizard-progress-text{color:#3b82f6;font-size:.875rem;font-weight:600;min-width:40px;text-align:right}.wizard-progress-label{color:#64748b;font-size:.875rem;margin-top:8px}.wizard-extraction-text{display:flex;flex-direction:column;gap:.25rem}.wizard-extraction-title{color:#1e40af;font-size:.9375rem;font-weight:600}.wizard-extraction-desc{color:#3b82f6;font-size:.8125rem}.wizard-extraction-success{display:flex;flex-direction:column;gap:1.25rem}.wizard-extraction-stats{display:flex;gap:2.5rem}.wizard-extraction-stat{align-items:center;display:flex;flex-direction:column;gap:.25rem}.wizard-stat-number{color:#1e40af;font-size:1.75rem;font-weight:700}.wizard-stat-label{color:#3b82f6;font-size:.6875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.wizard-review-btn{align-self:flex-start;background:#4d8eff;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.9375rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.wizard-review-btn:hover{background:#3b7ae8;box-shadow:0 4px 12px #4d8eff59;transform:translateY(-1px)}.wizard-extraction-error{align-items:center;color:#dc2626;display:flex;font-size:.9375rem;gap:.75rem}.wizard-retry-btn{background:#fff;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;cursor:pointer;font-size:.875rem;font-weight:600;margin-left:auto;padding:.5rem 1.25rem}.wizard-retry-btn:hover{background:#fef2f2}.wizard-footer{align-items:center;background:#fafafa;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.25rem 2rem}.wizard-btn{align-items:center;border-radius:.5rem;cursor:pointer;display:inline-flex;font-size:.9375rem;font-weight:600;gap:.5rem;justify-content:center;min-width:130px;padding:.75rem 1.75rem;transition:all .2s}.wizard-btn-secondary{background:#fff;border:1.5px solid #d1d5db;color:#374151}.wizard-btn-secondary:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.wizard-btn-primary{background:#4d8eff;border:none;box-shadow:0 2px 4px #4d8eff33;color:#fff}.wizard-btn-primary:hover:not(:disabled){background:#3b7ae8;box-shadow:0 4px 8px #4d8eff40}.wizard-btn:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.5;transform:none!important}.wizard-btn-spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}@media (max-width:768px){.wizard-page{padding:1rem}.wizard-bg{display:none}.wizard-title{font-size:1.5rem}.wizard-stepper{padding:1rem}.wizard-step-label{display:none}.wizard-step-connector{margin:0 .5rem;width:32px}.wizard-step-content{padding:1.5rem}.wizard-field-row{flex-direction:column;gap:1rem}.wizard-upload-grid{grid-template-columns:1fr}.wizard-footer{flex-direction:column-reverse;gap:.75rem;padding:1.25rem 1.5rem}.wizard-btn{width:100%}.wizard-section-header-success{margin:-1.5rem -1.5rem 1.5rem;padding:1.25rem 1.5rem}}.extraction-page{background:#f8fafc;min-height:100vh;padding:2rem}.extraction-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:60vh}.extraction-spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#6366f1;height:48px;width:48px}.extraction-loading p{color:#64748b;font-size:1rem}.extraction-error-state{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:60vh;text-align:center}.extraction-error-state .error-icon{font-size:3rem}.extraction-error-state h2{color:#1e293b;margin:0}.extraction-error-state p{color:#64748b;margin:0}.extraction-error-state button{background:#6366f1;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-weight:600;margin-top:1rem;padding:.75rem 1.5rem}.extraction-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;margin:0 auto 2rem;max-width:1200px}.extraction-back-btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;color:#64748b;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.extraction-back-btn:hover{background:#f8fafc;color:#1e293b}.extraction-title-section{flex:1 1}.extraction-title-section h1{color:#1e293b;font-size:1.75rem;font-weight:700;margin:0}.extraction-subtitle{color:#64748b;font-size:.9375rem;margin:.25rem 0 0}.extraction-header-actions{display:flex;gap:.75rem}.extraction-btn{border-radius:.5rem;cursor:pointer;font-size:.9375rem;font-weight:600;padding:.625rem 1.25rem;transition:all .2s}.extraction-btn-secondary{background:#fff;border:1px solid #e2e8f0;color:#64748b}.extraction-btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1}.extraction-btn-primary{background:#6366f1;border:none;color:#fff}.extraction-btn-primary:hover{background:#4f46e5}.extraction-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr);margin:0 auto 2rem;max-width:1200px}.extraction-stat-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:1rem;box-shadow:0 1px 3px #0000000d;display:flex;gap:1rem;padding:1.25rem}.extraction-stat-icon{align-items:center;background:linear-gradient(135deg,#f5f3ff,#ede9fe);border-radius:.75rem;display:flex;font-size:1.75rem;height:48px;justify-content:center;width:48px}.extraction-stat-content{display:flex;flex-direction:column}.extraction-stat-value{color:#1e293b;font-size:1.5rem;font-weight:700}.extraction-stat-label{color:#64748b;font-size:.8125rem}.extraction-error-banner{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;display:flex;justify-content:space-between;margin:0 auto 1rem;max-width:1200px;padding:.75rem 1rem}.extraction-error-banner button{background:none;border:none;color:#dc2626;cursor:pointer;font-size:1.25rem}.extraction-content{margin:0 auto;max-width:1200px}.extraction-questions-header{margin-bottom:1.5rem}.extraction-questions-header h2{color:#1e293b;font-size:1.25rem;font-weight:700;margin:0 0 .25rem}.extraction-questions-header p{color:#64748b;font-size:.9375rem;margin:0}.extraction-questions-list{display:flex;flex-direction:column;gap:1rem}.extraction-question-card{background:#fff;border:1px solid #e2e8f0;border-radius:1rem;overflow:hidden;transition:all .2s}.extraction-question-card:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #0000000d}.extraction-question-card.editing{border-color:#6366f1;box-shadow:0 0 0 4px #6366f11a}.extraction-question-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1rem 1.5rem}.extraction-question-id{align-items:center;display:flex;gap:.75rem}.question-number{background:#ede9fe;border-radius:.5rem;color:#6366f1;font-size:1rem;font-weight:700;padding:.375rem .75rem}.question-marks{color:#64748b;font-size:.875rem;font-weight:600}.extraction-question-meta{align-items:center;display:flex;gap:.75rem}.question-type{background:#f1f5f9;color:#64748b}.question-has-diagram,.question-type{border-radius:.375rem;font-size:.8125rem;padding:.25rem .625rem}.question-has-diagram{background:#ecfeff;color:#0891b2}.extraction-question-text{color:#1e293b;font-size:1rem;line-height:1.6;padding:1.5rem;white-space:pre-wrap}.extraction-question-diagram{padding:0 1.5rem 1rem}.extraction-question-diagram img{border:1px solid #e2e8f0;border-radius:.5rem;max-height:300px;max-width:100%;object-fit:contain}.diagram-fallback{align-items:center;background:#f8fafc;border:1px dashed #e2e8f0;border-radius:.5rem;color:#64748b;display:flex;flex-direction:column;justify-content:center;padding:2rem}.diagram-fallback span{font-size:2rem;margin-bottom:.5rem}.diagram-fallback p{font-size:.875rem;margin:0}.extraction-question-footer{align-items:center;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1rem 1.5rem}.question-subject{background:#f1f5f9;border-radius:.375rem;color:#64748b;font-size:.8125rem;padding:.25rem .625rem;text-transform:capitalize}.question-edit-btn{background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;color:#6366f1;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1rem;transition:all .2s}.question-edit-btn:hover{background:#f5f3ff;border-color:#c7d2fe}.extraction-question-edit{display:flex;flex-direction:column;gap:1rem;padding:1.5rem}.edit-field{display:flex;flex-direction:column;gap:.5rem}.edit-field label{color:#475569;font-size:.875rem;font-weight:600}.edit-field input,.edit-field select,.edit-field textarea{border:1px solid #e2e8f0;border-radius:.5rem;color:#1e293b;font-family:inherit;font-size:1rem;padding:.75rem 1rem;transition:all .2s}.edit-field textarea{min-height:100px;resize:vertical}.edit-field input:focus,.edit-field select:focus,.edit-field textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.edit-field-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.edit-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:.5rem}.edit-cancel-btn{background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;color:#64748b;cursor:pointer;font-size:.9375rem;font-weight:600;padding:.625rem 1.25rem}.edit-cancel-btn:hover{background:#f8fafc}.edit-save-btn{background:#6366f1;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.9375rem;font-weight:600;padding:.625rem 1.25rem}.edit-save-btn:hover:not(:disabled){background:#4f46e5}.edit-save-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.extraction-page{padding:1rem}.extraction-header{align-items:flex-start;flex-direction:column}.extraction-header-actions{width:100%}.extraction-btn{flex:1 1;text-align:center}.extraction-stats{grid-template-columns:repeat(2,1fr)}.extraction-question-header{align-items:flex-start;flex-direction:column;gap:.75rem}.edit-field-row{grid-template-columns:1fr}}.App{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}*{box-sizing:border-box}body{margin:0;padding:0}button{border:none;cursor:pointer;font-family:inherit;outline:none;transition:all .3s ease}button:focus{outline:2px solid #3498db;outline-offset:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.App>*{animation:fadeIn .5s ease-out}.back-btn-container{display:flex;justify-content:flex-start;margin:0 auto;max-width:1200px;padding:20px 20px 0}.back-btn{background:#3498db;border-radius:8px;box-shadow:0 2px 10px #0000001a;color:#fff;font-size:1rem;font-weight:600;padding:10px 20px}.back-btn:hover{background:#2980b9;transform:translateY(-2px)}@media (max-width:768px){.App{padding:0}.back-btn{font-size:.9rem;padding:8px 16px}}@media print{.App{background:#fff}}
/*# sourceMappingURL=main.497d5765.css.map*/