.classes-page{padding:20px;max-width:1200px;margin:0 auto;background:white;min-height:100vh}.classes-page__title{margin-bottom:24px}.classes-page h1,.classes-page__title{font-size:28px;color:#1e293b;font-weight:700}.classes-page h1{margin-bottom:40px;margin-top:20px}.classes-page__button{background:#3b82f6;color:white;border:none;padding:10px 16px;margin-right:8px;cursor:pointer;border-radius:6px;font-weight:500;transition:background .2s ease}.classes-page__button:hover{background:#2563eb}.add-class-container{display:flex;justify-content:flex-end;margin:16px 0 24px}.add-class-btn{background:#3b82f6;color:white;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease;display:inline-flex;align-items:center;gap:8px;width:auto}.add-class-btn:hover{background:#2563eb}.add-class-btn:active{background:#1d4ed8}.classes-table{width:100%;border-collapse:collapse;background:white;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.1);border:1px solid #e5e7eb}.classes-table td,.classes-table th{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.classes-table th{background:#f8fafc;font-weight:600;color:#374151;font-size:14px}.classes-table td{color:#6b7280;font-size:14px}.classes-table tr:last-child td{border-bottom:none}.classes-table tbody tr:hover{background:#f9fafb}.status-badge{display:inline-block;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase}.status-given{background:#dcfce7;color:#166534}.status-no-show-student,.status-noshowstudent{background:#fee2e2;color:#991b1b}.status-no-show-teacher,.status-noshowteacher{background:#fef3c7;color:#92400e}.status-cancelled{background:#f3f4f6;color:#4b5563}.status-scheduled{background:#dbeafe;color:#1e40af}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(4px)}.modal-content{background:white;color:#1e293b;border-radius:12px;padding:24px;width:400px;max-width:95vw;box-shadow:0 10px 25px rgba(0,0,0,.15);position:relative;animation:fadeIn .2s ease-out}.modal-close-button{position:absolute;top:16px;right:16px;background:none;border:none;color:#64748b;font-size:24px;cursor:pointer;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.modal-close-button:hover{background:#f1f5f9;color:#334155}.modal-title{font-size:24px;font-weight:700;margin-bottom:24px;color:#1e293b}.modal-form{gap:20px}.form-group,.modal-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{font-size:14px;color:#374151;font-weight:500}.form-group input,.form-group select{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #d1d5db;background:white;color:#1e293b;font-size:14px;transition:all .2s ease;outline:none;box-sizing:border-box}.form-group input:focus,.form-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.form-group input:hover,.form-group select:hover{border-color:#9ca3af}.custom-dropdown{position:relative}.custom-dropdown-btn{width:100%;background:white;color:#1e293b;border:1px solid #d1d5db;border-radius:8px;padding:10px 12px;font-size:14px;text-align:left;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s ease;box-sizing:border-box}.custom-dropdown-btn.active,.custom-dropdown-btn:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.custom-dropdown-btn:hover{border-color:#9ca3af}.custom-dropdown-list{position:absolute;left:0;right:0;top:110%;background:white;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 15px -3px rgba(0,0,0,.1);z-index:10;max-height:200px;overflow-y:auto;animation:dropdownIn .2s ease}.custom-dropdown-item{padding:12px 16px;cursor:pointer;font-size:14px;color:#1e293b;transition:all .2s ease;border-bottom:1px solid #f1f5f9}.custom-dropdown-item:last-child{border-bottom:none}.custom-dropdown-item.selected,.custom-dropdown-item:hover{background:#f8fafc;color:#3b82f6}.modal-actions{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}.modal-button{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.modal-button.primary{background:#3b82f6;color:white;border:none}.modal-button.primary:hover{background:#2563eb}.modal-button.secondary{background:#f3f4f6;color:#374151;border:none}.modal-button.secondary:hover{background:#e5e7eb}.form-error{color:#dc2626;margin-top:8px;font-size:13px;display:flex;align-items:center;gap:8px;background:#fef2f2;padding:8px 12px;border-radius:8px;border:1px solid #fecaca}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.classes-page.loading{color:#64748b}.classes-page.error,.classes-page.loading{display:flex;align-items:center;justify-content:center;min-height:400px;font-size:18px}.classes-page.error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:20px}@media (max-width:768px){.classes-page{padding:16px}.modal-content{margin:16px;padding:20px;min-width:0}.modal-actions{flex-direction:column}.modal-button{width:100%}.classes-table td,.classes-table th{padding:12px 8px;font-size:13px}.add-class-btn{padding:10px 16px;font-size:13px}}@media (max-width:480px){.classes-table{font-size:12px}.classes-table td,.classes-table th{padding:8px 6px}.status-badge{padding:4px 8px;font-size:10px}}