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;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh}.login-box{background:#fff;border-radius:10px;box-shadow:0 10px 25px #0003;max-width:400px;padding:2rem;width:100%}.login-box h2{color:#333;margin:0 0 .5rem;text-align:center}.login-box h3{color:#666;font-weight:400;margin:0 0 1.5rem;text-align:center}.form-group{margin-bottom:1.5rem}.form-group input,.form-group select{border:1px solid #ddd;border-radius:5px;box-sizing:border-box;font-size:1rem;padding:.75rem}.form-group input:focus,.form-group select:focus{border-color:#667eea}.login-box button{background:#667eea;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem;transition:background .3s;width:100%}.login-box button:hover:not(:disabled){background:#5568d3}.login-box button:disabled{background:#ccc;cursor:not-allowed}.error-message{border-radius:5px;color:#e74c3c;margin-bottom:1rem;padding:.5rem;text-align:center}.modal-overlay{background:#00000080}.modal{background:#fff;border-radius:8px;max-width:500px;padding:1.5rem;width:90%}.modal-list{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:1fr;margin:1rem 0}.modal-item{background:#f5f5f5;border:1px solid #ddd;border-radius:6px;cursor:pointer;padding:.75rem 1rem;text-align:left}.modal-item:hover{background:#eee}.modal-close{background:#999;border-radius:5px;color:#fff;padding:.5rem 1rem}.bo-layout{background:#f5f5f5;display:flex;flex-direction:column;min-height:100vh}.bo-header{align-items:center;background:#3498db;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;padding:1rem 2rem}.bo-header,.bo-header h1{color:var(--text-primary)}.bo-header h1{font-size:1.25rem;font-weight:600;margin:0}.header-right{align-items:center;display:flex;gap:1rem}.user-dropdown-container{position:relative}.user-btn{align-items:center;background-color:var(--bg-light);border:1px solid #e5e7eb;border-radius:50%;color:var(--text-primary);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s;width:40px}.user-btn:hover{background-color:#f3f4f6;color:var(--primary-color)}.user-dropdown-menu{animation:slideDown .2s ease-out;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;inset-inline-end:0;margin-top:.5rem;overflow:hidden;position:absolute;top:100%;width:240px;z-index:1000}.user-dropdown-header{background-color:var(--bg-light);border-bottom:1px solid #e5e7eb;padding:1rem}.user-name{color:var(--text-primary);display:block;font-size:.95rem;font-weight:600}.user-role{color:var(--text-secondary);display:block;font-size:.75rem;margin-top:.25rem}.user-dropdown-item{align-items:center;background:#fff;border:none;color:var(--text-primary);cursor:pointer;display:flex;font-size:.9rem;gap:.75rem;padding:.75rem 1rem;text-align:left;text-decoration:none;transition:background .2s;width:100%}.user-dropdown-item:hover{background:#f9fafb;color:var(--primary-color)}.user-dropdown-item.danger{border-top:1px solid #e5e7eb;color:var(--danger-color)}.user-dropdown-item.danger:hover{background:#fef2f2;color:var(--danger-hover)}.language-submenu{animation:slideDown .2s ease-out;background:#f9fafb;border-bottom:1px solid #e5e7eb;border-top:1px solid #e5e7eb}.language-submenu-item{align-items:center;background:#f9fafb;border:none;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.85rem;gap:.75rem;padding:.6rem 1rem .6rem 2.5rem;text-align:left;text-decoration:none;transition:all .2s;width:100%}.language-submenu-item:hover{background:#f3f4f6;color:var(--primary-color)}.language-submenu-item.active{background:#eff6ff;color:var(--primary-color);font-weight:600}.chevron-icon{margin-left:auto;transition:transform .2s}.chevron-icon.open{transform:rotate(180deg)}.bo-nav{background:#fff;box-shadow:0 2px 4px #0000001a;display:flex;flex-wrap:wrap;gap:2rem;padding:0 2rem}.bo-nav a{border-bottom:3px solid #0000;color:#666;padding:1rem 0;text-decoration:none;transition:all .3s}.bo-nav a.active,.bo-nav a:hover{border-bottom-color:#3498db;color:#3498db}.bo-content{flex:1 1;padding:2rem}.bo-nav-items{align-items:center;display:flex;flex-wrap:wrap;gap:2rem;width:100%}.mobile-logout-link,.mobile-nav-item,.mobile-nav-item-container{display:none}.hamburger-btn{background:#0000;border:none;cursor:pointer;display:none;padding:.5rem;z-index:1001}.hamburger-btn span{background:#fff;border-radius:2px;display:block;height:3px;margin:5px 0;transition:all .3s ease;width:25px}.hamburger-btn.active span:first-child{transform:rotate(45deg) translate(5px,5px)}.hamburger-btn.active span:nth-child(2){opacity:0}.hamburger-btn.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.bo-mobile-menu-overlay{background:#00000080;display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:999}.bo-mobile-menu-overlay.active{animation:fadeIn .2s ease-out;display:block}.mobile-header,.mobile-menu-header{display:none}@media (max-width:768px){.bo-header.desktop-only{display:none}.mobile-header{align-items:center;background:#3498db;display:flex;padding:.75rem 1rem;position:-webkit-sticky;position:sticky;top:0;z-index:1001}.bo-nav,.hamburger-btn{display:block}.bo-nav{box-shadow:2px 0 10px #0000001a;height:100vh;left:-380px;overflow-y:auto;padding:0;position:fixed;top:0;transition:left .3s ease;width:280px;z-index:1002}.bo-nav-items{align-items:stretch;display:flex;gap:0;width:100%}.mobile-logout-link,.mobile-nav-item-container{display:block;width:100%}.bo-nav.open{left:0}.mobile-menu-header{background:linear-gradient(135deg,#3498db,#2980b9);border-bottom:1px solid #fff3;color:#fff;display:block;padding:1.5rem 1rem}.mobile-school-name{font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.mobile-user-name{font-size:.9rem;opacity:.9}.bo-nav a,.mobile-nav-item{background:#fff;border:none;border-bottom:1px solid #eee;border-left:3px solid #0000;color:#666;cursor:pointer;display:block;font-family:inherit;font-size:1rem;padding:1rem;text-align:left;text-decoration:none;width:100%}.bo-nav a.active,.bo-nav a:hover,.mobile-nav-item:hover{background:#f8f9fa;border-bottom-color:#eee;border-left-color:#3498db;color:#3498db}.mobile-nav-item{align-items:center;display:flex;justify-content:space-between}.mobile-nav-item .arrow{font-size:.8rem;transition:transform .3s}.mobile-nav-item.open .arrow{transform:rotate(180deg)}.mobile-sub-nav{background:#f8f9fa;border-bottom:1px solid #eee}.mobile-sub-item{background:#0000;border:none;color:#666;cursor:pointer;display:block;font-family:inherit;font-size:.95rem;padding:.8rem 1rem .8rem 2rem;text-align:left;width:100%}.mobile-sub-item.active,.mobile-sub-item:hover{background:#f0f0f0;color:#3498db}.mobile-logout-link{color:#e74c3c!important}.mobile-logout-link:hover{background:#fdf2f2!important;border-left-color:#e74c3c!important}.bo-content{padding:0}[dir=rtl] .mobile-header{flex-direction:row-reverse}[dir=rtl] .bo-nav{box-shadow:-2px 0 10px #0000001a;left:auto;right:-380px;transition:right .3s ease}[dir=rtl] .bo-nav.open{left:auto;right:0}[dir=rtl] .bo-nav a,[dir=rtl] .mobile-nav-item{border-left:none;border-right:3px solid #0000;text-align:right}[dir=rtl] .bo-nav a.active,[dir=rtl] .bo-nav a:hover,[dir=rtl] .mobile-nav-item:hover{border-left-color:#0000;border-right-color:#3498db}[dir=rtl] .mobile-sub-item{padding:.8rem 2rem .8rem 1rem;text-align:right}[dir=rtl] .mobile-logout-link:hover{border-left-color:#0000!important;border-right-color:#e74c3c!important}}@media (max-width:480px){.mobile-header{padding:.6rem .8rem}.mobile-school-name{font-size:1rem}.mobile-user-name{font-size:.85rem}}.btn-bills,.btn-bulletin,.btn-delete,.btn-delete-small,.btn-edit,.btn-edit-small,.btn-password,.btn-reset-password,.btn-scores,.btn-view{align-items:center;border:none;border-radius:4px;cursor:pointer;display:inline-flex;font-size:12px;justify-content:center;margin-right:8px;padding:6px 12px;transition:all .2s ease}.btn-edit,.btn-edit-small{background:#3498db;color:#fff}.btn-edit-small:hover:not(:disabled),.btn-edit:hover:not(:disabled){background:#2980b9;transform:translateY(-1px)}.btn-delete,.btn-delete-small{background:#e74c3c;color:#fff}.btn-delete-small:hover:not(:disabled),.btn-delete:hover:not(:disabled){background:#c0392b;transform:translateY(-1px)}.btn-password,.btn-reset-password{background:#f39c12;color:#fff}.btn-password:hover:not(:disabled),.btn-reset-password:hover:not(:disabled){background:#e67e22;transform:translateY(-1px)}.btn-bills{background-color:#4caf50;color:#fff}.btn-bills:hover:not(:disabled){background-color:#45a049;transform:translateY(-1px)}.btn-scores{background:#9b59b6;color:#fff}.btn-scores:hover:not(:disabled){background:#8e44ad;transform:translateY(-1px)}.btn-bulletin{background:#16a085;color:#fff}.btn-bulletin:hover:not(:disabled){background:#138d75;transform:translateY(-1px)}.btn-view{background:#34495e;color:#fff}.btn-view:hover:not(:disabled){background:#2c3e50;transform:translateY(-1px)}.btn-bills:disabled,.btn-bulletin:disabled,.btn-delete-small:disabled,.btn-delete:disabled,.btn-edit-small:disabled,.btn-edit:disabled,.btn-password:disabled,.btn-reset-password:disabled,.btn-scores:disabled,.btn-view:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-bills[title],.btn-bulletin[title],.btn-delete-small[title],.btn-delete[title],.btn-edit-small[title],.btn-edit[title],.btn-password[title],.btn-reset-password[title],.btn-scores[title],.btn-view[title]{position:relative}.bo-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;max-height:calc(100vh - 300px);min-height:400px;overflow:hidden}.bo-table-wrapper{flex:1 1;max-height:100%;overflow-x:auto;overflow-y:auto;position:relative}.bo-table-wrapper::-webkit-scrollbar{height:8px;width:8px}.bo-table-wrapper::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.bo-table-wrapper::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.bo-table-wrapper::-webkit-scrollbar-thumb:hover{background:#555}.bo-table{border-collapse:collapse;width:100%}.bo-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}.bo-table th{color:#f9f9f9;font-weight:600;padding:12px;text-align:start}.bo-table td,.bo-table th{border-bottom:1px solid #e0e0e0;font-size:14px}.bo-table td{color:#2c3e50;padding:12px 14px}.bo-table tbody tr:hover{background-color:#f9f9f9}.bo-table tbody tr:nth-child(2n){background:#fafafa}.bo-table tbody tr:nth-child(2n):hover{background:#f0f1f2}.bo-table tbody tr:last-child td{border-bottom:none}.table-info{background:#f8f9fa;border-top:1px solid #ecf0f1;color:#7f8c8d;padding:12px;text-align:center}.empty-state{color:#999;padding:40px}.scroll-trigger{background:#fff;min-height:50px;padding:20px}.no-data-message,.scroll-trigger{align-items:center;display:flex;justify-content:center}.no-data-message{color:#7f8c8d;padding:40px}.loading-more{color:#667eea;font-weight:500}.no-more-data{color:#7f8c8d;font-style:italic}.status-badge{border-radius:4px;display:inline-block}.status-badge.enabled{background-color:#e8f5e9;color:#2e7d32}.status-badge.disabled{background-color:#ffebee;color:#c62828}.modal-content{border-radius:12px;box-shadow:0 10px 25px #0003;display:flex;flex-direction:column;overflow:hidden;padding:0}.modal-header{background-color:#fff;border-bottom:1px solid #eee;flex-shrink:0;padding:20px 24px}.modal-header h3{color:#1a1a1a;font-size:1.25rem;font-weight:600}.btn-close-modal{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:background-color .2s;width:32px}.btn-close-modal:hover{background-color:#f0f0f0;color:#333}.modal-body{flex:1 1;overflow-y:auto;padding:24px}.modal-footer{background-color:#fff;border-top:1px solid #eee;flex-shrink:0;padding:20px 24px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.form-group{gap:15px}.form-field label{color:#555;margin-bottom:5px}.form-field input[type=date],.form-field input[type=email],.form-field input[type=number],.form-field input[type=password],.form-field input[type=text],.form-field select,.form-field textarea,.form-group input[type=date],.form-group input[type=email],.form-group input[type=number],.form-group input[type=password],.form-group input[type=text],.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:14px;padding:8px 12px;width:100%}.form-field input[type=date]:focus,.form-field input[type=email]:focus,.form-field input[type=number]:focus,.form-field input[type=password]:focus,.form-field input[type=text]:focus,.form-field select:focus,.form-field textarea:focus,.form-group input[type=date]:focus,.form-group input[type=email]:focus,.form-group input[type=number]:focus,.form-group input[type=password]:focus,.form-group input[type=text]:focus,.form-group select:focus,.form-group textarea:focus{border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a;outline:none}.form-field input[type=checkbox],.form-group input[type=checkbox]{cursor:pointer;margin-right:8px}.form-field textarea,.form-group textarea{font-family:inherit;resize:vertical}.form-actions{display:flex;gap:12px}.btn-cancel,.btn-primary,.btn-save,.btn-secondary{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:opacity .3s,background-color .2s}.btn-primary,.btn-save{background-color:#2196f3;color:#fff}.btn-primary:hover,.btn-save:hover{background-color:#1976d2;opacity:.9}.btn-cancel,.btn-secondary{background-color:#9e9e9e;color:#fff}.btn-cancel:hover,.btn-secondary:hover{background-color:#757575;opacity:.9}.btn-cancel-small,.btn-save-small{border:none;border-radius:4px;cursor:pointer;font-size:12px;margin-right:4px;padding:4px 8px}.btn-save-small{background-color:#2196f3;color:#fff}.btn-cancel-small{background-color:#757575;color:#fff}.form-hint{color:#666;display:block;font-size:12px;font-style:italic;margin-top:4px}.error-message{background-color:#ffebee;border-left:4px solid #c62828;color:#c62828}.bo-container{display:flex;flex-direction:column;gap:10px;height:100%;padding:24px}.header-left{align-items:center;display:flex;gap:12px}.btn-create{transition:background-color .3s}.btn-create:hover{background-color:#45a049}.bo-content-wrapper{display:flex;flex:1 1;gap:24px;overflow:hidden}.bo-sidebar{border-radius:8px;box-shadow:0 2px 8px #0000001a;flex-shrink:0;height:-webkit-fit-content;height:fit-content;max-height:calc(100vh - 200px);overflow-y:auto;padding:20px;width:280px}.sidebar-header{border-bottom:2px solid #ecf0f1;display:flex;flex-direction:column;gap:12px;margin-bottom:20px;padding-bottom:16px}.sidebar-header h3{color:#2c3e50;font-size:18px;margin:0}.sidebar-header-actions{display:flex;flex-wrap:wrap;gap:8px}.sidebar-body{display:flex;flex-direction:column;gap:16px}.btn-toggle-sidebar{background:#ecf0f1;border:1px solid #ddd;border-radius:4px;color:#2c3e50;cursor:pointer;font-size:16px;padding:8px 12px;transition:background .2s}.btn-toggle-sidebar:hover{background:#d5dbdb}[dir=rtl] .btn-toggle-sidebar{transform:scaleX(-1)}.bo-main-content{flex:1 1;min-width:0;transition:all .3s ease}.bo-main-content.full-width{flex:1 1 100%}.filter-group{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.filter-group label{color:#34495e;display:block;font-size:13px;font-weight:500}.filter-group input,.filter-group select{border:1px solid #ddd;border-radius:4px;font-size:13px;padding:8px}.filter-group input:focus,.filter-group select:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a;outline:none}.btn-deep-search{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px;flex:1 1;font-size:12px;font-weight:500;min-width:100px;padding:6px 12px;transition:opacity .2s}.btn-deep-search:hover{opacity:.9}.btn-clear-filters{background:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;flex:1 1;font-size:12px;font-weight:500;min-width:100px;padding:6px 12px;transition:background .2s}.btn-clear-filters:hover{background:#c0392b}.deep-search-indicator{background:#e8f5e9;border-left:3px solid #4caf50;border-radius:4px;color:#2e7d32;margin-bottom:16px;padding:8px 12px}.deep-search-indicator small{font-size:12px;font-weight:500}.loading{color:#666;font-size:16px;padding:40px;text-align:center}@media (max-width:768px){.bo-container{padding:16px}.bo-content-wrapper{flex-direction:column;gap:16px;overflow:auto}.bo-sidebar{max-height:none;padding:16px;width:90%}.bo-main-content{flex:1 1 auto;width:100%}.bo-header{align-items:stretch;flex-direction:column;gap:12px;margin-bottom:16px}.header-left{justify-content:space-between;width:100%}.btn-create{width:100%}.filter-group input,.filter-group select{font-size:16px;padding:10px}.sidebar-header-actions{width:100%}.btn-clear-filters,.btn-deep-search{flex:1 1;padding:10px}}.input-group{display:flex;gap:8px}.input-group input{flex:1 1}.btn-add{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;padding:8px 16px;white-space:nowrap}.btn-add:hover{opacity:.9}.tags-display,.tags-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tag{align-items:center;display:flex;font-size:13px;gap:6px;padding:6px 10px}.tag,.tag-small{background-color:#e3f2fd;border-radius:4px;color:#1976d2}.tag-small{font-size:12px;padding:4px 8px}.btn-remove-tag{background-color:initial;border:none;color:#1976d2;cursor:pointer;font-size:18px;font-weight:700;line-height:1;padding:0}.btn-remove-tag:hover{color:#d32f2f}.table-actions{align-items:center;display:flex;gap:8px}.mobile-actions-trigger{background:#0000;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:none;padding:8px;transition:background .2s}.mobile-actions-trigger:hover{background:#f1f5f9;color:#334155}.mobile-actions-menu{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;margin-top:4px;min-width:160px;overflow:hidden;position:absolute;right:0;top:100%;z-index:50}.mobile-action-item{align-items:center;background:#0000;border:none;color:#334155;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:10px 16px;text-align:left;transition:background .2s;width:100%}.mobile-action-item:hover{background:#f8fafc}.mobile-action-item.delete{color:#ef4444}.mobile-action-item.delete:hover{background:#fef2f2}.actions-menu-overlay{background:#0000;bottom:0;left:0;position:fixed;right:0;top:0;z-index:40}@media (max-width:768px){.desktop-actions{display:none}.mobile-actions-trigger{align-items:center;display:flex;justify-content:center}.table-actions{justify-content:flex-end;position:relative}}.scores-container{padding:24px}.scores-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.scores-header h2{color:#2c3e50;margin:0}.btn-insert-scores{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:transform .2s,box-shadow .2s}.btn-insert-scores:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.scores-info{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:24px}.scores-info p{color:#7f8c8d;line-height:1.6;margin:0}.scores-modal{max-height:90vh;max-width:800px;overflow-y:auto;width:90%}.modal-header{border-bottom:2px solid #ecf0f1;margin-bottom:24px;padding-bottom:16px}.modal-header h3{color:#2c3e50;margin:0}.btn-close{align-items:center;background:none;border:none;border-radius:4px;color:#7f8c8d;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:background .2s;width:32px}.btn-close:hover{background:#ecf0f1;color:#2c3e50}.modal-body{margin-bottom:24px}.form-field{margin-bottom:20px}.form-field label{display:block;margin-bottom:6px}.form-field input[type=date],.form-field select{width:100%}.scores-section{background:#f8f9fa;border:1px solid #ecf0f1;border-radius:8px;margin-top:24px;padding:20px}.scores-header-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.scores-header-row h4{color:#2c3e50;margin:0}.btn-add-row{background:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:background .2s}.btn-add-row:hover:not(:disabled){background:#2980b9}.btn-add-row:disabled{cursor:not-allowed;opacity:.5}.score-row{grid-gap:12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;display:grid;gap:12px;grid-template-columns:1fr 150px 40px;margin-bottom:12px;padding:12px}.score-row-field{display:flex;flex-direction:column;gap:4px}.score-row-field label{color:#7f8c8d;font-size:12px;font-weight:500}.score-row-field input,.score-row-field select{border:1px solid #ddd;border-radius:4px;font-size:13px;padding:8px}.score-row-field.score-input input{width:100%}.btn-remove-row{align-items:center;background:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;margin-top:20px;transition:background .2s;width:32px}.btn-remove-row:hover:not(:disabled){background:#c0392b}.btn-remove-row:disabled{cursor:not-allowed;opacity:.5}.no-rows-message{padding:40px 20px;text-align:center}.no-rows-message p{color:#7f8c8d;margin-bottom:16px}.btn-add-row-large{background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:background .2s}.btn-add-row-large:hover:not(:disabled){background:#2980b9}.btn-add-row-large:disabled{cursor:not-allowed;opacity:.5}.modal-footer{border-top:1px solid #ecf0f1;gap:12px;justify-content:flex-end;padding-top:16px}.btn-cancel,.btn-save{border-radius:4px;padding:10px 20px;transition:opacity .2s}.btn-cancel:hover:not(:disabled){opacity:.9}.btn-next,.btn-save{background:#27ae60;color:#fff}.btn-next:hover:not(:disabled),.btn-save:hover:not(:disabled){opacity:.9}.btn-next{background:linear-gradient(135deg,#667eea,#764ba2)}.btn-cancel:disabled,.btn-next:disabled,.btn-save:disabled{cursor:not-allowed;opacity:.5}.course-input-group{align-items:center;display:flex;gap:8px}.course-input-group select{flex:1 1}.btn-add-course{background:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;padding:8px 16px;white-space:nowrap}.btn-add-course:hover{background:#45a049}.courses-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.course-badge{align-items:center;background:#ecf0f1;border-radius:16px;color:#2c3e50;display:inline-flex;font-size:13px;gap:6px;padding:6px 12px}.btn-remove-course{align-items:center;background:#e74c3c;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:18px;justify-content:center;line-height:1;padding:0;width:18px}.btn-remove-course:hover{background:#c0392b}.courses-display{display:flex;flex-wrap:wrap;gap:6px}.course-badge-small{background:#ecf0f1;border-radius:12px;color:#2c3e50;font-size:12px;padding:4px 10px}.form-card{border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:24px;padding:24px}.form-card h3{color:#2c3e50;margin-bottom:20px;margin-top:0}.password-hint{margin-top:8px}.password-hint .hint-text{color:#7f8c8d;font-size:12px;line-height:1.4}:root{--danger-color:#ef4444;--danger-hover:#dc2626}.bo-container{background-color:#f9fafb;background-color:var(--bg-light);font-family:Inter,sans-serif;min-height:100vh}.table-container{background:#fff;background:var(--white);border:1px solid #e5e7eb;border-radius:1rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;margin-top:1.5rem;overflow:hidden}table{border-collapse:collapse;width:100%}thead{background-color:#f9fafb;background-color:var(--bg-light);border-bottom:1px solid #e5e7eb}th{color:#4b5563;color:var(--text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-align:left;text-transform:uppercase}td,th{padding:1rem 1.5rem}td{border-bottom:1px solid #f3f4f6;color:#1f2937;color:var(--text-primary);font-size:.875rem}.student-row{cursor:pointer;transition:background-color .2s}.student-row:hover{background-color:#f9fafb}.student-row.selected{background-color:#e0e7ff!important}.form-card{background:#fff;background:var(--white);border:1px solid #e5e7eb;border-radius:1rem;box-shadow:0 10px 15px -3px #0000001a;margin-bottom:2rem;padding:2rem}.form-header h3{color:#1f2937;color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:1.5rem}.form-group label{color:#4b5563;color:var(--text-secondary);font-size:.875rem;margin-bottom:.5rem}.form-group input[type=date],.form-group input[type=text],.form-group select{border:1px solid #d1d5db;border-radius:.5rem;color:#1f2937;color:var(--text-primary);font-size:.875rem;padding:.625rem .875rem;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#6366f1;border-color:var(--primary-color);box-shadow:0 0 0 3px #6366f11a}.btn-create,.btn-primary{background-color:#6366f1;background-color:var(--primary-color);border:none;border-radius:.5rem;box-shadow:0 1px 2px 0 #0000000d;color:#fff;color:var(--white);cursor:pointer;font-weight:500;padding:.625rem 1.25rem;transition:all .2s}.btn-create:hover,.btn-primary:hover{background-color:#4f46e5;background-color:var(--primary-hover);box-shadow:0 4px 6px -1px #6366f133;transform:translateY(-1px)}.btn-secondary{border:1px solid #d1d5db;padding:.625rem 1.25rem;transition:all .2s}.btn-secondary:hover{border-color:#9ca3af}.bo-sidebar{background:#fff;background:var(--white);border-right:1px solid #e5e7eb;box-shadow:4px 0 24px #00000005}.sidebar-header h3{color:#1f2937;color:var(--text-primary);font-weight:600}.btn-deep-search{background-color:#6366f1;background-color:var(--primary-color);border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:background-color .2s}.btn-deep-search:hover{background-color:#4f46e5;background-color:var(--primary-hover)}.password-hint{margin-top:.75rem}.password-hint .hint-text{color:#4b5563;color:var(--text-secondary);font-size:.75rem;font-style:italic}.score-insert-container{margin:0 auto;max-width:1400px;padding:24px}.score-insert-header{align-items:flex-start;border-bottom:2px solid #ecf0f1;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.score-insert-header h2{color:#2c3e50;margin:0 0 12px}.score-insert-info{color:#7f8c8d;display:flex;flex-wrap:wrap;font-size:14px;gap:24px}.score-insert-info span{display:flex;gap:6px}.score-insert-info strong{color:#2c3e50}.score-insert-actions{display:flex;gap:12px}.btn-cancel,.btn-save{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:transform .2s,box-shadow .2s}.btn-cancel{background:#95a5a6;color:#fff}.btn-cancel:hover:not(:disabled){box-shadow:0 2px 8px #95a5a666;transform:translateY(-1px)}.btn-save{background:linear-gradient(135deg,#27ae60,#229954);color:#fff}.btn-save:hover:not(:disabled){box-shadow:0 2px 8px #27ae6066;transform:translateY(-1px)}.btn-cancel:disabled,.btn-save:disabled{cursor:not-allowed;opacity:.5}.success-message{background:#d4edda;border-left:4px solid #28a745;border-radius:6px;color:#155724;margin-bottom:16px;padding:12px}.score-search-container{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;gap:16px;margin-bottom:16px;padding:16px}.score-search-input{border:2px solid #e0e0e0;border-radius:6px;flex:1 1;font-size:14px;padding:12px 16px;transition:border-color .2s,box-shadow .2s}.score-search-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.score-search-input::placeholder{color:#bbb}.score-search-input:disabled{background:#f5f5f5;cursor:not-allowed}.score-count{color:#7f8c8d;font-size:14px;font-weight:500;white-space:nowrap}.score-insert-table-wrapper{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.score-insert-table{border-collapse:collapse;width:100%}.score-insert-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.score-insert-table th{font-size:14px;font-weight:600;padding:14px 16px;text-align:left}.score-insert-table th:first-child{text-align:center;width:60px}.score-insert-table th:last-child{text-align:center;width:200px}.score-insert-table tbody tr{border-bottom:1px solid #ecf0f1;transition:background .2s}.score-insert-table tbody tr:hover{background:#f8f9fa}.score-insert-table tbody tr:last-child{border-bottom:none}.score-insert-table td{color:#2c3e50;padding:12px 16px}.score-insert-table td:first-child{color:#7f8c8d;font-weight:500;text-align:center}.score-input,.score-insert-table td:last-child{text-align:center}.score-input{border:2px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;transition:border-color .2s,box-shadow .2s;width:100px}.score-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.score-input:disabled{background:#f5f5f5;cursor:not-allowed}.no-results-message,.no-students-message{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:48px 24px;text-align:center}.no-results-message p,.no-students-message p{color:#7f8c8d;font-size:16px;margin:0}@media (max-width:768px){.score-insert-header{flex-direction:column;gap:16px}.score-insert-info{flex-direction:column;gap:8px}.score-insert-actions{width:100%}.btn-cancel,.btn-save{flex:1 1}}.bulletin-container{margin:0 auto;max-width:1200px;padding:24px}.bulletin-header{margin-bottom:24px}.bulletin-header h2{color:#2c3e50;margin:0}.bulletin-form-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px;padding:24px}.bulletin-form-card h3{color:#2c3e50;margin:0 0 20px}.form-row{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label{color:#34495e;font-size:14px;font-weight:500}.form-field input[type=date],.form-field select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:10px}.form-field input[type=date]:focus,.form-field select:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a;outline:none}.form-actions{margin-top:20px}.btn-generate{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 32px;transition:transform .2s,box-shadow .2s}.btn-generate:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.btn-generate:disabled{cursor:not-allowed;opacity:.5}.bulletin-result-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:32px}.bulletin-header-section{border-bottom:2px solid #ecf0f1;margin-bottom:24px;padding-bottom:16px}.bulletin-header-section h3{color:#2c3e50;font-size:24px;margin:0 0 16px}.student-info{display:flex;flex-wrap:wrap;gap:32px}.student-info p{color:#34495e;margin:0}.student-info strong{color:#2c3e50}.bulletin-courses-table{margin-bottom:24px;overflow-x:auto}.bulletin-courses-table table{border-collapse:collapse;width:100%}.bulletin-courses-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.bulletin-courses-table th{font-size:14px;font-weight:600;padding:12px;text-align:left}.bulletin-courses-table tbody tr{border-bottom:1px solid #ecf0f1}.bulletin-courses-table tbody tr:hover{background:#f8f9fa}.bulletin-courses-table td{color:#2c3e50;padding:12px}.score-pills{display:flex;flex-wrap:wrap;gap:6px}.score-pill{background:#e3f2fd;border-radius:12px;color:#1565c0;display:inline-block;font-size:12px;font-weight:500;padding:4px 10px}.average-cell{font-size:16px;text-align:center}.average-cell strong{color:#667eea}.bulletin-summary{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;margin-bottom:24px;padding:24px}.weighted-average{text-align:center}.weighted-average h4{font-size:18px;font-weight:500;margin:0 0 12px;opacity:.95}.average-value{font-size:48px;font-weight:700;letter-spacing:-1px}.bulletin-actions{text-align:center}.btn-print{background:#34495e;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 32px;transition:background .2s}.btn-print:hover{background:#2c3e50}.error-message{background:#fee;border-left:4px solid #e74c3c;border-radius:6px}@media print{.bulletin-container{padding:0}.bulletin-actions,.bulletin-form-card{display:none}.bulletin-result-card{box-shadow:none;padding:0}.bulletin-courses-table table{page-break-inside:avoid}}.bill-details{margin-bottom:24px}.detail-row{border-bottom:1px solid #f0f0f0;padding:8px 0}.detail-row label{color:#666;font-weight:600;width:150px}.detail-row span{flex:1 1}.payments-section{border-top:2px solid #eee;margin-top:24px;padding-top:24px}.payments-section h4{color:#333;margin:0 0 16px}.btn-add-payment{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-top:12px;padding:8px 16px}.btn-add-payment:hover{background-color:#45a049}.payments-table{border-collapse:collapse;font-size:14px;margin-bottom:12px;width:100%}.payments-table td,.payments-table th{border-bottom:1px solid #eee;padding:8px;text-align:left}.payments-table th{background-color:#f5f5f5;font-weight:600}.payments-table tbody tr:hover{background-color:#f9f9f9}.no-payments{color:#999;font-style:italic;padding:12px;text-align:center}.link-button{background:none;border:none;color:#2196f3;cursor:pointer;font-size:inherit;padding:0;text-decoration:underline}.link-button:hover{color:#1976d2}.payment-modal{max-width:500px}.profiles-container{padding:24px}.bo-header h2{color:#333;margin:0}.btn-create{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background-color .2s}.btn-create:hover:not(:disabled){background-color:#45a049}.btn-create:disabled{background-color:#ccc;cursor:not-allowed}.error-message{background-color:#fee;color:#c33;margin-bottom:16px}.profiles-table-container{margin-top:24px;overflow-x:auto}.profiles-table{background:#fff;border-collapse:initial;border-radius:8px;border-spacing:0;box-shadow:0 2px 8px #0000001a;overflow:hidden;width:100%}.profiles-table thead{background:linear-gradient(135deg,#667eea,#764ba2)}.profiles-table th{border-bottom:none;color:#fff;font-size:14px;font-weight:600;letter-spacing:.5px;padding:16px 20px;text-align:start;text-transform:uppercase}.profiles-table th:first-child{border-top-left-radius:8px}.profiles-table th:last-child{border-top-right-radius:8px}[dir=rtl] .profiles-table th:first-child{border-top-left-radius:0;border-top-right-radius:8px}[dir=rtl] .profiles-table th:last-child{border-top-left-radius:8px;border-top-right-radius:0}.profiles-table td{border-bottom:1px solid #f0f0f0;color:#333;font-size:14px;padding:16px 20px}.profiles-table tbody tr{transition:background-color .2s ease}.profiles-table tbody tr:hover{background-color:#f8f9ff}.profiles-table tbody tr:last-child td{border-bottom:none}.profiles-table tbody tr:nth-child(2n){background-color:#fafafa}.profiles-table tbody tr:nth-child(2n):hover{background-color:#f8f9ff}.rights-list{display:flex;flex-wrap:wrap;gap:6px}.right-badge{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:6px;box-shadow:0 1px 3px #0000001a;color:#1565c0;display:inline-block;font-size:11px;font-weight:600;margin:2px;padding:6px 12px}.no-rights{color:#999;font-style:italic}.btn-edit{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;box-shadow:0 2px 4px #667eea4d;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s ease}.btn-edit:hover:not(:disabled){background:linear-gradient(135deg,#5568d3,#6a3f8f);box-shadow:0 4px 8px #667eea66;transform:translateY(-1px)}.btn-edit:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.form-group{gap:8px}.form-group label{color:#333}.form-group input[type=text]{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px}.rights-groups-container{background-color:initial;border:none;display:flex;flex-direction:column;gap:12px;overflow-x:hidden;overflow-y:visible;padding:4px}.rights-group{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease}.rights-group:hover{border-color:#b0b0b0;box-shadow:0 2px 8px #0000000d}.rights-group-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #0000;cursor:pointer;display:flex;gap:12px;padding:14px 16px;transition:all .2s ease;-webkit-user-select:none;user-select:none}.rights-group-header:hover{background:#f1f3f5}.rights-group-header[aria-expanded=true]{background:#fff;border-bottom:1px solid #e0e0e0}.collapse-icon{align-items:center;background:#e9ecef;border-radius:50%;color:#666;display:flex;font-size:10px;height:20px;justify-content:center;transition:transform .2s ease;width:20px}.rights-group-title{color:#333;flex:1 1;font-size:14px;font-weight:600}.rights-group-content{grid-gap:12px;animation:slideDown .2s ease-out;background:#fff;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));padding:16px}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.right-checkbox{align-items:center;background-color:#fff;border:1px solid #eee;border-radius:6px;cursor:pointer;display:flex!important;font-size:13px;gap:10px;padding:8px 12px;transition:all .2s ease}.right-checkbox:hover{background-color:#f0f7ff;border-color:#1976d2}.right-checkbox input[type=checkbox]{accent-color:#1976d2;cursor:pointer;flex-shrink:0;height:16px;margin:0;width:16px}.btn-primary{background-color:#4caf50;border-radius:4px;padding:8px 16px;transition:background-color .2s}.btn-primary:hover{background-color:#45a049}.btn-secondary{background-color:#757575;border-radius:4px}.btn-secondary:hover{background-color:#616161}.btn-password{background-color:#9c27b0;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-right:8px;padding:6px 12px;transition:background-color .2s}.btn-password:hover{background-color:#7b1fa2}.administration-container{padding:24px}.administration-header{margin-bottom:24px}.administration-header h2{color:#333;margin:0}.administration-tabs{border-bottom:2px solid #e0e0e0;display:flex;gap:8px;margin-bottom:24px}.tab-button{background:none;border:none;border-bottom:2px solid #0000;color:#666;cursor:pointer;font-size:14px;font-weight:500;margin-bottom:-2px;padding:12px 24px;transition:all .2s}.tab-button:hover{color:#1976d2}.tab-button.active{border-bottom-color:#1976d2;color:#1976d2}.tab-content{min-height:400px}.timetable-container{background:linear-gradient(135deg,#f7f9fc,#eef2f7);box-sizing:border-box;margin:0 auto;max-width:1600px;min-height:calc(100vh - 64px);padding:24px 32px}.timetable-header{align-items:flex-end;border-bottom:1px solid #0000000d;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px;padding-bottom:12px}.timetable-header h1{color:#111827;font-size:26px;font-weight:600;letter-spacing:.02em;margin:0}.timetable-controls{align-items:center;display:flex;gap:12px}.class-selector{background-color:#fff;border:1px solid #d1d5db;border-radius:999px;box-shadow:0 1px 2px #0f172a0d;color:#111827;font-size:14px;min-width:220px;padding:8px 12px;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.class-selector:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f140;outline:none}.btn-primary{align-items:center;background:linear-gradient(135deg,#4f46e5,#6366f1 50%,#8b5cf6);border:none;border-radius:999px;box-shadow:0 8px 16px #4f46e540;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:9px 18px;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.btn-primary:hover:not(:disabled){box-shadow:0 12px 20px #4f46e54d;opacity:.92;transform:translateY(-1px)}.btn-primary:disabled{background:#d1d5db;box-shadow:none;cursor:not-allowed}.btn-secondary{background-color:#6c757d;border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px}.btn-secondary:hover{background-color:#5a6268}.btn-danger{background-color:#dc3545;border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.btn-danger:hover{background-color:#c82333}.btn-info{align-items:center;background-color:#17a2b8;border:none;border-radius:999px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:background-color .2s}.btn-info:hover{background-color:#138496}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;margin-bottom:20px;padding:12px}.calendar-container{background:#fff;border:1px solid #94a3b859;border-radius:8px;box-shadow:0 15px 35px #0f172a1f;margin-top:16px;padding:18px 20px 22px}.fc{font-family:inherit}.fc-theme-standard td,.fc-theme-standard th{border-color:#e5e7eb}.fc-theme-standard .fc-scrollgrid{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.fc .fc-col-header-cell{background:linear-gradient(135deg,#eef2ff,#e0f2fe);color:#4b5563;font-size:14px;font-weight:600;letter-spacing:.06em;padding:10px 4px;text-transform:uppercase}.fc .fc-col-header-cell-cushion{padding:10px 4px}.fc .fc-timegrid-slot{height:45px}.fc .fc-timegrid-slot-minor{border-top-color:#f0f0f0;border-top-style:dotted}.fc .fc-timegrid-slot-label{color:#6b7280;font-size:12px;padding:0 5px}.fc .fc-timegrid-now-indicator-line{border-color:#f97316;border-width:2px}.fc .fc-timegrid-now-indicator-arrow{border-color:#f97316}.fc-day-today{background-color:#eff6ff!important}.fc-event{border:none!important;border-radius:10px!important;cursor:pointer!important;overflow:hidden;transition:all .2s ease-in-out!important}.fc-event:hover{box-shadow:0 4px 12px #00000026!important;transform:translateY(-1px)!important}.fc-event.next-lesson{box-shadow:0 2px 8px #00000040,inset 0 0 0 2px #ff8c00cc!important}.fc-event-main,.fc-timegrid-event .fc-event-main{padding:4px 6px}.fc-event-time{display:none!important}.fc-event-content-custom{align-items:center;display:flex;flex-direction:column;gap:2px;height:100%;justify-content:center;padding:2px;position:relative;text-align:center;width:100%}.next-badge{background-color:#ff8c00;border-radius:3px;box-shadow:0 1px 3px #0003;color:#fff;font-size:9px;font-weight:700;padding:2px 5px;position:absolute;right:2px;top:2px}[dir=rtl] .next-badge{left:2px;right:auto}.event-course-name{color:#1a1a1a;font-size:13px;font-weight:600;line-height:1.2;margin-bottom:2px}.event-time{color:#4a4a4a;font-size:10px;font-weight:500;line-height:1.1}.event-duration{background-color:#fff6;border-radius:3px;color:#6a6a6a;font-size:9px;font-weight:500;margin-top:1px;padding:2px 6px}.event-room{color:#5a5a5a;font-size:9px;font-style:italic;margin-top:2px}.empty-state{color:#6b7280;padding:60px 20px;text-align:center}.empty-state p{font-size:16px;margin-bottom:20px}.modal-overlay{padding:20px;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-height:90vh;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:20px}.modal-header h2{color:#1a1a1a;font-size:20px;font-weight:600;margin:0}.modal-close{align-items:center;border-radius:4px;color:#6c757d;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;width:32px}.modal-close:hover{background-color:#f8f9fa}.modal-body{padding:20px}.form-group{margin-bottom:16px}.form-group label{color:#495057;display:block;font-size:14px;margin-bottom:6px}.form-group input,.form-group select{border:1px solid #ced4da;border-radius:4px;font-size:14px;padding:8px 12px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.teacher-input-group{align-items:center;display:flex;gap:8px}.teacher-input-group select{flex:1 1}.teacher-lock-btn{align-items:center;background-color:#f8f9fa;border:1px solid #ced4da;border-radius:4px;cursor:pointer;display:flex;font-size:16px;height:38px;justify-content:center;min-width:44px;padding:8px 12px;transition:all .2s}.teacher-lock-btn:hover{background-color:#e9ecef;border-color:#adb5bd}.locked-input{background-color:#f8f9fa;color:#495057;cursor:not-allowed;font-weight:500}.locked-input option{color:#212529}.teacher-auto-note{color:#6c757d;font-size:11px;font-style:italic;font-weight:400}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.duration-info{background-color:#e7f3ff;border:1px solid #b8daff;border-radius:4px;color:#004085;font-size:13px;margin-bottom:16px;padding:10px;text-align:center}.validation-results{background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin-top:20px;padding:16px}.validation-results h3{color:#856404;font-size:16px;margin:0 0 12px}.conflict-item{border-radius:4px;font-size:13px;margin-bottom:10px;padding:12px}.conflict-item.blocking{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.conflict-item.warning{background-color:#fff3cd;border:1px solid #ffc107;color:#856404}.conflict-type{font-weight:600}.conflict-message,.conflict-type{margin-bottom:4px}.conflict-info{font-size:11px;font-style:italic;opacity:.8}.validation-success{background-color:#d4edda;border:1px solid #c3e6cb;border-radius:4px;color:#155724;font-weight:500;margin-top:16px;padding:12px;text-align:center}.modal-footer{border-top:1px solid #dee2e6;display:flex;gap:10px;justify-content:space-between;padding:16px 20px}.modal-footer-left{align-items:center;display:flex}.modal-footer-right{display:flex;gap:10px;justify-content:flex-end}.lesson-detail{padding:10px 0}.detail-row{border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:12px 0}.detail-row:last-child{border-bottom:none}.detail-row strong{color:#495057;font-weight:600}.detail-row span{color:#212529}.student-info{background-color:#e7f3ff;border-radius:4px;color:#004085;font-weight:500;padding:8px 16px}.attendance-modal{max-width:700px}.attendance-subtitle{background:#f3f4f6;border-radius:4px;color:#6b7280;font-size:14px;margin-bottom:16px;padding:8px;text-align:center}.students-list{max-height:500px;overflow-y:auto}.attendance-table{border-collapse:collapse;width:100%}.attendance-table td,.attendance-table th{border-bottom:1px solid #e5e7eb;padding:12px;text-align:start}.attendance-table th{background-color:#f9fafb;color:#4b5563;font-weight:600;position:-webkit-sticky;position:sticky;top:0}.attendance-table tr:last-child td{border-bottom:none}.attendance-table tr:hover{background-color:#f9fafb}.attendance-table tr.absent-row{background-color:#fef2f2}.attendance-toggle{border:none;border-radius:999px;cursor:pointer;font-size:12px;font-weight:600;min-width:80px;padding:6px 12px;transition:all .2s}.attendance-toggle.present{background-color:#d1fae5;color:#065f46}.attendance-toggle.present:hover{background-color:#a7f3d0}.attendance-toggle.absent{background-color:#fee2e2;color:#991b1b}.attendance-toggle.absent:hover{background-color:#fecaca}@media (max-width:1200px){.grid-body,.grid-header{grid-template-columns:70px repeat(6,minmax(120px,1fr))}}@media (max-width:768px){.timetable-container{min-height:auto;padding:0}.timetable-header{align-items:stretch;flex-direction:column;gap:12px;margin-bottom:0;padding:16px}.timetable-header h1{font-size:20px;text-align:center}.timetable-controls{flex-direction:column;gap:10px}.class-selector{min-width:0;min-width:auto;width:100%}.btn-primary{justify-content:center;width:100%}.calendar-container{border-left:none;border-radius:0;border-right:none;box-shadow:none;margin-top:0;padding:8px}.fc{min-width:600px}.calendar-container{-webkit-overflow-scrolling:touch;overflow-x:auto}.fc .fc-timegrid-slot{height:35px}.fc .fc-col-header-cell{font-size:11px;padding:8px 2px}.fc .fc-timegrid-slot-label{font-size:10px;padding:0 2px}.fc-event{border-radius:6px!important}.fc-event-main{padding:2px 4px}.modal-overlay{align-items:flex-end;padding:0}.modal-content{border-radius:16px 16px 0 0;max-height:90vh;max-width:100%}.modal-header{padding:16px}.modal-header h2{font-size:18px}.modal-body{padding:16px}.form-row{grid-template-columns:1fr}.modal-footer{flex-direction:column;gap:12px;padding:16px}.modal-footer-left,.modal-footer-right{flex-direction:column;gap:10px;width:100%}.modal-footer-right{margin-top:0}.modal-footer button{justify-content:center;width:100%}.lesson-block{font-size:11px}.attendance-modal{max-width:100%}.attendance-subtitle{font-size:12px;padding:6px}.students-list{max-height:350px}.attendance-table td,.attendance-table th{font-size:13px;padding:10px 8px}.attendance-toggle{font-size:11px;min-width:70px;padding:8px 10px}.validation-results{margin-top:12px;padding:12px}.conflict-item{font-size:12px;padding:10px}.duration-info{font-size:12px;padding:8px}}@media (max-width:480px){.timetable-header h1{font-size:18px}.btn-primary{font-size:13px;padding:10px 14px}.class-selector{font-size:13px;padding:10px 12px}.fc .fc-col-header-cell{font-size:10px;letter-spacing:0}.modal-header h2{font-size:16px}.form-group label{font-size:13px}.form-group input,.form-group select{font-size:13px;padding:10px}.attendance-table td,.attendance-table th{font-size:12px;padding:8px 6px}.attendance-toggle{font-size:10px;min-width:60px;padding:6px 8px}}.student-details-container{background-color:#f9fafb;display:flex;flex-direction:column;gap:24px;height:100%;overflow-y:auto;padding:24px}.student-details-header{align-items:center;display:flex;gap:16px}.btn-back{background:none;border:none;border-radius:50%;color:#6b7280;cursor:pointer;font-size:24px;padding:8px;transition:background-color .2s}.btn-back:hover{background-color:#e5e7eb;color:#374151}.student-details-header h1{color:#111827;font-size:24px;margin:0}.details-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr}@media (min-width:1024px){.details-grid{grid-template-columns:repeat(2,1fr)}.section-personal-info{grid-column:span 2}}.details-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.card-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:12px}.card-header h2{color:#374151;font-size:18px;font-weight:600;margin:0}.info-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.info-item{display:flex;flex-direction:column;gap:4px}.info-label{color:#6b7280;font-size:12px;font-weight:500;text-transform:uppercase}.info-value{color:#111827;font-size:16px;font-weight:500}.details-table{border-collapse:collapse;width:100%}.details-table th{background-color:#f9fafb;border-bottom:1px solid #e5e7eb;color:#6b7280;font-size:12px;font-weight:600;padding:12px;text-align:left}.details-table td{border-bottom:1px solid #f3f4f6;color:#374151;font-size:14px;padding:12px}.details-table tr:last-child td{border-bottom:none}.status-badge{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.status-partially_paid{background-color:#2196f3;color:#fff}.status-paid{background-color:#d1fae5;color:#065f46}.status-pending{background-color:#fef3c7;color:#92400e}.status-overdue{background-color:#fee2e2;color:#991b1b}.status-cancelled{background-color:#f3f4f6;color:#374151}.absence-summary{align-items:center;background-color:#fff7ed;border:1px solid #ffedd5;border-radius:8px;display:flex;justify-content:space-between;margin-top:16px;padding:16px}.total-hours-label{color:#9a3412;font-weight:600}.total-hours-value{color:#c2410c;font-size:20px;font-weight:700}.no-data{color:#9ca3af;font-style:italic;padding:24px;text-align:center}.btn-view-all{align-items:center;background-color:#2563eb;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:8px 16px;transition:background-color .2s}.btn-view-all:hover{background-color:#1d4ed8}.btn-edit-sm{background-color:#dbeafe;border:none;border-radius:4px;color:#1e40af;cursor:pointer;font-size:13px;font-weight:500;margin-right:8px;padding:6px 12px;transition:background-color .2s}.btn-edit-sm:hover{background-color:#bfdbfe}.btn-delete-sm{background-color:#fee2e2;border:none;border-radius:4px;color:#991b1b;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:background-color .2s}.btn-delete-sm:hover{background-color:#fecaca}.table-container{max-height:300px;overflow-y:auto}:root{--primary-color:#6366f1;--primary-hover:#4f46e5;--text-primary:#1f2937;--text-secondary:#4b5563;--bg-light:#f9fafb;--white:#fff}.landing-page{color:#1f2937;color:var(--text-primary);font-family:Inter,sans-serif;line-height:1.5;overflow-x:hidden}.landing-nav{background-color:#fff;background-color:var(--white);box-shadow:0 1px 3px #0000001a;justify-content:space-between;padding:1.5rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.landing-nav,.nav-logo{align-items:center;display:flex}.nav-logo{color:#7536e3;flex-direction:row!important;font-size:1.5rem;font-weight:700;gap:.5rem}.nav-links{align-items:center;display:flex;gap:2rem}.nav-link{background:none;border:none;color:#4b5563;color:var(--text-secondary);cursor:pointer;font-size:1rem;font-weight:500;text-decoration:none;transition:color .2s}.nav-link:hover{color:#6366f1;color:var(--primary-color)}.btn-login{background-color:#6366f1;background-color:var(--primary-color);border-radius:.375rem;color:#fff;color:var(--white);font-weight:600;padding:.5rem 1.25rem;text-decoration:none;transition:background-color .2s}.btn-login:hover{background-color:#4f46e5;background-color:var(--primary-hover)}.hero-section{align-items:center;background:linear-gradient(to bottom right,#eef2ff,#fff);display:flex;flex-direction:column;padding:6rem 2rem;text-align:center}.hero-title{-webkit-text-fill-color:#0000;background:linear-gradient(90deg,#4f46e5,#ec4899);background-clip:text;-webkit-background-clip:text;font-size:3.5rem;font-weight:800;line-height:1.2;margin-bottom:1.5rem}.hero-subtitle{color:#4b5563;color:var(--text-secondary);font-size:1.25rem;margin-bottom:2.5rem;max-width:700px}.hero-cta{display:flex;gap:1rem}.btn-primary{background-color:#6366f1;background-color:var(--primary-color);border-radius:.5rem;color:#fff;color:var(--white);font-size:1.125rem;font-weight:600;padding:.75rem 2rem;text-decoration:none;transition:transform .2s,box-shadow .2s}.btn-primary:hover{background-color:#4f46e5;background-color:var(--primary-hover);box-shadow:0 4px 6px #6366f133;transform:translateY(-2px)}.btn-secondary{background-color:#fff;background-color:var(--white);border:1px solid #e5e7eb;border-radius:.5rem;color:#1f2937;color:var(--text-primary);font-size:1.125rem;font-weight:600;padding:.75rem 2rem;text-decoration:none;transition:background-color .2s}.btn-secondary:hover{background-color:#f9fafb;background-color:var(--bg-light)}.features-section{background-color:#fff;background-color:var(--white);padding:5rem 2rem}.section-title{color:#1f2937;color:var(--text-primary);font-size:2.25rem;font-weight:700;margin-bottom:3rem;text-align:center}.features-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:0 auto;max-width:1200px}.feature-card{background-color:#f9fafb;background-color:var(--bg-light);border:1px solid #0000;border-radius:1rem;cursor:pointer;padding:2rem;transition:transform .2s,box-shadow .2s}.feature-card:hover{border-color:#e5e7eb;box-shadow:0 10px 15px -3px #0000001a;transform:translateY(-5px)}.feature-icon{color:#6366f1;color:var(--primary-color);font-size:2rem;margin-bottom:1rem}.feature-title{color:#1f2937;color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.feature-desc{color:#4b5563;color:var(--text-secondary)}.contact-section{background-color:#1e1b4b;color:#fff;color:var(--white);padding:5rem 2rem;text-align:center}.contact-container{margin:0 auto;max-width:600px}.contact-title{font-size:2.25rem;font-weight:700;margin-bottom:1.5rem}.contact-text{color:#c7d2fe;font-size:1.125rem;margin-bottom:2rem}.contact-btn{background-color:#fff;background-color:var(--white);border-radius:.5rem;color:#6366f1;color:var(--primary-color);font-size:1.125rem;font-weight:600;padding:.75rem 2rem;text-decoration:none;transition:background-color .2s}.contact-btn:hover{background-color:#e0e7ff}.landing-footer{background-color:#fff;background-color:var(--white);border-top:1px solid #e5e7eb;color:#4b5563;color:var(--text-secondary);padding:2rem;text-align:center}.modal-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.modal-content{animation:slideUp .3s ease-out;background-color:#fff;background-color:var(--white);border-radius:1rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:600px;padding:2.5rem;position:relative;width:90%}.modal-close{background:none;border:none;border-radius:50%;color:#4b5563;color:var(--text-secondary);cursor:pointer;font-size:1.5rem;line-height:1;padding:.5rem;position:absolute;right:1rem;top:1rem;transition:background-color .2s}.modal-close:hover{background-color:#f9fafb;background-color:var(--bg-light)}.modal-close:hover,.modal-title{color:#1f2937;color:var(--text-primary)}.modal-title{font-size:1.75rem;font-weight:700;margin-bottom:1rem;padding-right:2rem}.modal-desc{color:#4b5563;color:var(--text-secondary);font-size:1.125rem;margin-bottom:2rem}.feature-list{list-style:none;margin:0;padding:0}.feature-list-item{align-items:flex-start;color:#1f2937;color:var(--text-primary);display:flex;font-size:1rem;gap:.75rem;margin-bottom:1rem}.feature-list-icon{color:#6366f1;color:var(--primary-color);flex-shrink:0;margin-top:.25rem}.mobile-menu-btn{background:none;border:none;color:#1f2937;color:var(--text-primary);cursor:pointer;display:none;margin-right:auto;order:-1;padding:.5rem;z-index:1002}.mobile-menu-overlay{display:none}@media (max-width:768px){.hero-title{font-size:2.5rem}.mobile-menu-btn{align-items:center;display:flex;justify-content:center}.mobile-menu-overlay{animation:fadeIn .2s ease-out;background-color:#00000080;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:999}.nav-links{align-items:flex-start;background-color:#fff;background-color:var(--white);box-shadow:4px 0 10px #0000001a;display:none;flex-direction:column;gap:1.5rem;height:100vh;left:0;padding:5rem 2rem 2rem;position:fixed;right:auto;top:0;width:280px;z-index:1001}.nav-links.nav-links-open{animation:slideInLeft .3s ease-out;display:flex}.nav-links .nav-link{border-bottom:1px solid #e5e7eb;font-size:1.125rem;padding:.5rem 0;text-align:left;width:100%}.nav-links .btn-login{margin-top:1rem;text-align:left}.landing-nav{flex-direction:row}.mobile-menu-btn{margin-right:auto;order:-1}.nav-logo{margin-left:auto;margin-right:0;order:1}.language-dropdown-container{width:100%}.language-dropdown-container button.nav-link{justify-content:space-between;width:100%}.hero-cta{align-items:center;flex-direction:column;gap:.75rem}.btn-primary,.btn-secondary{text-align:center;width:100%}.features-grid{grid-template-columns:1fr}.modal-content{padding:1.5rem;width:95%}.modal-title{font-size:1.5rem}}@keyframes slideInRight{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slideInLeft{0%{transform:translateX(-100%)}to{transform:translateX(0)}}[dir=rtl] .nav-logo{flex-direction:row!important}[dir=rtl] .landing-nav{flex-direction:row-reverse}@media (max-width:768px){[dir=rtl] .landing-nav{flex-direction:row;justify-content:space-between}[dir=rtl] .mobile-menu-btn{margin-left:0;margin-right:0;order:1}[dir=rtl] .nav-logo{margin-left:0;margin-right:0;order:-1}[dir=rtl] .nav-links{align-items:flex-end;box-shadow:-4px 0 10px #0000001a;left:auto;right:0}[dir=rtl] .nav-links.nav-links-open{animation:slideInRight .3s ease-out}[dir=rtl] .nav-links .btn-login,[dir=rtl] .nav-links .nav-link{text-align:right}}.global-modal-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.global-modal-content{animation:slideUp .3s ease-out;background:#fff;border-radius:1rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:500px;padding:2.5rem;position:relative;width:90%}.global-modal-header{margin-bottom:1.5rem}.global-modal-header h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.global-modal-body{color:#4b5563;font-size:1.125rem;line-height:1.6;margin-bottom:2rem}.global-modal-footer{display:flex;gap:1rem;justify-content:flex-end}.btn-modal-primary{background-color:#6366f1;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:background-color .2s,transform .2s}.btn-modal-primary:hover{background-color:#4f46e5;transform:translateY(-1px)}.btn-modal-secondary{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;color:#1f2937;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.btn-modal-secondary:hover{background-color:#f9fafb;border-color:#d1d5db}.btn-modal-danger{background-color:#ef4444;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:background-color .2s,transform .2s}.btn-modal-danger:hover{background-color:#dc2626;transform:translateY(-1px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.not-found-container{align-items:center;background-color:#f8f9fa;color:#333;display:flex;flex-direction:column;font-family:Inter,sans-serif;height:100vh;justify-content:center;text-align:center}.not-found-title{color:#6366f1;font-size:6rem;font-weight:700;line-height:1;margin:0}.not-found-subtitle{color:#1f2937;font-size:2rem;font-weight:600;margin:1rem 0}.not-found-text{color:#6b7280;font-size:1.125rem;margin-bottom:2rem;max-width:500px}.not-found-button{background-color:#6366f1;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;text-decoration:none;transition:background-color .2s}.not-found-button:hover{background-color:#4f46e5}.profile-edit-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:2rem auto;max-width:600px;padding:2rem}.profile-edit-container h2{color:#333;margin-bottom:1.5rem}.profile-form{gap:1.5rem}.form-group,.profile-form{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{color:#555;font-weight:500}.form-group input{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem}.form-group input:focus{border-color:#4a90e2;outline:none}.disabled-input{background-color:#f5f5f5;color:#888;cursor:not-allowed}.save-btn{background-color:#4a90e2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem;transition:background-color .2s}.save-btn:hover{background-color:#357abd}.message{border-radius:4px;margin-bottom:1rem;padding:1rem}.message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.8d39d82c.css.map*/