.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f5f5,#fff);padding:16px}.auth-content{display:flex;flex-direction:column;gap:24px;max-width:100%;width:100%;align-items:center}.auth-form-section{display:flex;justify-content:center;width:100%}.auth-form{background:#fff;padding:24px;border-radius:8px;box-shadow:0 2px 10px #00000014;width:100%;max-width:100%}.auth-title{font-size:24px;font-weight:700;color:#1a1a1a;margin-bottom:24px;letter-spacing:-.5px}.form-group{margin-bottom:16px}.form-row{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.form-input{width:100%;padding:12px 14px;border:1px solid #e0e0e0;border-radius:6px;font-size:16px;font-family:inherit;background:#f9f9f9;transition:all .2s ease;box-sizing:border-box}.form-input:focus{outline:none;background:#fff;border-color:#d4a574;box-shadow:0 0 0 3px #d4a5741a}.form-input::placeholder{color:#999}.phone-input-wrapper{display:flex;align-items:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;transition:all .2s ease}.phone-input-wrapper:focus-within{background:#fff;border-color:#d4a574;box-shadow:0 0 0 3px #d4a5741a}.phone-input-wrapper.input-error{border-color:#dc2626!important;background:#fef2f2!important}.phone-input-wrapper.input-error:focus-within{border-color:#dc2626!important;box-shadow:0 0 0 3px #dc26261a!important}.phone-prefix{padding:12px 10px;color:#666;font-weight:500;border-right:1px solid #e0e0e0;font-size:14px;white-space:nowrap}.phone-input{background:transparent;border:none;flex:1;padding:12px;font-size:16px}.phone-input:focus{outline:none;background:transparent;border:none;box-shadow:none}.file-upload-group{position:relative}.file-input{width:100%;background-color:#f1f5f9;border:1px solid transparent;border-radius:12px;padding:10px;font-size:14px;color:#4b5563;cursor:pointer;transition:all .2s ease;box-sizing:border-box;display:block}.file-input:hover{background-color:#e2e8f0}.file-input::file-selector-button{background-color:#fff;color:#d4a574;border:1px solid #e2e8f0;border-radius:6px;margin-right:12px;font-weight:600;font-size:13px;cursor:pointer;transition:all .2s ease;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%232563eb'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12' /%3E%3C/svg%3E");background-repeat:no-repeat;background-position:8px center;background-size:14px;padding:6px 16px 6px 28px}.file-input::file-selector-button:hover{background-color:#f8fafc;box-shadow:0 2px 4px #0000000d}.file-input:focus{outline:none;box-shadow:0 0 0 2px #2563eb33}.auth-button{width:100%;padding:14px 16px;background:linear-gradient(135deg,#d4a574,#c9935a);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;margin-top:10px;transition:all .3s ease;box-shadow:0 4px 12px #d4a5744d}.button-arrow{margin-left:8px;display:inline-block;transition:transform .2s ease}.auth-button:hover:not(:disabled) .button-arrow{transform:translate(4px)}.auth-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #d4a57466}.auth-button:disabled{opacity:.7;cursor:not-allowed}.auth-link{text-align:center;margin-top:16px;color:#666;font-size:14px}.link-text{color:#d4a574;font-weight:600;cursor:pointer;transition:color .2s ease}.link-text:hover{color:#c9935a;text-decoration:underline}.auth-welcome-section{display:flex;justify-content:center;align-items:center;width:100%}.welcome-card{text-align:center;max-width:100%;padding:20px;background:#f9f9f9;border-radius:8px}.logo-circle{width:100px;height:100px;background:linear-gradient(135deg,#2c3e50,#1a252f);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;box-shadow:0 8px 24px #2c3e5040;border:3px solid #d4a574}.logo-text{color:#d4a574;font-size:14px;font-weight:700;line-height:1.3;text-align:center}.welcome-message{display:none}.welcome-link{color:#06c;font-weight:600;cursor:pointer;transition:color .2s ease;text-decoration:underline}.welcome-link:hover{color:#0052a3}.error-message{background:#fee;color:#c00;padding:12px;border-radius:6px;margin-bottom:20px;font-size:14px;border-left:4px solid #c00}.input-error{border-color:#dc2626!important;background:#fef2f2!important}.input-error:focus{border-color:#dc2626!important;box-shadow:0 0 0 3px #dc26261a!important}.error-text{display:block;color:#dc2626;font-size:13px;margin-top:6px;font-weight:500}@media(min-width:640px){.auth-form{max-width:380px}.auth-title{font-size:28px}.form-row{flex-direction:row}.form-row .form-group{flex:1;margin-bottom:0}.welcome-card{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:320px;padding:0;background:transparent}.logo-circle{width:120px;height:120px;margin:0 auto 30px}.logo-text{font-size:18px}.welcome-title{display:block;font-size:24px;margin-bottom:15px;font-weight:700;color:#1a1a1a}.welcome-message{display:block;font-size:14px;color:#666}}@media(min-width:768px){.auth-container{padding:20px}.auth-content{display:grid;grid-template-columns:1fr 1fr;gap:60px;max-width:1000px;align-items:center}.auth-form{padding:40px}.auth-title{font-size:32px;margin-bottom:30px}.form-group,.form-row{margin-bottom:20px}.phone-prefix{padding:12px}.auth-button{margin-top:10px}.auth-link{margin-top:20px}}.feedback-page{min-height:50vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}.spinner-lg{width:32px;height:32px;border:3px solid #ddd;border-top:3px solid #1976d2;border-radius:50%;animation:spin .8s linear infinite}.feedback-title{margin:0;font-size:20px;font-weight:700;color:#1a1a1a}.feedback-message{margin:0;font-size:14px;color:#555}.error-page .error-icon{width:40px;height:40px;border-radius:50%;background:#fdecea;color:#c62828;display:flex;align-items:center;justify-content:center;font-weight:700}.retry-btn{margin-top:8px;padding:8px 12px;border:1px solid #ccc;background:#fff;border-radius:4px;cursor:pointer}.retry-btn:hover{background:#f7f7f7}.error-inline{background:#fdecea;color:#b71c1c;border:1px solid #f5c6cb;border-radius:4px;padding:8px 12px;margin-bottom:10px;display:flex;align-items:center;gap:8px}.retry-btn-inline{margin-left:auto;padding:6px 8px;border:none;background:#b71c1c;color:#fff;border-radius:4px;cursor:pointer}.retry-btn-inline:hover{opacity:.9}.course-card{background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 8px #0000001a;position:relative;display:flex;flex-direction:column;gap:12px;transition:box-shadow .3s ease}.spinner{width:16px;height:16px;border:2px solid #ccc;border-top:2px solid red;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.course-card:hover{box-shadow:0 4px 12px #00000026}.course-status-badge{display:inline-block;padding:6px 12px;border-radius:4px;font-size:12px;font-weight:600;width:fit-content;text-transform:capitalize}.status-current{background-color:#e8f5e9;color:#2e7d32}.status-upcoming{background-color:#fff3cd;color:#856404}.status-past{background-color:#f5f5f5;color:#616161}.status-all{background-color:#e3f2fd;color:#1565c0}.course-title{margin:0;font-size:16px;font-weight:700;color:#1a1a1a;line-height:1.4}.course-description{margin:0;font-size:14px;color:#666;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex-grow:1}.course-actions{display:flex;gap:8px;margin-top:auto}.delete-btn{background-color:#ffe5e5;color:#c62828}.delete-btn:hover{background-color:#e85a5a}.action-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;background-color:transparent;color:#333;border:1px solid #ddd}.action-btn:hover{border-color:#999;background-color:#f9f9f9}.btn-text{display:none}.enroll-btn-text{display:inline}@media(min-width:768px){.btn-text{display:inline}}@media(max-width:480px){.action-btn{padding:6px 8px;font-size:12px}}.course-list-container{background-color:#f5f5f5;min-height:100vh;padding:16px;display:flex;flex-direction:column;gap:24px}.course-list-header{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:16px;box-sizing:border-box;width:100%}.page-title{font-size:28px;font-weight:700;color:#1a1a1a;margin:0;width:100%}.search-wrapper{position:relative;width:100%;flex:1 1 100%;min-width:0;max-width:100%;box-sizing:border-box}.search-input{width:100%;box-sizing:border-box;padding:12px 16px;border:1px solid #ddd;border-radius:6px;font-size:14px;background-color:#fff;transition:border-color .2s ease}.search-input:focus{outline:none;border-color:#d4a574;box-shadow:0 0 0 3px #d4a5741a}.search-input::placeholder{color:#999}.filter-controls{display:flex;gap:12px;flex-wrap:wrap;width:100%;flex:1 1 100%}.filter-select{padding:8px 16px;border:1px solid #ddd;border-radius:4px;background-color:#fff;color:#666;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;flex:1 1 auto;min-width:120px;max-width:100%}.filter-select:hover{border-color:#d4a574;color:#d4a574}.filter-select:focus{outline:none;border-color:#d4a574;box-shadow:0 0 0 3px #d4a5741a}.filter-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;flex-shrink:0;width:100%;flex:1 1 100%}.filter-tab{white-space:nowrap;padding:8px 16px;border:none;background-color:#fff;color:#666;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid #ddd}.filter-tab:hover{border-color:#d4a574;color:#d4a574}.filter-tab.active{background-color:#d4a574;color:#fff;border-color:#d4a574}.courses-grid{display:grid;grid-template-columns:1fr;gap:16px}.no-courses{grid-column:1 / -1;text-align:center;padding:48px 16px;color:#999;font-size:16px}@media(min-width:640px){.courses-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.courses-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:768px){.course-list-container{padding:24px}.course-list-header{gap:20px}.page-title{font-size:32px;width:100%}.search-wrapper{max-width:400px;margin-left:auto}.filter-controls,.filter-tabs{width:auto;flex:0 0 auto;margin-left:auto}}@media(min-width:1024px){.course-list-header{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:16px;justify-content:flex-start}.page-title{width:auto;margin-right:0;flex-shrink:0}.search-wrapper{margin:0;flex:1 1 auto;max-width:300px;min-width:150px}.filter-controls{flex:0 0 auto;width:auto;margin-left:auto}.filter-tabs{flex:0 0 auto;width:auto;margin:0}}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn .2s ease-out}.modal-content{background-color:#fff;padding:1.5rem;border-radius:12px;width:95%;max-width:550px;max-height:85vh;overflow-y:auto;box-shadow:0 10px 25px #0003;animation:slideUp .3s ease-out}.modal-title{font-size:1.25rem;font-weight:700;color:#1f2937;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:3px solid #d4a574;text-align:left}.modal-form-group{margin-bottom:.875rem}.modal-label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.modal-input,.modal-textarea,.modal-content select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;transition:border-color .2s,box-shadow .2s;background-color:#f9fafb;box-sizing:border-box}.modal-input:focus,.modal-textarea:focus,.modal-content select:focus{outline:none;border-color:#d4a574;box-shadow:0 0 0 3px #d4a57426;background-color:#fff}.modal-content select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23374151' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}.modal-textarea{min-height:100px;resize:vertical}.modal-date-row{display:flex;flex-direction:column;gap:0}@media(min-width:640px){.modal-date-row{flex-direction:row;gap:1rem}.modal-date-row .modal-form-group{flex:1;margin-bottom:.875rem}}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1rem;border-top:1px solid #e5e7eb}.btn-cancel{padding:.6rem 1.2rem;background-color:#f3f4f6;color:#374151;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel:hover{background-color:#e5e7eb}.btn-save{padding:.6rem 1.2rem;background-color:#d4a574;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s}.btn-save:hover{background-color:#c9935a;transform:translateY(-1px);box-shadow:0 2px 8px #d4a5744d}.btn-save:disabled{background-color:#e5d4c1;cursor:not-allowed;transform:none;box-shadow:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(min-width:640px){.modal-content{padding:2rem;width:90%}.modal-title{font-size:1.5rem;margin-bottom:1.5rem}.modal-form-group{margin-bottom:1rem}}@media(min-width:768px){.modal-content{width:85%}}.attendance-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;border-radius:8px;min-height:100px;text-align:center;font-weight:500;transition:transform .2s,box-shadow .2s}.attendance-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;color:#000}.attendance-card.present{background-color:#4ade80;color:#fff}.attendance-card.expired{background-color:#6b7280;color:#fff}.attendance-card.expired .attendance-icon:after{content:"EXPIRED";display:block;font-size:10px;font-weight:700;margin-top:4px}.attendance-card:not(.clickable):hover{transform:none;box-shadow:none;cursor:default}.attendance-card.clickable:hover{transform:translateY(-4px);border:3rem;box-shadow:0 6px 16px #d4a5744d}.attendance-card.absent{background-color:#ef4444;color:#fff}.attendance-card .expired-label{margin-top:6px;font-size:12px;color:#d32f2f;font-weight:600}.attendance-card:hover{color:gray}.attendance-card.pending{background-color:#d4a574;color:#fff}.attendance-card.clickable{cursor:pointer}.attendance-card.clickable:hover{transform:translateY(-4px);box-shadow:0 6px 16px #d4a5744d}.attendance-icon{font-size:24px;font-weight:700;margin-bottom:8px}.attendance-date{font-size:13px;font-weight:600;margin-bottom:4px}.attendance-time{font-size:12px;opacity:.9}@media(max-width:640px){.attendance-card{padding:12px;min-height:90px}.attendance-icon{font-size:20px}.attendance-date{font-size:12px}.attendance-time{font-size:11px}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:12px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0003}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-title{font-size:1.25rem;font-weight:600;margin:0;color:#1f2937}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background-color .2s}.modal-close:hover{background-color:#f3f4f6}.modal-body{padding:1.5rem}.code-entry-section,.qr-scanner-section{margin-bottom:1.5rem}.section-label{display:block;font-size:.95rem;font-weight:600;margin-bottom:.5rem;color:#1f2937}.section-description{font-size:.85rem;color:#6b7280;margin-bottom:1rem;line-height:1.5}.code-input-wrapper{display:flex;gap:.5rem}.code-input{flex:1;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1.5rem;text-align:center;letter-spacing:.25rem;font-weight:500;transition:border-color .2s}.code-input:focus{outline:none;border-color:#d4a574;box-shadow:0 0 0 3px #d4a5741a}.code-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.divider{display:flex;align-items:center;margin:1.5rem 0;color:#9ca3af}.divider:before,.divider:after{content:"";flex:1;height:1px;background-color:#e5e7eb}.divider-text{padding:0 1rem;font-size:.85rem;color:#6b7280}.qr-icon{font-size:2rem;margin-bottom:.5rem}.scan-button{width:100%;padding:.75rem 1rem;background-color:#d4a574;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background-color .2s;margin-top:.5rem}.scan-button:hover:not(:disabled){background-color:#c49461}.scan-button:disabled{background-color:#d1d5db;cursor:not-allowed}.scan-button.secondary{background-color:#6b7280;margin-right:.5rem}.scan-button.secondary:hover{background-color:#4b5563}.scan-button.danger{background-color:#ef4444;margin-left:.5rem}.scan-button.danger:hover{background-color:#dc2626}.scan-controls{display:flex;gap:.5rem;margin-top:1rem}.scan-controls .scan-button{flex:1;margin-top:0}.qr-video{width:100%;border-radius:6px;margin-bottom:1rem;max-height:300px;object-fit:cover}.error-message{background-color:#fee2e2;border:1px solid #fecaca;color:#991b1b;padding:.75rem;border-radius:6px;font-size:.85rem;margin-bottom:1rem}.success-message{background-color:#dcfce7;border:1px solid #86efac;color:#166534;padding:.75rem;border-radius:6px;font-size:.85rem;margin-bottom:1rem;font-weight:600}.security-message{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#6b7280;padding:.75rem;background-color:#f9fafb;border-radius:6px;margin-bottom:1rem}.security-icon{color:#10b981;font-weight:700}.security-text{line-height:1.5}.modal-footer{padding:1.5rem;border-top:1px solid #e5e7eb;display:flex;gap:1rem}.record-button{flex:1;padding:.75rem 1.5rem;background-color:#d4a574;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background-color .2s}.record-button:hover:not(:disabled){background-color:#c49461}.record-button:disabled{background-color:#d1d5db;cursor:not-allowed}@media(max-width:640px){.modal-overlay{padding:0}.modal-content{border-radius:12px 12px 0 0;max-height:100vh}.modal-header,.modal-body,.modal-footer{padding:1rem}.modal-title{font-size:1.1rem}.code-input{font-size:1.25rem}}.course-detail-container{max-width:1200px;margin:0 auto;padding:16px;background-color:#f5f5f5;min-height:100vh}.course-detail-header{margin-bottom:24px}.breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:14px;color:#666}.breadcrumb-link{background:none;border:none;color:#d4a574;cursor:pointer;text-decoration:none;font-weight:500}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-separator{color:#999}.breadcrumb-current{color:#333;font-weight:500}.course-title-section{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:16px;border-radius:8px}.course-title{font-size:28px;font-weight:700;color:#222;margin:0}.edit-button{display:flex;align-items:center;gap:6px;padding:8px 16px;background:none;border:1px solid #d4a574;color:#333;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.edit-button:hover{background-color:#f9f5f0}.attendance-section{background:#fff;padding:24px 16px;border-radius:8px}.attendance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.attendance-title{font-size:18px;font-weight:600;color:#222;margin:0}.view-toggle{display:flex;align-items:center;gap:4px;padding:8px 16px;background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;color:#333;transition:all .2s}.view-toggle:hover{background-color:#efefef}.view-toggle.active{background-color:#d4a574;color:#fff;border-color:#d4a574}.attendance-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.attendance-list{overflow-x:auto}.attendance-table{width:100%;border-collapse:collapse;font-size:14px}.attendance-table thead{background-color:#f9f5f0;border-bottom:2px solid #e0e0e0}.attendance-table th{padding:12px;text-align:left;font-weight:600;color:#333}.attendance-table td{padding:12px;border-bottom:1px solid #e0e0e0;color:#555}.attendance-table tbody tr:hover{background-color:#fafafa}.status-badge{display:inline-block;padding:4px 12px;border-radius:4px;font-weight:600;font-size:12px}.status-badge.present{background-color:#dcfce7;color:#166534}.status-badge.absent{background-color:#fee2e2;color:#991b1b}.status-badge.pending{background-color:#ede9fe;color:#6b21a8}.qr-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.qr-popup{background-color:#fff;padding:20px;border-radius:12px;text-align:center;box-shadow:0 4px 12px #0000004d}.qr-code-text{margin-top:10px;font-weight:700}@media(max-width:768px){.course-detail-container{padding:12px}.course-title-section{flex-direction:column;gap:12px;align-items:flex-start}.course-title{font-size:20px}.attendance-cards-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.attendance-table{font-size:13px}.attendance-table th,.attendance-table td{padding:10px}}@media(max-width:480px){.attendance-cards-grid{grid-template-columns:repeat(2,1fr)}.attendance-table{font-size:12px}.attendance-table th,.attendance-table td{padding:8px}.course-title{font-size:18px}}.settings-page{background-color:#f5f5f5;min-height:100vh;padding:16px}.settings-container{max-width:600px;margin:0 auto}.settings-header{margin-bottom:24px}.settings-header h1{font-size:28px;font-weight:700;color:#1a1a1a;margin:0 0 8px}.settings-header p{font-size:14px;color:#666;margin:0}.settings-card{background:#fff;padding:24px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.settings-section{margin-bottom:32px;padding-bottom:8px}.settings-section:last-of-type{margin-bottom:24px}.settings-section .section-title{font-size:16px;font-weight:600;color:#1a1a1a;margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid #d4a574}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-bottom:0}.form-group{display:flex;flex-direction:column}.form-group label{font-size:14px;font-weight:600;color:#1a1a1a;margin-bottom:8px}.form-group input,.form-group select{width:100%;padding:12px 16px;border:1px solid #ddd;border-radius:6px;font-size:14px;background-color:#fff;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:#d4a574;box-shadow:0 0 0 3px #d4a5741a}.form-group select{cursor:pointer}.save-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;background-color:#d4a574;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.save-btn:hover:not(:disabled){background-color:#c9935a;transform:translateY(-1px);box-shadow:0 2px 8px #d4a5744d}.save-btn:disabled,.save-btn.disabled{opacity:.6;cursor:not-allowed;transform:none}.save-btn.loading{opacity:.8;cursor:wait}.success-message,.error-message{margin-top:16px;padding:12px 16px;border-radius:6px;font-size:14px;font-weight:500;animation:slideIn .3s ease}.success-message{background:#e8f5e9;color:#2e7d32;border:1px solid #2e7d32}.error-message{background:#ffebee;color:#d32f2f;border:1px solid #d32f2f}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:767px){.settings-page{padding:12px}.settings-header h1{font-size:24px}.settings-card{padding:20px}.settings-grid{grid-template-columns:1fr;gap:12px}.settings-section{margin-bottom:20px}.settings-section .section-title{font-size:15px}}@media(min-width:768px){.settings-page{padding:24px}.settings-header h1{font-size:32px}.settings-grid{grid-template-columns:repeat(2,1fr)}}.student-navbar{background:linear-gradient(135deg,#2c3e50,#1a252f);padding:0;box-shadow:0 2px 8px #0000001a;position:sticky;top:0;z-index:100}.navbar-container{max-width:1200px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between}.navbar-logo{font-size:20px;font-weight:700;color:#d4a574}.logo-text{color:#d4a574}.navbar-menu{display:flex;list-style:none;gap:30px;padding:0;flex:1;margin:0 0 0 50px}.navbar-menu a{color:#fff;text-decoration:none;font-size:16px;font-weight:500;transition:color .2s ease;cursor:pointer}.navbar-menu a:hover{color:#d4a574}.navbar-actions{display:flex;align-items:center;gap:12px}.settings-btn{background:transparent;border:2px solid #d4a574;color:#d4a574;padding:8px 12px;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.settings-btn:hover{background:#d4a5741a;transform:translateY(-2px)}.settings-btn svg{transition:transform .3s ease}.settings-btn:hover svg{transform:rotate(45deg)}.nav-refresh-btn{background:transparent!important;border:2px solid #63b3ed!important;color:#63b3ed!important;padding:8px 12px;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;-webkit-appearance:none;appearance:none}.nav-refresh-btn:hover:not(:disabled){background:#63b3ed!important;color:#fff!important;transform:translateY(-2px)}.nav-refresh-btn.refreshing,.nav-refresh-btn:disabled{cursor:not-allowed;opacity:.65;background:transparent!important;color:#63b3ed!important;transform:none}.logout-btn{background:#d4a574;color:#fff;border:none;padding:10px 20px;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.logout-btn:hover{background:#c9935a;transform:translateY(-2px)}.hamburger-btn{display:none;background:transparent;border:none;width:40px;height:36px;align-items:center;justify-content:center;cursor:pointer}.hamburger-line{display:block;width:22px;height:2px;background:#fff;margin:4px 0;transition:transform .2s ease,opacity .2s ease}.hamburger-btn.open .hamburger-line:nth-child(1){transform:translateY(6px) rotate(45deg)}.hamburger-btn.open .hamburger-line:nth-child(2){opacity:0}.hamburger-btn.open .hamburger-line:nth-child(3){transform:translateY(-6px) rotate(-45deg)}@media(max-width:768px){.navbar-menu{display:none;position:absolute;top:64px;left:0;right:0;background:linear-gradient(180deg,#2c3e50,#1a252f);padding:12px 24px 18px;flex-direction:column;gap:12px;z-index:90}.navbar-menu.open{display:flex}.navbar-container{padding:12px 16px}.navbar-menu a{font-size:15px;color:#fff;padding:8px 0;display:block}.logout-btn{padding:8px 12px;font-size:14px;margin-left:12px}.hamburger-btn{display:flex}.navbar-container{display:flex;align-items:center;gap:8px}}.admin-sidebar{width:240px;height:100vh;background:linear-gradient(180deg,#1a252f,#0f1620);color:#fff;display:flex;flex-direction:column;position:fixed;left:0;top:0;border-right:1px solid rgba(212,165,116,.2);transition:width .25s ease;z-index:100;overflow-x:hidden}.admin-sidebar.collapsed{width:70px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid rgba(255,255,255,.1);height:70px;box-sizing:border-box}.admin-sidebar.collapsed .sidebar-header{justify-content:center;padding:0}.sidebar-title{font-weight:700;font-size:18px;color:#d4a574;white-space:nowrap}.collapse-btn{background:none;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:5px;border-radius:4px;transition:background .2s}.collapse-btn:hover{background:#ffffff1a}.sidebar-menu{list-style:none;padding:20px 10px;margin:0;flex:1;display:flex;flex-direction:column;gap:5px}.sidebar-menu li{padding:12px 16px;cursor:pointer;font-size:15px;display:flex;align-items:center;gap:12px;border-radius:8px;transition:all .2s ease;color:#a0aec0}.sidebar-menu li span{white-space:nowrap}.sidebar-menu li:hover{background:#d4a5741a;color:#d4a574}.sidebar-menu li.active{background:#d4a57433;color:#d4a574;font-weight:500}.admin-sidebar.collapsed .sidebar-menu li{justify-content:center;padding:12px 0}.sidebar-footer{padding:20px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:8px}.refresh-btn{width:100%;background:#2d3748!important;color:#63b3ed!important;border:none;padding:12px;border-radius:8px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:12px;transition:background .2s,color .2s;-webkit-appearance:none;appearance:none}.admin-sidebar.collapsed .refresh-btn{justify-content:center;padding:12px 0}.refresh-btn:hover:not(:disabled){background:#fff!important;color:#2d3748!important}.refresh-btn.refreshing,.refresh-btn:disabled{cursor:not-allowed;opacity:.75;background:#2d3748!important;color:#63b3ed!important}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.logout-btn{width:100%;background:#2d3748;color:#e53e3e;border:none;padding:12px;border-radius:8px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:12px;transition:background .2s}.admin-sidebar.collapsed .logout-btn{justify-content:center;padding:12px 0}.logout-btn:hover{background:#e53e3e;color:#fff}.create-course-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f5f5,#fff);padding:16px}.create-course-card{background:#fff;padding:24px;border-radius:8px;box-shadow:0 2px 10px #00000014;width:100%;max-width:100%}.create-course-title{font-size:24px;font-weight:700;color:#1a1a1a;margin-bottom:24px;letter-spacing:-.5px}.create-course-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:14px;font-weight:600;color:#1a1a1a;letter-spacing:.3px}.form-input,.form-textarea{padding:12px 14px;border:1px solid #e0e0e0;border-radius:6px;font-size:16px;font-family:inherit;background:#f9f9f9;transition:all .2s ease;box-sizing:border-box;color:#1a1a1a}.form-input:focus,.form-textarea:focus{outline:none;background:#fff;border-color:#d4a574;box-shadow:0 0 0 3px #d4a5741a}.form-input::placeholder,.form-textarea::placeholder{color:#999}.form-textarea{resize:vertical;min-height:100px;line-height:1.5}.form-input.input-error,.form-textarea.input-error{border-color:#d9534f;background:#fef5f5}.form-input.input-error:focus,.form-textarea.input-error:focus{box-shadow:0 0 0 3px #d9534f1a;border-color:#d9534f}.char-count{font-size:12px;color:#999;margin-top:4px}.error-text{font-size:12px;color:#d9534f;margin-top:4px}.error-message{background:#fee;color:#c00;padding:12px;border-radius:6px;margin-bottom:16px;font-size:14px;border-left:4px solid #c00}.form-row{display:flex;flex-direction:column;gap:12px}.form-row .form-group{flex:1;gap:6px}.success-popup{background-color:#4caf50;color:#fff;padding:12px 20px;border-radius:5px;margin-bottom:15px;text-align:center;animation:fadein .5s,fadeout .5s 2.5s}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes fadeout{0%{opacity:1}to{opacity:0}}.create-course-button{width:100%;padding:14px 16px;background:linear-gradient(135deg,#d4a574,#c9935a);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;margin-top:10px;transition:all .3s ease;box-shadow:0 4px 12px #d4a5744d}.create-course-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #d4a57466}.create-course-button:disabled{opacity:.7;cursor:not-allowed}@media(min-width:640px){.create-course-card{max-width:600px;padding:40px}.create-course-title{font-size:28px;margin-bottom:30px}.form-row{flex-direction:row;gap:16px}.form-row .form-group{flex:1}.form-group{gap:8px;margin-bottom:4px}}@media(min-width:768px){.create-course-container{padding:20px}.create-course-card{padding:40px}.create-course-title{font-size:32px}}.attendance-table-container{margin-top:20px;background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000000d;overflow:hidden;border:1px solid #eef0f2}.table-wrapper{overflow-x:auto;position:relative;max-width:100%}table{width:100%;border-collapse:separate;border-spacing:0}th,td{padding:14px 16px;border-bottom:1px solid #eee;border-right:1px solid #f5f5f5;white-space:nowrap}.sticky-col{position:sticky;left:0;background-color:#fff;z-index:10;border-right:2px solid #e5e7eb}.header-col{z-index:20;background-color:#f9fafb;text-align:left;font-weight:600;color:#374151}.date-col{background-color:#f9fafb;text-align:center;min-width:120px}.sub-header{font-size:.75rem;color:#9ca3af;margin-top:4px}.status-select{padding:6px 12px;border-radius:6px;border:1px solid #d1d5db;font-size:.875rem;font-weight:500;cursor:pointer;outline:none;width:100%}.status-select.present{background-color:#dcfce7;color:#166534;border-color:#bbf7d0}.status-select.absent{background-color:#fee2e2;color:#991b1b;border-color:#fecaca}.status-select.empty{color:#6b7280}.course-details-container{min-height:100vh;background:linear-gradient(135deg,#f9fafb,#f3f4f6);padding:2rem 1.5rem}.details-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;max-width:1200px;margin-left:auto;margin-right:auto}.back-button{display:flex;align-items:center;justify-content:center;gap:.5rem;background:#fff;border:1px solid #e5e7eb;padding:.75rem 1rem;border-radius:8px;cursor:pointer;font-weight:600;color:#374151;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.back-button:hover{background:#f3f4f6;border-color:#d1d5db;transform:translate(-2px)}.header-content{flex:1}.course-title{font-size:2rem;font-weight:700;color:#1f2937;margin:0;line-height:1.2;letter-spacing:-.01em}.course-meta{font-size:.95rem;color:#6b7280;margin:.5rem 0 0;font-weight:500}.edit-button{display:flex;align-items:center;justify-content:center;gap:.5rem;background:#fbbf24;color:#fff;border:none;padding:.75rem 1.25rem;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s ease;flex-shrink:0;box-shadow:0 2px 8px #fbbf2433}.edit-button:hover{background:#f59e0b;transform:translateY(-2px);box-shadow:0 4px 12px #fbbf244d}.info-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;max-width:1200px;margin:0 auto 2rem}.info-card{display:flex;align-items:center;gap:1.25rem;background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 1px 3px #00000014;transition:all .3s ease;border:1px solid #e5e7eb}.info-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001f}.info-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:12px;flex-shrink:0;font-weight:600}.calendar-icon{background:#dbeafe;color:#0369a1}.users-icon{background:#ddd6fe;color:#6366f1}.clock-icon{background:#fecdd3;color:#be123c}.info-content{flex:1}.info-label{font-size:.8rem;color:#6b7280;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin:0 0 .5rem}.info-value{font-size:1.1rem;font-weight:700;color:#1f2937;margin:0;line-height:1.4}.details-content{max-width:1200px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:2rem}.attendance-section{margin-bottom:2.5rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0;letter-spacing:-.01em}.view-all-link{background:none;border:none;color:#fbbf24;cursor:pointer;font-weight:600;padding:.5rem;font-size:.95rem;transition:all .2s ease;border-radius:6px}.view-all-link:hover{color:#f59e0b;background:#fffbf0}.attendance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.attendance-card{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem;background:#fafbfc;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .3s ease}.attendance-card:hover{border-color:#fbbf24;background:#fffbf0;transform:translateY(-2px);box-shadow:0 4px 12px #fbbf2426}.attendance-card.highlighted{border:2px solid #fbbf24;background:#fffcf5;box-shadow:0 4px 12px #fbbf2433}.attendance-date{display:flex;align-items:center;gap:.5rem}.date-text{font-weight:700;font-size:1rem;color:#1f2937}.attendance-time{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#6b7280;font-weight:500}.action-buttons{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;border-radius:8px;border:none;font-weight:600;cursor:pointer;transition:all .2s ease;font-size:1rem}.btn-primary{background:#fbbf24;color:#fff;box-shadow:0 2px 8px #fbbf2433}.btn-primary:hover{background:#f59e0b;transform:translateY(-2px);box-shadow:0 4px 12px #fbbf244d}.btn-secondary{background:#fff;color:#1f2937;border:2px solid #e5e7eb}.btn-secondary:hover{border-color:#fbbf24;color:#fbbf24;background:#fffbf0}.btn-icon{font-size:1.25rem;font-weight:300}@media(max-width:768px){.course-details-container{padding:1rem}.details-header{flex-direction:column;gap:1rem}.back-button{align-self:flex-start}.header-content{width:100%}.course-title{font-size:1.5rem}.info-cards-grid{grid-template-columns:1fr}.details-content{padding:1.5rem}.attendance-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.action-buttons{flex-direction:column}.btn{width:100%}.section-title{font-size:1.25rem}}@media(max-width:480px){.details-header{margin-bottom:1.5rem}.course-title{font-size:1.25rem}.attendance-grid{grid-template-columns:1fr}}@media print{body *{visibility:hidden}.print-only,.print-only *{visibility:visible!important;display:block!important}.screen-only{display:none!important}.print-only{position:absolute;left:0;top:0;width:100%;background:#fff}.print-only>div{page-break-inside:avoid}}.student-list-container{padding:24px;max-width:1200px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1{font-size:1.5rem;color:#111827}.search-bar{display:flex;gap:8px}.search-bar input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;min-width:300px}.search-bar button{padding:8px 12px;background:#4f46e5;color:#fff;border:none;border-radius:6px;cursor:pointer}.table-responsive{overflow-x:auto;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.student-table{width:100%;border-collapse:collapse}.student-table th,.student-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.student-table th{background:#f9fafb;font-weight:600;color:#374151}.action-cell{display:flex;gap:8px}.btn-icon{padding:6px;border:none;background:none;cursor:pointer;border-radius:4px;transition:background .2s}.btn-icon.edit{color:#2563eb}.btn-icon.edit:hover{background:#dbeafe}.btn-icon.delete{color:#dc2626}.btn-icon.delete:hover{background:#fee2e2}.btn-icon.view{color:#059669}.btn-icon.view:hover{background:#d1fae5}.modal-content{background:#fff;border-radius:12px;padding:24px;max-height:90vh;overflow-y:auto;max-width:500px;width:90%}.modal-content.detail-modal{max-width:700px}.close-btn{background:none;border:none;cursor:pointer;color:#6b7280;padding:4px;border-radius:4px;transition:all .2s}.close-btn:hover{background:#f3f4f6;color:#111827}.detail-content{display:flex;flex-direction:column;gap:24px}.detail-section{border-bottom:1px solid #e5e7eb;padding-bottom:16px}.detail-section:last-child{border-bottom:none;padding-bottom:0}.section-title{font-size:16px;font-weight:600;color:#111827;margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid #d4a574}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-label{font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.detail-value{font-size:14px;color:#111827;font-weight:500}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status-badge.verified{background:#d1fae5;color:#065f46}.status-badge.pending{background:#fef3c7;color:#92400e}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content.large{width:90%;max-width:800px;background:#fff;border-radius:12px;padding:24px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:24px}.form-group label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:4px}.form-group input{width:100%;padding:8px;border:1px solid #d1d5db;border-radius:6px}.modal-actions{display:flex;justify-content:flex-end;gap:12px}.btn-cancel{padding:8px 16px;background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer}.btn-save{padding:8px 16px;background:#d4a574;color:#fff;border:none;border-radius:6px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:all .2s ease}.btn-save:hover:not(:disabled){background:#c9935a;transform:translateY(-1px);box-shadow:0 2px 8px #d4a5744d}.btn-save:active{transform:translateY(0)}.btn-save:disabled{background-color:#e5d4c1;cursor:not-allowed;transform:none}.form-section{margin-bottom:24px}.form-section:last-of-type{margin-bottom:0}.form-section .section-title{font-size:16px;font-weight:600;color:#111827;margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid #d4a574}.form-group select{width:100%;padding:8px;border:1px solid #d1d5db;border-radius:6px;background-color:#fff;cursor:pointer;font-size:14px}.form-group select:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.form-group input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.checkbox-group{display:flex;align-items:center}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:500;color:#374151}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#4f46e5}.checkbox-label span{-webkit-user-select:none;user-select:none}small{display:block;margin-top:4px;font-size:12px;color:#6b7280}@media(max-width:767px){.modal-content{width:95%;padding:20px;max-height:85vh}.form-grid{grid-template-columns:1fr;gap:12px}.form-section{margin-bottom:20px}.modal-header h2{font-size:1.25rem}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}@media(min-width:768px)and (max-width:1024px){.form-grid{grid-template-columns:repeat(2,1fr)}}.student-cards{display:none;flex-direction:column;gap:16px}.student-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0000001a;border:1px solid #e5e7eb;transition:box-shadow .2s}.student-card:hover{box-shadow:0 4px 12px #00000026}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;padding-bottom:12px;border-bottom:2px solid #f3f4f6}.card-name{font-size:16px;font-weight:600;color:#111827;line-height:1.4;flex:1}.card-body{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.card-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0}.card-label{font-size:13px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.card-value{font-size:14px;color:#111827;font-weight:500;text-align:right;flex:1;margin-left:12px}.card-actions{display:flex;gap:8px;padding-top:12px;border-top:1px solid #f3f4f6;flex-wrap:wrap}.card-actions .btn-icon{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;font-size:13px;font-weight:500;border-radius:6px;transition:all .2s;white-space:nowrap;overflow:hidden}.card-actions .btn-icon span{display:inline;overflow:hidden;text-overflow:ellipsis}.card-actions .btn-icon.view{background:#d1fae5;color:#065f46}.card-actions .btn-icon.edit{background:#dbeafe;color:#1e40af}.card-actions .btn-icon.delete{background:#fee2e2;color:#991b1b}@media(max-width:767px){.table-responsive{display:none}.student-cards{display:flex}.student-list-container{padding:16px}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.page-header h1{font-size:1.25rem}.search-bar{width:100%}.search-bar input{min-width:0;flex:1}}@media(min-width:768px){.table-responsive{display:block}.student-cards{display:none}}.enrollment-container{padding:24px;max-width:1200px;margin:0 auto}.page-header h1{font-size:1.5rem;color:#111827;margin-bottom:8px}.page-header p{color:#6b7280;margin-bottom:24px}.controls-bar{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap}.select-wrapper{flex:1;min-width:250px;max-width:350px}.course-select{width:100%;padding:10px;border:1px solid #d1d5db;border-radius:6px;font-size:1rem}.search-wrapper{flex:1;min-width:250px;max-width:350px;position:relative}.search-wrapper input{width:100%;padding:10px 10px 10px 36px;border:1px solid #d1d5db;border-radius:6px;font-size:1rem}.search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#9ca3af}.dual-list-container{display:grid;grid-template-columns:1fr 1fr;gap:24px;height:600px}.student-item.enrolled{display:flex;justify-content:space-between;align-items:center;background-color:#fafaf9;width:100%}.student-left-group{display:flex;align-items:center;gap:12px;flex:1}.student-icon{color:#16a34a;display:flex;align-items:center}.remove-btn{display:flex;align-items:center;justify-content:center;padding:8px;background:#fff;border:1px solid #fee2e2;color:#ef4444;border-radius:4px;cursor:pointer;transition:all .2s;margin-left:10px}.remove-btn:hover{background:#fee2e2;color:#dc2626;border-color:#fecaca}.list-panel{background:#fff;border-radius:8px;border:1px solid #e5e7eb;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 2px 4px #0000000d}.panel-header{padding:16px;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.panel-header h3{margin:0;font-size:1rem;color:#374151}.panel-header.success{background:#f0fdf4}.count-badge{background:#e5e7eb;padding:2px 8px;border-radius:12px;font-size:.8rem;font-weight:600}.count-badge.success{background:#dcfce7;color:#166534}.panel-body{flex:1;overflow-y:auto;padding:12px}.student-item{display:flex;align-items:center;justify-content:space-between;padding:10px;border-bottom:1px solid #f3f4f6;border-radius:6px;transition:background .2s}.student-item:hover{background:#f9fafb}.student-info{display:flex;flex-direction:column}.student-name{font-weight:500;color:#1f2937}.student-id{font-size:.8rem;color:#6b7280}.student-item.enrolled{background-color:#fafaf9;justify-content:flex-start;gap:12px}.student-icon{color:#16a34a}.enroll-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:#4f46e5;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background .2s}.enroll-btn:hover{background:#4338ca}.enroll-btn:disabled{background:#a5a6f6;cursor:not-allowed}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;background:#fff;border-radius:8px;color:#9ca3af;border:2px dashed #e5e7eb}.empty-state h3{margin-top:16px;color:#374151}.no-items{text-align:center;color:#9ca3af;margin-top:20px}@media(max-width:767px){.enrollment-container{padding:16px}.controls-bar{flex-direction:column;gap:12px}.select-wrapper,.search-wrapper{min-width:0;width:100%}.page-header h1{font-size:1.25rem}.page-header p{font-size:.875rem;margin-bottom:16px}.dual-list-container{grid-template-columns:1fr;height:auto;gap:16px}.list-panel{min-height:300px;max-height:400px}.panel-header{padding:12px}.panel-header h3{font-size:.9rem}.panel-body{padding:8px}.student-item{padding:12px 8px;gap:8px}.student-name{font-size:.9rem}.student-id{font-size:.75rem}.enroll-btn{padding:10px 14px;font-size:.875rem;min-height:44px}.remove-btn{padding:10px;min-width:44px;min-height:44px}.student-left-group{gap:8px}.count-badge{font-size:.75rem;padding:2px 6px}.empty-state{height:250px}.empty-state h3{font-size:1rem}.empty-state p{font-size:.875rem;padding:0 20px}}@media(min-width:768px)and (max-width:1024px){.enrollment-container{padding:20px}.dual-list-container{gap:20px}}.analytics-container{padding:16px;max-width:1400px;margin:0 auto;overflow-x:hidden;width:100%;box-sizing:border-box}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.title-group{display:flex;align-items:center;gap:8px}.title-group h1{margin:0;font-size:24px;font-weight:600}.refresh-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.refresh-btn:hover{background:#f5f5f5;border-color:#1976d2;color:#1976d2}.tabs-container{display:flex;gap:8px;margin-bottom:24px;border-bottom:2px solid #e0e0e0;overflow-x:auto}.tab-button{padding:12px 24px;border:none;background:transparent;cursor:pointer;font-size:15px;font-weight:500;color:#666;border-bottom:3px solid transparent;transition:all .2s;white-space:nowrap}.tab-button:hover{color:#1976d2;background:#f5f9ff}.tab-button.active{color:#1976d2;border-bottom-color:#1976d2;background:#f5f9ff}.tab-content{animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.kpi-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;box-shadow:0 2px 4px #0000000d;display:flex;align-items:center;gap:12px;transition:all .2s}.kpi-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.kpi-card.green-border{border-left:4px solid #2e7d32}.kpi-card.red-border{border-left:4px solid #d32f2f}.kpi-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:8px;background:#f5f5f5;color:#1976d2}.kpi-icon.green{background:#e8f5e9;color:#2e7d32}.kpi-icon.red{background:#ffebee;color:#d32f2f}.kpi-label{font-size:13px;color:#666;margin:0 0 4px;font-weight:500}.kpi-value{font-size:24px;font-weight:700;margin:0;color:#1a1a1a}.kpi-value-small{font-size:14px;font-weight:600;margin:0;color:#1a1a1a;display:flex;align-items:center;gap:4px}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:24px}.chart-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000000d}.chart-card h2{margin:0 0 16px;font-size:18px;font-weight:600;color:#1a1a1a}.chart-box{width:100%;min-height:280px;display:flex;align-items:center;justify-content:center}.table-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;margin-bottom:24px;box-shadow:0 2px 4px #0000000d}.table-card h2{margin:0 0 16px;font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px}.table-container{overflow-x:auto}.analytics-table{width:100%;border-collapse:collapse;font-size:14px}.analytics-table thead{background:#f5f5f5}.analytics-table th{padding:12px;text-align:left;font-weight:600;color:#424242;border-bottom:2px solid #e0e0e0}.analytics-table td{padding:12px;border-bottom:1px solid #f0f0f0}.analytics-table tbody tr:hover{background:#f9f9f9}.rate-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.rate-badge.high{background:#e8f5e9;color:#2e7d32}.rate-badge.medium{background:#fff3e0;color:#f57c00}.rate-badge.low{background:#ffebee;color:#d32f2f}.alert-badge{display:inline-block;padding:2px 8px;border-radius:10px;background:#ffebee;color:#d32f2f;font-size:12px;font-weight:600}.filter-section{margin-bottom:24px;padding:16px;background:#f5f5f5;border-radius:8px}.filter-section label{display:block;margin-bottom:8px;font-weight:600;font-size:14px;color:#424242}.filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.filter-item{display:flex;flex-direction:column}.course-selector{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.course-selector:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.student-analytics{padding:20px;background:#fff;border:1px solid #e0e0e0;border-radius:8px}.student-analytics h2{margin:0 0 20px;font-size:20px;font-weight:600}.empty-state-card{padding:40px 20px;background:#f9f9f9;border:2px dashed #ddd;border-radius:8px;text-align:center;color:#666;font-size:16px}.summary-section{margin-top:24px;padding:20px;background:#f9f9f9;border-radius:8px}.summary-section h2{margin:0 0 16px;font-size:18px;font-weight:600}.effectiveness-section{margin-top:24px}.effectiveness-section h2{margin:0 0 16px;font-size:18px;font-weight:600}.participation-section{margin-top:24px}.participation-section h2{margin:0 0 16px;font-size:18px;font-weight:600}.insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.insight-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px}.insight-card h3{margin:0 0 12px;font-size:15px;font-weight:600;color:#1976d2}.insight-card ul{margin:0;padding:0 0 0 20px}.insight-card li{margin-bottom:6px;font-size:14px;color:#424242}.empty-state{color:#999;font-style:italic;font-size:14px}.department-analytics{padding:20px;background:#fff;border:1px solid #e0e0e0;border-radius:8px}.department-analytics h2{margin:0 0 20px;font-size:20px;font-weight:600}.improvement-indicator{margin-top:16px;padding:12px;background:#f5f5f5;border-radius:6px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500}.insights-comparison{margin-top:16px}.top-courses-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.top-courses-card{padding:20px;border-radius:8px;border:1px solid #e0e0e0}.top-courses-card.green-bg{background:linear-gradient(135deg,#e8f5e9,#fff);border-color:#2e7d32}.top-courses-card.red-bg{background:linear-gradient(135deg,#ffebee,#fff);border-color:#d32f2f}.top-courses-card h2{margin:0 0 16px;font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px}.courses-list{display:flex;flex-direction:column;gap:12px}.course-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#fff;border-radius:6px;border:1px solid #e0e0e0}.course-name{font-weight:500;color:#424242}.course-rate{font-weight:700;color:#1976d2;font-size:16px}.contact-info{display:flex;flex-direction:column;gap:2px}.email-small{font-size:12px;color:#666}.view-breakdown-btn{padding:6px 12px;background:#1976d2;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.view-breakdown-btn:hover{background:#1565c0}.breakdown-row{background:#f9f9f9!important}.breakdown-row td{padding:0!important}.breakdown-loading{padding:20px;text-align:center;color:#666}.breakdown-content{padding:20px;background:#fff;border:1px solid #e0e0e0;border-radius:4px;margin:8px}.breakdown-stats{display:flex;gap:20px;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #e0e0e0}.breakdown-stat{display:flex;flex-direction:column;gap:4px;padding:12px 16px;background:#f5f5f5;border-radius:6px;border-left:3px solid #1976d2}.breakdown-stat.green{border-left-color:#2e7d32;background:#e8f5e9}.breakdown-stat.red{border-left-color:#d32f2f;background:#ffebee}.stat-label{font-size:12px;color:#666;font-weight:500}.stat-value{font-size:20px;font-weight:700;color:#1a1a1a}.breakdown-lists{display:grid;grid-template-columns:1fr 1fr;gap:20px}.student-list{padding:16px;border-radius:6px;background:#f9f9f9;border:1px solid #e0e0e0}.student-list.present{background:#e8f5e9;border-color:#2e7d32}.student-list.absent{background:#ffebee;border-color:#d32f2f}.student-list h4{margin:0 0 12px;font-size:15px;font-weight:600;color:#1a1a1a}.student-list ul{margin:0;padding:0;list-style:none}.student-list li{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;margin-bottom:6px;background:#fff;border-radius:4px;border:1px solid #e0e0e0}.student-name{font-weight:500;color:#1a1a1a}.student-dept{font-size:12px;color:#666;font-style:italic}.empty-list{color:#999;font-style:italic;font-size:14px;margin:8px 0;text-align:center}.course-monthly-section{margin-top:24px;padding:20px;background:#fff;border:1px solid #e0e0e0;border-radius:8px}.monthly-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid #e0e0e0}.monthly-header h3{margin:0;font-size:18px;font-weight:600;color:#1a1a1a}.monthly-filters{display:flex;gap:12px}.month-selector{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;background:#fff;cursor:pointer;min-width:80px}.month-selector:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a}.monthly-loading{padding:40px 20px;text-align:center;color:#666;font-size:15px}.monthly-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}.monthly-stat-card{display:flex;flex-direction:column;gap:8px;padding:16px;background:linear-gradient(135deg,#f5f9ff,#fff);border:1px solid #e3f2fd;border-left:4px solid #1976d2;border-radius:6px;transition:all .2s}.monthly-stat-card.primary{background:linear-gradient(135deg,#f5f9ff,#fff);border-left-color:#1976d2}.monthly-stat-card.success{background:linear-gradient(135deg,#e8f5e9,#fff);border-left-color:#2e7d32}.monthly-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.monthly-stat-label{font-size:13px;color:#666;font-weight:500}.monthly-stat-value{font-size:28px;font-weight:700;color:#1976d2}.monthly-content{display:flex;flex-direction:column;gap:20px}.student-performance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.performance-card{padding:20px;border-radius:8px;border:2px solid #e0e0e0;background:#fff;transition:all .3s}.performance-card.best{background:linear-gradient(135deg,#fff8e1,#fff);border-color:#ffa726}.performance-card.worst{background:linear-gradient(135deg,#ffebee,#fff);border-color:#ef5350}.performance-card:hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000026}.performance-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e0e0e0}.performance-icon{font-size:24px}.performance-header h4{margin:0;font-size:16px;font-weight:600;color:#1a1a1a}.performance-details{display:flex;justify-content:space-between;align-items:center}.performance-details .student-name{font-size:15px;font-weight:600;color:#1a1a1a}.performance-details .student-rate{font-size:20px;font-weight:700;padding:6px 12px;border-radius:6px;background:#1976d21a;color:#1976d2}.performance-card.best .student-rate{background:#ffa72633;color:#f57c00}.performance-card.worst .student-rate{background:#ef535033;color:#d32f2f}.monthly-no-data{padding:40px 20px;text-align:center;color:#999;font-size:15px;font-style:italic}@media(max-width:900px){.charts-grid,.top-courses-section,.breakdown-lists{grid-template-columns:1fr}.monthly-header{flex-direction:column;align-items:flex-start;gap:12px}}@media(max-width:700px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.insights-grid{grid-template-columns:1fr}.tabs-container{gap:4px}.tab-button{padding:10px 16px;font-size:14px}.filter-row{grid-template-columns:1fr}.breakdown-stats{flex-direction:column;gap:12px}.chart-box{height:240px}.student-performance-grid,.monthly-stats-grid{grid-template-columns:1fr}}@media(max-width:500px){.kpi-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.analytics-table{font-size:12px}.analytics-table th,.analytics-table td{padding:8px}.analytics-container,.chart-card,.table-card{padding:12px}.chart-card h2,.table-card h2{font-size:16px;margin-bottom:12px}.chart-box{height:200px}.kpi-card{padding:12px}.kpi-icon{width:40px;height:40px}.kpi-value{font-size:20px}.kpi-label{font-size:12px}.monthly-filters{flex-direction:column;width:100%}.month-selector{width:100%}.filter-section,.summary-section{padding:12px}.title-group h1{font-size:20px}.refresh-btn{padding:6px 12px;font-size:13px}.tab-button{padding:8px 12px;font-size:13px}.performance-card{padding:12px}.breakdown-content{padding:12px;margin:4px}.student-list,.course-monthly-section{padding:12px}.effectiveness-section h2,.participation-section h2{font-size:16px}}
