:root{--font-heading:"Outfit", "Inter", sans-serif;--font-body:"Inter", sans-serif;--bg-primary:210 40% 98%;--bg-secondary:220 25% 95%;--card-bg:0 0% 100%;--border-color:220 15% 88%;--text-primary:220 40% 16%;--text-secondary:220 15% 40%;--text-muted:220 10% 60%;--primary:221 83% 53%;--primary-hover:224 76% 48%;--secondary:215 16% 47%;--success:142 76% 36%;--danger:0 72% 51%;--warning:38 92% 50%;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #0000000d, 0 4px 6px -4px #0000000d}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:hsl(var(--border-color)) transparent;margin:0;padding:0}body{font-family:var(--font-body);background-color:hsl(var(--bg-primary));color:hsl(var(--text-primary));-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.01em;color:hsl(var(--text-primary));font-weight:700}.app-container{flex-direction:column;min-height:100vh;display:flex}.glass-card{background:hsl(var(--card-bg));border:1px solid hsl(var(--border-color));border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.75rem;transition:border-color .2s,box-shadow .2s}.glass-card:hover{border-color:hsla(var(--primary) / .35);box-shadow:var(--shadow-md)}.header{background:hsl(var(--card-bg));border-bottom:1px solid hsl(var(--border-color));z-index:100;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #00000008}.logo-section{align-items:center;gap:.75rem;display:flex}.logo-section h1{color:hsl(var(--primary));letter-spacing:-.02em;font-size:1.35rem;font-weight:800}.user-info{align-items:center;gap:1rem;display:flex}.user-role-badge{background:hsla(var(--primary) / .08);color:hsl(var(--primary));border:1px solid hsla(var(--primary) / .15);border-radius:var(--radius-sm);text-transform:uppercase;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.btn-logout{border:1px solid hsla(var(--danger) / .2);color:hsl(var(--danger));border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:.45rem .9rem;font-size:.85rem;font-weight:600;transition:all .15s}.btn-logout:hover{background:hsla(var(--danger) / .05);border-color:hsl(var(--danger))}.form-group{flex-direction:column;gap:.4rem;margin-bottom:1.25rem;display:flex}.form-label{color:hsl(var(--text-secondary));font-size:.85rem;font-weight:600}.form-input{background:hsl(var(--card-bg));border:1px solid hsl(var(--border-color));color:hsl(var(--text-primary));border-radius:var(--radius-md);font-family:var(--font-body);width:100%;padding:.65rem .85rem;font-size:.95rem;transition:all .2s}.form-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsla(var(--primary) / .15);outline:none}.btn{font-family:var(--font-heading);border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:hsl(var(--primary));color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:hsl(var(--primary-hover));transform:translateY(-1px)}.btn-secondary{background:hsl(var(--bg-secondary));color:hsl(var(--text-primary));border:1px solid hsl(var(--border-color))}.btn-secondary:hover{background:hsl(var(--border-color));transform:translateY(-1px)}.btn-danger{background:hsla(var(--danger) / .1);color:hsl(var(--danger));border:1px solid hsla(var(--danger) / .2)}.btn-danger:hover{background:hsl(var(--danger));color:#fff;transform:translateY(-1px)}.btn-sm{border-radius:var(--radius-sm);padding:.4rem .8rem;font-size:.8rem}.login-wrapper{justify-content:center;align-items:center;min-height:90vh;padding:1.5rem;display:flex}.login-card{width:100%;max-width:420px}.login-card h2{text-align:center;margin-bottom:.5rem;font-size:1.8rem}.login-card p{color:hsl(var(--text-secondary));text-align:center;margin-bottom:2rem;font-size:.95rem}.dashboard-grid{grid-template-columns:260px 1fr;gap:2rem;width:100%;max-width:1400px;margin:0 auto;padding:2rem;display:grid}@media (width<=900px){.dashboard-grid{grid-template-columns:1fr}}.sidebar-nav{flex-direction:column;gap:.35rem;display:flex}.sidebar-link{border-radius:var(--radius-md);color:hsl(var(--text-secondary));cursor:pointer;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.95rem;font-weight:500;transition:all .15s;display:flex}.sidebar-link:hover{color:hsl(var(--primary));background:hsl(var(--bg-secondary))}.sidebar-link.active{background:hsla(var(--primary) / .08);color:hsl(var(--primary));font-weight:600}.main-content{flex-direction:column;gap:1.5rem;display:flex}.stats-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;display:grid}.stat-card{align-items:center;gap:1.25rem;display:flex}.stat-icon{background:hsla(var(--primary) / .08);color:hsl(var(--primary));border-radius:var(--radius-md);justify-content:center;align-items:center;padding:.85rem;display:flex}.stat-info h4{color:hsl(var(--text-secondary));text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.stat-info p{font-size:1.6rem;font-weight:700;font-family:var(--font-heading);color:hsl(var(--text-primary))}.table-container{border-radius:var(--radius-md);border:1px solid hsl(var(--border-color));background:hsl(var(--card-bg));box-shadow:var(--shadow-sm);overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th,.data-table td{padding:1rem 1.25rem}.data-table th{background:hsl(var(--bg-secondary));color:hsl(var(--text-secondary));text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid hsl(var(--border-color));font-size:.8rem;font-weight:600}.data-table td{border-bottom:1px solid hsl(var(--border-color));color:hsl(var(--text-primary));font-size:.95rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:hsl(var(--bg-primary))}.exam-creator-header{border-bottom:1px solid hsl(var(--border-color));justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.exam-creator-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:2rem;display:grid}.exam-part-section{border-radius:var(--radius-md);background:hsl(var(--bg-primary));border:1px solid hsl(var(--border-color));margin-top:1.5rem;padding:1.5rem}.exam-part-section h3{color:hsl(var(--text-primary));margin-bottom:.25rem;font-size:1.05rem}.exam-part-section p{color:hsl(var(--text-secondary));margin-bottom:1.25rem;font-size:.85rem}.questions-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem;display:grid}@media (width<=600px){.questions-grid{grid-template-columns:1fr}}.question-row{background:hsl(var(--card-bg));border-radius:var(--radius-md);border:1px solid hsl(var(--border-color));align-items:center;gap:.75rem;padding:.75rem;display:flex}.question-num{font-family:var(--font-heading);background:hsl(var(--bg-secondary));min-width:2rem;height:2rem;color:hsl(var(--text-secondary));border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:flex}.answer-mcq-options{flex:1;gap:.3rem;display:flex}.mcq-option-btn{border-radius:var(--radius-sm);background:hsl(var(--bg-primary));border:1px solid hsl(var(--border-color));height:2.1rem;color:hsl(var(--text-secondary));cursor:pointer;flex:1;justify-content:center;align-items:center;font-weight:600;transition:all .15s;display:flex}.mcq-option-btn:hover{background:hsla(var(--primary) / .05);color:hsl(var(--primary));border-color:hsla(var(--primary) / .3)}.mcq-option-btn.selected{background:hsl(var(--primary));border-color:hsl(var(--primary));color:#fff}.answer-text-input{border-radius:var(--radius-sm);border:1px solid hsl(var(--border-color));background:hsl(var(--card-bg));height:2.1rem;color:hsl(var(--text-primary));flex:1;padding:0 .75rem;font-size:.9rem}.answer-text-input:focus{border-color:hsl(var(--primary));outline:none}.exam-layout{grid-template-columns:1fr 320px;gap:2rem;width:100%;max-width:1400px;margin:0 auto;padding:2rem;display:grid}@media (width<=1000px){.exam-layout{grid-template-columns:1fr}}.exam-info-header{background:hsl(var(--card-bg));border-bottom:1px solid hsl(var(--border-color));z-index:90;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:60px;box-shadow:0 1px 3px #00000005}.timer-box{font-family:var(--font-heading);background:hsl(var(--bg-secondary));border:1px solid hsl(var(--border-color));color:hsl(var(--text-primary));border-radius:50px;align-items:center;gap:.6rem;padding:.4rem 1.1rem;font-size:1.25rem;font-weight:700;display:flex}.timer-box.warning{color:hsl(var(--danger));border-color:hsla(var(--danger) / .4);background:hsla(var(--danger) / .08);animation:1s infinite alternate pulse}.exam-nav-widget{position:sticky;top:130px}.nav-questions-grid{grid-template-columns:repeat(6,1fr);gap:.35rem;max-height:300px;margin-top:1rem;padding-right:.25rem;display:grid;overflow-y:auto}.nav-question-dot{aspect-ratio:1;border-radius:var(--radius-sm);background:hsl(var(--bg-primary));border:1px solid hsl(var(--border-color));color:hsl(var(--text-secondary));cursor:pointer;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .15s;display:flex}.nav-question-dot:hover{border-color:hsla(var(--primary) / .4);color:hsl(var(--primary))}.nav-question-dot.answered{background:hsla(var(--primary) / .08);border-color:hsl(var(--primary));color:hsl(var(--primary))}.results-header-card{text-align:center;margin-bottom:2rem;padding:2.5rem}.results-score-circle{background:hsla(var(--primary) / .05);border:3px solid hsl(var(--primary));text-align:center;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:140px;height:140px;margin:0;display:flex}.results-score-circle.reading{background:hsla(var(--secondary) / .08);border-color:hsl(var(--secondary))}.results-score-circle.listening{background:hsla(var(--primary) / .08);border-color:hsl(var(--primary))}.results-score-num{font-family:var(--font-heading);color:hsl(var(--primary));font-size:2.2rem;font-weight:800;line-height:1}.results-score-circle.reading .results-score-num{color:hsl(var(--secondary))}.results-score-circle.listening .results-score-num{color:hsl(var(--primary))}.results-score-label{color:hsl(var(--text-secondary));margin-top:.25rem;padding:0 .5rem;font-size:.75rem}.results-score-circle.reading .results-score-label{color:hsl(var(--secondary))}.results-score-circle.listening .results-score-label{color:hsl(var(--primary))}.results-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.result-item-card{border-radius:var(--radius-md);background:hsl(var(--card-bg));border:1px solid hsl(var(--border-color));align-items:center;gap:.75rem;padding:1rem;display:flex}.result-item-card.correct{border-color:hsla(var(--success) / .4);background:hsla(var(--success) / .04)}.result-item-card.correct .result-indicator{color:hsl(var(--success));background:hsla(var(--success) / .1)}.result-item-card.incorrect{border-color:hsla(var(--danger) / .4);background:hsla(var(--danger) / .04)}.result-item-card.incorrect .result-indicator{color:hsl(var(--danger));background:hsla(var(--danger) / .1)}.result-indicator{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.result-text-info{flex:1;min-width:0}.result-text-info p{color:hsl(var(--text-secondary));white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.result-text-info strong{color:hsl(var(--text-primary));font-size:.95rem}.text-success{color:hsl(var(--success))}.text-danger{color:hsl(var(--danger))}@keyframes pulse{0%{opacity:1}to{opacity:.6}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.25s forwards fadeIn}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a66;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-content{width:100%;max-width:480px}.scroll-to-top-btn{background:hsl(var(--primary));color:#fff;cursor:pointer;width:3.25rem;height:3.25rem;box-shadow:var(--shadow-lg);z-index:1000;border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,background-color .2s;display:flex;position:fixed;bottom:2rem;right:2rem}.scroll-to-top-btn:hover{background:hsl(var(--primary-hover));transform:translateY(-3px)}.scroll-to-top-btn:active{transform:translateY(0)}.exams-list-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}@media (width<=768px){body,html{overflow-x:hidden}.dashboard-grid{gap:1rem!important;padding:.5rem!important}.glass-card{padding:1rem!important}.exams-list-grid{grid-template-columns:1fr!important;gap:1rem!important}.header{text-align:center;flex-direction:column;align-items:center;gap:.75rem;position:relative;padding:.75rem .5rem!important}.logo-section h1{text-align:center;font-size:1.15rem}.user-info{flex-wrap:wrap;justify-content:center;gap:.5rem;width:100%}.user-role-badge{padding:.15rem .5rem;font-size:.7rem}.btn-logout{padding:.35rem .75rem;font-size:.75rem}.exam-info-header{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:.75rem .5rem!important;top:0!important}.exam-info-header h2{font-size:1.15rem}.timer-box{padding:.3rem .9rem;font-size:1.05rem}.exam-layout{gap:1rem;grid-template-columns:1fr!important;padding:.5rem!important}.exam-layout .main-content{order:1}.exam-layout aside{order:2}.exam-nav-widget{margin-top:1rem;position:relative;top:0}.tab-headers{justify-content:center;gap:.35rem!important;padding:0 .25rem!important}.tab-headers button{padding:.35rem .5rem!important;font-size:.8rem!important}.results-header-card{padding:1.25rem .75rem!important}.results-header-card h2{font-size:1.25rem}.results-score-circle{border-width:2px!important;width:90px!important;height:90px!important;margin:.15rem!important}.results-score-num{font-size:1.25rem!important}.results-score-label{margin-top:.05rem;font-size:.55rem!important}.results-grid{grid-template-columns:1fr!important;gap:.5rem!important}.result-item-card{gap:.5rem!important;padding:.5rem .75rem!important}.result-text-info p{word-break:break-all;white-space:normal!important;text-overflow:clip!important;overflow:visible!important}.scroll-to-top-btn{width:2.75rem;height:2.75rem;bottom:1.5rem;right:1.5rem}}
