.portfolio-widget{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 1px 3px #0000001a}.portfolio-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.btn-add-item{background:#3b82f6;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600}.portfolio-form{background:#f8fafc;padding:1rem;border-radius:8px;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.75rem}.portfolio-form select,.portfolio-form input,.portfolio-form textarea{padding:.6rem;border:1px solid #e2e8f0;border-radius:6px}.btn-submit{background:#10b981;color:#fff;border:none;padding:.6rem;border-radius:6px;cursor:pointer;font-weight:600}.portfolio-timeline{display:flex;flex-direction:column;gap:1.5rem}.timeline-item{border-left:3px solid #e2e8f0;padding-left:1.25rem;position:relative}.timeline-item.pending{border-left-color:#f59e0b}.timeline-item.published{border-left-color:#10b981}.item-meta{display:flex;justify-content:space-between;margin-bottom:.5rem}.item-area-badge{font-size:.75rem;background:#eff6ff;color:#1e40af;padding:.2rem .5rem;border-radius:4px;font-weight:600}.item-date{font-size:.75rem;color:#94a3b8}.timeline-item h4{margin-bottom:.5rem;color:#1e293b}.timeline-item p{font-size:.9rem;color:#475569;line-height:1.5}.item-footer{display:flex;justify-content:space-between;margin-top:.75rem}.status-tag{font-size:.75rem;font-weight:600}.status-tag.pending{color:#d97706}.status-tag.published{color:#059669}.btn-delete-small{background:none;border:none;color:#94a3b8;font-size:.75rem;cursor:pointer;text-decoration:underline}.btn-delete-small:hover{color:#ef4444}.profile-360-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172acc;display:flex;justify-content:center;align-items:center;z-index:2000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.profile-360-modal{background:#f8fafc;width:95%;max-width:900px;height:90vh;border-radius:24px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000080}.profile-header{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center}.profile-header h2{margin:0;font-size:1.5rem}.profile-status-pill{background:#fff3;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase}.profile-content-scroll{padding:1rem;overflow-y:auto;flex:1}.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.profile-section-card{background:#fff;padding:1rem;border-radius:12px;box-shadow:0 1px 3px #0000001a}.profile-section-card h3{margin:0 0 1rem;font-size:1.1rem;color:#1e293b;display:flex;align-items:center;gap:.5rem;border-bottom:1px solid #f1f5f9;padding-bottom:.5rem}.info-row{display:flex;justify-content:space-between;margin-bottom:.75rem;font-size:.95rem}.info-row label{color:#64748b;font-weight:600}.info-row span{color:#1e293b;font-weight:700}.allergy-alert-box{background:#fef2f2;border:2px solid #ef4444;padding:1rem;border-radius:12px;color:#b91c1c}.doc-list-mini{list-style:none;padding:0;margin:0}.doc-item-row{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid #f1f5f9}.btn-view-small{color:#3b82f6;text-decoration:none;font-weight:700;font-size:.85rem}.close-profile-btn{background:#fff;color:#1e293b;border:none;width:40px;height:40px;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.close-profile-btn:hover{transform:scale(1.1)}@media(max-width:768px){.profile-grid{grid-template-columns:1fr}}.student-form-content-wrapper{width:100%}.student-entry-form{display:flex;flex-direction:column}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}.form-main-info{display:flex;flex-direction:column;gap:1.25rem}.form-group label{font-size:.9rem;font-weight:700;color:#475569}.form-group input,.form-group select,.form-group textarea{padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem;background:#fff;transition:all .2s;color:#1e293b}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled,.form-group select:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.form-docs-section{background:#f8fafc;padding:1.5rem;border-radius:12px;border:1px solid #e2e8f0}.doc-item-complex{background:#fff;padding:1rem;border-radius:10px;margin-bottom:1rem;border:1px solid #f1f5f9;box-shadow:0 1px 2px #0000000d}.doc-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.status-select-mini{padding:4px 8px;border-radius:6px;font-size:.75rem;font-weight:700;border:1px solid #cbd5e1}.status-select-mini.pending{color:#ef4444;border-color:#fca5a5;background:#fffafb}.status-select-mini.submitted{color:#f59e0b;border-color:#fcd34d;background:#fffdf5}.status-select-mini.verified{color:#10b981;border-color:#6ee7b7;background:#f6fdf9}.btn-quick-upload{font-size:.8rem;color:#3b82f6;cursor:pointer;font-weight:600;border:1px dashed #3b82f6;padding:6px 12px;border-radius:6px;display:inline-flex;align-items:center;gap:6px;transition:all .2s}.btn-quick-upload:hover:not(.disabled){background:#eff6ff;border-style:solid}.doc-status-indicator{font-size:.8rem;color:#10b981;font-weight:700;display:flex;align-items:center;gap:4px}.form-footer{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #f1f5f9}.helper-text{font-size:.8rem;color:#64748b;margin-top:.25rem;font-style:italic}.warning-input label{color:#ef4444!important}.warning-input input{border-color:#fecaca!important}@media(max-width:768px){.form-grid{grid-template-columns:1fr}}.student-list-container{padding:.2rem;width:100%;margin:0;min-height:100vh;background-color:#f8fafc;display:flex;flex-direction:column;gap:1rem}.student-list-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.student-list-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.student-stats{display:flex;flex-wrap:wrap;gap:1.5rem;width:100%;margin-bottom:1.5rem}.allergy-badge{background:#fef2f2;color:#b91c1c;padding:4px 10px;border-radius:6px;font-size:.75rem;font-weight:800;border:1px solid #fee2e2;display:inline-block}.warning-input label{color:#b91c1c!important;font-weight:800!important}.warning-input input{border-color:#fca5a5!important;background-color:#fffafb}.age-tag{color:#94a3b8;font-size:.8rem;margin-left:4px;font-weight:400}.list-filters{display:flex;gap:1.5rem;background:#fff;padding:1.25rem 1.5rem;border-radius:12px;border:1px solid #f1f5f9;margin-bottom:1.5rem}.filter-group{display:flex;align-items:center;gap:.75rem}.filter-group label{font-size:.85rem;font-weight:700;color:#64748b}.filter-group select{padding:.5rem 1rem;border-radius:8px;border:1px solid #e2e8f0;background:#f8fafc;cursor:pointer}.student-list-content{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;overflow:hidden;border:1px solid #f1f5f9}.student-table{width:100%;border-collapse:collapse;text-align:left}.student-table th{background:#f8fafc;padding:1rem 1.5rem;font-weight:600;color:#475569;font-size:.875rem;border-bottom:1px solid #e2e8f0}.student-table td{padding:1rem 1.5rem;border-bottom:1px solid #f1f5f9;font-size:.95rem;color:#1e293b}.student-table tr:hover td{background-color:#f8fafc}.btn-view-360{background:#eff6ff;color:#3b82f6;border:1px solid #dbeafe;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:700;font-size:.875rem;transition:all .2s}.btn-view-360:hover{background:#3b82f6;color:#fff}.btn-edit,.btn-delete{padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:600;font-size:.875rem;border:none}.btn-add{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600}.student-form-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.student-form-modal{background:#fff;padding:1.5rem;border-radius:12px;width:95%;max-width:450px;max-height:95vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0003}.student-form-modal.large{max-width:800px}.form-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:2rem}.form-main-info{display:flex;flex-direction:column;gap:1.2rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group input,.form-group select,.form-group textarea{padding:.75rem;border:1.5px solid #dfe6e9;border-radius:6px;font-size:1rem}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.form-docs-section{background:#f8fafc;padding:1.5rem;border-radius:8px;border:1px solid #e2e8f0}.doc-item-complex{background:#fff;padding:.75rem;border-radius:8px;margin-bottom:.75rem;border:1px solid #f1f5f9}.doc-item-header{display:flex;justify-content:space-between;align-items:center}.status-select-mini{padding:2px 6px;border-radius:4px;font-size:.75rem;font-weight:700;border:1px solid #cbd5e1}.status-select-mini.pending{color:#ef4444;border-color:#fca5a5}.status-select-mini.submitted{color:#f59e0b;border-color:#fcd34d}.status-select-mini.verified{color:#10b981;border-color:#6ee7b7}.btn-quick-upload{font-size:.75rem;color:#3b82f6;cursor:pointer;font-weight:600;border:1px dashed #3b82f6;padding:4px 8px;border-radius:4px;display:inline-block;margin-top:5px}.doc-status-indicator{font-size:.75rem;color:#10b981;font-weight:700;margin-top:5px}@media(max-width:768px){.form-grid{grid-template-columns:1fr}.list-filters{flex-direction:column}}.student-list-main-wrapper{position:relative;overflow:hidden;width:100%}.student-list-view{transition:transform .3s ease-in-out,opacity .3s}.student-list-view.hidden{transform:translate(-100%);opacity:0;position:absolute;pointer-events:none}.student-profile-view{position:absolute;top:0;left:0;width:100%;background:#f8fafc;transform:translate(100%);transition:transform .3s ease-in-out;z-index:10;min-height:100vh}.student-profile-view.active{transform:translate(0);position:relative}.profile-header{display:flex;align-items:center;gap:1.5rem;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.teacher-form-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.teacher-form-modal{background:#fff;padding:2rem;border-radius:12px;width:100%;max-width:450px;box-shadow:0 10px 25px #0003;animation:slideUp .3s ease-out}.teacher-entry-form{display:flex;flex-direction:column;gap:1.2rem}.form-group input{padding:.75rem;border:1.5px solid #dfe6e9;border-radius:6px;font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#3498db}.teacher-list-container{padding:.2rem;width:100%;margin:0;min-height:100vh;background-color:#f8fafc;display:flex;flex-direction:column;gap:1rem}.teacher-list-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a}.teacher-list-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.btn-add{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;font-size:.95rem;transition:all .2s ease;box-shadow:0 4px 6px -1px #3b82f64d}.btn-add:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 10px 15px -3px #3b82f666}.teacher-stats{display:flex;flex-wrap:wrap;gap:1.5rem;width:100%}.stat-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;flex:1;min-width:240px;display:flex;flex-direction:column;gap:.5rem;border:1px solid #f1f5f9;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.stat-card.highlight{border-top:4px solid #3b82f6}.stat-label{color:#64748b;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.teacher-list-content{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;overflow:hidden;border:1px solid #f1f5f9}.table-responsive{width:100%;overflow-x:auto}.teacher-table{width:100%;border-collapse:collapse;text-align:left}.teacher-table th{background:#f8fafc;padding:1rem 1.5rem;font-weight:600;color:#475569;font-size:.875rem;border-bottom:1px solid #e2e8f0}.teacher-table td{padding:1rem 1.5rem;border-bottom:1px solid #f1f5f9;color:#334155;font-size:.95rem}.teacher-table tr:hover td{background-color:#f8fafc}.btn-edit{background:#f1f5f9;color:#475569;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:600;font-size:.875rem;transition:all .2s}.btn-edit:hover{background:#e2e8f0;color:#1e293b}.btn-delete{background:#fef2f2;color:#ef4444;border:1px solid #fee2e2;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:600;font-size:.875rem;transition:all .2s}.btn-delete:hover{background:#ef4444;color:#fff}.btn-delete:disabled{opacity:.5;cursor:not-allowed}.status-container{padding:4rem 2rem;text-align:center;color:#64748b}@media(max-width:1024px){.teacher-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.teacher-list-container{padding:1rem;gap:1.5rem}.teacher-list-header{flex-direction:column;text-align:center;gap:1.25rem;padding:1.5rem}.btn-add{width:100%}.teacher-stats{flex-direction:column}.stat-card{min-width:0;width:100%}.teacher-table,.teacher-table thead,.teacher-table tbody,.teacher-table th,.teacher-table td,.teacher-table tr{display:block}.teacher-table thead{display:none}.teacher-table tr{border:1px solid #e2e8f0;border-radius:12px;margin-bottom:1rem;padding:1rem}.teacher-table td{border:none;padding:.5rem 0;display:flex;justify-content:space-between;align-items:center}.teacher-table td:not(:last-child){border-bottom:1px solid #f1f5f9}.teacher-table td:before{content:attr(data-label);font-weight:700;color:#64748b;font-size:.8rem;text-transform:uppercase}.teacher-table td:nth-of-type(1):before{content:"Name"}.teacher-table td:nth-of-type(2):before{content:"Subject"}.teacher-table td:nth-of-type(3):before{content:"Exp"}.teacher-table td:nth-of-type(4):before{content:"Email"}.actions-cell{margin-top:1rem;justify-content:center;border-top:1px solid #e2e8f0;padding-top:1rem!important}}.class-form-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.class-form-modal{background:#fff;padding:2rem;border-radius:12px;width:100%;max-width:450px;box-shadow:0 10px 25px #0003;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;border-bottom:1px solid #eee;padding-bottom:1rem}.form-header h3{margin:0;color:#2c3e50}.close-icon-btn{background:none;border:none;font-size:1.8rem;cursor:pointer;color:#bdc3c7;line-height:1;transition:color .2s}.close-icon-btn:hover{color:#7f8c8d}.class-entry-form{display:flex;flex-direction:column;gap:1.2rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;font-weight:600;color:#34495e}.form-group input,.form-group select{padding:.75rem;border:1.5px solid #dfe6e9;border-radius:6px;font-size:1rem;transition:border-color .2s;background-color:#fff}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3498db}.form-footer{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem}.btn-primary{background:#3498db;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:600;transition:background .2s}.btn-primary:hover{background:#2980b9}.btn-primary:disabled{background:#95a5a6;cursor:not-allowed}.btn-secondary{background:#f1f2f6;color:#2f3542;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:600}.btn-secondary:hover{background:#dfe4ea}.form-status-error{color:#e74c3c;background:#fdf0ef;padding:.75rem;border-radius:6px;font-size:.85rem;border:1px solid #fadbd8}.class-list-container{padding:.2rem;width:100%;margin:0;min-height:100vh;background-color:#f8fafc;display:flex;flex-direction:column;gap:1rem}.class-list-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.class-list-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.subtitle{margin:.25rem 0 0;color:#64748b;font-size:.95rem}.btn-add{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s}.btn-add:hover{background:#2563eb;transform:translateY(-1px)}.class-stats{display:flex;flex-wrap:wrap;gap:1.5rem}.stat-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;flex:1;min-width:240px;display:flex;flex-direction:column;gap:.5rem;border:1px solid #f1f5f9}.stat-card.highlight{border-top:4px solid #10b981}.stat-value{font-size:2.25rem;font-weight:800;color:#0f172a}.stat-label{color:#64748b;font-size:.875rem;text-transform:uppercase;font-weight:600}.class-list-content{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;overflow:hidden}.class-table{width:100%;border-collapse:collapse}.class-table th{background:#f8fafc;padding:1rem 1.5rem;text-align:left;color:#475569;font-size:.875rem;border-bottom:1px solid #e2e8f0}.class-table td{padding:1rem 1.5rem;border-bottom:1px solid #f1f5f9;color:#334155}.unassigned{color:#94a3b8;font-style:italic;font-size:.9rem}.font-medium{font-weight:600;color:#1e293b}.text-right{text-align:right}.actions-cell{display:flex;gap:.75rem;justify-content:flex-end}.btn-edit,.btn-delete{padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:600;border:none}.btn-edit{background:#f1f5f9;color:#475569}.btn-delete{background:#fef2f2;color:#ef4444}.status-container{padding:4rem 2rem;text-align:center}.loader{border:3px solid #f1f5f9;border-top:3px solid #3b82f6;border-radius:50%;width:32px;height:32px;animation:spin .8s linear infinite;margin:0 auto 1rem}.class-list-main-wrapper{position:relative;overflow:hidden;width:100%}.class-list-view{transition:transform .3s ease-in-out,opacity .3s}.class-list-view.hidden{transform:translate(-100%);opacity:0;position:absolute;pointer-events:none}.class-detail-view{position:absolute;top:0;left:0;width:100%;background:#f8fafc;transform:translate(100%);transition:transform .3s ease-in-out;z-index:10;min-height:100vh}.class-detail-view.active{transform:translate(0);position:relative}.detail-header{display:flex;align-items:center;gap:1.5rem;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.btn-back{background:#f1f5f9;border:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.25rem;color:#475569;transition:all .2s}.btn-back:hover{background:#e2e8f0;color:#1e293b}.detail-content-card{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a}@media(max-width:768px){.class-list-header{flex-direction:column;gap:1.25rem;text-align:center}.class-stats{flex-direction:column}}.doc-manager-container{padding:.2rem;width:100%;margin:0;min-height:100vh;background-color:#f8fafc;display:flex;flex-direction:column}.doc-manager-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.doc-manager-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.doc-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9;margin-bottom:2rem}.btn-upload-trigger{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s}.btn-upload-trigger:hover{background:#2563eb;transform:translateY(-1px)}.doc-table{width:100%;border-collapse:collapse}.doc-table th{background:#f8fafc;padding:1rem 1.5rem;text-align:left;font-size:.85rem;color:#64748b;border-bottom:1px solid #e2e8f0;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.doc-table td{padding:1rem 1.5rem;border-bottom:1px solid #f1f5f9;font-size:.95rem;color:#1e293b}.doc-type-tag{background:#eff6ff;color:#1d4ed8;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:700;text-transform:uppercase}.btn-view-doc-action{background:none;border:none;color:#3b82f6;font-weight:600;cursor:pointer;margin-right:1rem;padding:0;font-family:inherit;font-size:.95rem}.btn-view-doc-action:hover{text-decoration:underline}.btn-delete-doc{color:#ef4444;background:none;border:none;cursor:pointer;font-weight:600;font-size:.95rem}.btn-delete-doc:hover{text-decoration:underline}.status-container{padding:5rem;text-align:center;color:#64748b}.loader{border:3px solid #f3f3f3;border-top:3px solid #3b82f6;border-radius:50%;width:30px;height:30px;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.doc-upload-form-wrapper{padding:1rem 0}.school-manager-container{padding:.2rem;width:100%;background-color:#f8fafc}.school-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.school-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.school-tabs-nav{display:flex;gap:.5rem;margin-bottom:1.5rem;background:#fff;padding:.5rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.school-tab-link{padding:.75rem 1.5rem;border:none;background:transparent;color:#64748b;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap}.school-tab-link:hover{background:#f1f5f9;color:#1e293b}.school-tab-link.active{background:#3b82f6;color:#fff;box-shadow:0 4px 6px -1px #3b82f633}.school-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9;margin-bottom:2rem}.school-card-panel.no-padding{padding:0;overflow:hidden}.school-card-panel h3{margin:0 0 1.5rem;color:#1e293b;font-size:1.25rem;display:flex;align-items:center;gap:10px}.school-info-form{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.full-width{grid-column:span 2}.btn-save-school{background:#10b981;color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-weight:700;cursor:pointer;transition:all .2s}.btn-save-school:hover{background:#059669;transform:translateY(-1px)}.executive-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.exec-stat-card{background:#f8fafc;padding:1.5rem;border-radius:12px;text-align:center;border:1px solid #e2e8f0;transition:transform .2s}.exec-stat-card:hover{transform:translateY(-3px);background:#fff;border-color:#3b82f6}.exec-stat-card .value{display:block;font-size:2.5rem;font-weight:800;color:#1e293b}.exec-stat-card .label{color:#64748b;text-transform:uppercase;font-weight:700;font-size:.75rem;letter-spacing:.05em;margin-top:.5rem}.terms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.term-card{background:#f8fafc;padding:1.25rem;border-radius:10px;border:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}@media(max-width:768px){.school-info-form{grid-template-columns:1fr}.full-width{grid-column:span 1}.school-header{padding:1.25rem}}.meal-summary-container{padding:.2rem;width:100%;background-color:#f8fafc}.meal-summary-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.meal-summary-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.summary-cards{display:flex;gap:1.5rem;margin-bottom:1.5rem}.summary-card{flex:1;background:#fff;padding:1.5rem;border-radius:12px;border:1px solid #f1f5f9;box-shadow:0 4px 6px -1px #0000001a;text-align:center}.summary-card.total{border-top:4px solid #3b82f6}.summary-card.normal{border-top:4px solid #10b981}.summary-card.diet{border-top:4px solid #f59e0b}.summary-card .val{display:block;font-size:2rem;font-weight:800;color:#1e293b}.summary-card .lbl{color:#64748b;font-size:.8rem;font-weight:700;text-transform:uppercase}.meal-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9;margin-bottom:2rem}.meal-table{width:100%;border-collapse:collapse}.meal-table th{background:#f8fafc;padding:1rem;text-align:left;font-size:.8rem;color:#64748b;text-transform:uppercase;font-weight:700;border-bottom:1px solid #e2e8f0}.meal-table td{padding:1rem;border-bottom:1px solid #f1f5f9}.diet-cell{color:#f59e0b;font-weight:700}.empty-row{text-align:center;padding:3rem;color:#94a3b8;font-style:italic}.meal-loader{padding:5rem;text-align:center;color:#64748b}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;margin-top:2rem}.photo-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a;transition:transform .2s}.photo-card:hover{transform:scale(1.02)}.photo-img{width:100%;height:200px;object-fit:cover;display:block}.photo-meta{padding:1rem}.photo-desc{font-size:.9rem;color:#1e293b;margin:0;font-weight:600}.photo-date{font-size:.75rem;color:#64748b;margin-top:.25rem;display:block}.upload-zone-gallery{border:2px dashed #cbd5e1;padding:2rem;border-radius:12px;text-align:center;background:#f8fafc;margin-bottom:2rem}.btn-delete-photo{background:#ef44441a;color:#ef4444;border:none;padding:4px 8px;border-radius:4px;font-size:.75rem;cursor:pointer;margin-top:.5rem}.ops-container{padding:.2rem;width:100%;background-color:#f8fafc}.ops-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.ops-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.ops-controls{display:flex;gap:2rem;background:#fff;padding:1rem 2rem;border-radius:12px;margin-bottom:1rem;box-shadow:0 1px 3px #0000001a;align-items:center}.ops-controls select,.ops-controls input{padding:.6rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem;color:#1e293b;font-weight:600}.ops-tabs-nav{display:flex;gap:.5rem;margin-bottom:1.5rem;background:#fff;padding:.5rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.ops-tab-link{padding:.75rem 1.5rem;border:none;background:transparent;color:#64748b;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap}.ops-tab-link:hover{background:#f1f5f9;color:#1e293b}.ops-tab-link.active{background:#3b82f6;color:#fff;box-shadow:0 4px 6px -1px #3b82f633}.ops-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9;margin-bottom:2rem}.attendance-table{width:100%;border-collapse:collapse}.attendance-table th{background:#f8fafc;padding:1rem;text-align:left;font-size:.85rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em;font-weight:700;border-bottom:1px solid #e2e8f0}.attendance-table td{padding:1rem;border-bottom:1px solid #f1f5f9}.pickup-input{width:100%;padding:.5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.9rem}.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.journal-input{width:100%;padding:1rem;border:1px solid #e2e8f0;border-radius:8px;font-family:inherit;margin-top:.5rem}.btn-save-ops{background:#10b981;color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-weight:700;cursor:pointer;margin-top:1.5rem;transition:all .2s}.btn-save-ops:hover{background:#059669;transform:translateY(-1px)}@media(max-width:768px){.journal-grid{grid-template-columns:1fr}.ops-controls{flex-direction:column;align-items:stretch;gap:1rem}}.finance-container{padding:.2rem;width:100%;background-color:#f8fafc}.finance-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.finance-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.month-selector{padding:.6rem 1rem;border:1px solid #cbd5e1;border-radius:8px;font-size:.95rem;font-weight:600;color:#1e293b;outline:none}.finance-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:1.5rem}.f-stat-card{background:#fff;padding:1.5rem;border-radius:12px;border:1px solid #f1f5f9;box-shadow:0 4px 6px -1px #0000001a;text-align:center}.f-stat-card.success{border-top:4px solid #10b981}.f-stat-label{display:block;font-size:.8rem;font-weight:700;color:#64748b;text-transform:uppercase;margin-bottom:.5rem}.f-stat-val{font-size:1.75rem;font-weight:800;color:#1e293b}.tuition-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9;margin-bottom:2rem}.tuition-table{width:100%;border-collapse:collapse}.tuition-table th{background:#f8fafc;padding:1rem;text-align:left;font-size:.8rem;color:#64748b;text-transform:uppercase;font-weight:700;border-bottom:1px solid #e2e8f0}.tuition-table td{padding:1rem;border-bottom:1px solid #f1f5f9}.fee-input{width:120px;padding:.5rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem}.status-badge-med{padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:700}.status-badge-med.success{background:#dcfce7;color:#166534}.status-badge-med.pending{background:#fef3c7;color:#92400e}.btn-save-fee{background:#3b82f6;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-weight:600;cursor:pointer}@media(max-width:1024px){.finance-header{flex-direction:column;align-items:stretch;gap:1rem}}.health-container{padding:.2rem;width:100%;margin:0}.health-header{background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center}.health-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:2rem}.health-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000000d}.medication-item{border-bottom:1px solid #f1f5f9;padding:1rem 0;display:flex;justify-content:space-between;align-items:center}.med-info h4{margin:0;color:#1e293b}.med-info p{margin:.25rem 0;color:#64748b;font-size:.9rem}.status-badge-med{padding:4px 12px;border-radius:999px;font-size:.75rem;font-weight:700}.status-badge-med.pending{background:#fef3c7;color:#d97706}.status-badge-med.completed{background:#dcfce7;color:#15803d}.growth-table{width:100%;border-collapse:collapse;margin-top:1rem}.growth-table th{text-align:left;padding:.75rem;border-bottom:2px solid #f1f5f9;color:#64748b;font-size:.85rem}.growth-table td{padding:.75rem;border-bottom:1px solid #f1f5f9}.btn-add-record{background:#3b82f6;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-weight:600;cursor:pointer}@media(max-width:1024px){.health-grid{grid-template-columns:1fr}}.inventory-container{padding:.2rem;width:100%;background-color:#f8fafc}.inventory-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.inventory-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.inventory-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9;margin-bottom:2rem}.inventory-form{display:flex;flex-direction:column;gap:1.25rem}.inventory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:1rem}.inventory-card{background:#fff;padding:1.5rem;border-radius:12px;border:1px solid #e2e8f0;position:relative;transition:transform .2s,box-shadow .2s}.inventory-card:hover{transform:translateY(-3px);box-shadow:0 10px 15px -3px #0000001a;border-color:#3b82f6}.inventory-card.low-stock{border-left:5px solid #ef4444}.stock-badge{position:absolute;top:1rem;right:1rem;font-size:.7rem;padding:.25rem .6rem;border-radius:20px;font-weight:700;text-transform:uppercase}.stock-badge.in-stock{background:#dcfce7;color:#166534}.stock-badge.low-stock-badge{background:#fef3c7;color:#92400e}.stock-badge.out-stock{background:#fee2e2;color:#991b1b}.item-category{display:block;font-size:.8rem;color:#64748b;margin-bottom:.5rem}.item-name{font-size:1.25rem;color:#1e293b;margin:0 0 1.25rem;font-weight:700}.stock-control{display:flex;align-items:center;gap:1rem;padding:.75rem;background:#f8fafc;border-radius:8px}.btn-stock{width:32px;height:32px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.25rem;color:#475569}.btn-stock:hover{background:#3b82f6;color:#fff;border-color:#3b82f6}.stock-val{font-size:1.5rem;font-weight:800;color:#1e293b;min-width:40px;text-align:center}@media(max-width:768px){.inventory-header{flex-direction:column;align-items:stretch;gap:1rem}}.approval-container{padding:.2rem;width:100%;background-color:#f8fafc}.approval-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.approval-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.approval-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9;margin-bottom:2rem}.approval-section h3{margin:0 0 1.5rem;color:#1e293b;font-size:1.25rem;display:flex;align-items:center;gap:10px}.approval-user-card{display:flex;justify-content:space-between;align-items:center;background:#f8fafc;padding:1.25rem;border-radius:10px;margin-bottom:.75rem;border:1px solid #e2e8f0;transition:all .2s}.approval-user-card:hover{border-color:#3b82f6;background:#fff;box-shadow:0 2px 4px #0000000d}.btn-approve,.btn-reject{padding:.6rem 1.25rem;border-radius:8px;font-weight:600;cursor:pointer;border:none;transition:all .2s}.btn-approve{background:#10b981;color:#fff}.btn-approve:hover:not(:disabled){background:#059669;transform:translateY(-1px)}.btn-reject{background:#fef2f2;color:#ef4444}.btn-reject:hover{background:#fee2e2}.approval-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.approval-card{background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000001a}.approval-img-wrapper{width:100%;height:200px;overflow:hidden;background:#f1f5f9}.approval-img-wrapper img{width:100%;height:100%;object-fit:cover}.approval-info{padding:1.25rem}.approval-actions{display:flex;gap:.75rem;margin-top:1rem}.empty-msg{text-align:center;padding:3rem;color:#94a3b8;font-style:italic;background:#f8fafc;border-radius:10px;border:2px dashed #e2e8f0}.approval-loader{padding:5rem;text-align:center;color:#64748b;font-weight:600}.medical-control-container{padding:.2rem;width:100%;background:#f8fafc}.medical-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.medical-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.medical-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9;margin-bottom:2rem}.medical-section h3{margin:0 0 1.5rem;color:#1e293b;font-size:1.25rem;display:flex;align-items:center;gap:10px}.med-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:1.5rem}.med-card{border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.med-card.status-pending{border-left:5px solid #f59e0b}.med-card.status-validated{border-left:5px solid #3b82f6;background:#f0f7ff}.med-card-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.75rem;border-bottom:1px solid #f1f5f9}.status-badge{font-size:.75rem;padding:.25rem .5rem;border-radius:999px;font-weight:600}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.validated{background:#dbeafe;color:#1e40af}.med-card-body p{font-size:.9rem;margin-bottom:.5rem;color:#475569}.med-actions button{width:100%;padding:.75rem;border:none;border-radius:6px;background:#10b981;color:#fff;font-weight:600;cursor:pointer;transition:background .2s}.med-actions button:hover{background:#059669}.hr-container{padding:.2rem;width:100%;background:#f8fafc}.hr-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.hr-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.hr-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9}.hr-tabs-nav{display:flex;gap:.5rem;margin-bottom:1.5rem;background:#fff;padding:.5rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.hr-tab-link{padding:.75rem 1.5rem;border:none;background:transparent;color:#64748b;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap}.hr-tab-link:hover{background:#f1f5f9;color:#1e293b}.hr-tab-link.active{background:#3b82f6;color:#fff;box-shadow:0 4px 6px -1px #3b82f633}.hr-tabs{display:none}.teacher-select-zone{background:#fff;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000001a}.obs-card{background:#fff;padding:1rem;border-radius:8px;margin-bottom:1rem;border-left:4px solid #3b82f6;box-shadow:0 1px 2px #0000000d}.obs-type{font-weight:700;margin-right:1rem;color:#1e293b}.obs-score{color:#f59e0b;font-weight:700}.candidate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.candidate-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border-top:5px solid #cbd5e1}.candidate-card.status-applied{border-top-color:#3b82f6}.candidate-card.status-interviewing{border-top-color:#f59e0b}.candidate-card.status-hired{border-top-color:#10b981}.candidate-card.status-rejected{border-top-color:#ef4444}.btn-add-obs{background:#10b981;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;margin-bottom:1.5rem;font-weight:600}.obs-form-inline{background:#f1f5f9;padding:1.5rem;border-radius:10px;margin-bottom:2rem;display:flex;flex-direction:column;gap:1rem}.security-container{padding:.2rem;width:100%;background:#f8fafc}.security-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.security-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.security-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9;margin-bottom:2rem}.security-card-panel h3{margin:0 0 1.5rem;color:#1e293b;font-size:1.25rem;display:flex;align-items:center;gap:10px}.security-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.security-card{background:#f8fafc;padding:1.5rem;border-radius:12px;border:1px solid #e2e8f0}.security-form{display:flex;flex-direction:column;gap:1.25rem}.btn-log{background:#1e293b;color:#fff;padding:.75rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.btn-log:hover{background:#334155}.search-input{width:100%;padding:.75rem 1rem;border:1px solid #cbd5e1;border-radius:8px;margin-bottom:1.5rem;font-size:1rem}.guardian-info-item{padding:1rem;background:#fff;border-radius:8px;margin-bottom:.75rem;border:1px solid #e2e8f0}.security-table{width:100%;background:#fff;border-collapse:collapse}.security-table th,.security-table td{padding:1rem;text-align:left;border-bottom:1px solid #f1f5f9}.security-table th{background:#f8fafc;color:#64748b;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.hint-text{text-align:center;color:#94a3b8;padding:2rem;font-style:italic}.cleaning-container{padding:.2rem;width:100%;background:#f8fafc}.cleaning-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.cleaning-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.cleaning-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9;margin-bottom:2rem}.cleaning-main{display:flex;gap:2rem}.area-selector{display:flex;flex-direction:column;gap:.75rem;width:240px}.area-btn{padding:1.25rem;border:1px solid #e2e8f0;background:#fff;border-radius:10px;cursor:pointer;font-weight:600;text-align:left;transition:all .2s;color:#475569}.area-btn:hover{border-color:#10b981;color:#10b981;background:#f0fdf4}.area-btn.active{background:#10b981;color:#fff;border-color:#10b981;box-shadow:0 4px 6px -1px #10b98133}.task-list-container{flex:1}.tasks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin:1.5rem 0 2.5rem}.task-item{display:flex;align-items:center;gap:1rem;cursor:pointer;padding:1rem;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0;transition:all .2s}.task-item:hover{border-color:#10b981;background:#fff}.checkbox{width:24px;height:24px;border:2px solid #cbd5e1;border-radius:6px;display:flex;justify-content:center;align-items:center;color:#fff;flex-shrink:0;transition:all .2s}.checkbox.checked{background:#10b981;border-color:#10b981}.btn-save-cleaning{width:auto;padding:.75rem 2.5rem;background:#10b981;color:#fff;border:none;border-radius:8px;font-weight:700;cursor:pointer;transition:all .2s}.btn-save-cleaning:hover{background:#059669;transform:translateY(-1px)}.survey-container{padding:.2rem;width:100%;background:#f8fafc}.survey-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.survey-header h2{margin:0;color:#1e293b;font-size:1.75rem;font-weight:700}.survey-card-panel{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #f1f5f9;margin-bottom:2rem}.btn-add-survey{background:#3b82f6;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:600;cursor:pointer}.survey-form-card{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;margin-bottom:2.5rem;display:flex;flex-direction:column;gap:1.25rem}.btn-submit-survey{background:#10b981;color:#fff;padding:1rem;border:none;border-radius:8px;font-weight:700;cursor:pointer}.survey-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;margin-top:1.5rem}.survey-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;position:relative;border-top:4px solid #3b82f6}.status-badge{position:absolute;top:1rem;right:1.5rem;font-size:.7rem;padding:.2rem .5rem;border-radius:999px;font-weight:700;text-transform:uppercase}.survey-card h4{margin-bottom:.75rem;color:#1e293b;font-size:1.2rem}.survey-card p{color:#64748b;font-size:.95rem;line-height:1.5;margin-bottom:1.5rem}.btn-view-results{width:100%;padding:.6rem;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#475569;font-weight:600;cursor:pointer}.system-container{padding:1rem;max-width:1200px;margin:0 auto}.system-header{margin-bottom:1.25rem}.system-header h1{font-size:1.25rem;font-weight:700;color:#1e293b}.system-header .subtitle{font-size:.8125rem;color:#64748b}.system-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid #e2e8f0;overflow-x:auto;scrollbar-width:none}.tab-btn{padding:.75rem .5rem;border:none;background:none;cursor:pointer;color:#64748b;font-weight:600;font-size:.875rem;white-space:nowrap;border-bottom:2px solid transparent}.tab-btn.active{color:#3b82f6;border-bottom-color:#3b82f6}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h3{font-size:.9375rem;font-weight:600;color:#334155}.btn-add{padding:.5rem .75rem;font-size:.8125rem;font-weight:600;background:#3b82f6;color:#fff;border:none;border-radius:.5rem;cursor:pointer}.system-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:768px){.system-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}.system-card{background:#fff;border-radius:.75rem;padding:1rem;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.card-header h4{font-size:1rem;font-weight:800;color:#1e293b;margin:0}.card-header-actions{display:flex;gap:.375rem;align-items:center}.btn-icon-mini{background:none;border:none;padding:.25rem;cursor:pointer;color:#94a3b8;border-radius:.375rem;display:flex;align-items:center}.btn-icon-mini:hover{background:#f1f5f9;color:#3b82f6}.status-badge{padding:.2rem .5rem;border-radius:9999px;font-size:.625rem;font-weight:800;text-transform:uppercase}.status-badge.active{background:#dcfce7;color:#166534}.info-rows{display:flex;flex-direction:column;gap:.25rem}.info-rows p{font-size:.8125rem;color:#475569;display:flex;align-items:center;gap:.5rem;margin:0}.info-rows .material-symbols-outlined{font-size:.9375rem;color:#94a3b8}.card-footer{margin-top:auto;padding-top:1rem;border-top:1px solid #f1f5f9;display:flex;justify-content:space-between;align-items:center}.school-count{font-size:.75rem;font-weight:600;color:#3b82f6}.btn-text{background:none;border:none;color:#3b82f6;cursor:pointer;font-weight:700;font-size:.8125rem}.admin-list-mini{margin-top:1rem}.admin-list-mini h5{font-size:.6875rem;color:#94a3b8;margin-bottom:.375rem;text-transform:uppercase}.admin-list-mini ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.admin-list-mini li{background:#f8fafc;padding:.5rem .75rem;border-radius:.5rem;border:1px solid #f1f5f9}.admin-item-row{display:flex;justify-content:space-between;align-items:center}.admin-name-mini{font-size:.8125rem;font-weight:700;color:#1e293b}.admin-email-mini{font-size:.6875rem;color:#64748b}.btn-remove-mini{background:none;border:none;color:#ef4444;font-size:1.25rem;cursor:pointer}.btn-assign-mini{width:100%;padding:.5rem;margin-top:1rem;background:#f0f9ff;color:#0369a1;border:1px solid #bae6fd;border-radius:.375rem;cursor:pointer;font-size:.75rem;font-weight:700}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172abf;display:flex;justify-content:center;align-items:flex-end;z-index:1000}@media(min-width:640px){.modal-overlay{align-items:center;padding:1rem}}.modal-content{background:#fff;padding:1.5rem;border-radius:1.25rem 1.25rem 0 0;width:100%;max-height:90vh;overflow-y:auto}@media(min-width:640px){.modal-content{border-radius:1rem;max-width:440px}}.modal-content h3{font-size:1.125rem;font-weight:700;margin-bottom:1.25rem}.form-group{margin-bottom:.875rem}.form-group label{display:block;font-size:.75rem;font-weight:700;margin-bottom:.25rem;color:#475569;text-transform:uppercase}.form-group input,.form-group select{width:100%;padding:.625rem;border:1px solid #e2e8f0;border-radius:.5rem;font-size:.875rem}.modal-footer{display:flex;gap:.75rem;margin-top:1.5rem}.btn-primary{background:#3b82f6;color:#fff;border:none;flex:1;padding:.625rem;font-weight:600;border-radius:.5rem;cursor:pointer}.btn-secondary{background:#f1f5f9;color:#475569;border:none;flex:1;padding:.625rem;font-weight:600;border-radius:.5rem;cursor:pointer}.admin-picker{max-height:40vh;overflow-y:auto;margin:1rem 0}.admin-option{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border:1px solid #f1f5f9;border-radius:.5rem;margin-bottom:.5rem;cursor:pointer}.admin-option:hover{background:#f0f9ff}.btn-block{width:100%;padding:.625rem;border:none;background:#f1f5f9;border-radius:.5rem;cursor:pointer}.org-label{font-size:.6875rem;color:#3b82f6;font-weight:700;text-transform:uppercase}.text-xs{font-size:.75rem;color:#94a3b8}.text-muted{font-size:.8125rem;color:#94a3b8;font-style:italic}.org-desc{font-size:.75rem;color:#64748b;margin-bottom:.75rem;line-height:1.4;font-style:italic}.admin-table-container{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;overflow-x:auto;margin-top:1rem}.admin-table{width:100%;border-collapse:collapse;text-align:left;min-width:600px}.admin-table th{background:#f8fafc;padding:1rem;font-weight:600;color:#475569;border-bottom:1px solid #e2e8f0;font-size:.8125rem;text-transform:uppercase}.admin-table td{padding:1rem;border-bottom:1px solid #e2e8f0;color:#1e293b;font-size:.875rem}.role-badge{padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600}.role-badge.super_admin{background:#fef2f2;color:#ef4444}.role-badge.org_admin{background:#eff6ff;color:#3b82f6}.btn-danger{color:#ef4444!important}.btn-danger:hover{background:#fef2f2!important;color:#dc2626!important}.search-result-info{margin-top:.5rem;padding:.75rem;background:#f0fdf4;border-radius:.5rem;border:1px solid #bbf7d0;color:#166534;font-size:.875rem}.modal-footer button:disabled{opacity:.5;cursor:not-allowed}.profile-container{padding:1.5rem;max-width:1000px;margin:0 auto}.profile-header{margin-bottom:2rem}.profile-header h1{font-size:1.75rem;font-weight:700;color:#1e293b;margin-bottom:.5rem}.profile-header p{color:#64748b}.profile-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:768px){.profile-grid{grid-template-columns:1fr 1fr}}.profile-card{background:#fff;padding:1.5rem;border-radius:1rem;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d}.card-title{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;color:#1e293b}.card-title h3{font-size:1.125rem;font-weight:700}.user-avatar-large{width:80px;height:80px;background:#3b82f6;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800;margin:0 auto 1.5rem;box-shadow:0 4px 6px -1px #3b82f633}.form-group label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;color:#64748b;margin-bottom:.5rem}.form-group input{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:.5rem;font-size:.9375rem}.form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.badge-role{display:inline-block;padding:.375rem .75rem;background:#eff6ff;color:#3b82f6;border-radius:9999px;font-size:.75rem;font-weight:700;border:1px solid #dbeafe}.profile-actions{display:flex;gap:.75rem;margin-top:2rem}.btn-edit-profile,.btn-save,.btn-change-pass{flex:1;padding:.75rem;background:#3b82f6;color:#fff;border:none;border-radius:.5rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-edit-profile:hover,.btn-save:hover,.btn-change-pass:hover{background:#2563eb}.btn-cancel{flex:1;padding:.75rem;background:#f1f5f9;color:#475569;border:none;border-radius:.5rem;font-weight:600;cursor:pointer}.profile-message{position:fixed;bottom:2rem;right:2rem;padding:1rem 1.5rem;border-radius:.5rem;color:#fff;font-weight:600;box-shadow:0 10px 15px -3px #0000001a;z-index:1000;animation:slideIn .3s ease-out}.profile-message.success{background:#10b981}.profile-message.error{background:#ef4444}@media(max-width:640px){.profile-container{padding:1rem}.profile-header h1{font-size:1.5rem}}.welcome-card-modern{background:#fff;padding:3rem 2rem;border-radius:1.5rem;box-shadow:0 10px 25px -5px #0000000d;text-align:center;max-width:500px;margin:4rem auto;border:1px solid #e2e8f0}.welcome-icon{font-size:4.5rem;margin-bottom:1.5rem}.welcome-card-modern h2{font-size:1.5rem;font-weight:800;color:#1e293b;margin-bottom:1rem}.welcome-card-modern p{color:#64748b;margin-bottom:2rem}.welcome-steps{background:#f8fafc;padding:1.5rem;border-radius:1rem;text-align:left;margin-bottom:1.5rem;border:1px solid #f1f5f9}.welcome-steps p{font-weight:700;color:#334155;margin-bottom:.75rem;font-size:.9375rem}.welcome-steps ul{padding-left:1.25rem;margin:0}.welcome-steps li{font-size:.875rem;color:#475569;margin-bottom:.5rem;line-height:1.5}.welcome-footer{font-size:.8125rem;color:#94a3b8;font-style:italic;line-height:1.5}.dashboard-grid-v4{display:grid;grid-template-columns:1.5fr 1fr;gap:1.5rem;margin-top:1.5rem}.dashboard-card-v4.full-width{grid-column:1 / -1}.menu-mini-grid{display:flex;flex-direction:column;gap:.75rem}.menu-mini-item{display:flex;gap:1rem;padding:.75rem;background:#f8fafc;border-radius:.75rem;align-items:flex-start}.menu-mini-item .meal-time{font-size:.75rem;font-weight:800;color:#3b82f6;background:#eff6ff;padding:.25rem .5rem;border-radius:.375rem;min-width:50px;text-align:center}.menu-mini-item .meal-content{font-size:.875rem;color:#334155;line-height:1.4}@media(max-width:1024px){.dashboard-grid-v4{grid-template-columns:1fr}}.student-summary-list{display:flex;flex-direction:column;gap:1rem}.student-summary-card{padding:1rem;background:#f8fafc;border-radius:1rem;border:1px solid #f1f5f9}.student-name{font-weight:700;font-size:1.125rem;color:#1e293b;display:block}.student-grade{font-size:.875rem;color:#64748b}.student-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed #e2e8f0}.meta-item{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:#94a3b8}.meta-item .material-symbols-outlined{font-size:1rem}.attendance-status{margin-top:.75rem;font-size:.875rem}.attendance-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-weight:700;font-size:.75rem}.attendance-badge.present{background:#dcfce7;color:#166534}.attendance-badge.absent_excused{background:#fef9c3;color:#854d0e}.attendance-badge.absent_unexcused{background:#fee2e2;color:#991b1b}.attendance-badge.pending{background:#f1f5f9;color:#94a3b8}.medication-mini-list{display:flex;flex-direction:column;gap:.75rem}.medication-mini-item{padding:.875rem;background:#f8fafc;border-radius:.75rem;border-left:4px solid #3b82f6}.med-student-name{font-size:.8125rem;font-weight:800;color:#64748b;text-transform:uppercase;margin-bottom:.25rem}.med-instruction{font-size:.9375rem;font-weight:600;color:#1e293b;margin-bottom:.5rem;line-height:1.4}.med-status-tag{display:inline-block;font-size:.6875rem;font-weight:700;color:#3b82f6;background:#eff6ff;padding:.125rem .5rem;border-radius:.25rem}.empty-mini-state{text-align:center;padding:1.5rem;color:#94a3b8}.empty-mini-state .material-symbols-outlined{font-size:2.5rem;margin-bottom:.5rem;opacity:.5}.empty-mini-state p{font-size:.875rem;margin:0}.parent-menu-page{padding-bottom:2rem}.parent-menu-header{margin-bottom:2rem;text-align:center}.parent-menu-header h1{font-size:1.75rem;font-weight:800;color:#1e293b;margin:0}.parent-menu-header p{color:#64748b;margin-top:.5rem}.menu-detail-list{display:flex;flex-direction:column;gap:1.25rem}.meal-detail-card{background:#fff;padding:1.5rem;border-radius:1.25rem;border:1px solid #e2e8f0;box-shadow:0 4px 6px -1px #0000000d}.meal-type-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.meal-type-header .material-symbols-outlined{color:#3b82f6;font-size:1.75rem}.meal-type-header h3{margin:0;font-size:1.125rem;font-weight:700;color:#1e293b}.meal-description{font-size:1rem;color:#475569;line-height:1.6;padding-left:2.5rem}.empty-menu-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:1.5rem;border:1px dashed #cbd5e1;color:#94a3b8}.empty-menu-state .material-symbols-outlined{font-size:3rem;margin-bottom:1rem}.menu-footer-note{margin-top:2rem;display:flex;align-items:flex-start;gap:.5rem;padding:1rem;background:#f1f5f9;border-radius:.75rem}.menu-footer-note .material-symbols-outlined{font-size:1rem;color:#64748b;margin-top:.125rem}.menu-footer-note p{font-size:.8125rem;color:#64748b;margin:0;line-height:1.4}.parent-finance-container{padding-bottom:2rem}.parent-finance-header{margin-bottom:1.5rem}.parent-finance-header h2{font-size:1.5rem;font-weight:800;color:#1e293b;margin:0}.tuition-list{display:flex;flex-direction:column;gap:1rem}.tuition-item{background:#fff;padding:1.25rem;border-radius:1rem;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d}.tuition-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #f1f5f9}.tuition-info .student-name{font-weight:700;color:#1e293b;font-size:1rem}.fee-month{font-size:.8125rem;font-weight:600;color:#64748b;background:#f8fafc;padding:.25rem .5rem;border-radius:.375rem}.fee-details{display:flex;flex-direction:column;gap:.75rem}.fee-amount{display:flex;justify-content:space-between;align-items:center}.fee-amount .label{font-size:.875rem;color:#64748b;font-weight:500}.fee-amount .value{font-size:1.125rem;font-weight:800;color:#1e293b}.fee-status{display:flex;justify-content:space-between;align-items:center}.fee-status .label{font-size:.875rem;color:#64748b;font-weight:500}.status-badge{padding:.375rem .75rem;border-radius:.5rem;font-size:.75rem;font-weight:700;text-transform:uppercase}.status-badge.đã-hoàn-thành{background-color:#dcfce7;color:#166534}.status-badge.chưa-đóng{background-color:#fee2e2;color:#991b1b}.status-badge.đóng-một-phần{background-color:#fef9c3;color:#854d0e}.status-badge.quá-hạn{background-color:#7f1d1d;color:#fff}.parent-leave-container{padding:1rem}.parent-leave-header{text-align:center;margin-bottom:1.5rem}.parent-leave-header h2{font-size:1.5rem;font-weight:700;color:#1e293b;margin-bottom:.5rem}.parent-leave-header p{color:#64748b;font-size:.875rem}.form-group label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;color:#475569;margin-bottom:.5rem}.form-group input[type=date],.form-group textarea{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:.5rem;font-size:.9375rem;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.input-disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.form-actions{display:flex;gap:1rem;margin-top:2rem}.btn-primary{flex:1;padding:.75rem;background:#3b82f6;color:#fff;border:none;border-radius:.5rem;font-weight:600;cursor:pointer;transition:background .2s;font-size:.875rem}.btn-primary:hover{background:#2563eb}.btn-secondary{flex:1;padding:.75rem;background:#f1f5f9;color:#475569;border:none;border-radius:.5rem;font-weight:600;cursor:pointer;font-size:.875rem}.btn-secondary:hover{background:#e2e8f0}.empty-msg{text-align:center;color:#94a3b8;font-style:italic;padding:2rem 1rem}.parent-message{position:fixed;bottom:2rem;right:2rem;padding:1rem 1.5rem;border-radius:.5rem;color:#fff;font-weight:600;box-shadow:0 10px 15px -3px #0000001a;z-index:1000;animation:slideIn .3s ease-out forwards}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.parent-message.success{background:#10b981}.parent-message.error{background:#ef4444}@media(max-width:640px){.parent-leave-container{padding:1rem}.parent-leave-header h2{font-size:1.5rem}.form-actions{flex-direction:column}.form-actions button{width:100%}}.parent-students-page{animation:fadeIn .3s ease-out}.parent-students-header{margin-bottom:1.5rem}.parent-students-header h1{font-size:1.5rem;font-weight:800;color:#1e293b;margin-bottom:.25rem}.parent-students-header p{color:#64748b;font-size:.875rem}.student-list-container{display:flex;flex-direction:column;gap:1rem}.student-card-compact{background:#fff;border-radius:1rem;padding:1rem;box-shadow:0 1px 3px #0000000d;border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:1rem}.student-avatar-small{width:48px;height:48px;background:#3b82f6;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;flex-shrink:0;box-shadow:0 2px 4px #3b82f633}.student-info-main{display:flex;flex-direction:column;gap:.25rem}.student-info-main h3{font-size:1.125rem;font-weight:700;color:#1e293b;margin:0}.student-tags{display:flex;gap:.5rem;flex-wrap:wrap}.student-tag{font-size:.75rem;padding:.25rem .5rem;background:#f1f5f9;color:#475569;border-radius:.375rem;font-weight:600}.student-details-grid{display:grid;grid-template-columns:1fr;gap:.75rem;padding-top:.75rem;border-top:1px solid #f1f5f9}.detail-item{display:flex;align-items:center;gap:.75rem}.detail-item .material-symbols-outlined{font-size:1.25rem;color:#94a3b8}.detail-text{display:flex;flex-direction:column}.detail-text label{font-size:.6875rem;font-weight:700;color:#94a3b8;text-transform:uppercase}.detail-text span{font-size:.875rem;color:#1e293b;font-weight:500}.detail-item.alert .material-symbols-outlined,.detail-item.alert span{color:#ef4444}.empty-students-state{text-align:center;padding:3rem 1rem;color:#94a3b8}.empty-students-state .material-symbols-outlined{font-size:4rem;margin-bottom:1rem;opacity:.5}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.parent-profile-page{animation:fadeIn .3s ease-out}.profile-compact-header{display:flex;align-items:center;gap:1rem;padding:.5rem 0 1.5rem}.user-avatar-medium{width:64px;height:64px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:1rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;box-shadow:0 4px 12px #3b82f64d}.header-info h2{font-size:1.25rem;font-weight:800;color:#1e293b;margin:0 0 .25rem}.role-tag{font-size:.75rem;font-weight:700;color:#3b82f6;background:#eff6ff;padding:.25rem .625rem;border-radius:2rem;text-transform:uppercase;letter-spacing:.025em}.profile-sections{display:flex;flex-direction:column;gap:1rem}.profile-section-card{background:#fff;border-radius:1rem;padding:1.25rem;border:1px solid #e2e8f0;box-shadow:0 1px 2px #00000008}.section-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.section-header .material-symbols-outlined{color:#64748b;font-size:1.25rem}.section-header h3{flex:1;font-size:.9375rem;font-weight:700;color:#334155;margin:0}.text-btn{background:none;border:none;color:#3b82f6;font-weight:700;font-size:.875rem;padding:.25rem .5rem;cursor:pointer}.compact-form{display:flex;flex-direction:column;gap:1rem}.form-item label{display:block;font-size:.6875rem;font-weight:700;color:#94a3b8;text-transform:uppercase;margin-bottom:.375rem;letter-spacing:.05em}.static-value{font-size:1rem;color:#1e293b;font-weight:500}.compact-form input{width:100%;padding:.75rem;border:1.5px solid #f1f5f9;background:#f8fafc;border-radius:.75rem;font-size:.9375rem;transition:all .2s}.compact-form input:focus{outline:none;border-color:#3b82f6;background:#fff}.form-actions-inline{display:flex;gap:.5rem;margin-top:.5rem}.btn-save-small{flex:2;padding:.625rem;background:#3b82f6;color:#fff;border:none;border-radius:.75rem;font-weight:700;font-size:.875rem}.btn-cancel-small{flex:1;padding:.625rem;background:#f1f5f9;color:#64748b;border:none;border-radius:.75rem;font-weight:700;font-size:.875rem}.btn-action-outline{width:100%;padding:.75rem;background:#fff;color:#3b82f6;border:1.5px solid #dbeafe;border-radius:.75rem;font-weight:700;font-size:.875rem;cursor:pointer;transition:all .2s}.btn-action-outline:hover{background:#eff6ff}.btn-logout-full{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:1rem;background:#fee2e2;color:#ef4444;border:none;border-radius:1rem;font-weight:800;font-size:.9375rem;cursor:pointer;margin-top:1rem}.toast-message{position:fixed;bottom:100px;left:50%;transform:translate(-50%);padding:.75rem 1.25rem;border-radius:2rem;color:#fff;font-weight:600;font-size:.875rem;box-shadow:0 10px 15px -3px #0000001a;z-index:1000}.toast-message.success{background:#10b981}.toast-message.error{background:#ef4444}.parent-medication-page{animation:fadeIn .3s ease-out}.parent-medication-header{margin-bottom:1.5rem}.parent-medication-header h1{font-size:1.5rem;font-weight:800;color:#1e293b;margin-bottom:.25rem}.parent-medication-header p{color:#64748b;font-size:.875rem}.medication-actions{margin-bottom:1.5rem}.btn-add-med{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#3b82f6;color:#fff;border:none;border-radius:.75rem;font-weight:700;cursor:pointer;box-shadow:0 4px 6px -1px #3b82f633}.medication-form-card{background:#fff;padding:1.5rem;border-radius:1rem;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d;margin-bottom:2rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.75rem;font-weight:700;color:#64748b;text-transform:uppercase;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1.5px solid #f1f5f9;background:#f8fafc;border-radius:.75rem;font-size:.9375rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.btn-submit-med{width:100%;padding:.875rem;background:#10b981;color:#fff;border:none;border-radius:.75rem;font-weight:700;font-size:1rem;cursor:pointer}.medication-history h3{font-size:1.125rem;font-weight:700;color:#1e293b;margin-bottom:1rem}.medication-list{display:flex;flex-direction:column;gap:1rem}.medication-card-v2{background:#fff;border-radius:1rem;padding:1.25rem;border:1px solid #e2e8f0;box-shadow:0 1px 2px #00000008}.med-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.student-badge{background:#eff6ff;color:#3b82f6;padding:.25rem .625rem;border-radius:2rem;font-size:.75rem;font-weight:700}.status-badge.active{background:#fef9c3;color:#854d0e}.status-badge.completed{background:#dcfce7;color:#166534}.medicine-info{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.medicine-info .material-symbols-outlined{color:#3b82f6}.medicine-info strong{color:#1e293b}.medicine-info .dosage{color:#64748b;font-size:.875rem}.instruction-text{font-size:.9375rem;color:#475569;line-height:1.5;margin:.5rem 0 1rem}.med-dates{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#94a3b8}.med-dates .material-symbols-outlined{font-size:1rem}.teacher-note{margin-top:1rem;padding:.75rem;background:#f0fdf4;border-radius:.5rem;border-left:3px solid #22c55e}.teacher-note strong{display:block;font-size:.75rem;color:#166534;margin-bottom:.25rem}.teacher-note p{font-size:.875rem;color:#15803d;margin:0}.empty-history{text-align:center;padding:3rem 1rem;color:#94a3b8}.empty-history .material-symbols-outlined{font-size:3rem;opacity:.5;margin-bottom:.5rem}@media(max-width:640px){.form-row{grid-template-columns:1fr}}.parent-activities-page{animation:fadeIn .3s ease-out}.activities-header{margin-bottom:1.5rem}.activities-header h1{font-size:1.5rem;font-weight:800;color:#1e293b;margin-bottom:.25rem}.activities-header p{color:#64748b;font-size:.875rem}.activities-filters{display:flex;gap:.75rem;margin-bottom:1.5rem}.student-select,.date-input{flex:1;padding:.625rem;border-radius:.75rem;border:1.5px solid #f1f5f9;background:#fff;font-size:.875rem;font-weight:600;color:#334155}.activities-timeline{display:flex;flex-direction:column;gap:2rem}.activity-section{display:flex;flex-direction:column;gap:1rem}.section-title{display:flex;align-items:center;gap:.5rem;color:#3b82f6}.section-title h3{font-size:1rem;font-weight:700;margin:0}.activity-card{background:#fff;border-radius:1rem;padding:1.25rem;border:1px solid #e2e8f0;box-shadow:0 1px 2px #00000008}.activity-card.highlight{border-left:4px solid #3b82f6;background:#f0f7ff}.status-row{display:flex;gap:.5rem;margin-bottom:.75rem}.status-badge{font-size:.6875rem;font-weight:700;padding:.25rem .5rem;border-radius:.375rem}.status-badge.present{background:#dcfce7;color:#166534}.status-badge.absent{background:#fee2e2;color:#991b1b}.status-badge.med{background:#fef9c3;color:#854d0e}.note-content{font-size:.9375rem;color:#334155;line-height:1.5;margin:0}.pickup-info{margin-top:.75rem;font-size:.8125rem;color:#64748b;padding-top:.5rem;border-top:1px dashed #cbd5e1}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.teacher-name{font-size:.875rem;font-weight:700;color:#1e293b}.post-time{font-size:.75rem;color:#94a3b8}.journal-content{font-size:.9375rem;color:#475569;line-height:1.6}.empty-state{text-align:center;padding:2rem 1rem;background:#f8fafc;border-radius:1rem;border:1px dashed #e2e8f0;color:#94a3b8;font-size:.875rem}.loading-state{text-align:center;padding:4rem;color:#64748b}.parent-photos-page{animation:fadeIn .3s ease-out}.photos-header{margin-bottom:1.5rem}.photos-header h1{font-size:1.5rem;font-weight:800;color:#1e293b;margin-bottom:.25rem}.photos-header p{color:#64748b;font-size:.875rem}.photo-date-group{margin-bottom:2rem}.date-title{font-size:1rem;font-weight:700;color:#334155;margin-bottom:1rem;padding-left:.5rem;border-left:4px solid #3b82f6}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.photo-item{position:relative;aspect-ratio:1 / 1;border-radius:.75rem;overflow:hidden;background:#f1f5f9;cursor:pointer;box-shadow:0 1px 2px #0000000d}.photo-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.photo-item:hover img{transform:scale(1.05)}.photo-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000000b3);padding:.5rem;color:#fff;font-size:.65rem;pointer-events:none}.photo-desc{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.empty-photos-state{text-align:center;padding:4rem 1rem;color:#94a3b8}.empty-photos-state .material-symbols-outlined{font-size:4rem;opacity:.5;margin-bottom:1rem}.photo-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;z-index:10000;display:flex;align-items:center;justify-content:center;padding:1rem}.lightbox-content{position:relative;max-width:100%;max-height:100%}.lightbox-content img{max-width:100vw;max-height:80vh;object-fit:contain;border-radius:.5rem}.close-lightbox{position:absolute;top:-3rem;right:0;background:#fff;border:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#1e293b}.lightbox-caption{margin-top:1rem;color:#fff;text-align:center}.lightbox-caption p{font-size:1rem;font-weight:500;margin:0 0 .25rem}.caption-date{font-size:.75rem;color:#94a3b8}@media(max-width:480px){.photo-grid{grid-template-columns:repeat(2,1fr)}}.parent-schedule-page{animation:fadeIn .3s ease-out}.schedule-header{margin-bottom:1.5rem}.schedule-header h1{font-size:1.5rem;font-weight:800;color:#1e293b;margin-bottom:.25rem}.schedule-header p{color:#64748b;font-size:.875rem}.schedule-filters{margin-bottom:1.5rem}.week-info{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.75rem 1rem;background:#eff6ff;color:#3b82f6;border-radius:.75rem;font-size:.9375rem}.days-grid{display:flex;flex-direction:column;gap:1rem}.day-card{background:#fff;border-radius:1rem;border:1px solid #e2e8f0;overflow:hidden;box-shadow:0 1px 2px #00000008}.day-header{background:#f8fafc;padding:.75rem 1.25rem;font-weight:700;color:#1e293b;border-bottom:1px solid #e2e8f0}.day-content{padding:1rem}.schedule-item{display:flex;gap:1rem;padding:.75rem 0;border-bottom:1px dashed #f1f5f9}.schedule-item:last-child{border-bottom:none}.item-time{font-size:.75rem;font-weight:800;color:#3b82f6;min-width:60px}.item-activity{font-size:.875rem;color:#334155;font-weight:500}.content-text{font-size:.875rem;color:#475569;line-height:1.5;margin:0}.no-data{font-size:.8125rem;color:#94a3b8;font-style:italic;margin:0}.empty-schedule{text-align:center;padding:4rem 1rem;color:#94a3b8}.empty-schedule .material-symbols-outlined{font-size:4rem;opacity:.5;margin-bottom:1rem}.guide-page{padding:1rem 2rem;max-width:1200px;margin:0 auto;color:#1e293b}.guide-header{text-align:center;margin-bottom:1.5rem;background:linear-gradient(135deg,#3b82f6,#2563eb);padding:1.5rem;border-radius:1rem;color:#fff;box-shadow:0 10px 15px -3px #0000001a}.guide-header h1{font-size:1.75rem;margin-bottom:.5rem}.guide-header p{font-size:1rem;opacity:.9}.guide-section{margin-bottom:2rem}.guide-section h2{font-size:1.4rem;margin-bottom:1rem;padding-bottom:.3rem;border-bottom:3px solid #3b82f6;display:inline-block}.overview-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:1.5rem}.overview-card.main{background:#fff;padding:1.25rem;border-radius:1rem;box-shadow:0 4px 6px -1px #0000001a;display:flex;flex-direction:column;align-items:center;text-align:center}.card-icon{font-size:2.5rem;color:#3b82f6;margin-bottom:.75rem}.overview-card.main h3{font-size:1.25rem;margin-bottom:.5rem}.overview-card.main p{line-height:1.5;color:#64748b;font-size:.95rem}.overview-features{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.feature-mini-card{background:#f8fafc;padding:1rem;border-radius:.75rem;display:flex;gap:1rem;transition:transform .2s;border:1px solid #e2e8f0}.feature-mini-card span{color:#3b82f6;font-size:1.75rem}.steps-container{display:flex;flex-direction:column;gap:1rem}.step-item{display:flex;gap:1rem;align-items:flex-start;padding:1rem;background:#fff;border-radius:.75rem;box-shadow:0 2px 4px #0000000d}.step-number{background:#3b82f6;color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0}@media(max-width:768px){.overview-grid{grid-template-columns:1fr}}.features-detail-container{display:flex;flex-direction:column;gap:2rem}.feature-group-section{background:#fff;padding:1.25rem;border-radius:1rem;box-shadow:0 4px 6px -1px #0000000d}.group-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #f1f5f9}.group-header span{background:#eff6ff;color:#3b82f6;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.group-header h2{margin:0;font-size:1.25rem;color:#0f172a}.feature-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.feature-detail-card{background:#f8fafc;padding:1.25rem;border-radius:.75rem;border:1px solid #e2e8f0}.roadmap-container{display:flex;gap:1.5rem;overflow-x:auto;padding-bottom:1rem}.roadmap-column{flex:1;min-width:300px;background:#f1f5f9;padding:1rem;border-radius:1rem;display:flex;flex-direction:column;gap:1rem}.column-header{display:flex;align-items:center;gap:.75rem;padding-bottom:.75rem;border-bottom:2px solid}.column-header h2{font-size:1.1rem;margin:0;border:none}.roadmap-card{background:#fff;padding:1rem;border-radius:.75rem}.roadmap-card h4{margin-bottom:.4rem;font-size:1rem}.roadmap-card p{font-size:.85rem;margin-bottom:.75rem}.role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem;margin-bottom:2rem}.role-card{background:#fff;padding:1.25rem;border-radius:1rem;display:flex;gap:1rem;box-shadow:0 2px 4px #0000000d}.role-icon-box{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.role-icon-box span{font-size:1.75rem}.role-info h3{margin-bottom:.25rem;font-size:1.1rem}.role-info p{font-size:.85rem;color:#64748b;margin:0;line-height:1.4}.matrix-wrapper{background:#fff;border-radius:1rem;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d}.permission-table{width:100%;border-collapse:collapse;font-size:.95rem}.permission-table th{background:#f8fafc;padding:1rem;text-align:left;color:#475569;font-weight:600;border-bottom:2px solid #e2e8f0}.permission-table td{padding:.75rem 1rem;border-bottom:1px solid #f1f5f9;color:#1e293b}.permission-table tr:hover{background:#f1f5f9}.permission-table td.center{text-align:center}.check-v{font-size:1.1rem}.roadmap-progress{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.progress-bar{height:100%;border-radius:3px;transition:width 1s ease-in-out}:root{--sidebar-width: 260px;--sidebar-collapsed-width: 80px;--primary-color: #2563eb;--bg-light: #f8fafc;--text-main: #1e293b;--text-muted: #64748b;--border-color: #e2e8f0;--transition-speed: .3s}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,sans-serif;background-color:var(--bg-light);color:var(--text-main)}.app-layout{display:flex;min-height:100vh}.sidebar-v4{width:var(--sidebar-width);background:#fff;border-right:1px solid var(--border-color);display:flex;flex-direction:column;position:fixed;height:100vh;z-index:1100;transition:width var(--transition-speed) ease}.sidebar-collapsed .sidebar-v4{width:var(--sidebar-collapsed-width)}.sidebar-header{padding:1.5rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color);position:relative}.brand{display:flex;align-items:center;gap:.75rem;overflow:hidden}.logo-icon{font-size:1.75rem;min-width:32px;color:var(--primary-color)}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;vertical-align:middle}.nav-icon.material-symbols-outlined{font-size:1.5rem;min-width:24px}.brand-name{font-weight:700;font-size:1.25rem;color:var(--text-main);white-space:nowrap;transition:opacity .2s}.sidebar-collapsed .brand-name{opacity:0;pointer-events:none}.sidebar-toggle{background:transparent;border:none;padding:0 .5rem;cursor:pointer;color:var(--text-muted);position:absolute;right:0;top:0;bottom:0;display:flex;align-items:center;transition:all .2s;z-index:10;border-left:1px solid transparent}.sidebar-toggle:hover{background:var(--bg-light);color:var(--primary-color);border-left:1px solid var(--border-color)}.sidebar-nav{flex:1;padding:1rem .75rem;overflow-y:auto}.nav-link-v4{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;text-decoration:none;color:var(--text-muted);border-radius:8px;margin-bottom:.25rem;transition:all .2s;white-space:nowrap}.nav-link-v4:hover{background:var(--bg-light);color:var(--primary-color)}.nav-link-v4.active{background:#eff6ff;color:var(--primary-color);font-weight:600}.group-toggle{width:100%;border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:inherit;text-align:left}.expand-icon{margin-left:auto;font-size:1.25rem!important;transition:transform .2s}.sidebar-collapsed .expand-icon{display:none}.nav-sub-items{margin-left:.5rem;padding-left:.5rem;border-left:1px solid var(--border-color);display:flex;flex-direction:column}.sub-link{padding:.5rem 1rem;font-size:.9rem;margin-bottom:.125rem}.nav-icon{font-size:1.25rem;min-width:24px;display:flex;justify-content:center}.sidebar-collapsed .nav-label{display:none}.sidebar-footer{padding:1rem 1.5rem;border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;position:relative}.user-profile{display:flex;align-items:center;gap:.75rem;overflow:hidden}.user-avatar{width:36px;height:36px;background:var(--primary-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.user-details{overflow:hidden;transition:opacity .2s}.sidebar-collapsed .user-details{opacity:0;width:0}.user-name{margin:0;font-size:.875rem;font-weight:600;white-space:nowrap}.user-role{margin:0;font-size:.75rem;color:var(--text-muted);text-transform:capitalize}.logout-icon-btn{background:transparent;border:none;width:48px;cursor:pointer;color:var(--text-muted);position:absolute;right:0;top:0;bottom:0;display:flex;align-items:center;justify-content:center;transition:all .2s;border-left:1px solid transparent}.logout-icon-btn:hover{background:#fee2e2;color:#ef4444;border-left:1px solid #fecaca}.main-wrapper{flex:1;margin-left:var(--sidebar-width);transition:margin-left var(--transition-speed) ease;display:flex;flex-direction:column}.sidebar-collapsed .main-wrapper{margin-left:var(--sidebar-collapsed-width)}.main-content-v4{padding:.2rem;width:100%;margin:0;flex:1}.mobile-header{display:none;padding:1rem;background:#fff;border-bottom:1px solid var(--border-color);align-items:center;justify-content:space-between;position:sticky;top:0;z-index:900}.hamburger{font-size:1.5rem;background:none;border:none;cursor:pointer}.mobile-title{font-size:1.125rem;font-weight:700;margin:0}.mobile-user{width:32px;height:32px;background:var(--primary-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.pending-screen{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-light);padding:20px}.pending-card{background:#fff;padding:3rem;border-radius:16px;box-shadow:0 10px 25px -5px #0000001a;text-align:center;max-width:450px;width:100%}.pending-icon{font-size:4rem;margin-bottom:1.5rem}.btn-logout-alt{margin-top:2rem;background:#ef4444;color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-weight:600;cursor:pointer}@media(max-width:1024px){.sidebar-v4{width:var(--sidebar-collapsed-width)}.main-wrapper{margin-left:var(--sidebar-collapsed-width)}.sidebar-collapsed .sidebar-v4{width:0;transform:translate(-100%)}}@media(max-width:768px){.sidebar-v4{position:fixed;left:0;top:0;width:280px!important;transform:translate(-100%);transition:transform .3s ease}.sidebar-open .sidebar-v4{transform:translate(0)}.main-wrapper{margin-left:0!important}.mobile-header{display:flex}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1050}.main-content-v4{padding:1rem}.sidebar-toggle,.logout-icon-btn{display:none}.mobile-bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:65px;background:#fff;border-top:1px solid var(--border-color);z-index:1000;justify-content:space-around;align-items:center;padding-bottom:env(safe-area-inset-bottom)}.mobile-bottom-nav .nav-item{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--text-muted);font-size:.65rem;font-weight:500;gap:2px;flex:1}.mobile-bottom-nav .nav-item .material-symbols-outlined{font-size:1.5rem}.mobile-bottom-nav .nav-item.active{color:var(--primary-color)}.main-wrapper{padding-bottom:70px}}@media(min-width:769px){.mobile-bottom-nav{display:none}}
