@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--font-title:"Outfit", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-primary:#0f1119;--bg-secondary:#181c25;--bg-tertiary:#212530;--glass-bg:#0d111ca6;--glass-bg-hover:#161c2dbf;--glass-border:#6366f11f;--glass-border-focus:#6366f159;--glass-highlight:#ffffff08;--accent-primary:#7e66f5;--accent-primary-glow:#7e66f573;--accent-secondary:#b355f6;--accent-secondary-glow:#b355f659;--text-primary:#f5f5f5;--text-secondary:#a7adbe;--text-muted:#70788f;--text-accent:#9580ff;--status-success:#26d968;--status-success-bg:#26d9681a;--status-error:#eb4763;--status-error-bg:#eb47631a;--shadow-sm:0 4px 12px #0003;--shadow-md:0 8px 24px #0006;--shadow-lg:0 16px 48px #0009;--shadow-glow:0 0 32px var(--accent-primary-glow)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;background-image:radial-gradient(at 0 0,#140b414d 0,#0000 50%),radial-gradient(at 100% 100%,#2f0b414d 0,#0000 50%),radial-gradient(#0f1119cc 0,#0000 100%);background-attachment:fixed;min-height:100vh;line-height:1.6;overflow-x:hidden}.ambient-glow{pointer-events:none;z-index:-1;filter:blur(140px);opacity:.15;mix-blend-mode:screen;border-radius:50%;width:50vw;max-width:600px;height:50vw;max-height:600px;animation:20s ease-in-out infinite alternate float;position:fixed}.ambient-glow-1{background:var(--accent-primary);top:10%;left:5%}.ambient-glow-2{background:var(--accent-secondary);animation-delay:-10s;bottom:10%;right:5%}@keyframes float{0%{transform:translate(0)scale(1)}to{transform:translate(8%,8%)scale(1.15)}}.container{width:100%;max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.glass-panel{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-md);border-radius:20px;padding:2rem;transition:all .3s cubic-bezier(.25,.8,.25,1);position:relative;overflow:hidden}.glass-panel:before{content:"";background:linear-gradient(90deg, transparent, var(--glass-highlight), transparent);height:1px;position:absolute;top:0;left:0;right:0}.login-container{z-index:10;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex;position:relative}.login-card{text-align:center;width:100%;max-width:440px;box-shadow:var(--shadow-lg), var(--shadow-glow);border:1px solid #6366f133;padding:3rem 2.5rem}.login-header{margin-bottom:2.5rem}.login-logo{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;border-radius:18px;justify-content:center;align-items:center;width:68px;height:68px;margin:0 auto 1.5rem;font-size:1.8rem;display:flex;box-shadow:0 8px 20px #6366f166}.login-title{font-family:var(--font-title);letter-spacing:-.025em;background:linear-gradient(135deg, var(--text-primary) 30%, var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:1.75rem;font-weight:800}.login-subtitle{color:var(--text-secondary);font-size:.95rem}.form-group{text-align:left;margin-bottom:1.5rem;position:relative}.form-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.5rem;font-size:.85rem;font-weight:600;display:block}.input-wrapper{align-items:center;display:flex;position:relative}.form-input{background:var(--bg-tertiary);border:1px solid var(--glass-border);width:100%;color:var(--text-primary);font-size:1rem;font-family:var(--font-body);border-radius:12px;padding:.95rem 3rem .95rem 1.2rem;transition:all .25s}.form-input:focus{border-color:var(--accent-primary);background:var(--bg-secondary);outline:none;box-shadow:0 0 0 3px #6366f140}.password-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:color .2s;display:flex;position:absolute;right:1.2rem}.password-toggle:hover{color:var(--text-primary)}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;width:100%;font-family:var(--font-title);cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:1rem;font-size:1.05rem;font-weight:700;transition:all .25s cubic-bezier(.2,.8,.2,1);display:flex;box-shadow:0 4px 15px #6366f14d}.btn-primary:hover{box-shadow:0 8px 25px #6366f180, var(--shadow-glow);filter:brightness(1.1);transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.error-message{background:var(--status-error-bg);border:1px solid var(--status-error);color:var(--status-error);border-radius:10px;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.85rem;font-size:.9rem;animation:.3s cubic-bezier(.18,.89,.32,1.28) slideIn;display:flex}.shake{animation:.4s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.header-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2.5rem;display:flex}.brand-section{align-items:center;gap:1rem;display:flex}.brand-icon{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.3rem;display:flex;box-shadow:0 4px 12px #6366f14d}.brand-titles{flex-direction:column;display:flex}.brand-title{font-family:var(--font-title);letter-spacing:-.025em;font-size:1.5rem;font-weight:800}.brand-subtitle{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.8rem}.btn-secondary{border:1px solid var(--glass-border);color:var(--text-primary);cursor:pointer;background:#ffffff0d;border-radius:10px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.btn-secondary:hover{background:#ffffff1a;border-color:#fff3;transform:translateY(-1px)}.stats-grid{grid-template-columns:repeat(12,1fr);gap:1.5rem;margin-bottom:2.5rem;display:grid}.stat-card{grid-column:span 4}@media (width<=900px){.stat-card{grid-column:span 12}}.stat-card-main{background:linear-gradient(135deg,#6366f126 0%,#8b5cf60d 100%);border:1px solid #6366f140;flex-direction:column;justify-content:center;display:flex}.stat-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.75rem;font-size:.85rem;font-weight:600}.stat-number{font-family:var(--font-title);background:linear-gradient(135deg, #fff 40%, var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:3rem;font-weight:800;line-height:1}.stat-desc{color:var(--text-muted);font-size:.85rem}.bar-chart-container{flex-direction:column;gap:.75rem;display:flex}.chart-bar-row{flex-direction:column;gap:.25rem;display:flex}.chart-bar-labels{justify-content:space-between;font-size:.8rem;display:flex}.chart-bar-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:150px;font-weight:500;overflow:hidden}.chart-bar-value{color:var(--text-secondary)}.chart-bar-track{background:var(--bg-tertiary);border-radius:3px;height:6px;overflow:hidden}.chart-bar-fill{background:linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));border-radius:3px;height:100%;transition:width .8s cubic-bezier(.1,.8,.2,1)}.search-filter-card{margin-bottom:2.5rem}.search-wrapper{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;display:flex}.search-input-box{flex:1;min-width:280px;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:1.2rem;transform:translateY(-50%)}.search-input-field{background:var(--bg-secondary);border:1px solid var(--glass-border);width:100%;color:var(--text-primary);border-radius:12px;padding:.95rem 1.2rem .95rem 3rem;font-size:1rem;transition:all .25s}.search-input-field:focus{border-color:var(--accent-primary);background:var(--bg-tertiary);outline:none;box-shadow:0 0 0 3px #6366f126}.filters-wrapper{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}@media (width<=768px){.filters-wrapper{grid-template-columns:1fr}}.filter-select{background:var(--bg-secondary);border:1px solid var(--glass-border);color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='hsl(225, 12%25, 50%25)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;background-size:1.1em;border-radius:12px;padding:.85rem 2.5rem .85rem 1.2rem;font-size:.9rem;transition:all .2s}.filter-select:focus{border-color:var(--accent-primary);outline:none}.filter-select option{background:var(--bg-secondary);color:var(--text-primary)}.results-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.results-count{color:var(--text-secondary);font-size:.95rem;font-weight:500}.clear-btn{color:var(--accent-primary);cursor:pointer;background:0 0;border:none;font-size:.85rem;font-weight:600;transition:opacity .2s}.clear-btn:hover{opacity:.8;text-decoration:underline}.results-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.student-card{background:var(--glass-bg);border:1px solid var(--glass-border);cursor:pointer;border-radius:16px;flex-direction:column;justify-content:space-between;gap:1.25rem;padding:1.5rem;transition:all .3s cubic-bezier(.2,.8,.2,1);display:flex}.student-card:hover{background:var(--glass-bg-hover);border-color:#6366f14d;transform:translateY(-4px);box-shadow:0 10px 20px #0000004d}.student-card-top{justify-content:space-between;align-items:flex-start;display:flex}.student-info-main{flex-direction:column;gap:.25rem;display:flex}.student-name{font-family:var(--font-title);color:var(--text-primary);align-items:center;gap:.5rem;font-size:1.2rem;font-weight:700;display:flex}.student-id{color:var(--text-secondary);background:#ffffff0a;border-radius:6px;width:fit-content;padding:.15rem .5rem;font-family:monospace;font-size:.9rem}.student-badge-seq{font-family:var(--font-title);background:var(--status-success-bg);color:var(--status-success);border:1px solid #10b98133;border-radius:30px;padding:.25rem .65rem;font-size:.8rem;font-weight:700}.student-card-details{border-top:1px solid #ffffff0d;flex-direction:column;gap:.5rem;padding-top:.75rem;display:flex}.detail-row{justify-content:space-between;font-size:.85rem;display:flex}.detail-label{color:var(--text-muted)}.detail-value{color:var(--text-secondary);font-weight:500}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:5rem 2rem;display:flex}.empty-icon{opacity:.5;margin-bottom:1.5rem;font-size:3rem}.empty-title{font-family:var(--font-title);color:var(--text-secondary);margin-bottom:.5rem;font-size:1.35rem;font-weight:700}.import-grid{grid-template-columns:1.4fr 1fr;gap:2rem;margin-top:1.5rem;display:grid}.import-main-col{flex-direction:column;gap:1rem;display:flex}.import-side-col{border-left:1px solid var(--glass-border);flex-direction:column;gap:1.25rem;padding-left:2rem;display:flex}@media (width<=900px){.import-grid{grid-template-columns:1fr}.import-side-col{border-left:none;border-top:1px solid var(--glass-border);padding-top:1.5rem;padding-left:0}}.passcode-change-box{background:#6366f10d;border:1px solid #6366f126;border-radius:12px;margin-top:.5rem;padding:1.25rem}.modal-backdrop{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#080a12b3;justify-content:center;align-items:center;padding:1.5rem;animation:.25s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--glass-bg);width:100%;max-width:500px;box-shadow:var(--shadow-lg), 0 0 30px #6366f126;border:1px solid #ffffff14;border-radius:20px;animation:.25s cubic-bezier(.34,1.56,.64,1) scaleUp;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:1.5rem 2rem;display:flex}.modal-title{font-family:var(--font-title);color:var(--text-primary);font-size:1.25rem;font-weight:700}.modal-body{flex-direction:column;gap:1.25rem;padding:2rem;display:flex}.modal-footer{border-top:1px solid #ffffff0d;justify-content:flex-end;gap:1rem;padding:1.5rem 2rem;display:flex}.btn-danger{color:#fff;font-family:var(--font-title);cursor:pointer;background:linear-gradient(135deg,#e8304f,#c3223d);border:none;border-radius:12px;align-items:center;gap:.5rem;padding:.8rem 1.5rem;font-size:.95rem;font-weight:700;transition:all .25s;display:flex;box-shadow:0 4px 12px #ef444433}.btn-danger:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 8px 20px #ef444459}.footer{text-align:center;color:var(--text-muted);border-top:1px solid #ffffff0d;flex-direction:column;gap:.5rem;margin-top:5rem;padding-top:2rem;font-size:.85rem;display:flex}.footer-link{color:var(--accent-primary);text-decoration:none}.footer-link:hover{text-decoration:underline}
