html,body,#root{height:100%;width:100%;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}*{box-sizing:border-box}@media(max-width:768px){body{font-size:14px}button,a,input,select,textarea{min-height:44px}html{-webkit-text-size-adjust:100%}*{-webkit-overflow-scrolling:touch}}.app-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.main-container{display:flex;flex:1;overflow:hidden}.content{flex:1;overflow-y:auto;padding:24px;background:#f9fafb}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h2{margin:0;font-size:24px;color:#111827}.btn-primary{background:#4f46e5;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.btn-primary:hover{background:#4338ca}.data-table{width:100%;background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e5e7eb;border-collapse:collapse}.data-table thead{background:#f9fafb}.data-table th{padding:12px 16px;text-align:left;font-weight:600;color:#374151;font-size:14px;border-bottom:1px solid #e5e7eb}.data-table td{padding:12px 16px;color:#111827;font-size:14px;border-bottom:1px solid #f3f4f6}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#f9fafb}@media(max-width:768px){.content{padding:16px}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.page-header h2{font-size:20px}.data-table-wrapper,.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}.data-table{font-size:13px;min-width:600px}.data-table th,.data-table td{padding:10px 12px;font-size:12px;white-space:nowrap}.data-table th:first-child,.data-table td:first-child{position:sticky;left:0;background:#fff;z-index:2}.data-table thead th:first-child{background:#f9fafb;z-index:3}.btn-group{display:flex;flex-direction:column;gap:8px}.btn-group button{width:100%}}.header{background:linear-gradient(90deg,#1a1a2e,#16213e);color:#fff;padding:0 2rem;height:64px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 6px -1px #0000001a;position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:2.5rem}.logo{font-size:1.5rem;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0}.header-right{display:flex;align-items:center;gap:1.5rem}.current-entity{background:#667eea33;padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500}.user-info{font-size:.875rem;opacity:.9}.logout-btn{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;color:#fff;padding:.5rem 1.25rem;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.logout-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}.mobile-menu-btn{display:none;background:none;border:none;cursor:pointer;padding:8px;margin-right:-8px}.hamburger-icon{display:flex;flex-direction:column;gap:4px;width:24px}.hamburger-icon span{display:block;height:3px;background:#fff;border-radius:2px;transition:all .3s}.section-switcher{display:flex;background:#ffffff1a;border-radius:10px;padding:4px}.section-btn{background:transparent;border:none;color:#ffffffb3;padding:.5rem 1.25rem;border-radius:8px;cursor:pointer;transition:all .2s;font-weight:500}.section-btn:hover{color:#fff}.section-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #667eea66}.sidebar{width:260px;background:linear-gradient(180deg,#1a1a2e,#16213e);padding:1.5rem 0;overflow-y:auto;flex-shrink:0;height:calc(100vh - 64px);position:sticky;top:64px}.mobile-sidebar-header{display:none}.nav-menu{list-style:none;padding:0;margin:0}.nav-menu li a{display:flex;align-items:center;padding:.875rem 1.75rem;color:#94a3b8;text-decoration:none;transition:all .2s;font-weight:500;border-left:3px solid transparent}.nav-menu li a:hover{background:#667eea1a;color:#fff;border-left-color:#667eea}.nav-menu li a.active{background:#667eea26;color:#fff;border-left-color:#667eea}.nav-divider{padding:1.5rem 1.75rem .75rem;color:#667eea;font-size:.7rem;text-transform:uppercase;letter-spacing:1.5px;font-weight:600}.mobile-overlay{display:none}@media(max-width:768px){.sidebar{width:220px}.header{padding:0 1rem}.header-left{gap:1.5rem}.current-entity{font-size:.75rem;padding:.4rem .8rem}.user-info{font-size:.75rem}.logout-btn{padding:.4rem 1rem;font-size:.875rem}}@media(max-width:768px){.mobile-menu-btn{display:block}.header{padding:0 1rem}.header-left{gap:1rem}.section-switcher,.current-entity,.user-info{display:none}.logout-btn{padding:.4rem .8rem;font-size:.75rem}.mobile-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:150}.sidebar{position:fixed;top:0;left:-280px;width:280px;height:100vh;z-index:200;transition:left .3s ease;padding:0}.sidebar.mobile-open{left:0}.mobile-sidebar-header{display:block;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);background:#0003}.mobile-user-info{margin-bottom:1rem}.mobile-user-name{font-size:1.125rem;font-weight:600;color:#fff;margin-bottom:.25rem}.mobile-user-role{font-size:.875rem;color:#94a3b8}.mobile-section-switcher{display:flex;gap:.5rem}.mobile-section-btn{flex:1;background:#ffffff1a;border:none;color:#ffffffb3;padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s;font-weight:500;font-size:.875rem}.mobile-section-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.nav-menu{padding:1rem 0}.main-container{flex-direction:column}.content{padding:1rem}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460)}.login-card{background:#fff;padding:2.5rem;border-radius:16px;box-shadow:0 25px 50px -12px #0006;width:100%;max-width:420px}.login-card h1{text-align:center;margin-bottom:1.5rem;color:#1a1a2e;font-size:2rem;font-weight:700}.login-toggle{display:flex;background:#f1f5f9;border-radius:10px;padding:4px;margin-bottom:1.5rem}.toggle-btn{flex:1;padding:.75rem 1rem;border:none;background:transparent;border-radius:8px;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s}.toggle-btn.active{background:#fff;color:#1a1a2e;box-shadow:0 2px 4px #0000001a}.toggle-btn:hover:not(.active){color:#1a1a2e}.parent-info{text-align:center;color:#64748b;font-size:.9rem;margin-bottom:1.5rem;line-height:1.5}.btn-full{width:100%}.login-hint{text-align:center;margin-top:1.5rem;color:#64748b;font-size:.875rem;padding:.75rem;background:#f8fafc;border-radius:8px}@media(max-width:768px){.login-page{padding:20px}.login-card{padding:2rem 1.5rem;max-width:100%}.login-card h1{font-size:1.5rem;margin-bottom:1.25rem}.toggle-btn{padding:.625rem .75rem;font-size:14px}.parent-info{font-size:.85rem}.login-hint{font-size:.8rem;padding:.625rem}}.parent-progress-page{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#e2e8f0)}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;text-align:center;padding:2rem}.loading-spinner{width:50px;height:50px;border:4px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.error-icon{font-size:4rem;margin-bottom:1rem}.error-container h2{color:#1a1a2e;margin-bottom:.5rem}.error-container p{color:#64748b;margin-bottom:1.5rem}.parent-header{background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff;padding:1.5rem 2rem;display:flex;align-items:center;gap:1.5rem}.back-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s}.back-btn:hover{background:#fff3}.parent-header h1{margin:0;font-size:1.5rem;font-weight:600}.parent-content{max-width:900px;margin:0 auto;padding:2rem}.student-info-card{background:#fff;border-radius:16px;padding:2rem;display:flex;align-items:center;gap:1.5rem;box-shadow:0 4px 12px #00000014;margin-bottom:1.5rem}.student-avatar-large{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:600}.student-details h2{margin:0 0 .5rem;color:#1a1a2e;font-size:1.5rem}.student-meta{display:flex;gap:1rem;color:#64748b;font-size:.9rem;margin-bottom:.5rem}.curriculum-badge{display:inline-block;background:#f0fdf4;color:#16a34a;padding:.35rem .75rem;border-radius:20px;font-size:.85rem;font-weight:500}.attendance-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 12px #00000014;margin-bottom:1.5rem}.attendance-card h3{margin:0;color:#1a1a2e;font-size:1.1rem}.attendance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.month-selector{display:flex;align-items:center;gap:.75rem}.month-nav-btn{background:#f1f5f9;border:none;width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:.85rem;color:#475569;transition:all .2s}.month-nav-btn:hover{background:#e2e8f0;color:#1a1a2e}.current-month{font-weight:600;color:#1a1a2e;min-width:140px;text-align:center}.attendance-overall{margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0;text-align:center;color:#475569;font-size:.9rem}.attendance-calendar{margin-bottom:1rem}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.calendar-day-name{text-align:center;font-size:.75rem;font-weight:600;color:#64748b;padding:.5rem 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-cell{aspect-ratio:1;border-radius:8px;background:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.85rem;position:relative;min-height:45px}.calendar-cell.empty{background:transparent}.calendar-cell .cell-day{font-weight:500;color:#475569}.calendar-cell .cell-status{font-size:.7rem;font-weight:700;margin-top:2px}.calendar-cell.att-present{background:#dcfce7}.calendar-cell.att-present .cell-day,.calendar-cell.att-present .cell-status{color:#16a34a}.calendar-cell.att-absent{background:#fef2f2}.calendar-cell.att-absent .cell-day,.calendar-cell.att-absent .cell-status{color:#dc2626}.calendar-cell.att-late{background:#fef3c7}.calendar-cell.att-late .cell-day,.calendar-cell.att-late .cell-status{color:#d97706}.attendance-legend{display:flex;flex-wrap:wrap;gap:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#475569}.legend-dot{width:12px;height:12px;border-radius:3px}.legend-dot.present{background:#16a34a}.legend-dot.absent{background:#dc2626}.legend-dot.late{background:#d97706}.attendance-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.stat-item{text-align:center;padding:1rem;background:#f8fafc;border-radius:12px}.stat-item.present{background:#f0fdf4}.stat-item.absent{background:#fef2f2}.stat-item.percentage{background:#eff6ff}.stat-value{display:block;font-size:1.75rem;font-weight:700;color:#1a1a2e}.stat-item.present .stat-value{color:#16a34a}.stat-item.absent .stat-value{color:#dc2626}.stat-item.percentage .stat-value{color:#2563eb}.stat-label{display:block;font-size:.8rem;color:#64748b;margin-top:.25rem}.no-curriculum-card,.no-progress-card{background:#fff;border-radius:16px;padding:3rem 2rem;text-align:center;box-shadow:0 4px 12px #00000014}.no-curriculum-card .icon,.no-progress-card .icon{font-size:3rem;margin-bottom:1rem}.no-curriculum-card h3,.no-progress-card h3{color:#1a1a2e;margin-bottom:.5rem}.no-curriculum-card p,.no-progress-card p{color:#64748b;max-width:400px;margin:0 auto}.curriculum-progress-section{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 12px #00000014}.curriculum-progress-section h3{margin:0 0 1.5rem;color:#1a1a2e;font-size:1.1rem}.subject-card{border:1px solid #e2e8f0;border-radius:12px;margin-bottom:1rem;overflow:hidden}.subject-header{display:flex;align-items:flex-start;padding:1rem 1.25rem;background:#f8fafc;cursor:pointer;transition:background .2s}.subject-header:hover{background:#f1f5f9}.subject-title-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.subject-info h4{margin:0;color:#1a1a2e;font-size:1rem}.topic-count{font-size:.8rem;color:#64748b;display:block;margin-left:20px}.subject-progress{display:flex;align-items:center;gap:.75rem;flex-shrink:0;margin-left:1rem;margin-top:.25rem}.subject-progress .progress-bar{width:100px;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;flex-shrink:0;margin-bottom:0!important}.progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:4px;transition:width .3s}.progress-text{font-size:.85rem;font-weight:600;color:#6366f1;min-width:40px;flex-shrink:0;white-space:nowrap;line-height:1}.expand-icon{color:#94a3b8;font-size:.85rem;flex-shrink:0;width:20px;text-align:left;line-height:1}.topics-list{padding:.5rem;background:#fff}.topic-item{padding:1rem;border-radius:8px;margin-bottom:.5rem;background:#f8fafc;display:flex;flex-direction:column}.topic-item.completed{background:#f0fdf4;border-left:3px solid #16a34a}.topic-item.in_progress{background:#fffbeb;border-left:3px solid #f59e0b}.topic-item.not_started{background:#f8fafc;border-left:3px solid #cbd5e1}.topic-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.5rem;border-radius:6px;transition:background .2s;width:100%}.topic-header:hover{background:#00000005}.topic-name{font-weight:500;color:#1a1a2e}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.status-badge.completed{background:#dcfce7;color:#16a34a}.status-badge.in-progress{background:#fef3c7;color:#d97706}.status-badge.not-started{background:#f1f5f9;color:#64748b}.topic-skills{margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.topic-skills h5{margin:0 0 .75rem;font-size:.85rem;color:#64748b}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem}.skill-icon{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700}.skill-label{color:#475569}.topic-remarks{margin-top:.75rem;padding:.75rem;background:#fff;border-radius:6px;font-size:.85rem;color:#475569}@media(max-width:768px){.parent-content{padding:1rem}.student-info-card{flex-direction:column;text-align:center}.attendance-stats{grid-template-columns:repeat(2,1fr)}.skills-grid{grid-template-columns:1fr}.subject-progress{display:none}.parent-progress-page{padding:12px}.student-info{padding:16px}.info-grid{grid-template-columns:1fr}.attendance-summary{padding:16px}.summary-stats{grid-template-columns:repeat(2,1fr)}.calendar-section{padding:16px}.calendar-header{flex-direction:column;gap:12px}.month-selector{width:100%;justify-content:center}.calendar-grid{gap:4px}.day-cell{font-size:11px;padding:6px 4px}.progress-section,.subject-card{padding:16px}.subject-header{flex-direction:column;align-items:flex-start;gap:8px}.topic-scores{flex-direction:column;gap:6px}.score-item{font-size:11px}.student-avatar{width:60px;height:60px}.student-name{font-size:18px}.student-details{font-size:12px}}.classes-page{max-width:1200px}.class-form-container{max-width:100%}.form-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #e2e8f0}.form-section:last-of-type{border-bottom:none}.form-section h4{color:#1a1a2e;margin-bottom:.5rem;font-size:1.1rem}.form-section .hint{color:#64748b;font-size:.875rem;margin-bottom:1rem}.add-student-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;align-items:end;padding:1.25rem;background:#f8fafc;border-radius:12px;border:2px dashed #e2e8f0}.add-student-row input,.add-student-row select{padding:.7rem .85rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.9rem;width:100%;min-width:0}.add-student-row input:focus,.add-student-row select:focus{outline:none;border-color:#667eea}.add-student-row .btn-success{white-space:nowrap;padding:.75rem 1.25rem;width:100%}.students-list{margin-top:1rem;max-height:400px;overflow-y:auto}.badge{display:inline-block;padding:.25rem .6rem;border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase}.badge.new{background:#d1fae5;color:#065f46}.badge.existing{background:#e0e7ff;color:#3730a3}.badge.remove{background:#fee2e2;color:#991b1b}.data-table tr.to-remove{opacity:.5;background:#fee2e2}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:2px solid #e2e8f0}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.class-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 6px -1px #0000001a;transition:all .2s;border:2px solid transparent}.class-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px #0000001a;border-color:#667eea}.class-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #f1f5f9}.class-header h3{margin:0;color:#1a1a2e;font-size:1.25rem}.grade-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.35rem .85rem;border-radius:20px;font-size:.8rem;font-weight:600}.class-details{margin-bottom:1rem}.class-details p{margin:.5rem 0;color:#64748b;font-size:.9rem}.class-details strong{color:#1a1a2e}.class-actions{display:flex;gap:.5rem;flex-wrap:wrap}.form-hint{color:#64748b;font-size:.875rem;margin-top:.5rem;font-style:italic}@media(max-width:900px){.add-student-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.add-student-row{grid-template-columns:1fr}.classes-page{padding:12px}.page-header{flex-direction:column;align-items:stretch;gap:12px}.page-header button{width:100%}.class-form{padding:16px}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions button{width:100%}}@media(max-width:480px){.classes-grid{grid-template-columns:1fr}.class-card{padding:16px}.class-header h3{font-size:16px}.class-actions{flex-direction:column;width:100%}.class-actions button{width:100%}.students-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}.students-table{min-width:500px}.students-table th,.students-table td{font-size:12px;padding:8px 6px}}.modal-large{max-width:95vw!important;width:1600px!important;max-height:95vh!important;overflow-y:auto;padding:2rem}.modal-large .form-section{margin-bottom:1.5rem}.modal-large .form-section h4{font-size:1.15rem;margin-bottom:1rem}.modal-large .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.modal-large .form-group{display:flex;flex-direction:column;gap:.5rem}.modal-large .form-group label{font-weight:600;font-size:.9rem;color:#1a1a2e}.modal-large .add-student-row{grid-template-columns:1.5fr 1.5fr 1.2fr .8fr 1.2fr 1.2fr auto;gap:.5rem;padding:1rem}.modal-large .students-list{max-height:400px;overflow-y:auto;margin-top:1rem}.modal-large .data-table{font-size:.9rem;width:100%}.modal-large .data-table th,.modal-large .data-table td{padding:.75rem .5rem}@media(max-width:1600px){.modal-large{max-width:95vw!important;width:95vw!important}}@media(max-width:1200px){.modal-large .add-student-row{grid-template-columns:repeat(3,1fr)}.modal-large .add-student-row button{grid-column:span 3}}@media(max-width:900px){.modal-large{max-width:100vw!important;max-height:100vh!important;border-radius:0;padding:1.5rem}.modal-large .add-student-row{grid-template-columns:repeat(2,1fr)}.modal-large .add-student-row button{grid-column:span 2}}@media(max-width:600px){.modal-large .add-student-row{grid-template-columns:1fr}.modal-large .add-student-row button{grid-column:span 1}}.curriculum-page{padding:1rem;max-width:1400px;margin:0 auto;background:linear-gradient(135deg,#f8fafc,#e0e7ff);min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;flex-wrap:wrap;gap:1rem;background:#fff;padding:1rem 1.5rem;border-radius:12px;box-shadow:0 2px 12px #0000000f}.page-header h2{margin:0;color:#1a1a2e;font-size:1.5rem;display:flex;align-items:center;gap:.5rem}.subtitle{color:#64748b;font-size:.9rem;margin:.25rem 0 0}.form-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem}.form-card h3{margin:0 0 1rem;color:#1a1a2e}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-card input,.form-card textarea,.inline-form input,.inline-form textarea,.project-form input,.project-form textarea{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem}.form-card textarea,.inline-form textarea,.project-form textarea{resize:vertical;font-family:inherit}.form-actions{display:flex;gap:.75rem;margin-top:1rem}.curriculum-layout{display:grid;grid-template-columns:300px 1fr;gap:1.25rem}.curriculum-list{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 2px 12px #0000000f;height:fit-content;max-height:calc(100vh - 200px);overflow-y:auto}.curriculum-list h3{margin:0 0 1rem;font-size:1.1rem;color:#1a1a2e;display:flex;align-items:center;gap:.5rem;padding-bottom:.75rem;border-bottom:2px solid #f1f5f9}.empty-text{text-align:center;color:#94a3b8;padding:2rem 1rem;font-style:italic}.curriculum-item{padding:.85rem;border-radius:10px;margin-bottom:.5rem;transition:all .2s;border:2px solid #f1f5f9;cursor:pointer;background:#fafafa;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.curriculum-item:hover{background:#f8fafc;border-color:#e2e8f0;transform:translate(4px);box-shadow:0 2px 8px #0000000d}.curriculum-item.active{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#3b82f6;box-shadow:0 4px 12px #3b82f633}.curriculum-info{display:flex;flex-direction:column;gap:.5rem;flex:1}.curriculum-name{font-weight:600;color:#1a1a2e;font-size:1rem;line-height:1.3}.curriculum-fees{color:#059669;font-weight:700;font-size:1rem}.curriculum-actions{display:flex;gap:.5rem;margin-top:.5rem}.curriculum-meta{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.grade-badge{background:#dbeafe;color:#1e40af;padding:.25rem .6rem;border-radius:6px;font-size:.8rem;font-weight:600}.subject-count{color:#64748b;font-size:.85rem;font-weight:500}.curriculum-details{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 12px #0000000f;max-height:calc(100vh - 200px);overflow-y:auto}.no-selection{display:flex;align-items:center;justify-content:center;height:400px;color:#94a3b8;font-size:1.1rem;flex-direction:column;gap:1rem}.loading{display:flex;align-items:center;justify-content:center;height:400px;color:#64748b}.details-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f1f5f9;gap:1rem}.header-content{flex:1}.details-header h3{margin:0 0 .5rem;color:#1a1a2e;font-size:1.35rem;display:flex;align-items:center;gap:.5rem}.details-header p{color:#64748b;font-size:.9rem;margin:.5rem 0;line-height:1.5}.curriculum-fees-display{display:flex;align-items:center;gap:.75rem;margin-top:.75rem;padding:.75rem 1rem;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-radius:8px;border:2px solid #86efac}.fees-label{color:#065f46;font-weight:600;font-size:.9rem}.fees-amount{color:#059669;font-weight:700;font-size:1.25rem}.grade-label{color:#64748b;font-size:.9rem;margin:.25rem 0}.description{color:#64748b;font-size:.9rem;margin:.5rem 0 0}.details-actions{display:flex;gap:.75rem;flex-shrink:0;flex-wrap:wrap}.header-actions{display:flex;gap:.75rem;flex-shrink:0}.inline-form{background:#f8fafc;padding:1.25rem;border-radius:8px;margin-bottom:1.5rem;border:2px dashed #cbd5e1}.inline-form h4{margin:0 0 1rem;color:#1a1a2e;font-size:1rem}.subjects-list{display:flex;flex-direction:column;gap:1rem}.subject-card{border:2px solid #e2e8f0;border-radius:10px;overflow:hidden;transition:all .2s;background:#fff;box-shadow:0 2px 8px #0000000d}.subject-card:hover{box-shadow:0 4px 12px #00000014;border-color:#cbd5e1}.subject-card[draggable=true]{cursor:move}.subject-card[draggable=true]:hover{box-shadow:0 4px 12px #00000026}.subject-card.drag-over{border-top:3px solid #3b82f6;background:#eff6ff}.subject-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);cursor:pointer;transition:background .2s;gap:1rem}.subject-header:hover{background:linear-gradient(135deg,#f1f5f9,#e2e8f0)}.drag-handle{font-size:1.2rem;color:#94a3b8;cursor:move;margin-right:.5rem}.subject-info h4{margin:0;color:#1a1a2e;font-size:1.05rem;display:flex;align-items:center;gap:.75rem}.subject-desc{margin:.5rem 0 0;padding:0 1.25rem;color:#64748b;font-size:.9rem;line-height:1.5}.expand-icon{font-size:.7rem;color:#94a3b8;transition:transform .2s}.school-subject-desc{margin:.5rem 0 0 1.5rem;color:#64748b;font-size:.9rem;line-height:1.5}.subject-actions{display:flex;gap:.5rem;flex-shrink:0}.topics-list{padding:1rem 1.25rem;background:#fff;display:grid;gap:.5rem}.empty-topics{text-align:center;color:#94a3b8;padding:1.5rem;font-style:italic;font-size:.9rem}.curriculum-topic-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:linear-gradient(135deg,#fafafa,#f5f5f5);border-radius:8px;border:1px solid #e2e8f0;transition:all .2s;gap:1rem;flex-wrap:nowrap}.curriculum-topic-item:hover{background:linear-gradient(135deg,#f5f5f5,#efefef);border-color:#cbd5e1;transform:translate(4px)}.curriculum-topic-item span{flex:1;color:#1a1a2e;font-weight:500;font-size:.95rem;min-width:0;word-break:break-word}.curriculum-topic-item button{flex-shrink:0;white-space:nowrap}.project-form{padding:1.25rem;background:#fffbeb;border-top:2px solid #fef3c7}.project-form h5{margin:0 0 1rem;color:#92400e;font-size:.95rem}.projects-list{padding:1rem;background:#fff}.no-projects{text-align:center;color:#94a3b8;padding:2rem;font-style:italic}.project-item{display:flex;gap:1rem;padding:.75rem;border-radius:6px;margin-bottom:.5rem;background:#f8fafc;transition:all .2s}.project-item[draggable=true]{cursor:move}.project-item[draggable=true]:hover{background:#f1f5f9;box-shadow:0 2px 8px #0000001a}.project-item.drag-over{border-top:2px solid #3b82f6;background:#eff6ff}.project-content{flex:1;min-width:0}.project-desc{color:#64748b;font-size:.85rem;line-height:1.4}.btn-primary,.btn-secondary,.btn-small,.btn-sm{padding:.6rem 1.1rem;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 8px #3b82f64d}.btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #3b82f666;transform:translateY(-1px)}.btn-secondary:hover{background:#e2e8f0;border-color:#cbd5e1}.btn-secondary.active{background:#dbeafe;color:#1e40af;border-color:#3b82f6}.btn-sm{padding:.5rem .9rem;font-size:.85rem}.btn-small{padding:.4rem .75rem;font-size:.85rem;background:#f1f5f9;color:#475569}.btn-small:hover{background:#e2e8f0}.btn-small.active{background:#dcfce7;color:#166534}.btn-danger{background:#fee2e2;color:#dc2626;border:1px solid #fca5a5;font-weight:700;font-size:1rem;padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.btn-danger:hover{background:#fecaca;border-color:#f87171;transform:scale(1.02)}.delete-btn{background:#fee2e2;border:1px solid #fca5a5;color:#dc2626;font-size:1.1rem;font-weight:700;cursor:pointer;padding:.35rem .6rem;border-radius:4px;transition:all .2s;line-height:1}.delete-btn:hover{background:#fecaca;border-color:#f87171;transform:scale(1.05)}.delete-btn-small{background:#fee2e2;border:1px solid #fca5a5;color:#dc2626;border-radius:4px;font-size:1rem;font-weight:700;cursor:pointer;padding:.35rem .6rem;transition:all .2s;flex-shrink:0;line-height:1}.delete-btn-small:hover{background:#fecaca;border-color:#f87171;transform:scale(1.05)}@media(max-width:768px){.curriculum-page{padding:1rem}.page-header{flex-direction:column;align-items:stretch}.page-header h2{font-size:1.25rem}.curriculum-layout{grid-template-columns:1fr;gap:1rem}.curriculum-list{max-height:300px}.curriculum-details{max-height:none}.form-row{grid-template-columns:1fr}.details-header{flex-direction:column;align-items:stretch}.header-actions{flex-direction:column}.subject-header{flex-direction:column;align-items:flex-start}.subject-actions{width:100%;justify-content:flex-start}.project-item{flex-direction:column;gap:.5rem}.drag-handle{display:none}}.class-progress-page{padding:1.5rem;max-width:1400px;margin:0 auto}.page-header{margin-bottom:1.5rem}.page-header h2{margin:0;color:#1a1a2e}.progress-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem}.classes-sidebar{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 2px 8px #0000001a;height:fit-content;max-height:calc(100vh - 200px);overflow-y:auto}.classes-sidebar h3{margin:0 0 1rem;font-size:1.1rem;color:#1a1a2e}.class-item{padding:1rem;border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s;border:2px solid transparent}.class-item:hover{background:#f8fafc}.class-item.active{background:#eff6ff;border-color:#3b82f6}.class-name{font-weight:600;color:#1a1a2e;margin-bottom:.25rem}.class-meta{font-size:.85rem;color:#64748b}.progress-content{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;min-height:400px;max-height:calc(100vh - 200px);overflow-y:auto}.no-selection,.loading{display:flex;align-items:center;justify-content:center;height:400px;color:#94a3b8;font-size:1.1rem}.no-curriculum{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.no-curriculum .icon{font-size:4rem;margin-bottom:1rem}.no-curriculum h3{color:#1a1a2e;margin-bottom:.5rem}.no-curriculum p{color:#64748b;margin-bottom:1.5rem}.assign-form{width:100%;max-width:400px;margin-top:1.5rem}.assign-form select{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1rem}.form-actions{display:flex;gap:.75rem}.curriculum-header{padding-bottom:1rem;margin-bottom:1.5rem;border-bottom:2px solid #f1f5f9}.curriculum-header h3{margin:0 0 .5rem;color:#1a1a2e}.grade-label{color:#64748b;font-size:.9rem;margin:0}.subjects-progress{display:flex;flex-direction:column;gap:1rem;overflow-y:auto}.subject-progress-card{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.subject-progress-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#f8fafc;cursor:pointer;transition:background .2s;gap:1rem;flex-wrap:wrap}.subject-progress-header:hover{background:#f1f5f9}.subject-info{flex:1;min-width:0}.subject-info h4{margin:0;color:#1a1a2e;font-size:1rem;display:flex;align-items:center;gap:.5rem}.expand-icon{font-size:.7rem;color:#94a3b8}.subject-desc{margin:.5rem 0 0;color:#64748b;font-size:.85rem}.progress-indicator{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.progress-bar{width:120px;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);border-radius:4px;transition:width .3s}.progress-text{font-size:.9rem;font-weight:600;color:#10b981;min-width:45px}.projects-progress{padding:1rem;background:#fff}.project-progress-item{display:flex;gap:1rem;padding:1rem;border-radius:8px;margin-bottom:.75rem;border-left:4px solid #cbd5e1;background:#f8fafc;transition:all .2s;flex-wrap:wrap;align-items:center}.project-progress-item.status-completed{border-left-color:#10b981;background:#f0fdf4}.project-progress-item.status-in-progress{border-left-color:#f59e0b;background:#fffbeb}.project-progress-item.status-not-started{border-left-color:#cbd5e1;background:#f8fafc}.project-number{width:32px;height:32px;border-radius:50%;background:#3b82f6;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;flex-shrink:0}.project-info{flex:1;min-width:0}.project-name{font-weight:500;color:#1a1a2e;margin-bottom:.25rem}.project-desc{color:#64748b;font-size:.85rem;line-height:1.4;margin-bottom:.25rem}.completion-date{font-size:.8rem;color:#10b981;font-weight:500}.status-buttons{display:flex;gap:.5rem;flex-shrink:0}.status-btn{width:36px;height:36px;border-radius:50%;border:2px solid #e2e8f0;background:#fff;font-size:1.2rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.status-btn:hover{transform:scale(1.1);border-color:#cbd5e1}.status-btn.active{border-width:3px}.status-btn:nth-child(1).active{border-color:#cbd5e1;color:#64748b}.status-btn:nth-child(2).active{border-color:#f59e0b;color:#f59e0b}.status-btn:nth-child(3).active{border-color:#10b981;color:#10b981}.btn-primary,.btn-secondary{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover{background:#2563eb}.btn-secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.btn-secondary:hover{background:#e2e8f0}@media(max-width:768px){.class-progress-page{padding:1rem}.progress-layout{grid-template-columns:1fr}.classes-sidebar{max-height:250px}.subject-progress-header{flex-direction:column;align-items:flex-start}.progress-indicator{width:100%}.progress-bar{flex:1}.project-progress-item{flex-wrap:wrap}.status-buttons{width:100%;justify-content:center}}.timetable-page{max-width:1600px;padding:16px;margin:0 auto;background:#f8f9fa;min-height:100vh}.page-header{margin-bottom:16px;background:#fff;padding:16px;border-radius:8px;box-shadow:0 2px 8px #00000014}.page-header h2{margin:0 0 4px;color:#1a1a2e;font-size:24px;font-weight:700}.subtitle{color:#64748b;font-size:14px;margin:0}.loading{text-align:center;padding:40px;color:#64748b;font-size:16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014}.no-data{text-align:center;padding:40px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014}.no-data p{color:#64748b;font-size:16px}.no-timetable{background:#fff;padding:50px 30px;border-radius:12px;text-align:center;box-shadow:0 2px 8px #00000014}.no-timetable p{color:#64748b;margin-bottom:20px;font-size:16px;font-weight:500}.classes-panel{background:linear-gradient(135deg,#667eea,#764ba2);padding:16px;border-radius:8px;margin-bottom:16px;box-shadow:0 4px 12px #667eea4d}.classes-panel h4{margin:0 0 12px;color:#fff;font-size:16px;font-weight:700}.classes-list-drag{display:flex;flex-wrap:wrap;gap:12px}.class-item-draggable{background:#fff;color:#667eea;padding:12px 20px;border-radius:8px;cursor:grab;font-size:14px;font-weight:600;transition:all .3s;-webkit-user-select:none;user-select:none;box-shadow:0 2px 8px #0000001a;border:2px solid transparent}.class-item-draggable:hover{transform:translateY(-3px);box-shadow:0 6px 16px #00000026;border-color:#ffffff80}.class-item-draggable:active{cursor:grabbing;transform:scale(.98)}.timetable-view{background:#fff;padding:16px;border-radius:12px;box-shadow:0 2px 8px #00000014}.timetable-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #f1f5f9}.timetable-header h3{margin:0;color:#1a1a2e;font-size:20px;font-weight:700}.header-actions{display:flex;gap:12px}.header-actions .btn-primary,.header-actions .btn-secondary,.header-actions .btn-danger{padding:10px 20px;font-size:14px;font-weight:700;border-radius:8px}.header-actions .btn-primary:hover{background:linear-gradient(135deg,#667eea,#764ba2);transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.header-actions .btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626)}.header-actions .btn-danger:hover{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 6px 16px #ef444466}.header-actions .btn-secondary{background:#fff;color:#475569;border:2px solid #e2e8f0}.header-actions .btn-secondary:hover{background:#fff;border-color:#e2e8f0;box-shadow:0 4px 12px #00000014}.timetable-grid{overflow-x:auto;margin-top:16px;border-radius:8px;box-shadow:0 2px 8px #0000000f}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;min-width:900px;background:#fff;border-radius:8px;overflow:hidden}.schedule-table thead th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 10px;text-align:center;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.5px;border:none;position:sticky;top:0;z-index:10}.schedule-table thead th:first-child{border-top-left-radius:8px}.schedule-table thead th:last-child{border-top-right-radius:8px}.schedule-table tbody td{border:1px solid #e2e8f0;padding:12px 10px;text-align:center;min-height:80px;vertical-align:middle;transition:all .2s}.schedule-table tbody tr:hover td{background:#f8fafc}.period-cell{background:linear-gradient(135deg,#f8fafc,#f1f5f9);font-weight:700;min-width:120px;border-right:2px solid #cbd5e1}.period-cell div:first-child{font-size:14px;color:#1a1a2e;margin-bottom:4px;font-weight:800}.period-time{font-size:12px;color:#64748b;font-weight:600;background:#fff;padding:3px 6px;border-radius:4px;display:inline-block}.empty-slot{background:#fafafa;min-height:80px}.empty-slot.droppable{background:linear-gradient(135deg,#e0e7ff,#dbeafe);cursor:pointer;transition:all .3s;border:2px dashed #93c5fd}.empty-slot.droppable:hover{background:linear-gradient(135deg,#c7d2fe,#bfdbfe);border-color:#667eea;transform:scale(1.02)}.has-classes{background:#fff}.classes-list{display:flex;flex-direction:column;gap:6px;align-items:center;padding:4px}.class-chip{background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:8px 12px;border-radius:6px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:10px;min-width:160px;justify-content:space-between;box-shadow:0 2px 8px #10b9814d;transition:all .2s}.class-chip:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.remove-class{background:#ffffff40;border:none;color:#fff;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.remove-class:hover{background:#fff6;transform:scale(1.1)}.no-class{color:#cbd5e1;font-size:24px;font-weight:300}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:90%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}.wizard-modal{max-width:700px;padding:24px}.wizard-progress{display:flex;justify-content:center;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #f1f5f9}.wizard-progress .step{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:20px;background:#f8fafc;color:#94a3b8;font-weight:700;font-size:13px;transition:all .3s}.wizard-progress .step-number{width:28px;height:28px;border-radius:50%;background:#cbd5e1;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;transition:all .3s}.wizard-progress .step.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea66;transform:scale(1.05)}.wizard-progress .step.active .step-number{background:#ffffff4d;box-shadow:0 0 0 3px #fff3}.wizard-progress .step-connector{width:50px;height:3px;background:#e2e8f0;border-radius:2px;transition:all .3s}.wizard-progress .step-connector.active{background:linear-gradient(90deg,#667eea,#764ba2)}.wizard-step{animation:fadeInUp .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.wizard-step h3{font-size:20px;color:#1a1a2e;margin:0 0 8px;font-weight:800}.wizard-step>p{color:#64748b;margin-bottom:20px;font-size:14px;line-height:1.6}.form-group label{display:block;font-size:13px;color:#475569;margin-bottom:8px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.form-group input[type=number]{width:150px;padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:18px;font-weight:700;color:#1a1a2e;transition:all .2s}.form-group input[type=number]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 4px #667eea1a}.period-timings{display:flex;flex-direction:column;gap:10px;max-height:400px;overflow-y:auto;padding:12px;background:#f8fafc;border-radius:8px;margin-bottom:20px;border:2px solid #e2e8f0}.period-timings::-webkit-scrollbar{width:8px}.period-timings::-webkit-scrollbar-track{background:#e2e8f0;border-radius:4px}.period-timings::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:4px}.period-timings::-webkit-scrollbar-thumb:hover{background:#64748b}.timing-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-radius:8px;border:2px solid #e2e8f0;transition:all .2s}.timing-row:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.timing-row span:first-child{min-width:90px;font-weight:800;color:#1a1a2e;font-size:14px}.timing-row span{color:#94a3b8;font-size:13px;font-weight:600}.timing-row input[type=time]{padding:8px 12px;border:2px solid #e2e8f0;border-radius:6px;font-size:13px;font-weight:600;transition:all .2s}.timing-row input[type=time]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.days-selector{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.day-btn{padding:10px 20px;border:2px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;font-weight:700;font-size:14px;transition:all .2s;min-width:110px;text-align:center;color:#475569}.day-btn:hover{border-color:#667eea;background:#f8fafc;transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.day-btn.selected{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent;box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.wizard-actions{display:flex;justify-content:space-between;margin-top:24px;padding-top:16px;border-top:2px solid #f1f5f9}.timetable-page .btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px #667eea4d}.timetable-page .btn-primary:hover{background:linear-gradient(135deg,#667eea,#764ba2);transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.timetable-page .btn-primary:active{transform:translateY(0)}.timetable-page .btn-primary:disabled{background:#cbd5e1;cursor:not-allowed;box-shadow:none;transform:none}.timetable-page .btn-primary.btn-large{padding:12px 28px;font-size:15px}.timetable-page .btn-secondary{background:#fff;color:#475569;border:2px solid #e2e8f0;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s}.timetable-page .btn-secondary:hover{background:#fff;border-color:#e2e8f0;transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.timetable-page .btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px #ef44444d}.timetable-page .btn-danger:hover{background:linear-gradient(135deg,#ef4444,#dc2626);transform:translateY(-2px);box-shadow:0 6px 16px #ef444466}@media(max-width:768px){.timetable-page{padding:16px}.page-header{padding:20px}.page-header h2{font-size:22px}.timetable-header{flex-direction:column;align-items:stretch;gap:12px}.timetable-header h3{font-size:20px}.header-actions{flex-direction:column}.header-actions button{width:100%}.wizard-modal{padding:24px}.wizard-progress{flex-wrap:wrap;gap:8px}.wizard-progress .step-connector{display:none}.wizard-actions{flex-direction:column;gap:12px}.wizard-actions button{width:100%}.classes-list-drag{flex-direction:column}.class-item-draggable{width:100%}.day-btn{flex:1;min-width:100px}}.attendance-page{max-width:100%}.attendance-controls{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem;margin-bottom:1.5rem;background:#fff;padding:1.5rem 2rem;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a}.date-time-picker{display:flex;gap:1rem;align-items:center}.date-time-picker .form-group{margin-bottom:0}.date-time-picker label{display:block;font-size:.75rem;color:#64748b;margin-bottom:.35rem;text-transform:uppercase;font-weight:600;letter-spacing:.5px}.date-time-picker input,.date-time-picker select{padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:1rem;font-weight:500;min-width:160px;transition:all .2s}.date-time-picker input:focus,.date-time-picker select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.attendance-stats{display:flex;gap:1rem}.attendance-stats .stat{padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:.9rem}.attendance-stats .stat.present{background:#d1fae5;color:#065f46}.attendance-stats .stat.absent{background:#fee2e2;color:#991b1b}.attendance-stats .stat.late{background:#fef3c7;color:#92400e}.monthly-attendance-container{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 6px -1px #0000001a}.monthly-grid-wrapper{overflow-x:auto;max-width:100%;position:relative}.monthly-attendance-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.monthly-attendance-table th,.monthly-attendance-table td{border:1px solid #e2e8f0;text-align:center;vertical-align:middle}.monthly-attendance-table .sticky-col{position:sticky;left:0;z-index:10;background:#fff;box-shadow:2px 0 5px #0000001a}.monthly-attendance-table .student-header{background:linear-gradient(135deg,#4c5fd5,#6b4f9a);color:#fff;font-weight:700;padding:1rem 1.5rem;min-width:200px;text-align:left;z-index:20}.monthly-attendance-table .student-name-cell{padding:.75rem 1rem;text-align:left;min-width:200px;background:#fff}.student-name-cell .student-name{font-weight:600;color:#1a1a2e;font-size:.95rem}.student-name-cell .student-school{font-size:.8rem;color:#64748b;margin-top:.15rem}.monthly-attendance-table .date-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.75rem .5rem;min-width:50px;cursor:pointer;transition:all .2s}.monthly-attendance-table .date-header:hover{background:linear-gradient(135deg,#5a6fd6,#6a4590)}.date-header .date-num{font-size:1.1rem;font-weight:700}.date-header .date-day{font-size:.7rem;text-transform:uppercase;opacity:.9}.date-header.weekend{background:linear-gradient(135deg,#94a3b8,#64748b)}.monthly-attendance-table .attendance-cell{padding:.5rem;min-width:50px;height:50px;cursor:pointer;font-weight:700;font-size:1rem;transition:all .15s;background:#fff}.attendance-cell:hover{background:#f1f5f9;transform:scale(1.05)}.attendance-cell.weekend{background:#f8fafc}.attendance-cell.cell-present{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46}.attendance-cell.cell-absent{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b}.attendance-cell.cell-late{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.monthly-attendance-table tbody tr:nth-child(2n) .student-name-cell{background:#f8fafc}.monthly-attendance-table tbody tr:nth-child(2n) .attendance-cell:not(.cell-present):not(.cell-absent):not(.cell-late){background:#fafafa}.attendance-legend{display:flex;gap:2rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#64748b}.legend-box{width:24px;height:24px;border-radius:4px;border:1px solid #e2e8f0}.legend-box.present{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.legend-box.absent{background:linear-gradient(135deg,#fee2e2,#fecaca)}.legend-box.late{background:linear-gradient(135deg,#fef3c7,#fde68a)}.legend-box.weekend-box{background:#f8fafc}@media(max-width:768px){.attendance-controls{flex-direction:column;align-items:stretch}.date-time-picker{flex-direction:column}.attendance-page{padding:12px}.page-header{flex-direction:column;align-items:stretch;gap:12px}.attendance-controls button{width:100%}.attendance-grid{overflow-x:auto;-webkit-overflow-scrolling:touch;display:block;margin:0 -12px;padding:0 12px}.attendance-table{min-width:600px;display:table}.attendance-table th,.attendance-table td{font-size:12px;padding:8px 6px}.status-btn{padding:4px 8px;font-size:11px}.legend{flex-wrap:wrap;gap:8px}.legend-item{font-size:11px}.calendar-grid{overflow-x:auto;-webkit-overflow-scrolling:touch}.calendar-table{min-width:100%}.calendar-day{min-width:40px;height:40px;font-size:11px}}.attendance-stats{justify-content:center}.monthly-attendance-table .student-header,.monthly-attendance-table .student-name-cell{min-width:150px}} .extra-student-row{background:linear-gradient(90deg,#fef3c7,transparent)!important}.extra-student{background:linear-gradient(135deg,#fef3c7,#fde68a)!important}.extra-badge{display:inline-block;background:#f59e0b;color:#fff;font-size:.65rem;padding:.15rem .4rem;border-radius:4px;margin-left:.5rem;font-weight:700;vertical-align:middle}.legend-box.extra-box{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b}.action-buttons{display:flex;gap:.75rem}.modal-hint{color:#64748b;font-size:.9rem;margin-bottom:1rem;padding:.75rem;background:#fef3c7;border-radius:8px;border-left:3px solid #f59e0b}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:500px){.form-row{grid-template-columns:1fr}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;overflow-y:auto}.modal-form{max-width:800px;width:100%;max-height:90vh;overflow-y:auto;margin:auto;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.student-registration-form{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:0;margin-bottom:24px;box-shadow:0 1px 3px #0000001a}.student-registration-form .form-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;background:#f9fafb;border-radius:12px 12px 0 0}.student-registration-form .form-header h3{margin:0;font-size:18px;color:#111827;font-weight:600}.student-registration-form .close-btn{background:none;border:none;font-size:28px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.student-registration-form .close-btn:hover{background:#e5e7eb;color:#111827}.student-registration-form .form-section{padding:24px;border-bottom:1px solid #f3f4f6}.student-registration-form .form-section:last-of-type{border-bottom:none}.student-registration-form .form-section h4{margin:0 0 16px;font-size:15px;color:#374151;font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:13px}.student-registration-form .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.student-registration-form .form-field{display:flex;flex-direction:column;gap:6px}.student-registration-form .form-field.full-width{grid-column:1 / -1}.student-registration-form .form-field label{font-size:14px;color:#374151;font-weight:500}.student-registration-form .form-field label .required{color:#ef4444;margin-left:2px}.student-registration-form .form-field input,.student-registration-form .form-field select,.student-registration-form .form-field textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:all .2s;font-family:inherit}.student-registration-form .form-field input:focus,.student-registration-form .form-field select:focus,.student-registration-form .form-field textarea:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.student-registration-form .form-field textarea{resize:vertical;min-height:60px}.student-registration-form .checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;padding-top:8px}.student-registration-form .checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.student-registration-form .checkbox-label span{font-size:14px;color:#374151}.student-registration-form .form-actions{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;background:#f9fafb;border-radius:0 0 12px 12px}.student-registration-form .form-actions .btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db;padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.student-registration-form .form-actions .btn-secondary:hover{background:#f3f4f6}.student-registration-form .form-actions .btn-primary{background:#4f46e5;color:#fff;border:none;padding:10px 24px;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.student-registration-form .form-actions .btn-primary:hover{background:#4338ca}.header-actions{display:flex;gap:12px;align-items:center}.search-box{position:relative;flex:1;max-width:400px}.search-input{width:100%;padding:10px 36px 10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:all .2s}.search-input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.clear-search{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:#e5e7eb;border:none;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:18px;color:#6b7280;display:flex;align-items:center;justify-content:center;transition:all .2s}.clear-search:hover{background:#d1d5db;color:#374151}.clickable-row{cursor:pointer;transition:all .2s}.clickable-row:hover{background-color:#d1fae5!important;transform:scale(1.01)}.btn-sm{padding:6px 12px;font-size:13px;border-radius:4px;cursor:pointer;font-weight:500;transition:all .2s;border:none}.btn-sm.btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.btn-sm.btn-secondary:hover{background:#e5e7eb}.btn-sm.btn-danger{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.btn-sm.btn-danger:hover{background:#fecaca;color:#7f1d1d}@media(max-width:768px){.modal-overlay{padding:10px;align-items:flex-start}.modal-form{max-height:95vh;margin:10px auto}.student-registration-form .form-grid{grid-template-columns:1fr}.student-registration-form .form-section,.student-registration-form .form-header{padding:16px}.student-registration-form .form-header h3{font-size:16px}.student-registration-form .form-actions{padding:16px;flex-direction:column}.student-registration-form .form-actions button{width:100%}.page-header{flex-direction:column;gap:12px;align-items:stretch}.header-actions{flex-direction:column;width:100%}.search-box{max-width:100%}.header-actions .btn-primary{width:100%}.students-page{overflow-x:hidden}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}.data-table{display:table;min-width:700px;white-space:nowrap}.data-table th,.data-table td{font-size:11px;padding:8px 6px;white-space:nowrap}.data-table th:first-child,.data-table td:first-child{position:sticky;left:0;background:#fff;z-index:1;box-shadow:2px 0 4px #0000000d}.data-table thead th:first-child{background:#f9fafb;z-index:2}.btn-sm{padding:4px 6px;font-size:10px;white-space:nowrap}.clickable-row:hover{transform:none}}.student-profile{padding:20px;max-width:1200px;margin:0 auto}.profile-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.back-btn{background:#f3f4f6;border:1px solid #d1d5db;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;color:#374151;transition:all .2s}.profile-title h2{margin:0;font-size:24px;color:#111827}.student-meta{margin:4px 0 0;color:#6b7280;font-size:14px}.profile-tabs{display:flex;gap:8px;border-bottom:2px solid #e5e7eb;margin-bottom:24px}.profile-tabs .tab{background:none;border:none;padding:12px 20px;cursor:pointer;font-size:14px;font-weight:500;color:#6b7280;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.profile-tabs .tab:hover{color:#374151}.profile-tabs .tab.active{color:#4f46e5;border-bottom-color:#4f46e5}.profile-content{background:#fff;border-radius:8px;padding:24px;border:1px solid #e5e7eb}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:24px}.info-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.info-card h3{margin:0 0 16px;font-size:16px;color:#111827;font-weight:600;border-bottom:2px solid #e5e7eb;padding-bottom:8px}.info-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e5e7eb}.info-row:last-child{border-bottom:none}.info-row .label{font-weight:500;color:#6b7280;font-size:14px}.info-row .value{color:#111827;font-size:14px;text-align:right;max-width:60%;word-break:break-word}.summary-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:24px;color:#fff}.summary-card h3{margin:0 0 20px;font-size:18px;font-weight:600}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px}.stat{background:#ffffff26;border-radius:8px;padding:16px;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stat-value{font-size:28px;font-weight:700;margin-bottom:4px}.stat-label{font-size:13px;opacity:.9}.stat.success{background:#10b98133}.stat.danger{background:#ef444433}.stat.warning{background:#f59e0b33}.stat.info{background:#3b82f633}.attendance-tab h3{margin:0 0 16px;font-size:18px;color:#111827}.attendance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.month-selector{display:flex;align-items:center;gap:12px}.month-nav{background:#f3f4f6;border:1px solid #d1d5db;width:32px;height:32px;border-radius:6px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}.month-nav:hover{background:#e5e7eb}.month-display{font-weight:600;color:#111827;min-width:150px;text-align:center}.attendance-calendar{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;margin-bottom:20px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day-header{text-align:center;font-weight:600;color:#6b7280;font-size:12px;padding:8px;text-transform:uppercase}.day-cell{aspect-ratio:1;border:2px solid #e5e7eb;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:14px;background:#f9fafb;transition:all .2s}.day-cell.present{background:#d1fae5;border-color:#10b981}.day-cell.absent{background:#fee2e2;border-color:#ef4444}.day-cell.late{background:#fef3c7;border-color:#f59e0b}.day-cell.excused{background:#dbeafe;border-color:#3b82f6}.day-number{font-weight:600;color:#111827}.day-status{font-size:10px;font-weight:600;margin-top:2px;color:#374151}.attendance-legend{display:flex;gap:20px;justify-content:center;padding:16px;background:#f9fafb;border-radius:8px;margin-bottom:20px}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#374151}.legend-color{width:20px;height:20px;border-radius:4px;border:2px solid}.legend-color.present{background:#d1fae5;border-color:#10b981}.legend-color.absent{background:#fee2e2;border-color:#ef4444}.legend-color.late{background:#fef3c7;border-color:#f59e0b}.legend-color.excused{background:#dbeafe;border-color:#3b82f6}.monthly-summary{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.monthly-summary h4{margin:0 0 16px;font-size:16px;color:#111827}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-label{font-size:13px;color:#6b7280}.summary-value{font-size:20px;font-weight:700;color:#111827}.summary-value.success{color:#10b981}.summary-value.danger{color:#ef4444}.summary-value.warning{color:#f59e0b}.no-data{text-align:center;padding:40px;color:#6b7280}.progress-tab h3{margin:0 0 20px;font-size:18px;color:#111827}.subjects-list{display:flex;flex-direction:column;gap:20px}.subject-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.subject-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding:.5rem;border-radius:8px;transition:background .2s}.subject-header:hover{background:#00000005}.subject-info{display:flex;align-items:center;gap:12px;flex:1}.subject-header h4{margin:0;font-size:16px;color:#111827;display:flex;align-items:center;gap:8px}.expand-icon{color:#94a3b8;font-size:.75rem;display:inline-block}.subject-progress{display:flex;align-items:center;gap:12px;min-width:120px}.progress-badge{background:#4f46e5;color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.subject-desc{color:#6b7280;font-size:14px;margin:0 0 12px}.progress-bar{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:16px}.progress-fill{height:100%;background:linear-gradient(90deg,#4f46e5,#7c3aed);transition:width .3s ease}.topics-list{display:flex;flex-direction:column;gap:12px}.topic-item{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:12px;border-left:3px solid #cbd5e1;display:flex;flex-direction:column}.topic-item.completed{background:#f0fdf4;border-left-color:#16a34a}.topic-item.in_progress{background:#fffbeb;border-left-color:#f59e0b}.topic-item.not_started{background:#fff;border-left-color:#cbd5e1}.topic-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.5rem;border-radius:6px;transition:background .2s;width:100%}.topic-header-row:hover{background:#00000005}.expand-icon-small{display:inline-block;margin-right:.5rem;color:#94a3b8;font-size:.7rem}.topic-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.topic-name{font-size:14px;color:#374151;font-weight:500}.topic-details{margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.skills-title{margin:0 0 .75rem;font-size:.85rem;color:#64748b;font-weight:600}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;margin-bottom:.75rem}.skill-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#fff;border-radius:6px;font-size:.85rem}.skill-icon{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}.skill-item.skill-positive .skill-icon{background:#dcfce7;color:#16a34a}.skill-item.skill-negative .skill-icon{background:#fef2f2;color:#dc2626}.skill-item.skill-neutral .skill-icon{background:#f1f5f9;color:#64748b}.skill-label{color:#475569;font-size:.85rem}.topic-remarks{margin-top:.75rem;padding:.75rem;background:#f8fafc;border-radius:6px;font-size:.85rem;color:#475569;line-height:1.5;border-left:3px solid #4f46e5}.topic-remarks strong{color:#1a1a2e;display:block;margin-bottom:.25rem}.topic-not-covered{margin-top:1rem;padding:1.5rem;background:#f8fafc;border-radius:8px;text-align:center;border:2px dashed #cbd5e1}.topic-not-covered p{margin:0;color:#64748b;font-size:.9rem;font-weight:500}.topic-scores{display:flex;gap:12px;flex-wrap:wrap}.score-item{font-size:12px;color:#6b7280;background:#f3f4f6;padding:4px 8px;border-radius:4px}.badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;display:inline-block}.badge-success{background:#d1fae5;color:#065f46}.badge-danger{background:#fee2e2;color:#991b1b}.badge-warning{background:#fef3c7;color:#92400e}.badge-info{background:#dbeafe;color:#1e40af}.badge-secondary{background:#f3f4f6;color:#374151}.remarks-text{margin:0;padding:12px;background:#fff;border-radius:6px;color:#374151;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}@media(max-width:768px){.student-profile{padding:12px}.profile-header{flex-direction:column;align-items:flex-start;gap:12px}.profile-title h2{font-size:20px}.student-meta{font-size:13px}.info-grid{grid-template-columns:1fr}.summary-stats{grid-template-columns:repeat(2,1fr)}.calendar-grid{gap:4px}.day-cell{font-size:12px}.day-status{font-size:9px}.attendance-legend{flex-wrap:wrap;gap:12px}.summary-grid{grid-template-columns:1fr}.profile-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.profile-tabs .tab{white-space:nowrap;padding:10px 16px;font-size:13px}.info-row{flex-direction:column;gap:4px}.info-row .value{text-align:left;max-width:100%}.info-card{padding:16px}.info-card h3{font-size:15px}.profile-content{padding:16px}.attendance-header{flex-direction:column;gap:12px;align-items:flex-start}.month-selector{width:100%;justify-content:center}.subject-card{padding:16px}.subject-header{flex-direction:column;align-items:flex-start;gap:8px}.subject-info{width:100%;flex-direction:column;align-items:flex-start}.subject-progress{width:100%}.topic-scores{flex-direction:column;gap:8px}.skills-grid{grid-template-columns:1fr}.skill-item{font-size:.8rem}}.progress-page{max-width:1400px}.progress-layout{display:grid;grid-template-columns:320px 1fr;gap:1.5rem;margin-top:1.5rem;height:calc(100vh - 200px)}.student-panel{background:#fff;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a;display:flex;flex-direction:column;overflow:hidden;max-height:100%}.search-box{padding:.75rem 1rem;border-bottom:2px solid #e2e8f0;flex-shrink:0;height:80px;min-height:80px;max-height:80px;display:flex;align-items:center}.search-box input{width:100%;padding:.875rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:.95rem;transition:all .2s}.search-box input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.student-list{flex:1;overflow-y:auto;padding:0 .75rem .75rem;min-height:0;margin:0}.student-item{display:flex;align-items:center;gap:.875rem;padding:.875rem;border-radius:12px;cursor:pointer;transition:all .2s;margin:.5rem 0 0}.student-item:first-child{margin-top:.5rem}.student-item:hover{background:#f8fafc}.student-item.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.student-item.active .school{color:#fffc}.student-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;flex-shrink:0}.student-item.active .student-avatar{background:#fff3}.student-avatar.large{width:56px;height:56px;font-size:1.1rem}.student-info{display:flex;flex-direction:column}.student-info .name{font-weight:600;font-size:.95rem}.student-info .school{font-size:.8rem;color:#64748b}.loading-text,.empty-text{text-align:center;color:#94a3b8;padding:1rem;margin:0}.progress-panel{background:#fff;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a;padding:1.5rem;overflow-y:auto}.no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#64748b}.no-selection .icon{font-size:3rem;margin-bottom:1rem}.selected-student-header{display:flex;align-items:center;gap:1rem;padding-bottom:1.25rem;margin-bottom:1.25rem;border-bottom:2px solid #e2e8f0}.selected-student-header h3{margin:0;color:#1a1a2e}.selected-student-header p{margin:0;color:#64748b;font-size:.9rem}.curriculum-assignment{background:linear-gradient(135deg,#ede9fe,#ddd6fe);border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.25rem;border:2px solid #a78bfa}.curriculum-assignment>label{display:block;font-size:.75rem;color:#6d28d9;margin-bottom:.5rem;text-transform:uppercase;font-weight:700;letter-spacing:.5px}.assignment-row{display:flex;align-items:center;gap:.75rem}.assignment-row select{flex:1;padding:.75rem 1rem;border:2px solid #a78bfa;border-radius:10px;font-size:.95rem;background:#fff;font-weight:500}.assignment-row select:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed33}.saving-indicator{color:#7c3aed;font-size:.85rem;font-weight:500}.curriculum-readonly{padding:.5rem .75rem;background:#f1f5f9;border-radius:6px;color:#475569;font-weight:500}.no-curriculum-hint{background:#fef3c7;border:2px solid #f59e0b;border-radius:12px;padding:1.5rem;text-align:center;margin-top:1rem}.no-curriculum-hint p{color:#92400e;margin:0;font-weight:500}.curriculum-selectors{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.25rem;padding:1rem;background:#f8fafc;border-radius:12px}.selector-group label{display:block;font-size:.75rem;color:#64748b;margin-bottom:.35rem;text-transform:uppercase;font-weight:600;letter-spacing:.5px}.selector-group select{width:100%;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:.95rem;background:#fff;cursor:pointer}.selector-group select:focus{outline:none;border-color:#667eea}.selector-group select:disabled{background:#f1f5f9;cursor:not-allowed}.progress-form{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.status-selector{margin-bottom:1.5rem}.status-selector>label{display:block;font-weight:600;color:#1a1a2e;margin-bottom:.75rem}.status-buttons{display:flex;gap:.75rem}.status-btn{flex:1;padding:.875rem 1rem;border:2px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;font-weight:600;font-size:.9rem;transition:all .2s}.status-btn:hover{background:#f8fafc}.status-btn.active.not_started{background:#f1f5f9;border-color:#64748b;color:#475569}.status-btn.active.in_progress{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b;color:#92400e}.status-btn.active.completed{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-color:#10b981;color:#065f46}.skills-section{background:#f8fafc;border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.skills-section h4{margin:0 0 .25rem;color:#1a1a2e}.skills-hint{color:#64748b;font-size:.85rem;margin-bottom:1rem}.skill-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid #e2e8f0}.skill-row:last-child{border-bottom:none}.skill-row label{font-weight:500;color:#374151;font-size:.95rem}.skill-slider{display:flex;gap:.25rem;background:#fff;padding:.25rem;border-radius:8px;border:2px solid #e2e8f0}.skill-btn{width:40px;height:36px;border:none;border-radius:6px;cursor:pointer;font-size:1.25rem;font-weight:700;background:transparent;color:#94a3b8;transition:all .15s}.skill-btn:hover{background:#f1f5f9}.skill-btn.negative.active{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.skill-btn.neutral.active{background:linear-gradient(135deg,#64748b,#475569);color:#fff}.skill-btn.positive.active{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.skill-value{min-width:70px;text-align:center;font-size:.8rem;font-weight:600;padding:.35rem .5rem;border-radius:6px}.skill-value.negative{background:#fee2e2;color:#991b1b}.skill-value.neutral{background:#f1f5f9;color:#475569}.skill-value.positive{background:#d1fae5;color:#065f46}.remarks-section{margin-bottom:1.5rem}.remarks-section label{display:block;font-weight:600;color:#1a1a2e;margin-bottom:.5rem}.remarks-section textarea{width:100%;padding:.875rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:.95rem;resize:vertical;font-family:inherit}.remarks-section textarea:focus{outline:none;border-color:#667eea}.save-btn{width:100%}.select-topic-hint,.loading-progress{text-align:center;color:#64748b;padding:3rem;background:#f8fafc;border-radius:12px;margin-top:1rem}@media(max-width:900px){.progress-layout{grid-template-columns:1fr;height:auto}.student-panel{max-height:300px}.curriculum-selectors{grid-template-columns:1fr}.progress-page{padding:12px}.page-header{flex-direction:column;align-items:stretch;gap:12px}.student-selector,.curriculum-selector{width:100%}.score-inputs{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions button{width:100%}.topic-item{padding:12px}.topic-header{flex-direction:column;align-items:flex-start;gap:8px}.topic-scores{width:100%;justify-content:flex-start;flex-wrap:wrap}.subject-card{padding:16px}.subject-header{flex-direction:column;align-items:flex-start;gap:8px}.progress-content{padding:16px}.skill-row{grid-template-columns:1fr;gap:8px;padding:12px 0}.skill-row label{font-size:14px;margin-bottom:4px}.skill-slider{width:100%;justify-content:space-between;overflow-x:auto;-webkit-overflow-scrolling:touch}.skill-btn{width:36px;height:32px;font-size:1rem;flex-shrink:0}.skill-value{min-width:60px;font-size:.75rem}.status-buttons{flex-direction:column}.status-btn{width:100%}.assignment-row{flex-direction:column;align-items:stretch}.assignment-row select{width:100%}}.fees-page{padding:24px;max-width:1400px;margin:0 auto}.fees-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.stat-card{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 8px #0000001a;border-left:4px solid #667eea}.stat-card.success{border-left-color:#10b981}.stat-card.warning{border-left-color:#f59e0b}.stat-card.info{border-left-color:#3b82f6}.stat-icon{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;flex-shrink:0}.stat-card.success .stat-icon{background:linear-gradient(135deg,#10b981,#059669)}.stat-card.warning .stat-icon{background:linear-gradient(135deg,#f59e0b,#d97706)}.stat-card.info .stat-icon{background:linear-gradient(135deg,#3b82f6,#2563eb)}.stat-content{flex:1}.stat-value{font-size:24px;font-weight:700;color:#111827;margin-bottom:4px}.stat-label{font-size:14px;color:#6b7280}.fees-filters{background:#fff;border-radius:12px;padding:20px;margin-bottom:24px;box-shadow:0 2px 8px #0000001a}.search-box{position:relative;margin-bottom:16px}.search-input{width:100%;padding:12px 40px 12px 16px;border:2px solid #e5e7eb;border-radius:8px;font-size:14px;transition:all .2s}.search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.clear-search{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:#e5e7eb;border:none;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:18px;color:#6b7280;display:flex;align-items:center;justify-content:center;transition:all .2s}.clear-search:hover{background:#d1d5db}.status-filters{display:flex;gap:12px;flex-wrap:wrap}.filter-btn{padding:8px 16px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;font-weight:500;font-size:14px;transition:all .2s;color:#374151}.filter-btn:hover{background:#f9fafb}.filter-btn.active{background:#667eea;border-color:#667eea;color:#fff}.filter-btn.status-paid.active{background:#10b981;border-color:#10b981}.filter-btn.status-partial.active{background:#f59e0b;border-color:#f59e0b}.filter-btn.status-unpaid.active{background:#ef4444;border-color:#ef4444}.fees-table{width:100%;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;border-collapse:collapse}.fees-table thead{background:#f9fafb}.fees-table th{padding:16px;text-align:left;font-weight:600;color:#374151;font-size:14px;border-bottom:2px solid #e5e7eb}.fees-table td{padding:16px;color:#111827;font-size:14px;border-bottom:1px solid #f3f4f6}.fees-table tbody tr:last-child td{border-bottom:none}.fees-row{transition:all .2s;border-left:4px solid transparent}.fees-row:hover{background:#f9fafb}.fees-row.status-paid{border-left-color:#10b981;background:#10b98105}.fees-row.status-partial{border-left-color:#f59e0b;background:#f59e0b05}.fees-row.status-unpaid{border-left-color:#ef4444;background:#ef444405}.student-name-cell{display:flex;align-items:center;gap:12px}.student-name{font-weight:600;color:#111827}.amount-cell{font-weight:600;font-family:Courier New,monospace}.amount-cell.success{color:#10b981}.amount-cell.warning{color:#f59e0b}.status-badge{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;display:inline-block}.status-badge.status-paid{background:#d1fae5;color:#065f46}.status-badge.status-partial{background:#fef3c7;color:#92400e}.status-badge.status-unpaid{background:#fee2e2;color:#991b1b}.action-buttons{display:flex;gap:8px}.payment-modal{max-width:600px;width:90%}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}.modal-header h3{margin:0;font-size:20px;color:#111827}.close-btn{background:none;border:none;font-size:28px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.close-btn:hover{background:#f3f4f6;color:#111827}.modal-body{padding:24px}.student-info-box{background:#f9fafb;border-radius:8px;padding:16px;margin-bottom:24px;border-left:4px solid #667eea}.student-info-box p{margin:8px 0;font-size:14px;color:#374151}.student-info-box strong{color:#111827;font-weight:600}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#374151;font-weight:600;font-size:14px}.form-group .required{color:#ef4444}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:2px solid #e5e7eb;border-radius:8px;font-size:14px;transition:all .2s;font-family:inherit}.form-group textarea{resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #e5e7eb}.fees-detail-page{padding:24px;max-width:1000px;margin:0 auto}.back-btn{background:#f3f4f6;border:1px solid #d1d5db;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;color:#374151;transition:all .2s;margin-right:16px}.back-btn:hover{background:#e5e7eb}.fees-detail-content{display:flex;flex-direction:column;gap:24px;margin-top:24px}.fees-summary-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;max-width:100%}.summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e5e7eb}.summary-header h3{margin:0;font-size:20px;color:#111827}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:24px}.summary-item{padding:16px;background:#f9fafb;border-radius:8px;border-left:4px solid #667eea}.summary-item.success{border-left-color:#10b981}.summary-item.warning{border-left-color:#f59e0b}.summary-label{font-size:12px;color:#6b7280;text-transform:uppercase;font-weight:600;letter-spacing:.5px;margin-bottom:8px}.summary-value{font-size:24px;font-weight:700;color:#111827;font-family:Courier New,monospace}.progress-bar-container{margin-top:20px;max-width:100%}.progress-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px;color:#374151;font-weight:600;flex-wrap:nowrap}.progress-label span:first-child{flex-shrink:0;margin-right:16px}.progress-label span:last-child{flex-shrink:0;margin-left:auto}.progress-bar{height:12px;background:#e5e7eb;border-radius:6px;overflow:hidden;width:100%}.progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);transition:width .3s ease}.current-curriculum-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 12px #667eea4d}.current-curriculum-card h4{margin:0 0 8px;font-size:14px;opacity:.9}.current-curriculum-card p{margin:0;font-size:18px;font-weight:600}.curriculum-breakdown-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.curriculum-breakdown-card h3{margin:0 0 20px;font-size:18px;color:#111827}.curriculum-breakdown-list{display:flex;flex-direction:column;gap:16px}.curriculum-breakdown-item{background:#f9fafb;border-radius:8px;padding:16px;border-left:4px solid #667eea}.breakdown-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.breakdown-curriculum-name{font-size:16px;font-weight:600;color:#111827;display:flex;align-items:center;gap:8px}.current-badge{background:#10b981;color:#fff;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase}.breakdown-amounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.breakdown-amount-item{display:flex;justify-content:space-between;padding:8px 12px;background:#fff;border-radius:6px}.breakdown-amount-item.success{background:#d1fae5}.breakdown-amount-item.warning{background:#fef3c7}.amount-label{font-size:12px;color:#6b7280;font-weight:500}.amount-value{font-size:14px;font-weight:700;color:#111827;font-family:Courier New,monospace}.transactions-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.transactions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.transactions-card h3{margin:0;font-size:18px;color:#111827}.curriculum-filter{padding:8px 12px;border:2px solid #e5e7eb;border-radius:6px;font-size:14px;background:#fff;cursor:pointer;transition:all .2s}.curriculum-filter:focus{outline:none;border-color:#667eea}.transactions-list{display:flex;flex-direction:column;gap:16px}.transaction-item{background:#f9fafb;border-radius:8px;padding:16px;border-left:4px solid #667eea}.transaction-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.transaction-date{display:flex;align-items:center;gap:8px;font-weight:600;color:#374151}.date-icon{font-size:18px}.transaction-amount{font-size:20px;font-weight:700;color:#10b981;font-family:Courier New,monospace}.transaction-details{display:flex;flex-direction:column;gap:8px}.detail-row{display:flex;gap:12px;font-size:14px}.detail-label{color:#6b7280;font-weight:500;min-width:120px}.detail-value{color:#111827;font-weight:600}.curriculum-tag{background:#dbeafe;color:#1e40af;padding:2px 8px;border-radius:4px;font-size:13px}.no-transactions{text-align:center;padding:40px;color:#6b7280}@media(max-width:768px){.fees-page,.fees-detail-page{padding:16px}.fees-stats{grid-template-columns:1fr}.stat-card{padding:16px}.stat-value{font-size:20px}.status-filters{flex-direction:column}.filter-btn{width:100%}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}.fees-table{min-width:800px}.fees-table th,.fees-table td{padding:12px 8px;font-size:12px}.action-buttons{flex-direction:column}.action-buttons button{width:100%}.payment-modal{width:95%;max-height:90vh;overflow-y:auto}.modal-body{padding:16px}.modal-actions{flex-direction:column}.modal-actions button{width:100%}.summary-grid{grid-template-columns:1fr}.summary-value{font-size:20px}.transaction-header{flex-direction:column;align-items:flex-start;gap:8px}.detail-row{flex-direction:column;gap:4px}.detail-label{min-width:auto}}.settings-page{padding:20px;max-width:900px}.settings-page .page-header h2{margin-bottom:8px}.settings-note{color:#666;font-size:14px;margin-bottom:20px}.settings-actions{display:flex;gap:12px;margin-bottom:24px}.settings-actions .btn-primary{background:#4f46e5;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:500}.settings-actions .btn-primary:hover{background:#4338ca}.settings-actions .btn-primary:disabled{background:#9ca3af;cursor:not-allowed}.settings-actions .btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db;padding:10px 20px;border-radius:6px;cursor:pointer}.settings-actions .btn-secondary:hover{background:#e5e7eb}.message{padding:12px 16px;border-radius:6px;margin-bottom:20px}.message.success{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.message.error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.settings-groups{display:flex;flex-direction:column;gap:24px}.settings-group{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.settings-group h3{margin:0 0 4px;font-size:16px;color:#111827}.group-description{color:#6b7280;font-size:13px;margin:0 0 16px}.settings-list{display:flex;flex-direction:column;gap:12px}.setting-item{padding:12px;background:#f9fafb;border-radius:6px}.toggle-label{display:flex;align-items:center;gap:16px;cursor:pointer}.setting-name{flex:1;font-size:14px;color:#374151}.toggle-switch{position:relative;width:48px;height:26px}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#d1d5db;transition:.3s;border-radius:26px}.slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.slider{background-color:#4f46e5}.toggle-switch input:checked+.slider:before{transform:translate(22px)}.status{font-size:12px;font-weight:500;padding:4px 8px;border-radius:4px;min-width:60px;text-align:center}.status.on{background:#d1fae5;color:#065f46}.status.off{background:#fee2e2;color:#991b1b}@media(max-width:768px){.settings-page{padding:16px}.settings-page .page-header h2{font-size:20px}.settings-note{font-size:13px}.settings-actions{flex-direction:column}.settings-actions button{width:100%}.settings-group{padding:16px}.settings-group h3{font-size:15px}.group-description{font-size:12px}.setting-item{padding:10px}.toggle-label{gap:12px}.setting-name{font-size:13px}.toggle-switch{width:44px;height:24px}.slider:before{height:18px;width:18px}.toggle-switch input:checked+.slider:before{transform:translate(20px)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f2f5;color:#1a1a2e;line-height:1.5}.app-layout{min-height:100vh;display:flex;flex-direction:column}.main-container{display:flex;flex:1}.content{flex:1;padding:2rem;overflow-y:auto;background:#f0f2f5;height:calc(100vh - 64px)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e2e8f0}.page-header h2{color:#1a1a2e;font-size:1.75rem;font-weight:700}.subtitle{color:#64748b;font-size:.9rem;margin-top:.25rem;word-wrap:break-word;overflow-wrap:break-word}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;color:#374151;font-weight:600;font-size:.875rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.875rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:1rem;transition:all .2s;background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-card{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a;margin-bottom:2rem}.form-card h3{margin-bottom:1.25rem;color:#1a1a2e;font-size:1.125rem;font-weight:600}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.form-row input,.form-row select{padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:.95rem}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.875rem 2rem;border-radius:10px;cursor:pointer;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 14px #667eea66}.btn-primary:hover{background:linear-gradient(135deg,#667eea,#764ba2);transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.btn-primary:disabled{background:#cbd5e1;cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{background:#f1f5f9;color:#475569;border:2px solid #e2e8f0;padding:.75rem 1.5rem;border-radius:10px;cursor:pointer;font-weight:500;transition:transform .2s,box-shadow .2s}.btn-secondary:hover{background:#f1f5f9;border-color:#e2e8f0;transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.btn-sm{padding:.5rem 1rem;font-size:.85rem;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:transform .2s,box-shadow .2s}.btn-sm:hover{transform:translateY(-2px)}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-success:hover{background:linear-gradient(135deg,#10b981,#059669)}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-danger:hover{background:linear-gradient(135deg,#ef4444,#dc2626)}.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.btn-warning:hover{background:linear-gradient(135deg,#f59e0b,#d97706)}.btn-large{padding:1rem 2.5rem;font-size:1.1rem}.data-table{width:100%;background:#fff;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a;border-collapse:collapse;overflow:hidden}.data-table th,.data-table td{padding:1rem 1.25rem;text-align:left;border-bottom:1px solid #f1f5f9}.data-table th{background:linear-gradient(135deg,#f8fafc,#f1f5f9);color:#475569;font-weight:700;font-size:.8rem;text-transform:uppercase}.data-table tr:hover{background:#f8fafc}.data-table.compact th,.data-table.compact td{padding:.6rem .75rem;font-size:.875rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#fff;padding:1.5rem;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a;border-left:4px solid #667eea}.stat-card h3{font-size:2rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.25rem;font-weight:800}.stat-card p{color:#64748b;font-weight:500;font-size:.9rem}.status-badge{padding:.35rem .85rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.present,.status-badge.completed{background:#d1fae5;color:#065f46}.status-badge.absent{background:#fee2e2;color:#991b1b}.status-badge.late,.status-badge.in_progress{background:#fef3c7;color:#92400e}.status-badge.not_started{background:#f1f5f9;color:#475569}.filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;background:#fff;padding:1.5rem;border-radius:16px;box-shadow:0 2px 4px #0000000d}.filters .form-group{margin-bottom:0;min-width:180px}.error-message{background:#fee2e2;color:#991b1b;padding:1rem;border-radius:10px;margin-bottom:1rem;border-left:4px solid #ef4444}.welcome-message{background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem;border-radius:16px;color:#fff;margin-bottom:2rem}.welcome-message h3{color:#fff;margin-bottom:.5rem;font-size:1.5rem}.welcome-message p{color:#ffffffe6}.no-data{text-align:center;padding:3rem;color:#64748b;background:#fff;border-radius:16px;box-shadow:0 2px 4px #0000000d}.no-data .hint{font-size:.875rem;margin-top:.5rem;color:#94a3b8}.loading{display:flex;align-items:center;justify-content:center;min-height:300px;color:#64748b}.school-selector,.center-selector{padding:.6rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.95rem;background:#fff;cursor:pointer}@media(max-width:768px){.content{padding:1rem}.form-row{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.page-header h2{font-size:1.5rem}.filters{flex-direction:column;padding:1rem}.filters .form-group{width:100%;min-width:100%}.stats-grid{grid-template-columns:1fr}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -1rem;padding:0 1rem}.data-table{min-width:600px;display:table}.data-table th,.data-table td{padding:.75rem .5rem;font-size:.8rem;white-space:nowrap}.data-table th:first-child,.data-table td:first-child{position:sticky;left:0;background:#fff;z-index:1;box-shadow:2px 0 4px #0000000d}.data-table thead th:first-child{background:linear-gradient(135deg,#f8fafc,#f1f5f9);z-index:2}.btn-primary,.btn-secondary{width:100%;padding:.75rem 1rem}.form-actions{flex-direction:column}.form-actions button{width:100%}.modal{width:95%;padding:1.5rem;max-height:85vh}.modal h3{font-size:1.125rem}.form-card{padding:1.5rem}.btn-sm{padding:.4rem .75rem;font-size:.75rem}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal{background:#fff;border-radius:20px;padding:2rem;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal h3{margin:0 0 1.5rem;color:#1a1a2e;font-size:1.25rem}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}
