:root{--primary-color: #0EA5E9;--primary-dark: #0284C7;--primary-light: #E0F2FE;--secondary-color: #6B7280;--success-color: #10B981;--warning-color: #F59E0B;--error-color: #EF4444;--background-color: #FFFFFF;--surface-color: #FFFFFF;--text-primary: #111827;--text-secondary: #6B7280;--text-muted: #9CA3AF;--border-color: #E5E7EB;--border-light: #F3F4F6;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius: 12px;--radius-lg: 16px;--radius-xl: 20px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;background:#fff;color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{min-height:100vh;height:100%;flex:1}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:var(--surface-color)}.loading-spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.login-container{display:flex;height:100vh;overflow:hidden}.login-left{flex:1;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);display:flex;align-items:center;justify-content:center;padding:2rem;position:fixed;left:0;top:0;width:50vw;height:100vh;overflow:hidden;z-index:1}.login-banner{text-align:center;color:#fff;max-width:500px}.banner-icon{margin-bottom:2rem}.login-banner h1{font-size:3rem;font-weight:700;margin-bottom:1rem}.login-banner>p{font-size:1.25rem;margin-bottom:3rem;opacity:.9}.banner-features{display:grid;gap:1.5rem}.feature{display:flex;align-items:center;gap:1rem;background:#ffffff1a;padding:1rem;border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.feature-icon{font-size:1.5rem}.login-right{flex:1;margin-left:50vw;width:50vw;height:100vh;overflow-y:auto;overflow-x:hidden;display:flex;align-items:flex-start;justify-content:center;padding:2rem;background:var(--surface-color);scroll-behavior:smooth;position:relative;z-index:2}.login-right::-webkit-scrollbar{width:6px}.login-right::-webkit-scrollbar-track{background:var(--border-light)}.login-right::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.login-right::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.login-form-container{width:100%;max-width:400px;padding:2rem 0;min-height:calc(100vh - 4rem);display:flex;flex-direction:column;justify-content:flex-start}.login-form-container.centered{justify-content:center}.login-form{flex:1;display:flex;flex-direction:column;gap:1rem}.login-header{text-align:center;margin-bottom:2rem}.login-header h2{font-size:2rem;font-weight:600;margin-bottom:.5rem}.login-header p{color:var(--text-secondary)}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--text-primary)}.input-wrapper{position:relative;display:flex;align-items:center}.input-wrapper svg{position:absolute;color:var(--text-secondary);z-index:1;margin-left:6px;margin-right:6px}.input-wrapper input,.role-select{width:100%;padding:12px 44px;border:2px solid var(--border-color);border-radius:var(--radius);font-size:1rem;transition:border-color .2s}.input-wrapper input[type=password],.input-wrapper input[type=text]{padding-right:44px}.input-wrapper input:focus,.role-select:focus{outline:none;border-color:var(--primary-color)}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;z-index:2;transition:color .2s}.password-toggle:hover{color:var(--primary-color)}.form-help{display:block;margin-top:4px;font-size:.875rem;color:var(--text-secondary);line-height:1.4}.form-help.error-text{color:var(--error-color)}.input-wrapper.error,.input-wrapper.error input{border-color:var(--error-color)}.input-wrapper.error svg{color:var(--error-color)}input.error{border-color:var(--error-color)}.phone-input-wrapper{position:relative}.phone-prefix{position:absolute;left:44px;top:50%;transform:translateY(-50%);color:var(--text-secondary);font-size:1rem;font-weight:500;z-index:1;pointer-events:none;-webkit-user-select:none;user-select:none}.phone-input{padding-left:80px!important}.step-indicator{display:flex;align-items:center;justify-content:center;margin-top:16px;gap:8px}.step{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.step.completed{background:var(--success-color);color:#fff}.step.active{background:var(--primary-color);color:#fff}.step-line{width:40px;height:2px;background:var(--border-color)}.back-btn{width:100%;margin-bottom:12px;display:flex;align-items:center;justify-content:center;gap:8px}.step2-summary,.step3-summary{background:var(--border-light);padding:16px;border-radius:var(--radius);margin-bottom:16px}.step2-summary h4,.step3-summary h4{margin-bottom:8px;color:var(--text-primary);font-size:.875rem;font-weight:600}.step2-summary p,.step3-summary p{margin:4px 0;font-size:.875rem;color:var(--text-secondary)}.verification-info{background:var(--primary-light);padding:16px;border-radius:var(--radius);margin-bottom:20px;text-align:center}.verification-info h4{margin-bottom:8px;color:var(--primary-color);font-weight:600}.verification-info p{margin:4px 0;color:var(--text-secondary);font-size:.875rem}.verification-info strong{color:var(--primary-color);font-weight:600}.success-message{color:var(--success-color);font-weight:500;margin-top:8px}.otp-input{text-align:center;font-size:1.2rem;font-weight:600;letter-spacing:.2em}.resend-section{text-align:center;margin-top:16px}.resend-timer{color:var(--text-secondary);font-size:.875rem;margin:0}.btn-link{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:.875rem;text-decoration:underline;padding:4px 0}.btn-link:hover{color:var(--primary-dark)}.btn-link:disabled{color:var(--text-muted);cursor:not-allowed;text-decoration:none}.start-over-btn{margin-top:12px;width:100%;background:var(--error-color);color:#fff;border:2px solid var(--error-color)}.start-over-btn:hover{background:transparent;color:var(--error-color)}.login-btn{background:var(--primary-color);color:#fff;border:none;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border-radius:var(--radius);font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.login-btn:hover:not(:disabled){background:var(--primary-dark)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.divider{text-align:center;position:relative;margin:1rem 0}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border-color)}.divider span{background:var(--surface-color);padding:0 1rem;color:var(--text-secondary)}.google-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--surface-color);border:2px solid var(--border-color);padding:12px;border-radius:var(--radius);font-size:1rem;cursor:pointer;transition:border-color .2s}.google-btn:hover{border-color:var(--text-secondary)}.form-footer{text-align:center;margin-top:1rem}.toggle-form{background:none;border:none;color:var(--primary-color);cursor:pointer;font-weight:500}.demo-credentials{margin-top:2rem;padding:1rem;background:var(--background-color);border-radius:var(--radius);font-size:.875rem}.demo-credentials h4{margin-bottom:.5rem;color:var(--text-primary)}.demo-item{margin-bottom:.25rem;color:var(--text-secondary)}.error-message{background:#fef2f2;color:var(--error-color);padding:.75rem;border-radius:var(--radius);border:1px solid #fecaca;font-size:.875rem}.layout{display:flex;height:100vh;overflow:hidden}.layout-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.layout-content{flex:1;padding:2rem;overflow-y:auto;height:calc(100vh - 80px)}.sidebar{width:280px;background:var(--surface-color);border-right:1px solid var(--border-light);display:flex;flex-direction:column;box-shadow:0 0 0 1px #0000000d;height:100vh;overflow:hidden}.sidebar-header{padding:2rem 1.5rem 1.5rem;border-bottom:1px solid var(--border-light)}.sidebar-logo{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:700;color:var(--primary-color)}.sidebar-nav{flex:1;padding:1.5rem 0;overflow-y:auto}.sidebar-menu{list-style:none;padding:0 1rem}.sidebar-item{margin-bottom:.5rem}.sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;color:var(--text-secondary);text-decoration:none;transition:all .2s;border-radius:var(--radius);font-weight:500}.sidebar-link:hover{background:transparent;color:var(--text-primary)}.sidebar-item.active .sidebar-link{background:transparent;color:var(--primary-color);font-weight:600;border-left:3px solid var(--primary-color);padding-left:calc(1rem - 3px)}.topbar{height:80px;background:var(--surface-color);border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;flex-shrink:0}.topbar-left h1{font-size:1.875rem;font-weight:700;color:var(--text-primary)}.topbar-right{display:flex;align-items:center;gap:1rem}.topbar-item{position:relative}.institute-switcher{display:flex;flex-direction:column;gap:.25rem;min-width:220px;max-width:260px}.institute-label{font-size:.75rem;text-transform:uppercase;color:var(--text-secondary);letter-spacing:.04em}.institute-select{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--background-color)}.institute-select select{border:none;background:transparent;outline:none;font-weight:600;color:var(--text-primary);min-width:160px;cursor:pointer}.institute-role{font-size:.8rem;color:var(--text-secondary)}.institute-add-btn{align-self:flex-start;padding:.35rem .6rem;font-size:.8rem;line-height:1.2;white-space:nowrap}.modal-overlay-blocked{pointer-events:auto}.modal-overlay-blocked:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#fff6;z-index:-1}.settings-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.approvals-page{display:flex;flex-direction:column;gap:1rem}.approval-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.approval-stat-card{background:var(--surface-color);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:1rem;display:flex;align-items:center;gap:.75rem;box-shadow:var(--shadow-sm)}.stat-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff}.stat-icon.pending{background:#f59e0b}.stat-icon.success{background:#22c55e}.stat-icon.danger{background:#ef4444}.stat-icon.info{background:#3b82f6}.stat-label{color:var(--text-secondary);font-size:.85rem;margin:0}.approvals-list{display:flex;flex-direction:column;gap:1rem}.approval-card{background:var(--surface-color);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-sm)}.approval-card.resolved{opacity:.9}.approval-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.approval-body{margin-top:.75rem;display:grid;gap:.5rem}.approval-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}.approval-row .label{color:var(--text-secondary);font-weight:500}.role-select-row{display:flex;align-items:center;gap:.5rem;border:1px solid var(--border-color);border-radius:var(--radius);padding:.35rem .5rem;background:var(--background-color)}.approval-actions{margin-top:.75rem;display:flex;justify-content:flex-end;gap:.5rem}.error-text{color:var(--error-color);font-size:.85rem}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.action-modal{max-width:560px;max-height:85vh;overflow:auto;padding:0}.action-modal-body .form-group{display:flex;flex-direction:column;gap:.4rem}.action-modal-body select,.action-modal-body textarea{width:100%}.action-modal-body textarea{resize:vertical}.action-modal .role-select-row{width:100%}.role-select-row select{flex:1;min-width:0}.modal-header{gap:1rem}.modal-header .eyebrow{margin-bottom:.35rem}.modal-header .muted-text{margin-top:.35rem;line-height:1.45}.modal input:not([type=checkbox]):not([type=radio]),.modal select,.modal textarea{width:100%;padding:.65rem .85rem;border:1px solid var(--border-color);border-radius:var(--radius);font-size:.95rem;font-family:inherit;color:var(--text-primary);background:var(--surface-color);transition:border-color .2s ease,box-shadow .2s ease}.modal textarea{resize:vertical;min-height:84px}.modal .form-group{display:flex;flex-direction:column;gap:.4rem}.modal .form-group label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.action-modal-body{display:grid;gap:1.25rem;padding:1.5rem}.action-modal .modal-footer{margin-top:0;padding:1rem 1.5rem 1.5rem;gap:.75rem}.info-banner{display:flex;align-items:flex-start;gap:.5rem;font-size:.875rem;font-weight:500;line-height:1.45}.info-banner svg{flex-shrink:0;margin-top:2px}.btn-icon{padding:.4rem;line-height:0}.onboard-section{display:flex;flex-direction:column;gap:.85rem;padding:1rem;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--background-color)}.onboard-section-title{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.95rem;font-weight:600;color:var(--text-primary)}.field-hint{font-size:.8rem;color:var(--text-secondary);margin:.15rem 0 0}.class-select-list{display:flex;flex-direction:column;gap:.5rem;max-height:220px;overflow-y:auto}.class-select-item{display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--surface-color);cursor:pointer;transition:border-color .15s ease,background .15s ease}.class-select-item:hover{border-color:var(--primary-light);background:var(--background-color)}.class-select-item input[type=checkbox]{width:auto;cursor:pointer}.class-select-info{display:flex;flex-direction:column;gap:.1rem}.class-select-name{font-size:.9rem;font-weight:500;color:var(--text-primary)}.class-select-meta{font-size:.78rem;color:var(--text-secondary)}.no-institute-page{display:flex;flex-direction:column;gap:1.5rem}.no-institute-hero{background:var(--surface-color);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.no-institute-hero h1{margin:0 0 .5rem}.no-institute-hero p{margin:0 0 1rem;color:var(--text-secondary)}.no-institute-actions{display:flex;flex-wrap:wrap;gap:.75rem}.no-institute-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.no-institute-card{background:var(--surface-color);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-sm);display:grid;gap:.35rem}.no-institute-card .card-icon{width:36px;height:36px;border-radius:50%;background:var(--background-color);display:grid;place-items:center;color:var(--primary-color)}.no-institute-card h3{margin:0}.no-institute-card p{margin:0;color:var(--text-secondary)}.no-institute-card small{color:var(--text-secondary)}.notification-btn,.user-menu-btn{display:flex;align-items:center;gap:.5rem;background:none;border:none;padding:.5rem;border-radius:var(--radius);cursor:pointer;transition:background-color .2s}.notification-btn:hover,.user-menu-btn:hover{background:var(--background-color)}.notification-badge{position:absolute;top:-4px;right:-4px;background:var(--error-color);color:#fff;font-size:.75rem;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center}.user-avatar,.dropdown-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.user-name{font-weight:500}.notifications-dropdown,.user-dropdown{position:absolute;top:100%;right:0;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:300px;z-index:1000;margin-top:.5rem}.notifications-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border-color)}.notifications-header h3{font-size:1rem;font-weight:600}.mark-all-read{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:.875rem}.notifications-list{max-height:300px;overflow-y:auto}.notification-item{padding:1rem;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s}.notification-item:hover{background:var(--background-color)}.notification-item.unread{background:#eff6ff}.notification-item p{margin-bottom:.25rem;font-size:.875rem}.notification-time{font-size:.75rem;color:var(--text-secondary)}.notifications-footer{padding:1rem;text-align:center;border-top:1px solid var(--border-color)}.notifications-footer button{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:.875rem}.user-dropdown{min-width:250px}.user-info{display:flex;align-items:center;gap:.75rem;padding:1rem;border-bottom:1px solid var(--border-color)}.dropdown-name{font-weight:500;margin-bottom:.25rem}.dropdown-role{font-size:.875rem;color:var(--text-secondary);text-transform:capitalize}.dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;text-align:left;cursor:pointer;transition:background-color .2s;font-size:.875rem}.dropdown-item:hover{background:var(--background-color)}.dropdown-item.logout{color:var(--error-color)}.dropdown-divider{height:1px;background:var(--border-color);margin:.5rem 0}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none;justify-content:center;box-shadow:0 1px 2px #0000000d}.btn-primary{background:var(--primary-color);color:#fff;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.btn-primary:hover{background:var(--primary-dark);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transform:translateY(-1px)}.btn-outline{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.btn-outline:hover{background:var(--background-color);color:var(--text-primary);border-color:var(--text-secondary)}.btn-success{background:var(--success-color);color:#fff;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.btn-success:hover{background:#059669;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transform:translateY(-1px)}.btn-sm{padding:.5rem 1rem;font-size:.8rem}.floating-btn{position:fixed;bottom:2rem;right:2rem;border-radius:50px;box-shadow:var(--shadow-lg);z-index:100}.dashboard{max-width:1400px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:3rem}.dashboard-header h1{font-size:2rem;font-weight:600;margin-bottom:0;color:var(--text-primary)}.dashboard-header p{display:none}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.analytics-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;border:1px solid var(--border-light);transition:all .2s ease}.analytics-card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transform:translateY(-1px)}.card-header{display:flex;justify-content:flex-end;align-items:center;margin-bottom:1rem}.card-icon{display:none}.card-change{font-size:.875rem;font-weight:500}.card-change.positive{color:var(--success-color)}.card-content h3{font-size:2rem;font-weight:700;margin-bottom:.25rem;color:var(--text-primary)}.card-title{color:var(--text-secondary);font-size:.875rem;font-weight:400}.dashboard-section{margin-bottom:3rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.section-header h2{font-size:1.75rem;font-weight:700;color:var(--text-primary)}.classes-table-container{background:var(--surface-color);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;border:1px solid var(--border-light)}.classes-table{width:100%;border-collapse:collapse}.classes-table th{background:var(--background-color);padding:1rem 1.5rem;text-align:left;font-weight:600;font-size:.875rem;color:var(--text-secondary);border-bottom:1px solid var(--border-light)}.classes-table td{padding:1rem 1.5rem;border-bottom:1px solid var(--border-light);vertical-align:middle}.classes-table tbody tr:hover{background:var(--background-color)}.classes-table tbody tr:last-child td{border-bottom:none}.class-name{font-weight:600;color:var(--text-primary)}.class-subject-cell{color:var(--text-secondary)}.student-count{color:var(--text-primary);font-weight:500}.btn-link{background:none;border:none;color:var(--primary-color);cursor:pointer;font-weight:500;font-size:.875rem;padding:0;text-decoration:none;transition:color .2s}.btn-link:hover{color:var(--primary-dark);text-decoration:underline}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.stat-item{background:var(--surface-color);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.stat-item h4{font-size:1.125rem;font-weight:600;margin-bottom:1rem;color:var(--text-primary)}.stat-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.875rem}.stat-value{font-weight:600}.stat-value.pending{color:var(--warning-color)}.activity-list{display:flex;flex-direction:column;gap:.75rem}.activity-item{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem}.activity-time{color:var(--text-secondary);font-size:.75rem}.teacher-class{border-left:4px solid var(--primary-color);padding-left:2rem}.assignments-list{display:flex;flex-direction:column;gap:1.5rem}.assignment-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.assignment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.assignment-header h3{font-size:1.25rem;font-weight:600}.assignment-due-info{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}.due-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;background:#e0f2fe;color:#0284c7}.due-badge.urgent{background:#fee2e2;color:#dc2626}.assignment-card.urgent{border-left:4px solid var(--error-color)}.assignment-status{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:capitalize}.assignment-status.active{background:#dcfce7;color:#166534}.assignment-info{margin-bottom:1rem}.assignment-meta{display:flex;gap:1rem;margin-bottom:.75rem;font-size:.875rem;color:var(--text-secondary)}.assignment-description{color:var(--text-secondary);margin-bottom:1rem}.assignment-stats{display:flex;gap:2rem;margin-bottom:1rem}.stat{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;font-weight:500}.assignment-actions{display:flex;gap:.75rem}.schedule-list{display:flex;flex-direction:column;gap:1rem}.schedule-item{display:flex;align-items:center;gap:1rem;background:var(--surface-color);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.schedule-time{font-weight:600;color:var(--primary-color);min-width:120px}.schedule-details{flex:1}.schedule-details h4{font-weight:600;margin-bottom:.25rem}.schedule-details p{color:var(--text-secondary);font-size:.875rem}.schedule-actions{display:flex;gap:.5rem}.class-topic{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.875rem;color:var(--text-muted);font-style:italic}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.page-header h1{font-size:2rem;font-weight:600;margin-bottom:.5rem}.page-header p{color:var(--text-secondary)}.fee-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.summary-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);text-align:center}.summary-card h3{font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem;text-transform:uppercase;font-weight:500}.summary-amount{font-size:1.75rem;font-weight:700}.summary-amount.collected{color:var(--success-color)}.summary-amount.pending{color:var(--warning-color)}.attendance-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.attendance-stat-grid .summary-card{position:relative;overflow:hidden;text-align:left;padding:1.35rem 1.5rem;display:flex;flex-direction:column;gap:.35rem;transition:transform .18s ease,box-shadow .18s ease}.attendance-stat-grid .summary-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.attendance-stat-grid .summary-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--border-color)}.attendance-stat-grid .summary-card h3{margin:0}.summary-value{margin:0;font-size:2rem;font-weight:700;line-height:1.1;color:var(--text-primary)}.summary-hint{font-size:.78rem;color:var(--text-muted)}.summary-card.accent-primary:before{background:var(--primary-color)}.summary-card.accent-primary .summary-value{color:var(--primary-color)}.summary-card.accent-success:before{background:var(--success-color)}.summary-card.accent-success .summary-value{color:#047857}.summary-card.accent-neutral:before{background:var(--text-secondary)}.summary-percentage{font-size:1.75rem;font-weight:700;color:var(--primary-color)}.filters-section{display:flex;gap:1rem;margin-bottom:2rem;align-items:center}.search-box{position:relative;flex:1;max-width:400px}.search-box svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary)}.search-box input{width:100%;padding:.75rem .75rem .75rem 2.5rem;border:1px solid var(--border-color);border-radius:var(--radius);font-size:.875rem}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group select{padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius);font-size:.875rem}.fees-table-container{background:var(--surface-color);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.fees-table{width:100%;border-collapse:collapse}.fees-table th,.fees-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--border-color)}.fees-table th{background:var(--background-color);font-weight:600;color:var(--text-primary);font-size:.875rem}.student-info{display:flex;align-items:center;gap:.75rem}.student-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600}.student-name{font-weight:500;margin-bottom:.25rem}.student-email{font-size:.875rem;color:var(--text-secondary)}.amount{font-weight:600}.status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:capitalize}.status-badge.status-paid{background:#dcfce7;color:#166534}.status-badge.status-pending{background:#fef3c7;color:#92400e}.status-badge.status-overdue{background:#fee2e2;color:#991b1b}.fee-tabs{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:2px solid var(--border-color)}.fee-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:.9rem;font-weight:500;color:var(--text-secondary);transition:color .2s,border-color .2s}.fee-tab:hover{color:var(--primary-color)}.fee-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.fee-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.fee-stat-card{display:flex;align-items:center;gap:1rem;background:var(--surface-color);border-radius:var(--radius-lg);padding:1.25rem;border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.fee-stat-icon{width:48px;height:48px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}.fee-stat-icon.blue{background:#dbeafe;color:#2563eb}.fee-stat-icon.green{background:#dcfce7;color:#16a34a}.fee-stat-icon.orange{background:#fef3c7;color:#d97706}.fee-stat-icon.red{background:#fee2e2;color:#dc2626}.fee-stat-details h3{font-size:1.4rem;font-weight:700;margin:0;color:var(--text-primary)}.fee-stat-details p{font-size:.8rem;color:var(--text-secondary);margin:.15rem 0 0}.fee-collection-rate-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:1.25rem;border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.fee-collection-rate-card h4{margin:0 0 .75rem;font-size:.95rem}.fee-progress-bar-container{width:100%;height:12px;background:var(--border-color);border-radius:6px;overflow:hidden}.fee-progress-bar{height:100%;background:var(--success-color, #16a34a);border-radius:6px;transition:width .5s ease}.fee-progress-labels{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.8rem;color:var(--text-secondary)}.fee-progress-pct{font-weight:700;color:var(--success-color, #16a34a)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.section-header h2{margin:0;font-size:1.15rem}.fee-structures-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.fee-structure-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:1.25rem;border:1px solid var(--border-color);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.75rem}.fee-structure-header{display:flex;align-items:center;justify-content:space-between}.fee-structure-title{display:flex;align-items:center;gap:.5rem}.fee-structure-title h3{margin:0;font-size:1rem;font-weight:600}.fee-billing-badge{font-size:.7rem;font-weight:600;padding:.2rem .6rem;border-radius:12px;background:#dbeafe;color:#2563eb;text-transform:uppercase}.fee-structure-amount{font-size:1.5rem;font-weight:700;color:var(--primary-color)}.fee-structure-meta{display:flex;gap:.5rem}.fee-meta-tag{font-size:.7rem;padding:.15rem .5rem;border-radius:8px;background:var(--background-color);color:var(--text-secondary);font-weight:500}.fee-structure-actions{display:flex;gap:.5rem;padding-top:.5rem;border-top:1px solid var(--border-light, var(--border-color))}.fee-cards-table-container{background:var(--surface-color);border-radius:var(--radius-lg);overflow-x:auto;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.fee-cards-table{width:100%;border-collapse:collapse;min-width:860px}.fee-cards-table th,.fee-cards-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color);font-size:.85rem}.fee-cards-table th{background:var(--background-color);font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.fee-card-inactive{opacity:.55}.fee-student-cell{display:flex;align-items:center;gap:.6rem}.fee-student-avatar{width:34px;height:34px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;flex-shrink:0}.fee-student-name{display:block;font-weight:500}.fee-student-contact{display:block;font-size:.75rem;color:var(--text-secondary)}.fee-plan-name{display:block;font-weight:500}.fee-cycle-badge{display:inline-block;font-size:.65rem;padding:.1rem .4rem;border-radius:8px;background:#f1f5f9;color:var(--text-secondary);font-weight:500;margin-top:.15rem}.fee-amount-cell{font-weight:600;white-space:nowrap}.fee-date-cell{white-space:nowrap;font-size:.85rem;color:var(--text-secondary)}.fee-overdue-date{color:var(--danger-color, #ef4444);font-weight:600}.fee-no-data{color:var(--text-muted, #9ca3af)}.fee-collected{color:var(--success-color, #16a34a)}.fee-pending-val{color:var(--warning-color, #d97706)}.fee-table-actions{display:flex;gap:.35rem}.btn-xs{padding:.3rem .5rem!important;font-size:.75rem!important}.btn-danger-outline{background:transparent;color:var(--danger-color, #ef4444);border:1px solid var(--danger-color, #ef4444)}.btn-danger-outline:hover{background:var(--danger-color, #ef4444);color:#fff}.btn-success-outline{background:transparent;color:var(--success-color, #16a34a);border:1px solid var(--success-color, #16a34a)}.btn-success-outline:hover{background:var(--success-color, #16a34a);color:#fff}.fee-dues-content{padding:1rem 1.5rem}.fee-dues-header-info{display:flex;gap:1.5rem;flex-wrap:wrap;padding-bottom:.75rem;border-bottom:1px solid var(--border-color);font-size:.85rem;margin-bottom:.75rem}.fee-dues-summary{display:flex;gap:1.5rem;font-size:.85rem;font-weight:500;margin-bottom:1rem}.fee-dues-list{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto;margin-bottom:1rem}.fee-due-item{background:var(--background-color);border-radius:var(--radius);padding:.75rem 1rem;display:flex;flex-direction:column;gap:.4rem}.fee-due-info{display:flex;align-items:center;justify-content:space-between}.fee-due-month{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.9rem}.fee-due-amounts{display:flex;gap:1.25rem;font-size:.8rem}.fee-due-actions{display:flex;gap:.5rem;margin-top:.35rem}.page-header-actions{display:flex;gap:.75rem}.form-hint-inline{font-size:.75rem;color:var(--text-secondary);font-weight:400}@media (max-width: 768px){.fee-tabs{overflow-x:auto}.fee-stats-grid{grid-template-columns:repeat(2,1fr)}.fee-structures-grid{grid-template-columns:1fr}.fee-dues-header-info{flex-direction:column;gap:.4rem}.fee-dues-summary{flex-direction:column;gap:.25rem}.fee-due-amounts{flex-direction:column;gap:.2rem}.section-header{flex-direction:column;gap:.75rem;align-items:flex-start}}.action-buttons{display:flex;gap:.5rem}.empty-state{text-align:center;padding:3rem;color:var(--text-secondary)}.toast{position:fixed;top:2rem;right:2rem;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:.75rem;z-index:1000;animation:slideIn .3s ease}.toast.success{border-left:4px solid var(--success-color)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.announcements-list{display:flex;flex-direction:column;gap:1.5rem}.announcement-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.announcement-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.announcement-title{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.announcement-info{display:flex;gap:1rem}.info-item{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--text-secondary)}.audience-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:capitalize}.audience-badge.blue{background:#dbeafe;color:#1e40af}.audience-badge.green{background:#dcfce7;color:#166534}.audience-badge.purple{background:#ede9fe;color:#7c3aed}.audience-badge.orange{background:#fed7aa;color:#c2410c}.announcement-author{font-size:.875rem;color:var(--text-secondary)}.announcement-body{margin-bottom:1rem;line-height:1.6}.announcement-actions{display:flex;gap:.75rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.modal{background:var(--surface-color);border-radius:var(--radius-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:1.25rem;font-weight:600}.modal-close{background:none;border:none;cursor:pointer;padding:.5rem;border-radius:var(--radius);color:var(--text-secondary)}.modal-close:hover{background:var(--background-color)}.modal-form{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.modal-form textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius);font-size:.875rem;font-family:inherit;resize:vertical}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem}.institute-modal{max-width:800px;width:100%}.institute-modal-header h2{text-transform:capitalize}.institute-modal-body{padding-top:1rem}.institute-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.institute-card{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:var(--shadow-sm);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.institute-card:hover{border-color:var(--primary-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);font-weight:600;margin-bottom:.25rem}.muted-text{color:var(--text-secondary);font-size:.9rem}.pill{display:inline-flex;align-items:center;padding:.35rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600;width:fit-content}.pill-blue{background:#e0f2fe;color:#075985}.pill-green{background:#dcfce7;color:#14532d}.form-input{width:100%;padding:.7rem .85rem;border:1px solid var(--border-color);border-radius:var(--radius);font-size:.95rem;transition:border-color .2s ease,box-shadow .2s ease}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0ea5e926}.info-banner{background:var(--primary-light);border:1px solid #bae6fd;color:#0f172a;padding:.85rem 1rem;border-radius:var(--radius);margin-bottom:.5rem;font-weight:500}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:.5rem 0 .75rem}.segmented-button{border:1px solid var(--border-color);background:var(--surface-color);border-radius:var(--radius);padding:.65rem .75rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.segmented-button:hover{border-color:var(--primary-light);color:var(--text-primary)}.segmented-button.active{border-color:var(--primary-color);background:var(--primary-light);color:var(--primary-color)}.attendance-controls{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:end;flex-wrap:wrap;padding:1.25rem;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.control-group{display:flex;flex-direction:column;gap:.4rem}.control-group label{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.attendance-controls .control-input{height:44px;min-width:200px;padding:0 .85rem;border:1px solid var(--border-color);border-radius:var(--radius);font-size:.925rem;font-family:inherit;color:var(--text-primary);background:var(--surface-color);transition:border-color .15s ease,box-shadow .15s ease}.attendance-controls .control-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0ea5e926}.attendance-controls input[type=date].control-input{padding-right:.6rem}.attendance-controls .btn{height:44px;margin-left:auto}.attendance-list{background:var(--surface-color);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);margin-bottom:2rem}.attendance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.attendance-header h3{font-size:1.25rem;font-weight:600}.attendance-summary{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.875rem;color:var(--text-secondary)}.summary-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:999px;font-size:.8rem;font-weight:500;border:1px solid transparent}.summary-chip strong{font-weight:700}.summary-chip.present{background:#10b9811a;color:#047857;border-color:#10b98140}.summary-chip.absent{background:#ef44441a;color:#b91c1c;border-color:#ef444440}.summary-chip.total{background:var(--bg-color, #f3f4f6);color:var(--text-secondary);border-color:var(--border-color)}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.student-attendance-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--surface-color);transition:border-color .15s ease,box-shadow .15s ease}.student-attendance-card:hover{border-color:#0ea5e959;box-shadow:var(--shadow-sm)}.student-info{display:flex;align-items:center;gap:.75rem;min-width:0}.student-attendance-card .student-avatar{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);font-weight:600;flex-shrink:0}.student-attendance-card .student-name{font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis}.attendance-buttons{display:inline-flex;gap:0;border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden;flex-shrink:0}.attendance-btn{display:flex;align-items:center;gap:.3rem;padding:.5rem .85rem;border:none;background:var(--surface-color);color:var(--text-secondary);cursor:pointer;font-size:.8rem;font-weight:500;transition:background .15s ease,color .15s ease}.attendance-btn+.attendance-btn{border-left:1px solid var(--border-color)}.attendance-btn.present:hover{background:#10b98114;color:#047857}.attendance-btn.absent:hover{background:#ef444414;color:#b91c1c}.attendance-btn.present.active{background:var(--success-color);color:#fff}.attendance-btn.absent.active{background:var(--error-color);color:#fff}.attendance-stats{margin-top:2rem}.attendance-stats h3{font-size:1.25rem;font-weight:600;margin-bottom:1rem}.stat-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);text-align:center}.stat-card h4{font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem;text-transform:uppercase;font-weight:500}.stat-card .stat-value{font-size:1.75rem;font-weight:700;color:var(--primary-color);margin-bottom:.25rem}.stat-card .stat-label{font-size:.875rem;color:var(--text-secondary)}.settings-container{max-width:800px;margin:0 auto;background:var(--surface-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);overflow:hidden}.settings-tabs{display:flex;border-bottom:1px solid var(--border-color)}.tab{display:flex;align-items:center;gap:.5rem;padding:1rem 1.5rem;background:none;border:none;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text-secondary);transition:all .2s;border-bottom:2px solid transparent}.tab:hover{background:var(--background-color);color:var(--text-primary)}.tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);background:var(--background-color)}.settings-content{padding:2rem}.settings-section h2{font-size:1.5rem;font-weight:600;margin-bottom:2rem}.settings-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.settings-section-header h2{margin-bottom:0}.profile-photo-section{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--border-color)}.profile-photo{position:relative}.profile-photo img{width:80px;height:80px;border-radius:50%;object-fit:cover}.photo-upload-btn{position:absolute;bottom:0;right:0;background:var(--primary-color);color:#fff;border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer}.settings-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.security-info{margin-top:2rem;padding:1rem;background:var(--background-color);border-radius:var(--radius)}.security-info h3{font-size:1rem;font-weight:600;margin-bottom:.5rem}.security-info ul{list-style:none;padding-left:0}.security-info li{font-size:.875rem;color:var(--text-secondary);margin-bottom:.25rem;padding-left:1rem;position:relative}.security-info li:before{content:"•";position:absolute;left:0;color:var(--primary-color)}.profile-view{margin-top:1rem}.profile-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.profile-info-item{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius);transition:all .2s}.profile-info-item:hover{border-color:var(--primary-light);box-shadow:var(--shadow-sm)}.profile-info-item.full-width{grid-column:1 / -1}.info-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.info-label svg{color:var(--primary-color)}.info-value{font-size:1rem;font-weight:500;color:var(--text-primary);margin-top:.25rem;word-break:break-word}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.class-detail-page{max-width:1200px;margin:0 auto}.class-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;background:var(--surface-color);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.class-info h1{font-size:2rem;font-weight:600;margin-bottom:.5rem}.class-meta{display:flex;gap:1rem;font-size:.875rem;color:var(--text-secondary)}.class-actions{display:flex;gap:.75rem}.class-tabs{display:flex;background:var(--surface-color);border-radius:var(--radius-lg);padding:.5rem;margin-bottom:2rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.tab-content{background:var(--surface-color);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.resources-list{display:flex;flex-direction:column;gap:1rem}.resource-item{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--background-color)}.resource-icon{font-size:1.5rem}.resource-info{flex:1}.resource-info h3{font-weight:600;margin-bottom:.25rem}.resource-info p{font-size:.875rem;color:var(--text-secondary)}.todo-note{background:#fef3c7;color:#92400e;padding:1rem;border-radius:var(--radius);margin-top:1rem;font-size:.875rem}.assignment-detail-page{max-width:1400px;margin:0 auto}.assignment-layout{display:grid;grid-template-columns:1fr 400px;gap:2rem}.assignment-info{background:var(--surface-color);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);height:fit-content}.assignment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.assignment-header h1{font-size:1.75rem;font-weight:600}.assignment-meta{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.meta-item{display:flex;align-items:center;gap:.75rem}.meta-label{font-size:.875rem;color:var(--text-secondary);font-weight:500}.meta-value{font-weight:600}.assignment-description,.assignment-resources,.assignment-stats{margin-bottom:2rem}.assignment-description h3,.assignment-resources h3,.assignment-stats h3{font-size:1.125rem;font-weight:600;margin-bottom:1rem}.resource-list{display:flex;flex-direction:column;gap:.75rem}.submissions-panel{background:var(--surface-color);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);height:fit-content}.submissions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.submissions-header h2{font-size:1.25rem;font-weight:600}.submissions-filters{display:flex;align-items:center;gap:.5rem}.submissions-list{display:flex;flex-direction:column;gap:1rem;max-height:600px;overflow-y:auto}.submission-card{border:1px solid var(--border-color);border-radius:var(--radius);padding:1rem;background:var(--background-color)}.submission-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.submission-header h4{font-weight:600;margin-bottom:.25rem}.submission-status{display:flex;align-items:center;gap:.25rem;font-size:.75rem}.submission-grade{background:var(--primary-color);color:#fff;padding:.25rem .75rem;border-radius:20px;font-weight:600}.submission-details{margin-bottom:.75rem}.submission-date{font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem}.submission-files p{font-size:.875rem;margin-bottom:.25rem}.submission-actions{display:flex;gap:.5rem}.empty-submissions{text-align:center;padding:2rem;color:var(--text-secondary)}.todo-section{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-color)}.todo-section h3{font-size:1rem;font-weight:600;margin-bottom:.5rem}.todo-section ul{list-style:none;padding-left:0}.todo-section li{font-size:.875rem;color:var(--text-secondary);margin-bottom:.25rem;padding-left:1rem;position:relative}.todo-section li:before{content:"•";position:absolute;left:0;color:var(--warning-color)}.error-page{text-align:center;padding:4rem 2rem}.error-page h1{font-size:2rem;font-weight:600;margin-bottom:1rem;color:var(--error-color)}.error-page p{color:var(--text-secondary)}.teachers-page{max-width:1400px;margin:0 auto}.teacher-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2rem}.teacher-stat-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);transition:all .2s ease}.teacher-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon-wrapper{width:52px;height:52px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon-wrapper.blue{background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:#0284c7}.stat-icon-wrapper.green{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#16a34a}.stat-icon-wrapper.orange{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#d97706}.stat-icon-wrapper.purple{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#7c3aed}.stat-details h3{font-size:1.75rem;font-weight:700;color:var(--text-primary);line-height:1;margin-bottom:.25rem}.stat-details p{font-size:.875rem;color:var(--text-secondary);margin:0}.teachers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem}.teacher-card{background:var(--surface-color);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);overflow:hidden;transition:all .2s ease}.teacher-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--primary-light)}.teacher-card-header{padding:1.25rem 1.25rem 0;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.teacher-badges{display:flex;flex-direction:column;gap:.375rem;align-items:flex-end}.salary-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;border-radius:20px;font-size:.6875rem;font-weight:600;text-transform:uppercase}.salary-badge.paid{background:#dcfce7;color:#166534}.salary-badge.pending{background:#fef3c7;color:#92400e}.teacher-avatar-section{display:flex;align-items:center;gap:.875rem}.teacher-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;flex-shrink:0}.teacher-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.teacher-basic-info h3{font-size:1.0625rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.teacher-subject{font-size:.8125rem;color:var(--primary-color);font-weight:500;background:var(--primary-light);padding:.125rem .5rem;border-radius:4px;display:inline-block}.teacher-card-body{padding:1rem 1.25rem}.teacher-contact-info{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-light)}.contact-item{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-secondary)}.contact-item svg{color:var(--text-muted);flex-shrink:0}.teacher-meta-info{display:flex;flex-wrap:wrap;gap:.75rem}.teacher-meta-info .meta-item{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-secondary);background:var(--background-color);padding:.375rem .625rem;border-radius:6px}.teacher-meta-info .meta-item svg{color:var(--text-muted)}.teacher-card-actions{padding:1rem 1.25rem;display:flex;gap:.5rem;border-top:1px solid var(--border-light);background:var(--background-color)}.teacher-card-actions .btn{flex:1}.teacher-card-actions .btn:last-child{flex:0 0 auto}.btn-success-outline{background:transparent;color:var(--success-color);border:1px solid var(--success-color)}.btn-success-outline:hover{background:var(--success-color);color:#fff}.btn-warning-outline{background:transparent;color:var(--warning-color);border:1px solid var(--warning-color)}.btn-warning-outline:hover{background:var(--warning-color);color:#fff}.btn-warning{background:var(--warning-color);color:#fff;border:none}.btn-lg{padding:1rem 1.5rem;font-size:1rem}.btn-danger-outline{background:transparent;color:var(--error-color);border:1px solid var(--error-color)}.btn-danger-outline:hover{background:var(--error-color);color:#fff}.btn-danger{background:var(--error-color);color:#fff;border:none}.teacher-modal{max-width:600px}.teacher-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.teacher-form .form-group{margin-bottom:0}.teacher-form input,.teacher-form select,.teacher-form textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius);font-size:.875rem;transition:border-color .2s,box-shadow .2s}.teacher-form input:focus,.teacher-form select:focus,.teacher-form textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0ea5e926}.teacher-form label{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.teacher-view-content{padding:1.5rem}.view-header{display:flex;align-items:center;gap:1.25rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-light)}.view-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.75rem;flex-shrink:0}.view-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.view-basic h3{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.view-subject{font-size:.9375rem;color:var(--text-secondary);margin-bottom:.5rem}.view-badges{display:flex;gap:.5rem;flex-wrap:wrap}.view-details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem}.view-detail-item{background:var(--background-color);padding:1rem;border-radius:var(--radius)}.view-detail-item .detail-label{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.375rem}.view-detail-item .detail-label svg{color:var(--primary-color)}.view-detail-item .detail-value{font-size:.9375rem;font-weight:500;color:var(--text-primary)}.view-classes-section{margin-bottom:1.5rem}.view-classes-section h4{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.assigned-classes{display:flex;flex-wrap:wrap;gap:.5rem}.assigned-class-pill{display:flex;align-items:center;gap:.375rem;background:var(--primary-light);color:var(--primary-dark);padding:.5rem .875rem;border-radius:20px;font-size:.8125rem;font-weight:500}.no-classes-text{color:var(--text-muted);font-size:.875rem;font-style:italic}.view-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1.25rem 0;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);margin-bottom:1.5rem}.view-stat{text-align:center}.view-stat .stat-number{display:block;font-size:1.5rem;font-weight:700;color:var(--primary-color)}.view-stat .stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase}.view-detail-item.full-width{grid-column:1 / -1}.quick-action-content{padding:1.5rem}.quick-action-info{text-align:center;margin-bottom:1.5rem}.quick-action-info p{margin:.25rem 0;color:var(--text-secondary)}.quick-action-info .current-status{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.paid-date-info{font-size:.8125rem;color:var(--text-muted)}.quick-action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.quick-action-buttons .btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem;height:auto}.quick-action-buttons .btn:disabled{opacity:.5;cursor:not-allowed}.edit-date-option{text-align:center;padding-top:1rem;border-top:1px solid var(--border-light)}.edit-date-option .btn-link{display:inline-flex;align-items:center;gap:.375rem}.edit-dates-info{background:var(--background-color);padding:1rem;border-radius:var(--radius);margin-bottom:1.5rem;text-align:center}.edit-dates-info p{margin:0;color:var(--text-secondary)}.teacher-form label{display:flex;align-items:center;gap:.5rem}.teacher-form label svg{color:var(--primary-color)}.form-hint{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.375rem}.delete-modal{max-width:420px}.delete-modal-content{padding:2rem 1.5rem;text-align:center}.delete-icon{width:80px;height:80px;border-radius:50%;background:#fee2e2;color:var(--error-color);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}.delete-modal-content .confirm-title{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin:0 0 .4rem}.delete-modal-content p{font-size:1rem;color:var(--text-primary);margin-bottom:.5rem}.delete-modal-content.confirm-tone-warning .delete-icon{background:#fef3c7;color:#d97706}.delete-modal-content .modal-actions{margin-top:1.5rem}.delete-modal-content .warning-text{font-size:.875rem;color:var(--text-muted)}.empty-state{text-align:center;padding:4rem 2rem;background:var(--surface-color);border-radius:var(--radius-lg);border:1px solid var(--border-light)}.empty-state svg{color:var(--text-muted);margin-bottom:1rem}.empty-state h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.empty-state p{color:var(--text-secondary);margin-bottom:1.5rem}@media (max-width: 1024px){.assignment-layout{grid-template-columns:1fr}.submissions-panel{order:-1}}@media (max-width: 768px){.layout{flex-direction:column}.sidebar{width:100%;height:auto;order:2}.layout-content{padding:1rem}.dashboard-header,.page-header,.class-header{flex-direction:column;gap:1rem;align-items:stretch}.analytics-grid,.classes-grid,.stats-grid,.form-row{grid-template-columns:1fr}.attendance-controls{flex-direction:column;align-items:stretch}.attendance-controls .control-input{min-width:0;width:100%}.attendance-controls .btn{margin-left:0;justify-content:center}.attendance-header{flex-direction:column;align-items:flex-start;gap:.75rem}.students-grid{grid-template-columns:1fr}.student-attendance-card{flex-direction:column;gap:.85rem;align-items:stretch}.student-attendance-card .attendance-buttons{width:100%}.student-attendance-card .attendance-btn{flex:1;justify-content:center;padding:.6rem}.class-tabs{flex-wrap:wrap}.floating-btn{bottom:1rem;right:1rem}.login-container{flex-direction:column;height:auto;overflow:visible}.login-left{position:static;width:100%;height:auto;min-height:40vh;overflow:visible}.login-right{margin-left:0;width:100%;height:auto;overflow:visible;align-items:center;position:static;z-index:auto}.login-form-container{min-height:auto;padding:1rem 0}.modal-overlay{padding:1rem}.topbar{padding:0 1rem}.topbar-right{gap:.5rem}.user-name{display:none}}@media (max-width: 480px){.login-banner h1{font-size:2rem}.banner-features{gap:1rem}.feature{flex-direction:column;text-align:center;gap:.5rem}.dashboard-header h1,.page-header h1,.card-content h3{font-size:1.5rem}.settings-tabs{flex-direction:column}.tab{justify-content:center;border-bottom:none;border-right:2px solid transparent}.tab.active{border-bottom:none;border-right-color:var(--primary-color)}.teacher-stats-grid{grid-template-columns:repeat(2,1fr)}.teachers-grid,.teacher-form .form-row,.view-details-grid{grid-template-columns:1fr}.view-stats{grid-template-columns:repeat(3,1fr)}.quick-action-buttons{grid-template-columns:1fr}.teacher-badges{flex-direction:row}}@media (max-width: 768px){.teachers-grid{grid-template-columns:1fr}.teacher-stats-grid{grid-template-columns:repeat(2,1fr)}.teacher-card-actions{flex-direction:column}.teacher-card-actions .btn{width:100%}.teacher-card-actions .btn:last-child{flex:1}}.students-page{padding:0}.student-card-clickable{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.student-card-clickable:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000014}.student-card-footer{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1.25rem;border-top:1px solid var(--border-light);background:var(--background-color);color:var(--text-secondary, #6b7280);font-size:.85rem;transition:color .15s ease,background .15s ease}.student-card-clickable:hover .student-card-footer{color:var(--primary-color, #3b82f6);background:#3b82f60a}.student-card-view-hint{display:flex;align-items:center;gap:6px}.student-detail-actions{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border-color, #e5e7eb)}.student-detail-actions h4{margin:0 0 .75rem;font-size:.95rem;font-weight:600;color:var(--text-primary, #1f2937)}.student-action-list{display:flex;flex-direction:column;gap:4px}.student-action-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:none;border-radius:10px;background:transparent;cursor:pointer;transition:background .15s ease;text-align:left;width:100%}.student-action-row:hover{background:var(--bg-secondary, #f3f4f6)}.student-action-row.student-action-danger:hover{background:#ef44440f}.student-action-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;flex-shrink:0}.student-action-icon.blue{background:#3b82f61a;color:#3b82f6}.student-action-icon.green{background:#22c55e1a;color:#16a34a}.student-action-icon.orange{background:#f59e0b1a;color:#d97706}.student-action-icon.red{background:#ef44441a;color:#ef4444}.student-action-text{display:flex;flex-direction:column;flex:1;min-width:0}.student-action-title{font-size:.9rem;font-weight:500;color:var(--text-primary, #1f2937)}.student-action-danger .student-action-title{color:#ef4444}.student-action-desc{font-size:.78rem;color:var(--text-secondary, #6b7280);margin-top:1px}.student-action-chevron{color:var(--text-secondary, #9ca3af);flex-shrink:0}.student-card-inactive{border-left:4px solid #f59e0b!important;opacity:.85}.avatar-inactive{opacity:.55;background:#fef3c7!important;color:#92400e!important}.btn-danger-outline{border:1px solid #ef4444;color:#ef4444;background:transparent}.btn-danger-outline:hover{background:#ef444414}.btn-warning-outline{border:1px solid #f59e0b;color:#d97706;background:transparent}.btn-warning-outline:hover{background:#f59e0b14}.btn-danger{background:#ef4444;color:#fff;border:none}.btn-danger:hover{background:#dc2626}.btn-warning{background:#f59e0b;color:#fff;border:none}.btn-warning:hover{background:#d97706}.btn-success{background:#22c55e;color:#fff;border:none}.btn-success:hover{background:#16a34a}.status-warning{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 14px;background:#f59e0b0f;border:1px solid rgba(245,158,11,.2);border-radius:8px;color:#92400e;font-size:.85rem}.status-warning.danger{background:#ef44440f;border-color:#ef444426;color:#b91c1c}.student-fee-summary-section{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border-color, #e5e7eb)}.student-fee-summary-section h4{margin:0 0 .75rem;font-size:.95rem;font-weight:600;color:var(--text-primary, #1f2937)}.student-fee-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.fee-summary-item{display:flex;flex-direction:column;padding:10px 14px;background:var(--bg-secondary, #f9fafb);border-radius:8px;border:1px solid var(--border-color, #e5e7eb)}.fee-label{font-size:.75rem;color:var(--text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.fee-value{font-size:1.1rem;font-weight:600;color:var(--text-primary, #1f2937)}.fee-value.fee-cleared{color:#16a34a}.fee-value.fee-pending{color:#ea580c}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toast.error{border-left-color:var(--danger-color, #ef4444)}@media (max-width: 768px){.student-fee-summary-grid{grid-template-columns:repeat(2,1fr)}}.classes-page .classes-grid,.class-detail-page .classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.class-card{position:relative;background:var(--surface-color, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-lg, 16px);padding:1.25rem 1.25rem 1.35rem;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.class-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--primary-color) 0%,var(--primary-dark) 100%);opacity:0;transition:opacity .18s ease}.class-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#0ea5e959}.class-card:hover:before{opacity:1}.class-card-header{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.class-card-header h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary);line-height:1.35}.class-card-header p{margin:.2rem 0 0;font-size:.875rem;color:var(--text-secondary, #6b7280)}.class-actions{display:flex;gap:.4rem;align-items:center;flex-shrink:0}.class-actions .btn-sm{padding:.4rem;color:var(--text-secondary);border-color:var(--border-color)}.class-actions .btn-sm:hover{color:var(--primary-color);border-color:var(--primary-color);background:#0ea5e90f}.class-meta{display:flex;flex-wrap:wrap;gap:.5rem;color:var(--text-secondary, #6b7280);font-size:.85rem}.class-meta span{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;background:var(--bg-color, #f3f4f6);border-radius:999px;white-space:nowrap}.class-meta span svg{color:var(--primary-color);flex-shrink:0}.btn-full{width:100%;justify-content:center}.field-hint{margin:-.15rem 0 .65rem;font-size:.8rem;line-height:1.45;color:var(--text-secondary)}.schedule-row{display:grid;grid-template-columns:1.2fr .9fr .9fr 1.6fr auto;gap:.5rem;align-items:end;padding:.75rem;margin-bottom:.6rem;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-color, #f9fafb)}.schedule-field{display:flex;flex-direction:column;gap:.3rem;min-width:0}.schedule-field-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.schedule-remove{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--surface-color);color:var(--text-secondary);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.schedule-remove:hover{color:#dc2626;border-color:#dc2626;background:#dc26260f}.schedule-add{margin-top:.25rem}.schedule-bulk{padding:.85rem;margin-bottom:.9rem;border:1px dashed var(--border-color);border-radius:var(--radius);background:var(--bg-color, #f9fafb)}.schedule-bulk-title{font-size:.78rem;font-weight:600;color:var(--text-secondary);margin:0 0 .6rem}.schedule-bulk-days{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.day-chip{min-width:46px;padding:.35rem .65rem;border:1px solid var(--border-color);border-radius:999px;background:var(--surface-color);color:var(--text-secondary);font-size:.8rem;font-weight:600;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.day-chip:hover{border-color:var(--primary-light);color:var(--text-primary)}.day-chip.active{border-color:var(--primary-color);background:var(--primary-light);color:var(--primary-color)}.schedule-bulk-fields{display:grid;grid-template-columns:.9fr .9fr 1.6fr auto;gap:.5rem;align-items:end}@media (max-width: 720px){.schedule-bulk-fields{grid-template-columns:1fr 1fr}.schedule-bulk-fields .schedule-field-topic,.schedule-bulk-fields .btn{grid-column:1 / -1}}.schedule-simple{padding:.85rem;border:1px dashed var(--border-color);border-radius:var(--radius);background:var(--bg-color, #f9fafb)}.schedule-simple .schedule-bulk-fields{grid-template-columns:.9fr .9fr 1.6fr}@media (max-width: 720px){.schedule-simple .schedule-bulk-fields{grid-template-columns:1fr 1fr}}.student-card.selectable{cursor:pointer;align-items:center}.student-card.selectable input{width:18px;height:18px}@media (max-width: 720px){.schedule-row{grid-template-columns:1fr 1fr}.schedule-field-topic{grid-column:1 / -1}.schedule-remove{grid-column:1 / -1;width:100%}}.modal-overlay{padding:1.5rem}.modal{max-width:520px}.modal.teacher-modal{max-width:600px}.modal.action-modal{max-width:560px;padding:0}.modal.institute-modal{max-width:800px}.modal.delete-modal{max-width:440px}.modal .modal-header{padding:1.25rem 1.5rem;gap:1rem;align-items:flex-start}.modal .modal-header h2{font-size:1.125rem;font-weight:600;line-height:1.4}.modal .modal-header .eyebrow{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--primary-color)}.modal .modal-header .muted-text{font-size:.85rem;color:var(--text-secondary)}.modal .modal-body,.modal .modal-form,.modal .action-modal-body,.modal .teacher-view-content,.modal .quick-action-content,.modal .delete-modal-content{padding:1.5rem}.modal .modal-form,.modal .action-modal-body{display:flex;flex-direction:column;gap:1.1rem}.modal .form-group{display:flex;flex-direction:column;gap:.4rem;margin:0}.modal input:not([type=checkbox]):not([type=radio]),.modal select,.modal textarea{width:100%;padding:.6rem .8rem;font-size:.9rem;font-family:inherit;line-height:1.4;color:var(--text-primary);background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius);transition:border-color .2s ease,box-shadow .2s ease}.modal input:not([type=checkbox]):not([type=radio]):focus,.modal select:focus,.modal textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0ea5e926}.modal textarea{min-height:90px;resize:vertical}.modal label{font-size:.85rem;font-weight:500;color:var(--text-primary);margin:0}.modal .form-hint{font-size:.75rem;color:var(--text-muted)}.modal .modal-actions,.modal .modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;margin:0}.modal .modal-form>.modal-actions,.modal .teacher-view-content>.modal-actions,.modal .quick-action-content>.modal-actions{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border-light)}.modal>.modal-actions,.modal>.modal-footer{padding:1.25rem 1.5rem;border-top:1px solid var(--border-light)}.modal .modal-actions .btn,.modal .modal-footer .btn{white-space:nowrap}@media (max-width: 480px){.modal-overlay{padding:1rem}.modal .modal-header,.modal .modal-body,.modal .modal-form,.modal .action-modal-body,.modal .teacher-view-content,.modal .quick-action-content,.modal .delete-modal-content{padding:1.25rem}.modal>.modal-actions,.modal>.modal-footer{padding:1rem 1.25rem}.modal .modal-actions,.modal .modal-footer{flex-wrap:wrap}}.modal.join-success-modal{max-width:400px;text-align:center;overflow:visible;animation:join-success-pop .22s cubic-bezier(.16,1,.3,1)}@keyframes join-success-pop{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.join-success-body{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2.25rem 2rem 1.75rem}.join-success-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;color:var(--success-color);background:#10b9811f;margin-bottom:.25rem}.join-success-icon svg{width:40px;height:40px;stroke-width:2.25}.join-success-body h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.join-success-body .muted-text{margin:0;max-width:30ch;font-size:.925rem;line-height:1.5;color:var(--text-secondary)}.join-success-body .form-actions{margin-top:.75rem;width:100%}.join-success-body .form-actions .btn{min-width:140px}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#fff,#eee);min-height:100vh;height:100%;color:#333}#root{min-height:100vh;height:100%;display:flex;flex-direction:column}
