*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #2563eb;--primary-light: #3b82f6;--primary-dark: #1d4ed8;--secondary: #64748b;--background: #fafafa;--surface: #ffffff;--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--border: #e2e8f0;--border-light: #f1f5f9;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--font-system: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--radius-sm: .25rem;--radius: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}body{font-family:var(--font-system);font-size:var(--font-size-base);line-height:1.6;color:var(--text-primary);background-color:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus{outline:2px solid var(--primary);outline-offset:2px}::selection{background-color:var(--primary);color:#fff}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--border-light)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.landing-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:linear-gradient(135deg,var(--background) 0%,var(--border-light) 100%)}.landing-container{width:100%;max-width:500px;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.landing-header{padding:var(--space-8) var(--space-6);text-align:center;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff}.landing-header h1{margin:0 0 var(--space-3) 0;font-size:var(--font-size-2xl);font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.1)}.landing-subtitle{margin:0;font-size:var(--font-size-base);opacity:.9;line-height:1.5}.landing-form-section{padding:var(--space-8) var(--space-6)}.identifier-form{width:100%}.form-group{margin-bottom:var(--space-6)}.form-label{display:block;margin-bottom:var(--space-2);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.form-input{width:100%;padding:var(--space-4);font-size:var(--font-size-base);line-height:1.5;color:var(--text-primary);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s ease,box-shadow .15s ease}.form-input.error{border-color:var(--error)}.submit-button{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-6);min-height:48px;font-size:var(--font-size-base);font-weight:600;line-height:1.5;color:#fff;background:var(--primary);border:none;border-radius:var(--radius);cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow)}.submit-button:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.submit-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.submit-button.loading{pointer-events:none}.error-message{margin-top:var(--space-2);color:var(--error);font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--space-2)}.loading-spinner{display:inline-block;width:1rem;height:1rem;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.landing-info{padding:var(--space-6);background:var(--border-light);border-top:1px solid var(--border)}.landing-info h3{margin:0 0 var(--space-4) 0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);text-align:center}.access-cards{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.access-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:all .15s ease}.access-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.access-icon{font-size:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.access-icon.admin{background:var(--primary);color:#fff}.access-icon.student{background:var(--success);color:#fff}.access-icon.attempt{background:var(--warning);color:#fff}.access-card h4{margin:0 0 var(--space-1) 0;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.access-card p{margin:0;font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.4}.landing-footer{padding:var(--space-4) var(--space-6);text-align:center;background:var(--surface);border-top:1px solid var(--border)}.landing-footer p{margin:0;font-size:var(--font-size-xs);color:var(--text-muted)}@media (max-width: 768px){.landing-page{padding:var(--space-4)}.landing-container{max-width:100%}.landing-header,.landing-form-section{padding:var(--space-6) var(--space-4)}.landing-info{padding:var(--space-4)}.landing-footer{padding:var(--space-3) var(--space-4)}.landing-header h1{font-size:var(--font-size-xl)}.landing-subtitle{font-size:var(--font-size-sm)}}@media (max-width: 480px){.landing-page{padding:var(--space-2)}.landing-header,.landing-form-section{padding:var(--space-4) var(--space-3)}.landing-info{padding:var(--space-3)}.landing-footer{padding:var(--space-2) var(--space-3)}.landing-header h1{font-size:var(--font-size-lg)}.access-card{flex-direction:column;text-align:center;gap:var(--space-2)}.access-icon{margin:0 auto}}.admin-dashboard{min-height:100vh;background-color:var(--background)}.admin-header{background-color:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:50}.admin-header h1{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.admin-nav{background-color:var(--surface);border-bottom:1px solid var(--border)}.section{background:none;border:none;padding:var(--space-4) 0;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:color .15s ease;border-bottom:2px solid transparent;position:relative}.section:hover{color:var(--text-primary)}.section.active{color:var(--primary);border-bottom-color:var(--primary)}.admin-content{max-width:1200px;margin:0 auto;padding:var(--space-8) var(--space-6)}.tab-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-8)}.tab-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:600;color:var(--text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-6);margin-bottom:var(--space-8)}.stat-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-6);text-align:center;transition:all .15s ease}.stat-card h3{margin:0 0 var(--space-2) 0;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.stat-number{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary);margin:0}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--text-secondary)}.empty-state h3{margin:0 0 var(--space-2) 0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.empty-state p{margin:0 0 var(--space-4) 0;font-size:var(--font-size-base);max-width:400px;margin-left:auto;margin-right:auto}.table-actions{display:flex;align-items:center;gap:var(--space-2)}.table-actions .btn{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);min-height:auto;border-radius:var(--radius-sm)}.success-message{background-color:#f0fdf4;border:1px solid #bbf7d0;color:var(--success);padding:var(--space-3) var(--space-4);border-radius:var(--radius);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.students-table,.attempts-table{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:var(--space-6)}.students-table table,.attempts-table table{width:100%;border-collapse:collapse;table-layout:fixed}.attempts-table{overflow-x:auto;min-width:100%}.attempts-table th:nth-child(9),.attempts-table td:nth-child(9){min-width:100px!important;width:100px!important;text-align:center!important;padding:var(--space-2)!important;white-space:nowrap!important}.attempts-table thead tr{display:table-row;white-space:nowrap}.attempts-table thead{display:table-header-group}.attempts-table thead th{display:table-cell;vertical-align:middle}.students-table th,.attempts-table th,.students-table td,.attempts-table td{text-align:left;border-bottom:1px solid var(--border);font-size:var(--font-size-sm);line-height:1.4;overflow:hidden;text-overflow:ellipsis}.students-table td,.attempts-table td{padding:var(--space-3) var(--space-4)}.students-table th,.attempts-table th{background-color:var(--border-light);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);white-space:nowrap;padding:0;text-align:left;border-bottom:2px solid var(--border);vertical-align:middle}.students-table th:not(.sortable-header),.attempts-table th:not(.sortable-header){padding:var(--space-3) var(--space-4)}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s ease;position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--space-1);min-height:44px;max-height:44px;padding:var(--space-3) var(--space-4);width:100%;box-sizing:border-box;border-radius:var(--radius) var(--radius) 0 0;white-space:nowrap;overflow:hidden}.sortable-header:hover{background-color:var(--border);color:var(--text-primary);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.sortable-header:active{background-color:var(--accent-light);transform:translateY(0);box-shadow:inset 0 1px 2px #0000001a}.sortable-header .header-text{flex:1;font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;color:inherit;overflow:hidden;text-overflow:ellipsis;min-width:0}.sort-icon{font-size:.9em;font-weight:700;opacity:.5;transition:all .15s ease;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:auto;border-radius:2px}.sort-icon.neutral{opacity:.3;color:var(--text-secondary)}.sort-icon.asc,.sort-icon.desc{opacity:.9;color:var(--accent);transform:scale(1.1);background-color:rgba(var(--accent-rgb),.1)}.sortable-header:hover .sort-icon{opacity:1}.sortable-header:hover .sort-icon.neutral{opacity:.6}.attempts-table th:nth-child(1){width:12%}.attempts-table th:nth-child(2){width:15%}.attempts-table th:nth-child(3){width:10%}.attempts-table th:nth-child(4){width:10%}.attempts-table th:nth-child(5){width:12%}.attempts-table th:nth-child(6){width:12%}.attempts-table th:nth-child(7){width:12%}.attempts-table th:nth-child(8){width:8%}.attempts-table th:nth-child(9){width:9%}.attempts-table td:nth-child(1){width:12%}.attempts-table td:nth-child(2){width:15%}.attempts-table td:nth-child(3){width:10%}.attempts-table td:nth-child(4){width:10%}.attempts-table td:nth-child(5){width:12%}.attempts-table td:nth-child(6){width:12%}.attempts-table td:nth-child(7){width:12%}.attempts-table td:nth-child(8){width:8%}.attempts-table td:nth-child(9){width:9%}.students-table tbody tr:hover,.attempts-table tbody tr:hover{background-color:var(--border-light)}.students-table tbody tr:last-child td,.attempts-table tbody tr:last-child td{border-bottom:none}.action-buttons{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.action-buttons .btn{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);min-height:1.75rem}.edit-btn{background:var(--primary);color:#fff;border:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:var(--space-1);min-height:32px}.edit-btn:hover{background:var(--primary-dark);transform:translateY(-1px)}.assign-btn{background:var(--success);color:#fff;border:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:var(--space-1);min-height:32px}.assign-btn:hover{background:#059669;transform:translateY(-1px)}.danger-button{background:var(--error);color:#fff;border:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:var(--space-1);min-height:32px;visibility:visible!important;opacity:1!important}.danger-button:hover{background:#dc2626;transform:translateY(-1px)}.attempts-table .delete-btn{background:#ef4444!important;color:#fff!important;border:none!important;padding:6px 12px!important;border-radius:4px!important;font-size:12px!important;font-weight:600!important;cursor:pointer!important;display:inline-block!important;visibility:visible!important;opacity:1!important;min-width:80px;text-align:center}.attempts-table .delete-btn:hover{background:#dc2626!important;transform:translateY(-1px)}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--space-4)}.modal-content{background-color:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;padding:var(--space-6)}.modal-content h3{margin:0 0 var(--space-6) 0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.modal-content form{margin-top:var(--space-6)}.modal-header{padding:var(--space-6);border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.modal-body{padding:var(--space-6)}.modal-footer{padding:var(--space-6);border-top:1px solid var(--border);display:flex;gap:var(--space-3);justify-content:flex-end}.form-group{margin-bottom:var(--space-5)}.form-group:last-of-type{margin-bottom:var(--space-6)}.form-group label{display:block;margin-bottom:var(--space-2);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--space-4);font-size:var(--font-size-base);line-height:1.5;color:var(--text-primary);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--border)}.form-actions button{padding:var(--space-3) var(--space-6);font-size:var(--font-size-sm);font-weight:500;border-radius:var(--radius);cursor:pointer;transition:all .15s ease;min-height:44px;min-width:100px}.form-actions button[type=button]{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.form-actions button[type=button]:hover{background:var(--border-light);color:var(--text-primary)}.primary-button,.form-actions button[type=submit]{background:var(--primary);color:#fff;border:none}.primary-button:hover,.form-actions button[type=submit]:hover{background:var(--primary-dark)}.add-button,.primary-button{background:var(--primary);color:#fff;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:var(--space-2);min-height:40px;box-shadow:var(--shadow-sm)}.add-button:hover,.primary-button:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.secondary-button{background:transparent;color:var(--text-secondary);border:1px solid var(--border);padding:var(--space-2) var(--space-4);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px}.secondary-button:hover{background:var(--border-light);color:var(--text-primary);border-color:var(--text-secondary)}.assign-button{background:var(--success);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:var(--space-2)}.assign-button:hover{background:#059669}.confirmation-dialog{background-color:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-8);max-width:400px;width:100%;text-align:center}.confirmation-dialog h3{margin:0 0 var(--space-4) 0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.confirmation-dialog p{margin:0 0 var(--space-6) 0;color:var(--text-secondary)}.confirmation-dialog .modal-footer{padding:0;border:none;justify-content:center}.admin-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:var(--space-4)}@media (max-width: 1024px){.admin-content{padding:var(--space-6) var(--space-4)}.header-content{padding:0 var(--space-4)}.nav-container{padding:0 var(--space-4);gap:var(--space-6)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}@media (max-width: 768px){.tab-header{flex-direction:column;gap:var(--space-4);align-items:stretch}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4)}.action-buttons{flex-direction:column;align-items:stretch;gap:var(--space-2)}.action-buttons .btn,.action-buttons .edit-btn,.action-buttons .assign-btn,.action-buttons .danger-button{width:100%;justify-content:center;min-height:36px}.primary-button,.add-button{width:100%;justify-content:center;min-height:44px}.students-table,.attempts-table{overflow-x:auto}.students-table table,.attempts-table table{min-width:900px}.attempts-table thead tr{display:table-row!important;white-space:nowrap}.attempts-table .sortable-header{min-width:fit-content;max-height:44px;overflow:hidden}.attempts-table .sortable-header .header-text{font-size:10px;letter-spacing:.03em}.modal-content{max-width:95%;margin:var(--space-4);padding:var(--space-5)}.modal-content h3{margin-bottom:var(--space-4);font-size:var(--font-size-base)}.modal-content form{margin-top:var(--space-4)}.modal-header,.modal-body,.modal-footer{padding:var(--space-4)}.form-group{margin-bottom:var(--space-4)}.form-group input,.form-group select,.form-group textarea{padding:var(--space-3)}.form-actions{flex-direction:column;margin-top:var(--space-6)}.form-actions button{width:100%;justify-content:center}.confirmation-dialog .modal-footer{flex-direction:row;gap:var(--space-3)}.confirmation-dialog .modal-footer button{width:auto;flex:1}}@media (max-width: 640px){.admin-content{padding:var(--space-4) var(--space-3)}.header-content{padding:0 var(--space-3);height:3.5rem}.nav-container{padding:0 var(--space-3);gap:var(--space-4);overflow-x:auto}.admin-header h1{font-size:var(--font-size-base)}.section{font-size:var(--font-size-xs);padding:var(--space-3) 0;white-space:nowrap;flex-shrink:0}.stats-grid{grid-template-columns:1fr}.stat-card{padding:var(--space-4)}.stat-number{font-size:var(--font-size-2xl)}.tab-header h2{font-size:var(--font-size-xl)}.logout-button{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.modal-content{max-width:100%;margin:var(--space-2);padding:var(--space-4);max-height:95vh}.modal-content h3{font-size:var(--font-size-base);margin-bottom:var(--space-3)}.form-group{margin-bottom:var(--space-3)}.form-group input,.form-group select,.form-group textarea{padding:var(--space-3);font-size:var(--font-size-sm)}.form-actions{margin-top:var(--space-5);gap:var(--space-2)}.form-actions button{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);min-height:40px}.action-buttons{flex-direction:column;align-items:stretch;gap:var(--space-1)}.action-buttons .btn,.action-buttons .edit-btn,.action-buttons .assign-btn,.action-buttons .danger-button{width:100%;justify-content:center;padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);min-height:34px}.primary-button,.add-button{width:100%;justify-content:center;padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);min-height:42px}}.topic-selection{display:grid;grid-template-columns:1fr;gap:var(--space-3);margin-top:var(--space-2)}.topic-option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .15s ease;background-color:var(--surface)}.topic-option:hover{border-color:var(--primary);background-color:var(--primary-light)}.topic-option.selected{border-color:var(--primary);background-color:var(--primary-light);box-shadow:0 0 0 3px var(--primary-light)}.topic-icon{font-size:2rem;line-height:1}.topic-info{display:flex;flex-direction:column;gap:var(--space-1)}.topic-info strong{font-weight:600;color:var(--text-primary);font-size:var(--font-size-base)}.topic-info small{color:var(--text-secondary);font-size:var(--font-size-sm)}@media (min-width: 640px){.topic-selection{grid-template-columns:1fr 1fr}}.topic-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background-color:var(--primary-light);border:1px solid var(--primary);border-radius:var(--radius);font-size:var(--font-size-sm)}.topic-badge .topic-icon{font-size:1rem;line-height:1}.topic-badge .topic-name{font-weight:500;color:var(--primary)}.student-profile{min-height:100vh;background-color:var(--background)}.student-header{background-color:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:50}.header-content{max-width:1200px;margin:0 auto;padding:0 var(--space-6);display:flex;align-items:center;justify-content:space-between;height:4rem}.student-header h1,.header-info h1{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.header-info p{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.logout-button{background-color:transparent;color:var(--text-secondary);border:1px solid var(--border);padding:var(--space-2) var(--space-4);border-radius:var(--radius);font-size:var(--font-size-sm);cursor:pointer;transition:all .15s ease}.logout-button:hover{background-color:var(--border-light);color:var(--text-primary)}.student-nav{background-color:var(--surface);border-bottom:1px solid var(--border)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--space-6);display:flex;gap:var(--space-8)}.subpage{background:none;border:none;padding:var(--space-4) 0;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:color .15s ease;border-bottom:2px solid transparent;position:relative}.subpage:hover{color:var(--text-primary)}.subpage.active{color:var(--primary);border-bottom-color:var(--primary)}.student-content{max-width:1200px;margin:0 auto;padding:var(--space-8) var(--space-6)}.error-banner{background-color:#fef2f2;border:1px solid #fecaca;color:var(--error);padding:var(--space-3) var(--space-4);border-radius:var(--radius);margin-bottom:var(--space-6);display:flex;align-items:center;justify-content:space-between}.error-banner button{background:none;border:none;color:var(--error);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm)}.error-banner button:hover{background-color:#ef44441a}.student-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:var(--space-4)}.loading-spinner{width:2rem;height:2rem;border:3px solid var(--border);border-top:3px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}.student-error{text-align:center;padding:var(--space-8);color:var(--error)}.profile-overview{display:flex;flex-direction:column;gap:var(--space-8)}.profile-stats{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-6)}.student-info-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.student-info-card h3{margin:0 0 var(--space-4) 0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.info-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--border-light)}.info-row:last-child{border-bottom:none}.info-row label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary)}.info-row span{font-size:var(--font-size-sm);color:var(--text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.stat-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-5);text-align:center;box-shadow:var(--shadow-sm);transition:all .15s ease}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card h4{margin:0 0 var(--space-2) 0;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.stat-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary);margin:0}.recent-attempts{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.recent-attempts h3{margin:0 0 var(--space-4) 0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.attempt-card{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);transition:all .15s ease;background-color:var(--surface)}.attempt-id{font-weight:600;color:var(--text-primary);font-size:var(--font-size-sm)}.attempt-info{display:flex;flex-direction:column;gap:var(--space-2)}.attempt-date{font-size:var(--font-size-sm);color:var(--text-secondary)}.attempt-score{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:500}.status-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em}.status-assigned{background-color:#fef3c7;color:#d97706}.status-progress{background-color:#dbeafe;color:#2563eb}.status-completed{background-color:#dcfce7;color:#16a34a}.attempt-details{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.attempt-details h2{margin:0 0 var(--space-4) 0;font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary)}.attempt-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.summary-card{background-color:var(--border-light);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);text-align:center}.summary-card h4{margin:0 0 var(--space-2) 0;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.summary-card .value{font-size:var(--font-size-lg);font-weight:700;color:var(--primary)}.questions-list{display:flex;flex-direction:column;gap:var(--space-4)}.question-card{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);background-color:var(--surface)}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.question-number{font-weight:600;color:var(--text-primary)}.question-result{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500}.result-correct{background-color:#dcfce7;color:#16a34a}.result-incorrect{background-color:#fef2f2;color:#ef4444}.result-skipped{background-color:#f3f4f6;color:#6b7280}.question-text{font-size:var(--font-size-base);color:var(--text-primary);margin-bottom:var(--space-3);line-height:1.6}.answer-section{display:flex;flex-direction:column;gap:var(--space-2)}.answer-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-1)}.answer-value{font-size:var(--font-size-sm);color:var(--text-primary);padding:var(--space-2);background-color:var(--border-light);border-radius:var(--radius-sm)}.correct-answer .answer-value{background-color:#dcfce7;color:#16a34a}.user-answer .answer-value{background-color:#dbeafe;color:#2563eb}.explanation{margin-top:var(--space-3);padding:var(--space-3);background-color:var(--border-light);border-left:3px solid var(--primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.explanation-text{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5;margin:0}.review-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);margin-top:var(--space-4)}.review-title{margin:0 0 var(--space-3) 0;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.accordion-item{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-2);background:var(--surface);overflow:hidden}.accordion-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:var(--border-light);cursor:pointer;transition:background-color .15s ease;border:none;width:100%;text-align:left}.accordion-header:hover{background:var(--border)}.accordion-header.expanded{background:var(--primary);color:#fff}.accordion-title{display:flex;align-items:center;gap:var(--space-2);font-weight:600;font-size:var(--font-size-sm);color:var(--text-primary)}.accordion-header.expanded .accordion-title{color:#fff}.accordion-icon{transition:transform .15s ease;font-size:var(--font-size-sm);color:var(--text-secondary)}.accordion-header.expanded .accordion-icon{transform:rotate(180deg);color:#fff}.accordion-content{max-height:0;overflow:hidden;transition:max-height .25s ease-out}.accordion-content.expanded{max-height:1000px;transition:max-height .35s ease-in}.accordion-body{padding:var(--space-4)}.incorrect-answers{display:flex;flex-direction:column;gap:var(--space-3)}.incorrect-answer-item{border:none;border-radius:0;padding:0;background:transparent;margin-bottom:var(--space-3)}.incorrect-answer-item:last-child{margin-bottom:0}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.question-number{font-weight:600;color:var(--text-primary);background:var(--border-light);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.answer-status{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.answer-status.incorrect{background:#fef2f2;color:#ef4444}.answer-status.correct{background:#dcfce7;color:#16a34a}.question-content{margin-top:var(--space-2)}.question-text{font-size:var(--font-size-sm);color:var(--text-primary);margin-bottom:var(--space-3);line-height:1.5;font-weight:500}.answer-options{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.answer-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:all .15s ease}.answer-option.correct-answer{background:#dcfce7;border-color:#16a34a}.answer-option.your-answer{background:#fef2f2;border-color:#ef4444}.option-letter{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--border-light);border-radius:50%;font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);flex-shrink:0}.answer-option.correct-answer .option-letter{background:#16a34a;color:#fff}.answer-option.your-answer .option-letter{background:#ef4444;color:#fff}.option-text{flex:1;font-size:var(--font-size-sm);color:var(--text-primary);line-height:1.4}.correct-label,.your-label{font-size:var(--font-size-xs);font-weight:600;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em}.correct-label{background:#16a34a;color:#fff}.your-label{background:#ef4444;color:#fff}.explanation{margin-top:var(--space-3);padding:var(--space-3);background:var(--border-light);border-left:3px solid var(--primary);border-radius:0 var(--radius) var(--radius) 0}.explanation strong{color:var(--text-primary);font-weight:600}.perfect-score{text-align:center;padding:var(--space-4);font-size:var(--font-size-base);color:var(--success);background:#dcfce7;border-radius:var(--radius-lg);margin:var(--space-4) 0}.motivational-section{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;padding:var(--space-4);border-radius:var(--radius-lg);text-align:center;margin-top:var(--space-4)}.motivational-text{font-size:var(--font-size-sm);line-height:1.5;margin:0}.primary-button{background:var(--primary);color:#fff;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;box-shadow:var(--shadow-sm);text-decoration:none;white-space:nowrap}.primary-button:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.primary-button:focus{outline:2px solid var(--primary);outline-offset:2px}.view-details-button{background:var(--primary);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:36px;margin-top:var(--space-3);text-decoration:none;white-space:nowrap}.view-details-button:hover{background:var(--primary-dark);transform:translateY(-1px)}.view-details-button:focus{outline:2px solid var(--primary);outline-offset:2px}.action-button{background:var(--primary);color:#fff;border:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:36px;text-decoration:none;white-space:nowrap}.action-button:hover{background:var(--primary-dark);transform:translateY(-1px)}.action-button:focus{outline:2px solid var(--primary);outline-offset:2px}.action-button.take-exam{background:var(--success);color:#fff}.action-button.take-exam:hover{background:#059669}.action-button.take-exam:focus{outline:2px solid var(--success);outline-offset:2px}.action-button.download-pdf{background:var(--secondary);color:#fff;margin-left:var(--space-2)}.action-button.download-pdf:hover:not(:disabled){background:#6b46c1}.action-button.download-pdf:disabled{background:var(--gray-300);cursor:not-allowed;transform:none}.action-button.download-summary{background:var(--secondary);color:#fff}.action-button.download-summary:hover:not(:disabled){background:#6b46c1}.action-button.download-summary:disabled{background:var(--gray-300);cursor:not-allowed;transform:none}.attempts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6)}.attempts-header h2{margin:0;font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary)}.attempt-actions{display:flex;gap:var(--space-3);justify-content:center;margin:var(--space-6) 0;padding:var(--space-4);background:var(--background);border-radius:var(--radius);border:1px solid var(--border)}.back-button{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);padding:var(--space-3) var(--space-5);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;box-shadow:var(--shadow-sm);text-decoration:none;white-space:nowrap}.back-button:hover{background:var(--gray-50);border-color:var(--gray-300);transform:translateY(-1px);box-shadow:var(--shadow-md)}.back-button:focus{outline:2px solid var(--primary);outline-offset:2px}.attempts-view{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.attempts-view h2{margin:0 0 var(--space-6) 0;font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary)}.attempts-table{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.attempts-table table{width:100%;border-collapse:collapse}.attempts-table th,.attempts-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border);font-size:var(--font-size-sm);line-height:1.4}.attempts-table th{background-color:var(--border-light);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);white-space:nowrap}.attempts-table tbody tr:hover{background-color:var(--border-light)}.attempts-table tbody tr:last-child td{border-bottom:none}.details-header{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border)}.details-header h2{margin:0;font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary);text-align:center}.section-label{margin:0 0 var(--space-4) 0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);text-align:center;padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}.results-overview{display:flex;flex-direction:column;gap:var(--space-4)}.results-header{text-align:center;padding:var(--space-4);background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;border-radius:var(--radius-lg)}.emoji-display{font-size:2.5rem;margin-bottom:var(--space-2)}.results-title{margin:0 0 var(--space-1) 0;font-size:var(--font-size-xl);font-weight:700}.results-message{margin:0;font-size:var(--font-size-sm);opacity:.9}.score-display{display:flex;align-items:center;justify-content:center;gap:var(--space-6);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.score-circle{width:100px;height:100px;border-radius:50%;background:var(--border-light);display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid var(--grade-color, var(--primary));position:relative}.score-percentage{font-size:var(--font-size-xl);font-weight:700;color:var(--grade-color, var(--primary))}.score-grade{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);margin-top:var(--space-1)}.score-details{text-align:center}.score-fraction{font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-1)}.correct-answers{color:var(--success)}.separator{color:var(--text-muted);margin:0 var(--space-1)}.total-questions{color:var(--text-secondary)}.score-label{font-size:var(--font-size-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.stats-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--space-3);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.stat-item{text-align:center;padding:var(--space-2);background:var(--border-light);border-radius:var(--radius)}.stat-item .stat-value{font-size:var(--font-size-base);font-weight:700;color:var(--primary);margin-bottom:var(--space-1)}.stat-item .stat-label{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.info-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.info-card h3{margin:0 0 var(--space-3) 0;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.profile-body{padding:var(--space-6)}.attempts-list{display:flex;flex-direction:column;gap:var(--space-4)}.attempt-card{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);transition:all .15s ease}.attempt-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.attempt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.attempt-id{font-weight:600;color:var(--text-primary)}.attempt-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-3);font-size:var(--font-size-sm)}.detail-item{display:flex;flex-direction:column}.detail-label{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}.detail-value{color:var(--text-primary);font-weight:500}@media (max-width: 1024px){.student-content{padding:var(--space-6) var(--space-4)}.header-content{padding:0 var(--space-4)}.nav-container{padding:0 var(--space-4);gap:var(--space-6)}}@media (max-width: 768px){.profile-stats{grid-template-columns:1fr;gap:var(--space-4)}.stats-grid{grid-template-columns:1fr 1fr}.attempts-header{flex-direction:column;gap:var(--space-3);align-items:stretch}.attempt-actions{flex-direction:column;gap:var(--space-3)}.download-button,.back-button{width:100%;justify-content:center}.student-nav,.nav-container{flex-direction:column;gap:0}.subpage{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border)}.subpage.active{border-bottom-color:var(--border);background-color:var(--primary);color:#fff}.attempt-header{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.attempt-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.header-content{flex-direction:column;gap:var(--space-3);height:auto;padding:var(--space-4)}.header-info{text-align:center}}@media (max-width: 640px){.student-content{padding:var(--space-4) var(--space-3)}.header-content{padding:var(--space-3)}.nav-container{padding:0 var(--space-3)}.stats-grid,.attempt-summary{grid-template-columns:1fr}.question-header{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.answer-section{gap:var(--space-3)}.info-row{flex-direction:column;align-items:flex-start;gap:var(--space-1)}.header-info h1{font-size:var(--font-size-base)}.header-info p{font-size:var(--font-size-xs)}.logout-button,.primary-button{width:100%;justify-content:center;min-height:44px}.view-details-button,.action-button{width:100%;justify-content:center;margin-top:var(--space-2);min-height:44px;padding:var(--space-3) var(--space-4)}.attempts-table{overflow-x:auto}.attempts-table table{min-width:600px}.score-display{flex-direction:column;gap:var(--space-3);padding:var(--space-3)}.score-circle{width:80px;height:80px}.score-percentage{font-size:var(--font-size-lg)}.score-fraction{font-size:var(--font-size-xl)}.stats-section{grid-template-columns:repeat(2,1fr);padding:var(--space-3)}.details-header,.answer-options{gap:var(--space-2)}.answer-option{padding:var(--space-3)}.option-letter{width:28px;height:28px}.option-text{font-size:var(--font-size-base)}.motivational-section{padding:var(--space-3)}.motivational-text{font-size:var(--font-size-sm)}.accordion-header{padding:var(--space-3)}.accordion-title{font-size:var(--font-size-xs)}.accordion-body{padding:var(--space-3)}}.exam-container{min-height:100vh;background-color:var(--background);padding:var(--space-4)}.exam-header{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-6);box-shadow:var(--shadow-sm);display:grid;grid-template-columns:1fr auto auto;gap:var(--space-6);align-items:center}.progress-section{display:flex;flex-direction:column;gap:var(--space-2)}.progress-bar{height:8px;background-color:var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:var(--space-2)}.progress-fill{height:100%;background-color:var(--primary);transition:width .3s ease}.progress-text,.answered-text{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.timer-section{display:flex;flex-direction:column;align-items:center;justify-content:center}.timer-circle{width:80px;height:80px;border:3px solid var(--timer-color, var(--primary));border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface)}.timer-text{font-size:var(--font-size-base);font-weight:700;color:var(--timer-color, var(--primary));line-height:1}.timer-label{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:var(--space-1)}.time-warning{margin-top:var(--space-2);padding:var(--space-2) var(--space-3);background:#fff3cd;border:1px solid #ffeaa7;border-radius:var(--radius);color:#856404;font-size:var(--font-size-sm);font-weight:500;text-align:center;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.score-section{display:flex;align-items:center}.finish-button{background:var(--primary);color:#fff;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;box-shadow:var(--shadow-sm);text-decoration:none;white-space:nowrap}.finish-button:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.finish-button:focus{outline:2px solid var(--primary);outline-offset:2px}.finish-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.finish-button.submitting{background:var(--text-secondary)}.loading-spinner{animation:spin 1s linear infinite}.question-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8);margin-bottom:var(--space-6);box-shadow:var(--shadow-sm);max-width:800px;margin-left:auto;margin-right:auto}.question-text{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:var(--space-6);line-height:1.6;font-weight:500}.question-code{background-color:var(--border-light);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);margin:var(--space-4) 0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:var(--font-size-sm);overflow-x:auto}.options-container{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6)}.option-button{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:all .15s ease;text-align:left;width:100%;min-height:44px}.option-button:hover{border-color:var(--primary);background-color:#2563eb05}.option-button.selected{border-color:var(--primary);background-color:#2563eb0d}.option-button:focus{outline:2px solid var(--primary);outline-offset:2px}.option-letter{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--border-light);border-radius:50%;font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);flex-shrink:0}.option-button.selected .option-letter{background:var(--primary);color:#fff}.option-text{flex:1;color:var(--text-primary);line-height:1.5;font-size:var(--font-size-base)}.option-code{background-color:var(--border-light);padding:var(--space-2);border-radius:var(--radius-sm);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:var(--font-size-sm);margin-top:var(--space-2)}.navigation-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);padding:var(--space-4);background:var(--border-light);border-radius:var(--radius)}.nav-button{background:var(--primary);color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:40px;text-decoration:none;white-space:nowrap}.nav-button:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px)}.nav-button:focus{outline:2px solid var(--primary);outline-offset:2px}.nav-button:disabled{background:var(--text-muted);cursor:not-allowed;opacity:.5;transform:none}.question-status{display:flex;align-items:center;font-size:var(--font-size-sm);font-weight:500}.answered-indicator{color:var(--success);display:flex;align-items:center;gap:var(--space-1)}.unanswered-indicator{color:var(--text-secondary)}.question-grid{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border)}.question-numbers{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:var(--space-2);max-width:400px;margin:0 auto}.question-number{width:40px;height:40px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.question-number:hover{border-color:var(--primary);background:#2563eb05}.question-number.current{background:var(--primary);color:#fff;border-color:var(--primary)}.question-number.answered{background:var(--success);color:#fff;border-color:var(--success)}.question-number.answered.current{background:var(--primary);border-color:var(--primary)}.question-number:focus{outline:2px solid var(--primary);outline-offset:2px}.exam-navigation{display:flex;justify-content:space-between;align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.nav-buttons{display:flex;gap:var(--space-3)}.exam-stats{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center}.exam-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:var(--space-4)}.exam-loading .loading-spinner{width:2rem;height:2rem;border:3px solid var(--border);border-top:3px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}.exam-error{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;box-shadow:var(--shadow-sm);max-width:600px;margin:0 auto}.exam-error h2{margin:0 0 var(--space-4) 0;color:var(--error);font-size:var(--font-size-xl);font-weight:600}.exam-error p{margin:0 0 var(--space-6) 0;color:var(--text-secondary);line-height:1.5}@media (max-width: 1024px){.exam-container{padding:var(--space-3)}.exam-header{padding:var(--space-4);gap:var(--space-4)}.question-card{padding:var(--space-6)}}@media (max-width: 768px){.exam-header{grid-template-columns:1fr;gap:var(--space-4);text-align:center}.progress-section{order:1}.timer-section{order:2}.score-section{order:3}.timer-circle{width:70px;height:70px}.question-card{padding:var(--space-4)}.question-text{font-size:var(--font-size-base)}.option-button{padding:var(--space-3)}.navigation-section{flex-direction:column;gap:var(--space-3);padding:var(--space-3)}.nav-button{width:100%;justify-content:center;min-height:44px}.question-numbers{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}.question-number{width:44px;height:44px}}@media (max-width: 640px){.exam-container{padding:var(--space-2)}.exam-header,.question-card{padding:var(--space-3)}.option-letter{width:32px;height:32px}.option-text{font-size:var(--font-size-sm)}.finish-button{width:100%;justify-content:center;padding:var(--space-3) var(--space-4)}.question-numbers{grid-template-columns:repeat(5,1fr);gap:var(--space-1)}.timer-circle{width:60px;height:60px}.timer-text{font-size:var(--font-size-sm)}}.results-container{min-height:100vh;background-color:var(--background);padding:var(--space-6)}.error-banner,.warning-banner,.time-exceeded-banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2);font-weight:500}.error-banner{background:#fee;border:1px solid #fcc;color:#800}.warning-banner{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.time-exceeded-banner{background:#fff4e6;border:1px solid #ffd580;color:#b8860b}.error-icon,.warning-icon,.time-icon{font-size:var(--font-size-lg)}.results-wrapper{max-width:900px;margin:0 auto}.results-header{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8);margin-bottom:var(--space-6);text-align:center;box-shadow:var(--shadow-sm)}.results-title{margin:0 0 var(--space-4) 0;font-size:var(--font-size-2xl);font-weight:600;color:var(--text-primary)}.score-display{display:flex;justify-content:center;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6)}.score-number{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary)}.score-total{font-size:var(--font-size-xl);color:var(--text-secondary)}.score-percentage{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin-left:var(--space-4);padding:var(--space-2) var(--space-4);background-color:var(--border-light);border-radius:var(--radius)}.results-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.summary-item{text-align:center;padding:var(--space-4);background-color:var(--border-light);border-radius:var(--radius)}.summary-value{display:block;font-size:var(--font-size-xl);font-weight:700;margin-bottom:var(--space-1)}.summary-value.correct{color:var(--success)}.summary-value.incorrect{color:var(--error)}.summary-value.skipped{color:var(--warning)}.summary-label{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.results-content{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.results-nav{display:flex;border-bottom:1px solid var(--border)}.results-nav button{flex:1;padding:var(--space-4) var(--space-6);background:none;border:none;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;border-bottom:2px solid transparent}.results-nav button:hover{color:var(--text-primary);background-color:var(--border-light)}.results-nav button.active{color:var(--primary);border-bottom-color:var(--primary);background-color:var(--border-light)}.results-body{padding:var(--space-6)}.questions-list{display:flex;flex-direction:column;gap:var(--space-6)}.question-result{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-6);position:relative}.question-result.correct{border-color:var(--success);background-color:#10b98105}.question-result.incorrect{border-color:var(--error);background-color:#ef444405}.question-result.skipped{border-color:var(--warning);background-color:#f59e0b05}.question-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4)}.question-number{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.result-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.result-badge.correct{background-color:var(--success);color:#fff}.result-badge.incorrect{background-color:var(--error);color:#fff}.result-badge.skipped{background-color:var(--warning);color:#fff}.question-text{font-size:var(--font-size-base);color:var(--text-primary);margin-bottom:var(--space-4);line-height:1.6}.answer-section{display:flex;flex-direction:column;gap:var(--space-3)}.answer-item{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm)}.answer-item.your-answer{border-color:var(--primary);background-color:#2563eb0d}.answer-item.correct-answer{border-color:var(--success);background-color:#10b9810d}.answer-item.your-answer.incorrect{border-color:var(--error);background-color:#ef44440d}.answer-label{font-weight:600;margin-bottom:var(--space-1);display:block}.explanation{margin-top:var(--space-4);padding:var(--space-4);background-color:var(--border-light);border-radius:var(--radius);border-left:4px solid var(--primary)}.explanation-title{font-weight:600;margin-bottom:var(--space-2);color:var(--text-primary)}.explanation-text{color:var(--text-secondary);line-height:1.6}.results-actions{margin-top:var(--space-8);display:flex;gap:var(--space-4);justify-content:center}.action-buttons{margin-top:var(--space-6);display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap}.review-button{background:var(--primary);color:#fff;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;box-shadow:var(--shadow-sm);text-decoration:none;white-space:nowrap}.review-button:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.review-button:focus{outline:2px solid var(--primary);outline-offset:2px}.review-button.active{background:var(--text-secondary);color:#fff}.restart-button{background:var(--success);color:#fff;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;box-shadow:var(--shadow-sm);text-decoration:none;white-space:nowrap}.restart-button:hover{background:#059669;transform:translateY(-1px);box-shadow:var(--shadow-md)}.restart-button:focus{outline:2px solid var(--success);outline-offset:2px}.download-button{background:var(--primary);color:#fff;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;box-shadow:var(--shadow-sm);text-decoration:none;white-space:nowrap}.download-button:hover:not(:disabled){background:#1e40af;transform:translateY(-1px);box-shadow:var(--shadow-md)}.download-button:focus{outline:2px solid var(--primary);outline-offset:2px}.download-button:disabled{background:var(--gray-300);cursor:not-allowed;transform:none;box-shadow:var(--shadow-sm)}.logout-button{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);padding:var(--space-3) var(--space-5);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;box-shadow:var(--shadow-sm);text-decoration:none;white-space:nowrap}.logout-button:hover{background:var(--border-light);color:var(--text-primary);transform:translateY(-1px);box-shadow:var(--shadow-md)}.logout-button:focus{outline:2px solid var(--primary);outline-offset:2px}.button-icon{font-size:var(--font-size-base)}.performance-indicator{margin-top:var(--space-4);padding:var(--space-4);background-color:var(--border-light);border-radius:var(--radius);text-align:center}.performance-text{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--space-2)}.performance-text.excellent{color:var(--success)}.performance-text.good{color:var(--primary)}.performance-text.fair{color:var(--warning)}.performance-text.poor{color:var(--error)}.performance-description{color:var(--text-secondary);font-size:var(--font-size-sm)}@media (max-width: 768px){.results-container{padding:var(--space-4)}.results-header{padding:var(--space-6)}.score-display{flex-direction:column;gap:var(--space-3)}.score-percentage{margin-left:0}.results-summary{grid-template-columns:1fr 1fr}.results-nav{flex-direction:column}.results-nav button{text-align:left}.question-header{flex-direction:column;gap:var(--space-2)}.results-actions{flex-direction:column}.action-buttons{flex-direction:column;gap:var(--space-3)}.review-button,.restart-button,.logout-button,.download-button{width:100%;justify-content:center;min-height:44px}}@media (max-width: 640px){.results-summary{grid-template-columns:1fr}.question-result,.results-body{padding:var(--space-4)}.action-buttons{gap:var(--space-2)}.review-button,.restart-button,.logout-button,.download-button{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm)}}.exam-taker-container{min-height:100vh;background:var(--background);display:flex;flex-direction:column}.exam-taker-header{background:var(--surface);border-bottom:1px solid var(--border);padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm)}.exam-taker-title{display:flex;align-items:center;gap:var(--space-3)}.exam-taker-title h1{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary);margin:0}.exam-icon{font-size:1.5rem}.exam-taker-actions{display:flex;gap:var(--space-2)}.exit-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease}.exit-btn:hover{background:var(--border-light);color:var(--text-primary)}.exit-button{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease;text-decoration:none;white-space:nowrap}.exit-button:hover{background:var(--border-light);color:var(--text-primary)}.exit-button:focus{outline:2px solid var(--primary);outline-offset:2px}.exam-taker-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center}.loading-spinner{width:40px;height:40px;border:3px solid var(--border);border-top:3px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-4)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--space-2)}.loading-subtitle{font-size:var(--font-size-sm);color:var(--text-muted)}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:var(--space-6)}.error-icon{font-size:3rem;margin-bottom:var(--space-4)}.error-title{font-size:var(--font-size-xl);font-weight:600;color:var(--error);margin-bottom:var(--space-2)}.error-message{font-size:var(--font-size-base);color:var(--text-secondary);margin-bottom:var(--space-6);max-width:500px;line-height:1.6}.error-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}.retry-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease}.retry-btn:hover{background:var(--primary-dark)}.completed-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:var(--space-6)}.completed-icon{font-size:3rem;margin-bottom:var(--space-4)}.completed-title{font-size:var(--font-size-xl);font-weight:600;color:var(--success);margin-bottom:var(--space-2)}.completed-message{font-size:var(--font-size-base);color:var(--text-secondary);margin-bottom:var(--space-6);max-width:500px;line-height:1.6}.completed-info{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-6);max-width:400px}.completed-info h3{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-3)}.completed-stats{display:flex;justify-content:space-between;margin-bottom:var(--space-2)}.stat-label{color:var(--text-secondary);font-size:var(--font-size-sm)}.stat-value{color:var(--text-primary);font-weight:600;font-size:var(--font-size-sm)}.completed-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}.view-results-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease}.view-results-btn:hover{background:var(--primary-dark)}@media (max-width: 768px){.exam-taker-header{padding:var(--space-3) var(--space-4);flex-direction:column;gap:var(--space-3);text-align:center}.exam-taker-title{flex-direction:column;gap:var(--space-2)}.exam-taker-title h1{font-size:var(--font-size-lg)}.loading-container,.error-container,.completed-container{padding:var(--space-4);min-height:50vh}.error-actions,.completed-actions{flex-direction:column;align-items:center}.retry-btn,.view-results-btn,.exit-btn,.exit-button{width:100%;max-width:200px;justify-content:center}}@media (max-width: 480px){.exam-taker-header{padding:var(--space-2) var(--space-3)}.exam-taker-title h1{font-size:var(--font-size-base)}.loading-container,.error-container,.completed-container{padding:var(--space-3)}.error-title,.completed-title{font-size:var(--font-size-lg)}.completed-info{margin-left:var(--space-2);margin-right:var(--space-2)}}.app{min-height:100vh;background-color:var(--background)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:500;line-height:1.5;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:all .15s ease;text-decoration:none;min-height:2.5rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark);border-color:var(--primary-dark)}.btn-secondary{background-color:var(--surface);color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background-color:var(--border-light)}.btn-danger{background-color:var(--error);color:#fff;border-color:var(--error)}.btn-danger:hover:not(:disabled){background-color:#dc2626;border-color:#dc2626}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);min-height:2rem}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);min-height:3rem}.form-group{margin-bottom:var(--space-4)}.form-label{display:block;margin-bottom:var(--space-2);font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.form-input{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);line-height:1.5;color:var(--text-primary);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s ease,box-shadow .15s ease}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-input::placeholder{color:var(--text-muted)}.card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.card-header{padding:var(--space-6);border-bottom:1px solid var(--border)}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-6);border-top:1px solid var(--border);background-color:var(--border-light)}.table{width:100%;border-collapse:collapse;background-color:var(--surface)}.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border)}.table th{background-color:var(--border-light);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.table tbody tr:hover{background-color:var(--border-light)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.mb-0{margin-bottom:0}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mt-0{margin-top:0}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}
