:root{color-scheme:light;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#eef2ff;color:#1f2937}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--background)}button,input,select{font:inherit}.login-page{min-height:100vh;display:grid;place-items:center;padding:2rem;background:radial-gradient(circle at top left,#ddd6fe,transparent 38%),linear-gradient(135deg,#f8fafc,#ede9fe)}.login-card{width:min(460px,100%);padding:2.25rem;border-radius:28px;background:#fffffff0;box-shadow:0 30px 90px #4c1d952e}.login-brand{display:flex;gap:1rem;align-items:center;margin-bottom:2rem}.login-brand h1,.login-brand p{margin:0}.login-brand p{margin-top:.35rem;color:#64748b}.brand-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#7c3aed;color:#fff;font-size:1.6rem;font-weight:800}.login-form{display:grid;gap:1.1rem}.login-form label{display:grid;gap:.45rem;font-weight:650;color:#334155}.login-form input,.login-form select{width:100%;padding:.85rem 1rem;border:1px solid #cbd5e1;border-radius:12px;background:#fff;color:#0f172a}.login-form button{border:0;border-radius:12px;padding:.9rem;color:#fff;background:#7c3aed;font-weight:750;cursor:pointer}.login-form button:disabled{opacity:.6;cursor:wait}.login-error{margin:0;color:#b91c1c}.server-status{margin:-.45rem 0 0;color:#92400e;font-size:.82rem;line-height:1.45}.demo-accounts{display:grid;gap:.35rem;margin-top:1.5rem;padding:1rem;border-radius:14px;background:#f5f3ff;color:#5b21b6;font-size:.86rem}.session-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;color:var(--muted)}.session-bar button{border:1px solid var(--primary);border-radius:999px;padding:.45rem .9rem;background:var(--card);color:var(--primary);cursor:pointer}.roster-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem}.roster-heading h2,.roster-heading p{margin:0}.roster-heading p{margin-top:.35rem;color:var(--muted)}.roster-filters{display:flex;gap:.75rem}.roster-filters label{display:grid;gap:.25rem;color:var(--muted);font-size:.82rem}.roster-filters select{min-width:130px;padding:.55rem .7rem;border:1px solid var(--primary-soft);border-radius:10px;background:var(--card);color:var(--text)}@media (max-width: 700px){.roster-heading,.roster-filters{align-items:stretch;flex-direction:column}}.teacher-workspace{display:grid;gap:1.25rem}.teacher-duty-panel h2{margin:.3rem 0 1rem;color:var(--text)}.duty-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem}.specialization-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.specialization-list span{padding:.4rem .7rem;border-radius:999px;background:var(--primary);color:#fff;font-size:.82rem;font-weight:750}.duty-item{padding:.85rem 1rem;border-left:4px solid var(--primary);border-radius:10px;background:var(--primary-soft);color:var(--text);font-weight:650}.schedule-heading{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin-bottom:1rem}.schedule-heading h2,.schedule-heading p{margin:0}.schedule-heading h2{margin:.25rem 0;color:var(--text)}.schedule-heading p:last-child{color:var(--muted)}.schedule-tabs{display:flex;padding:.25rem;border-radius:12px;background:var(--primary-soft)}.schedule-tabs button{padding:.5rem .75rem;border:0;border-radius:9px;background:transparent;color:var(--text);cursor:pointer}.schedule-tabs button.active{background:var(--card);color:var(--primary);box-shadow:0 2px 8px #0f172a1a;font-weight:750}.schedule-list{display:grid;gap:.6rem;max-height:430px;overflow:auto}.schedule-list article{display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.8rem;border:1px solid var(--primary-soft);border-radius:12px}.schedule-date{display:grid;text-align:center}.schedule-date strong{color:var(--primary);font-size:1.25rem}.schedule-date span,.schedule-subject span,.schedule-meta span{color:var(--muted);font-size:.8rem}.schedule-subject,.schedule-meta{display:grid;gap:.25rem}.schedule-subject strong{color:var(--text)}.schedule-meta{text-align:right}.feedback-list-heading{display:flex;justify-content:space-between;gap:1rem;align-items:start;margin-bottom:1rem}.feedback-list-heading h2,.feedback-list-heading p{margin:0}.feedback-list-heading p{margin-top:.35rem;color:var(--muted)}.feedback-list-heading>span{padding:.35rem .65rem;border-radius:999px;background:var(--primary-soft);white-space:nowrap}.teacher-feedback-list{display:grid;gap:.75rem}.teacher-feedback-list article{padding:1rem;border:1px solid var(--primary-soft);border-radius:12px}.teacher-feedback-list article>div{display:flex;justify-content:space-between;gap:1rem}.teacher-feedback-list article span{color:var(--muted);font-size:.82rem}.teacher-feedback-list article p{margin:.65rem 0 0;color:var(--text)}.empty-state{color:var(--muted)}.admin-feedback-list{flex:1;overflow:auto;display:grid;align-content:start;gap:.75rem}.admin-feedback-list article{padding:1rem;border:1px solid var(--primary-soft);border-radius:12px}.admin-feedback-list article>div{display:flex;justify-content:space-between;gap:1rem}.admin-feedback-list article span,.admin-feedback-list article small{color:var(--muted)}.admin-feedback-list article p{margin:.7rem 0;color:var(--text)}.feedback-table-wrap{flex:1;overflow:auto;border:1px solid var(--primary-soft);border-radius:12px}.feedback-records-table{width:100%;min-width:980px;border-collapse:collapse;background:var(--card);font-size:.84rem}.feedback-records-table th,.feedback-records-table td{padding:.75rem .7rem;border-bottom:1px solid var(--primary-soft);text-align:left;color:var(--text);vertical-align:top}.feedback-records-table th{position:sticky;top:0;background:var(--primary-soft);color:var(--muted);font-size:.72rem;text-transform:uppercase;white-space:nowrap}.feedback-status{display:inline-flex;padding:.28rem .5rem;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:.72rem;font-weight:800}.feedback-message-cell{min-width:300px;white-space:normal;line-height:1.5}.teacher-management-form{flex:1;overflow:auto;display:grid;align-content:start;gap:1rem;padding-right:.25rem}.teacher-management-form label{display:grid;gap:.35rem;color:var(--text);font-size:.85rem;font-weight:700}.teacher-management-form input,.teacher-management-form select,.teacher-management-form textarea{min-width:0;padding:.65rem .7rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--background);color:var(--text)}.teacher-picker{padding:.8rem;border-radius:12px;background:var(--primary-soft)}.teacher-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.teacher-management-form fieldset{margin:0;padding:1rem;border:1px solid var(--primary-soft);border-radius:12px}.teacher-management-form legend{padding:0 .4rem;color:var(--text);font-weight:800}.specialization-options{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.specialization-options label{display:flex;align-items:center;gap:.5rem;font-weight:600}.specialization-options input{width:auto}.assignment-form-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;margin-bottom:.5rem}.teacher-management-form button{border:0;border-radius:9px;padding:.62rem .8rem;background:var(--primary);color:#fff;font-weight:750;cursor:pointer}.assignment-form-row button,.timetable-form-row button{background:#fee2e2;color:#b91c1c}.form-add-button{margin-top:.35rem;background:var(--primary-soft)!important;color:var(--primary)!important}.duties-field textarea{resize:vertical}.timetable-form{display:grid;gap:.65rem}.timetable-form-row{display:grid;grid-template-columns:1.15fr .85fr .85fr 1.4fr .65fr .65fr 1fr auto;gap:.4rem}.timetable-form-row input,.timetable-form-row select{width:100%;font-size:.8rem}.teacher-form-actions{display:flex;justify-content:flex-end;gap:.75rem;position:sticky;bottom:0;padding:.75rem 0;background:var(--card)}.teacher-form-actions .danger{margin-right:auto;background:#dc2626}.teacher-form-actions .secondary{background:var(--primary-soft);color:var(--text)}.teacher-table-page{display:grid;gap:.75rem}.teacher-table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.teacher-table-toolbar>div{display:grid;gap:.2rem}.teacher-table-toolbar strong{color:var(--text);font-size:1.05rem}.teacher-table-toolbar span{color:var(--muted);font-size:.8rem}.teacher-search{display:grid;gap:.35rem;color:var(--text);font-size:.84rem;font-weight:700}.teacher-search input{padding:.65rem .7rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--background);color:var(--text)}.teacher-records-wrap{overflow:auto;border:1px solid var(--primary-soft);border-radius:12px}.teacher-records-table{width:100%;min-width:1250px;border-collapse:collapse;background:var(--card);font-size:.82rem}.teacher-records-table th,.teacher-records-table td{padding:.75rem .65rem;border-bottom:1px solid var(--primary-soft);text-align:left;color:var(--text)}.teacher-records-table th{background:var(--primary-soft);color:var(--muted);font-size:.72rem;text-transform:uppercase;white-space:nowrap}.teacher-row-actions{display:flex;gap:.35rem}.teacher-row-actions button{display:grid;place-items:center;width:32px;height:32px;padding:0;background:var(--primary-soft);color:var(--primary)}.teacher-row-actions button.delete{background:#fee2e2;color:#b91c1c}.teacher-edit-backdrop{position:fixed;z-index:145;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1.5rem;background:#0f172a94}.teacher-edit-popup{width:min(1180px,100%);max-height:calc(100vh - 3rem);overflow:auto;display:grid;gap:1rem;padding:1.25rem;border-radius:20px;background:var(--card);box-shadow:0 30px 90px #0f172a4d}.teacher-login-fields{background:color-mix(in srgb,var(--primary-soft) 45%,transparent)}.teacher-login-toggle{display:flex!important;align-items:center;gap:.6rem!important;margin-top:.8rem}.teacher-login-toggle input{width:auto}.teacher-login-fields>p{margin:.6rem 0 0;color:var(--muted);font-size:.82rem}.login-status{display:inline-flex;padding:.28rem .5rem;border-radius:999px;font-size:.72rem;font-weight:800}.login-status.enabled{background:#dcfce7;color:#166534}.login-status.disabled{background:#e5e7eb;color:#4b5563}.content-management-form{flex:1;overflow:auto;display:grid;align-content:start;gap:1rem;padding-right:.25rem}.content-form-toolbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border-radius:12px;background:var(--primary-soft);color:var(--text);font-weight:750}.content-management-form button{border:0;border-radius:9px;padding:.62rem .8rem;background:var(--primary);color:#fff;font-weight:750;cursor:pointer}.content-item-form{position:relative;margin:0;padding:1rem;border:1px solid var(--primary-soft);border-radius:12px}.content-item-form legend{padding:0 .4rem;color:var(--text);font-weight:800;text-transform:capitalize}.content-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.content-field-grid label{display:grid;gap:.35rem;color:var(--text);font-size:.85rem;font-weight:700}.content-field-grid input,.content-field-grid select,.content-field-grid textarea{width:100%;min-width:0;padding:.65rem .7rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--background);color:var(--text)}.content-field-grid textarea{resize:vertical}.content-field-grid .wide-field{grid-column:1 / -1}.admin-checkbox{display:flex!important;align-items:center;gap:.6rem!important;padding:.7rem;border-radius:9px;background:var(--primary-soft)}.admin-checkbox input{width:auto}.remove-content-item{margin-top:.75rem;background:#fee2e2!important;color:#b91c1c!important}.content-form-actions{display:flex;justify-content:flex-end;position:sticky;bottom:0;padding:.75rem 0;background:var(--card)}.generic-content-table-wrap{overflow:auto;border:1px solid var(--primary-soft);border-radius:12px}.generic-content-table{width:100%;min-width:900px;border-collapse:collapse;background:var(--card);font-size:.84rem}.generic-content-table th,.generic-content-table td{padding:.75rem .7rem;border-bottom:1px solid var(--primary-soft);text-align:left;color:var(--text);vertical-align:top}.generic-content-table th{position:sticky;top:0;background:var(--primary-soft);color:var(--muted);font-size:.72rem;text-transform:uppercase;white-space:nowrap}.generic-content-table .long-content-cell{min-width:260px;line-height:1.45}.generic-row-actions{display:flex;gap:.35rem}.generic-row-actions button{display:grid;place-items:center;width:32px;height:32px;padding:0;background:var(--primary-soft);color:var(--primary)}.generic-row-actions button.delete{background:#fee2e2;color:#b91c1c}.generic-item-popup-backdrop{position:fixed;z-index:150;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1.5rem;background:#0f172a94}.generic-item-popup{width:min(900px,100%);max-height:calc(100vh - 3rem);overflow:auto;display:grid;gap:1rem;padding:1.25rem;border-radius:20px;background:var(--card);box-shadow:0 30px 90px #0f172a4d}.exam-management{flex:1;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:.75rem}.exam-filter-bar{display:grid;grid-template-columns:180px 180px minmax(260px,1fr);gap:.7rem}.exam-filter-bar label,.exam-result-editor label{display:grid;gap:.32rem;color:var(--text);font-size:.8rem;font-weight:750}.exam-filter-bar input,.exam-filter-bar select,.exam-result-editor input,.exam-result-editor select{width:100%;padding:.62rem .68rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--background);color:var(--text)}.exam-roster-count{margin:0;color:var(--muted);font-size:.82rem}.exam-student-table-wrap,.exam-results-table-wrap{overflow:auto;border:1px solid var(--primary-soft);border-radius:12px}.exam-student-table,.exam-results-table{width:100%;min-width:900px;border-collapse:collapse;background:var(--card);font-size:.82rem}.exam-student-table th,.exam-student-table td,.exam-results-table th,.exam-results-table td{padding:.7rem .65rem;border-bottom:1px solid var(--primary-soft);text-align:left;color:var(--text);white-space:nowrap}.exam-student-table th,.exam-results-table th{background:var(--primary-soft);color:var(--muted);font-size:.7rem;text-transform:uppercase}.exam-student-table td small{display:block;margin-top:.18rem;color:var(--muted)}.manage-results-button,.exam-popup-toolbar button,.exam-editor-actions button{border:0;border-radius:8px;padding:.55rem .7rem;background:var(--primary);color:#fff;font-weight:750;cursor:pointer}.exam-results-popup{width:min(1100px,100%)}.exam-popup-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;color:var(--text)}.exam-result-editor{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;padding:.85rem;border:1px solid var(--primary-soft);border-radius:12px;background:var(--background)}.exam-result-editor .wide-field{grid-column:span 2}.exam-editor-actions{display:flex;justify-content:flex-end;align-items:end;gap:.5rem}.exam-editor-actions .secondary{background:var(--primary-soft);color:var(--text)}.exam-module{flex:1;min-height:0;display:grid;align-content:start;gap:.85rem;overflow:auto}.exam-admin-tabs{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.2rem}.exam-admin-tabs button{white-space:nowrap;border:1px solid var(--primary-soft);border-radius:9px;padding:.6rem .75rem;background:var(--card);color:var(--text);font-weight:750;cursor:pointer}.exam-admin-tabs button.active{border-color:var(--primary);background:var(--primary);color:#fff}.exam-admin-message{margin:0;padding:.6rem .75rem;border-radius:9px;background:var(--primary-soft);color:var(--text);font-size:.82rem}.exam-section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.exam-section-heading h3,.exam-section-heading p{margin:0}.exam-section-heading h3{color:var(--text)}.exam-section-heading p{margin-top:.25rem;color:var(--muted);font-size:.8rem}.exam-section-heading>button,.exam-mark-actions button{border:0;border-radius:9px;padding:.62rem .8rem;background:var(--primary);color:#fff;font-weight:750;cursor:pointer}.exam-publish-status{display:inline-flex;padding:.28rem .52rem;border-radius:999px;background:#fef3c7;color:#92400e;font-size:.7rem;font-weight:800}.exam-publish-status.published{background:#dcfce7;color:#166534}.exam-mark-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:.65rem}.exam-mark-filters label{display:grid;gap:.3rem;color:var(--text);font-size:.78rem;font-weight:750}.exam-mark-filters select{width:100%;padding:.62rem .68rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--background);color:var(--text)}.mark-entry-input{width:90px;padding:.48rem;border:1px solid var(--primary-soft);border-radius:7px;background:var(--background);color:var(--text)}.exam-mark-actions{display:flex;justify-content:flex-end;gap:.6rem}.exam-mark-actions .secondary{background:var(--primary-soft);color:var(--text)}.exam-analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem}.exam-analysis-filters{display:grid;grid-template-columns:220px 220px;gap:.65rem}.exam-analysis-filters label{display:grid;gap:.3rem;color:var(--text);font-size:.78rem;font-weight:750}.exam-analysis-filters select{width:100%;padding:.62rem .68rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--background);color:var(--text)}.exam-analysis-hint{margin:0;padding:.65rem .75rem;border-radius:9px;background:#fef3c7;color:#92400e;font-size:.8rem}.exam-analysis-grid article{padding:1rem;border:1px solid var(--primary-soft);border-radius:14px;background:var(--card)}.exam-analysis-grid article>span{color:var(--primary);font-size:.72rem;font-weight:800;text-transform:uppercase}.exam-analysis-grid h4{margin:.25rem 0 .8rem;color:var(--text)}.exam-analysis-grid dl{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:0}.exam-analysis-grid dl div{display:grid;gap:.15rem;padding:.6rem;border-radius:9px;background:var(--background)}.exam-analysis-grid dt{color:var(--muted);font-size:.7rem}.exam-analysis-grid dd{margin:0;color:var(--text);font-weight:800}.exam-config-popup{width:min(760px,100%)}.student-exam-module{display:grid;gap:1rem}.student-exam-module .card-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.student-exam-module .card-header h2,.student-exam-module .card-header p{margin:0}.student-exam-module .card-header p{margin-top:.25rem;color:var(--muted)}.student-exam-module .card-header select{padding:.6rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--card);color:var(--text)}.student-exam-card{display:grid;gap:.75rem;padding:1rem;border-radius:14px;background:var(--card);box-shadow:var(--shadow)}.student-exam-card h3{margin:0;color:var(--text)}.student-exam-table-wrap{overflow:auto;border:1px solid var(--primary-soft);border-radius:10px}.student-exam-table{width:100%;min-width:650px;border-collapse:collapse}.student-exam-table th,.student-exam-table td{padding:.7rem;border-bottom:1px solid var(--primary-soft);text-align:left;color:var(--text)}.student-exam-table th{background:var(--primary-soft);color:var(--muted);font-size:.72rem;text-transform:uppercase}.result-grade{display:inline-grid;place-items:center;min-width:36px;padding:.3rem;border-radius:7px;background:var(--primary-soft);color:var(--primary);font-weight:850}.student-result-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}.student-result-summary div{display:grid;gap:.2rem;padding:.75rem;border-radius:10px;background:var(--background)}.student-result-summary span{color:var(--muted);font-size:.72rem}.student-result-summary strong{color:var(--text)}.student-result-summary .pass{color:#15803d}.student-result-summary .fail{color:#b91c1c}.comment-result-button{border:1px solid var(--primary-soft);border-radius:7px;padding:.45rem .55rem;background:var(--card);color:var(--primary);font-weight:750;cursor:pointer}.comment-result-button:disabled{opacity:.45;cursor:not-allowed}.report-card-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.report-card-heading span{color:var(--primary);font-size:.75rem;font-weight:850;text-transform:uppercase}.report-card-heading h3,.report-card-heading p{margin:.2rem 0 0}.report-card-heading p{color:var(--muted)}.download-report-button{border:0;border-radius:9px;padding:.65rem .8rem;background:var(--primary);color:#fff;font-weight:800;cursor:pointer}.report-student-details{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;padding:.75rem;border:1px solid var(--primary-soft);border-radius:10px}.report-student-details div{display:grid;gap:.15rem}.report-student-details span,.report-comments span{color:var(--muted);font-size:.7rem;font-weight:750;text-transform:uppercase}.report-student-details strong{color:var(--text)}.report-comments{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.report-comments>div{padding:.75rem;border:1px solid var(--primary-soft);border-radius:10px}.report-comments p{margin:.35rem 0 0;color:var(--text);line-height:1.5}.report-signatures{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-top:1.5rem;padding-top:1.5rem}.report-signatures div{padding-top:.5rem;border-top:1px solid var(--text);color:var(--text);text-align:center;font-weight:700}.fee-management-form{flex:1;overflow:auto;display:grid;align-content:start;gap:1rem;padding-right:.25rem}.fee-management-form label{display:grid;gap:.35rem;color:var(--text);font-size:.85rem;font-weight:700}.fee-management-form input,.fee-management-form select{min-width:0;padding:.62rem .68rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--background);color:var(--text)}.fee-account-picker{padding:.8rem;border-radius:12px;background:var(--primary-soft)}.fee-account-browser{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--primary-soft);border-radius:14px}.fee-browser-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.fee-browser-heading>div{display:grid;gap:.2rem}.fee-browser-heading strong{color:var(--text)}.fee-browser-heading span{color:var(--muted);font-size:.8rem}.fee-overall-summary{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:.6rem}.fee-overall-summary>div{display:grid;gap:.2rem;padding:.75rem;border:1px solid var(--primary-soft);border-radius:10px;background:var(--background)}.fee-overall-summary>div.alert{border-color:#fca5a5;background:#fff1f2}.fee-overall-summary span{color:var(--muted);font-size:.7rem;font-weight:750;text-transform:uppercase}.fee-overall-summary strong{color:var(--text);font-size:1.05rem}.fee-overall-summary small{color:var(--muted)}.long-pending-panel{display:grid;gap:.6rem;padding:.8rem;border:1px solid #fca5a5;border-radius:11px;background:#fff7f7}.long-pending-panel>div:first-child{display:flex;justify-content:space-between;gap:1rem;color:#991b1b}.long-pending-panel>div:first-child span{color:#b45309;font-size:.75rem}.long-pending-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.5rem}.long-pending-list button{display:flex;justify-content:space-between;gap:.75rem;padding:.65rem;border:1px solid #fecaca;border-radius:9px;background:#fff;color:var(--text);text-align:left;cursor:pointer}.long-pending-list button>span{display:grid;gap:.15rem}.long-pending-list button>span:last-child{text-align:right}.long-pending-list small{color:var(--muted)}.overdue-fee-row{background:snow}.overdue-fee-row td:first-child small{display:block;margin-top:.15rem;color:#b91c1c}.fee-browser-filters{display:grid;grid-template-columns:minmax(220px,1fr) 150px 150px;gap:.65rem}.fee-student-results{display:grid;gap:.4rem;max-height:230px;overflow:auto}.fee-student-results>button{display:grid;grid-template-columns:minmax(190px,1.5fr) 1fr .75fr;gap:.75rem;align-items:center;text-align:left;background:var(--background);color:var(--text);border:1px solid var(--primary-soft)}.fee-student-results>button.active{border-color:var(--primary);box-shadow:inset 4px 0 0 var(--primary)}.fee-student-results>button span{display:grid;gap:.2rem}.fee-student-results>button small{color:var(--muted);font-weight:500}.fee-table-wrap{overflow:auto;border:1px solid var(--primary-soft);border-radius:12px}.fee-records-table{width:100%;min-width:1320px;border-collapse:collapse;background:var(--card);font-size:.82rem}.fee-records-table th,.fee-records-table td{padding:.72rem .65rem;border-bottom:1px solid var(--primary-soft);text-align:left;white-space:nowrap;color:var(--text)}.fee-records-table th{position:sticky;top:0;background:var(--primary-soft);color:var(--muted);font-size:.73rem;text-transform:uppercase;letter-spacing:.03em}.fee-records-table tbody tr:hover{background:var(--background)}.fee-status{display:inline-flex;padding:.3rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800}.fee-status.paid{background:#dcfce7;color:#166534}.fee-status.pending{background:#fef3c7;color:#92400e}.fee-status.overdue{background:#fee2e2;color:#b91c1c}.fee-status.unconfigured{background:#e5e7eb;color:#4b5563}.fee-row-actions{display:flex;gap:.35rem}.fee-row-actions button{display:grid;place-items:center;width:32px;height:32px;padding:0;background:var(--primary-soft);color:var(--primary);font-size:1rem}.fee-row-actions button.delete{background:#fee2e2;color:#b91c1c}.fee-edit-backdrop{position:fixed;z-index:130;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1.5rem;background:#0f172a94}.fee-edit-popup{width:min(1120px,100%);max-height:calc(100vh - 3rem);overflow:auto;display:grid;gap:1rem;padding:1.25rem;border-radius:20px;background:var(--card);box-shadow:0 30px 90px #0f172a4d}.fee-popup-heading{position:sticky;z-index:2;top:-1.25rem;display:flex;justify-content:space-between;align-items:start;padding:.25rem 0 .75rem;background:var(--card)}.fee-popup-heading span{color:var(--primary);font-size:.76rem;font-weight:800;text-transform:uppercase}.fee-popup-heading h2{margin:.2rem 0 0;color:var(--text)}.fee-popup-heading>button{padding:.2rem .55rem;background:transparent;color:var(--muted);font-size:1.8rem}.fee-form-actions .secondary{background:var(--primary-soft);color:var(--text)}.admissions-management{flex:1;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:.8rem}.admissions-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.admissions-toolbar>div{display:grid;gap:.2rem}.admissions-toolbar strong{color:var(--text);font-size:1.05rem}.admissions-toolbar span{color:var(--muted);font-size:.8rem}.admissions-toolbar button,.admission-form-actions button{border:0;border-radius:9px;padding:.65rem .85rem;background:var(--primary);color:#fff;font-weight:750;cursor:pointer}.admissions-filters{display:grid;grid-template-columns:minmax(240px,1fr) 220px;gap:.75rem}.admissions-filters label,.admission-form-grid label{display:grid;gap:.35rem;color:var(--text);font-size:.84rem;font-weight:700}.admissions-filters input,.admissions-filters select,.admission-form-grid input,.admission-form-grid select,.admission-form-grid textarea{width:100%;padding:.65rem .7rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--background);color:var(--text)}.admissions-table-wrap{overflow:auto;border:1px solid var(--primary-soft);border-radius:12px}.admissions-table{width:100%;min-width:1320px;border-collapse:collapse;background:var(--card);font-size:.82rem}.admissions-table th,.admissions-table td{padding:.72rem .65rem;border-bottom:1px solid var(--primary-soft);text-align:left;color:var(--text);white-space:nowrap}.admissions-table th{position:sticky;top:0;background:var(--primary-soft);color:var(--muted);font-size:.72rem;text-transform:uppercase}.admissions-table td small{display:block;margin-top:.2rem;color:var(--muted)}.admission-status{display:inline-flex;padding:.3rem .55rem;border-radius:999px;background:var(--primary-soft);font-size:.72rem;font-weight:800}.admission-status.enrolled,.admission-status.approved{background:#dcfce7;color:#166534}.admission-status.rejected{background:#fee2e2;color:#b91c1c}.admission-edit-button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:var(--primary-soft);color:var(--primary);cursor:pointer}.admission-row-actions{display:flex;gap:.35rem}.admission-delete-button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:#fee2e2;color:#b91c1c;cursor:pointer}.admission-popup-backdrop{position:fixed;z-index:140;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1.5rem;background:#0f172a94}.admission-popup{width:min(900px,100%);max-height:calc(100vh - 3rem);overflow:auto;display:grid;gap:1rem;padding:1.25rem;border-radius:20px;background:var(--card);box-shadow:0 30px 90px #0f172a4d}.admission-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.admission-form-grid .wide-field{grid-column:1 / -1}.admission-form-actions{display:flex;justify-content:flex-end;gap:.75rem;position:sticky;bottom:-1.25rem;padding:.8rem 0 1.25rem;background:var(--card)}.admission-form-actions .secondary{background:var(--primary-soft);color:var(--text)}.admission-workflow-table{min-width:1450px}.admission-workflow-popup{width:min(1180px,100%)}.admission-stage-strip{display:flex;gap:.5rem;overflow-x:auto;padding:.25rem .1rem .75rem;scrollbar-width:thin}.admission-stage-strip button{flex:0 0 128px;display:grid;justify-items:center;gap:.35rem;min-height:82px;padding:.55rem;border:1px solid var(--primary-soft);border-radius:12px;background:var(--background);color:var(--muted);cursor:pointer}.admission-stage-strip button span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:850}.admission-stage-strip button small{line-height:1.2;text-align:center;font-weight:750}.admission-stage-strip button.complete{border-color:#86efac;background:#f0fdf4;color:#166534}.admission-stage-strip button.complete span{background:#22c55e;color:#fff}.admission-stage-strip button.active{border:2px solid var(--primary);background:var(--primary-soft);color:var(--text)}.admission-form-section{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--primary-soft);border-radius:14px}.admission-form-section h3{margin:0;color:var(--text);font-size:1rem}.admission-form-grid .check-field{display:flex;align-items:center;gap:.55rem;align-self:end;min-height:42px}.admission-form-grid .check-field input{width:18px;height:18px}.admission-document-list{display:grid;gap:.5rem}.admission-document-list>div{display:grid;grid-template-columns:minmax(220px,1fr) 180px;gap:.6rem}.admission-document-list input,.admission-document-list select{width:100%;padding:.65rem .7rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--background);color:var(--text)}.global-admin-workspace{display:grid;gap:1rem}.global-admin-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding:1.25rem;border-radius:18px;background:var(--card)}.global-admin-heading h2,.global-admin-heading p{margin:0}.global-admin-heading h2{margin:.25rem 0;color:var(--text)}.global-admin-heading p:last-child{color:var(--muted)}.global-admin-heading>div:last-child{display:flex;gap:.65rem}.global-admin-heading button,.platform-popup button{border:0;border-radius:9px;padding:.65rem .85rem;background:var(--primary);color:#fff;font-weight:750;cursor:pointer}.hierarchy-stats{display:grid;grid-template-columns:repeat(2,minmax(140px,220px));gap:.75rem}.hierarchy-stats div{display:grid;gap:.2rem;padding:1rem;border-radius:14px;background:var(--card)}.hierarchy-stats strong{color:var(--primary);font-size:1.7rem}.hierarchy-stats span{color:var(--muted)}.hierarchy-table-wrap{overflow:auto;border-radius:16px;background:var(--card)}.hierarchy-table{width:100%;min-width:900px;border-collapse:collapse}.hierarchy-table th,.hierarchy-table td{padding:.85rem;border-bottom:1px solid var(--primary-soft);text-align:left;color:var(--text)}.hierarchy-table th{background:var(--primary-soft);color:var(--muted);font-size:.76rem;text-transform:uppercase}.platform-popup-backdrop{position:fixed;z-index:150;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1.5rem;background:#0f172a94}.platform-popup{width:min(760px,100%);display:grid;gap:1rem;padding:1.25rem;border-radius:20px;background:var(--card)}.platform-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.platform-form-grid label{display:grid;gap:.35rem;color:var(--text);font-size:.84rem;font-weight:700}.platform-form-grid input,.platform-form-grid select{width:100%;padding:.65rem .7rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--background);color:var(--text)}.platform-form-grid .wide-field{grid-column:1 / -1}.announcements-management{flex:1;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.8rem}.announcements-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.announcements-toolbar>div{display:grid;gap:.2rem}.announcements-toolbar strong{color:var(--text);font-size:1.05rem}.announcements-toolbar span{color:var(--muted);font-size:.8rem}.announcements-toolbar button{border:0;border-radius:9px;padding:.65rem .85rem;background:var(--primary);color:#fff;font-weight:750;cursor:pointer}.announcements-table-wrap{overflow:auto;border:1px solid var(--primary-soft);border-radius:12px}.announcements-table{width:100%;min-width:880px;border-collapse:collapse;background:var(--card)}.announcements-table th,.announcements-table td{padding:.75rem;border-bottom:1px solid var(--primary-soft);text-align:left;color:var(--text);vertical-align:middle}.announcements-table th{background:var(--primary-soft);color:var(--muted);font-size:.72rem;text-transform:uppercase}.announcements-table img,.announcement-image-placeholder{width:64px;height:48px;display:grid;place-items:center;border-radius:8px;object-fit:cover;background:var(--primary-soft);color:var(--primary);font-weight:800}.announcement-description-cell{min-width:320px;line-height:1.45}.announcement-popup{width:min(760px,100%);display:grid;gap:1rem;padding:1.25rem;border-radius:20px;background:var(--card)}.announcement-form{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.announcement-form label{display:grid;gap:.35rem;color:var(--text);font-size:.84rem;font-weight:700}.announcement-form input,.announcement-form textarea{width:100%;padding:.65rem .7rem;border:1px solid var(--primary-soft);border-radius:9px;background:var(--background);color:var(--text)}.announcement-form .wide-field{grid-column:1 / -1}.fee-summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem}.fee-summary-strip div{display:grid;gap:.25rem;padding:.75rem;border-radius:10px;background:var(--primary-soft)}.fee-summary-strip span{color:var(--muted);font-size:.78rem}.fee-summary-strip strong{color:var(--text)}.fee-management-form fieldset{margin:0;padding:1rem;border:1px solid var(--primary-soft);border-radius:12px}.fee-management-form legend{padding:0 .4rem;color:var(--text);font-weight:800}.fee-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.installment-table{min-width:940px;display:grid;gap:.45rem;overflow:auto}.installment-header,.installment-row{display:grid;grid-template-columns:1fr 1.05fr .85fr .9fr 1.05fr 1.3fr auto;gap:.4rem;align-items:center}.installment-header{color:var(--muted);font-size:.76rem;font-weight:750}.fee-management-form button{border:0;border-radius:9px;padding:.62rem .8rem;background:var(--primary);color:#fff;font-weight:750;cursor:pointer}.installment-row button{background:#fee2e2;color:#b91c1c}.fee-form-actions{display:flex;justify-content:flex-end;gap:.75rem;position:sticky;bottom:0;padding:.75rem 0;background:var(--card)}.fee-form-actions .danger{margin-right:auto;background:#dc2626}@media (max-width: 700px){.schedule-heading{align-items:stretch;flex-direction:column}.schedule-tabs{align-self:stretch}.schedule-tabs button{flex:1}.schedule-list article{grid-template-columns:54px 1fr}.schedule-meta{grid-column:2;text-align:left;display:flex;gap:.75rem}.teacher-form-grid,.specialization-options,.content-field-grid{grid-template-columns:1fr}.content-field-grid .wide-field{grid-column:auto}.generic-item-popup-backdrop{padding:0}.generic-item-popup{max-height:100vh;border-radius:0}.exam-filter-bar,.exam-result-editor{grid-template-columns:1fr}.exam-result-editor .wide-field{grid-column:auto}.exam-mark-filters,.student-result-summary,.exam-analysis-filters{grid-template-columns:1fr 1fr}.exam-section-heading,.student-exam-module .card-header,.report-card-heading{align-items:stretch;flex-direction:column}.report-student-details,.report-comments,.fee-summary-strip,.fee-form-grid,.fee-overall-summary{grid-template-columns:1fr 1fr}.fee-browser-filters{grid-template-columns:1fr}.fee-student-results>button{grid-template-columns:1fr 1fr}.fee-student-results>button span:last-child{grid-column:2;grid-row:1;text-align:right}.fee-edit-backdrop{padding:0}.fee-edit-popup{max-height:100vh;border-radius:0}.admissions-filters,.admission-form-grid{grid-template-columns:1fr}.admission-form-grid .wide-field{grid-column:auto}.admission-popup-backdrop{padding:0}.admission-popup{max-height:100vh;border-radius:0}.admission-document-list>div{grid-template-columns:1fr}.global-admin-heading{align-items:stretch;flex-direction:column}.global-admin-heading>div:last-child button{flex:1}.platform-form-grid{grid-template-columns:1fr}.platform-form-grid .wide-field{grid-column:auto}.announcement-form{grid-template-columns:1fr}.announcement-form .wide-field{grid-column:auto}.timetable-form-row{grid-template-columns:1fr 1fr;padding-bottom:.75rem;border-bottom:1px solid var(--primary-soft)}.timetable-form-row button{grid-column:1 / -1}.teacher-edit-backdrop{padding:0}.teacher-edit-popup{max-height:100vh;border-radius:0}}.admin-workspace{display:grid;gap:1.25rem}.admin-workspace-heading{padding:1.4rem 1.5rem;border-radius:20px;background:var(--card);box-shadow:0 10px 35px #0f172a0f}.admin-workspace-heading h2,.admin-workspace-heading p{margin:0}.admin-workspace-heading h2{margin:.25rem 0 .4rem;color:var(--text);font-size:1.65rem}.admin-workspace-heading p:last-child{color:var(--muted)}.admin-eyebrow{color:var(--primary);font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.admin-module-list{overflow:hidden;border-radius:20px;background:var(--card);box-shadow:0 10px 35px #0f172a0f}.admin-module-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--primary-soft)}.admin-module-row:last-child{border-bottom:0}.admin-module-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--primary-soft);color:var(--primary);font-weight:850}.admin-module-copy h3,.admin-module-copy p{margin:0}.admin-module-copy h3{color:var(--text);font-size:1rem}.admin-module-copy p{margin-top:.25rem;color:var(--muted);font-size:.88rem}.admin-module-count{padding:.35rem .65rem;border-radius:999px;background:var(--primary-soft);color:var(--text);font-size:.78rem;white-space:nowrap}.admin-module-row>button,.admin-editor-actions button{padding:.58rem .9rem;border:0;border-radius:10px;background:var(--primary);color:#fff;font-weight:750;cursor:pointer}.admin-module-row>button:disabled{opacity:.6;cursor:wait}.admin-editor-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex;justify-content:flex-end;background:#0f172a7a}.admin-editor{width:min(820px,100%);height:100%;display:flex;flex-direction:column;gap:1rem;padding:1.5rem;background:var(--card);box-shadow:-20px 0 60px #0f172a38}.admin-editor.teacher-editor,.admin-editor.fee-editor,.admin-editor.admissions-editor{width:min(1440px,100%)}.admin-editor.announcements-editor{width:min(1200px,100%)}.admin-editor.collection-table-editor{width:min(1440px,100%)}.admin-editor-heading{display:flex;justify-content:space-between;align-items:start}.admin-editor-heading span{color:var(--primary);font-size:.78rem;font-weight:800;text-transform:uppercase}.admin-editor-heading h2{margin:.2rem 0 0;color:var(--text)}.admin-editor>p{margin:0;color:var(--muted)}.editor-close{border:0;background:transparent;color:var(--muted);font-size:2rem;cursor:pointer}.admin-editor>textarea{width:100%;flex:1;resize:none;padding:1rem;border:1px solid var(--primary-soft);border-radius:14px;background:var(--background);color:var(--text);font:13px/1.55 Consolas,monospace}.editor-message{color:var(--primary)!important;font-weight:700}.admin-editor-actions{display:flex;justify-content:flex-end;gap:.75rem}.admin-editor-actions .secondary{background:var(--primary-soft);color:var(--text)}.editor-load-error{display:grid;place-items:start;gap:1rem;padding:1rem;border-radius:12px;background:#fef2f2;color:#b91c1c}.editor-load-error p{margin:0}.editor-load-error button{border:0;border-radius:9px;padding:.6rem .8rem;background:#b91c1c;color:#fff;font-weight:750;cursor:pointer}@media (max-width: 700px){.admin-module-row{grid-template-columns:42px 1fr auto}.admin-module-count,.admin-module-copy p{display:none}}.app-shell{min-height:100vh;background:linear-gradient(180deg,#faf5ff,#ece9fe)}.theme-purple{--background: #f8f3ff;--panel: rgba(255, 255, 255, .88);--card: #ffffff;--primary: #8b5cf6;--primary-soft: #ede9fe;--text: #1f2937;--muted: #6b7280;--accent: #ec4899}.theme-teal{--background: #ecfeff;--panel: rgba(255, 255, 255, .92);--card: #ffffff;--primary: #14b8a6;--primary-soft: #ccfbf1;--text: #0f172a;--muted: #475569;--accent: #0ea5e9}.theme-orange{--background: #fff7ed;--panel: rgba(255, 255, 255, .94);--card: #ffffff;--primary: #f97316;--primary-soft: #ffedd5;--text: #1f2937;--muted: #6b7280;--accent: #f59e0b}.theme-blue{--background: #eff6ff;--panel: rgba(255, 255, 255, .94);--card: #ffffff;--primary: #2563eb;--primary-soft: #dbeafe;--text: #1f2937;--muted: #475569;--accent: #3b82f6}.appearance-light{color-scheme:light}.appearance-dark{color-scheme:dark;--background: #0f172a;--panel: rgba(15, 23, 42, .94);--card: #111827;--text: #f8fafc;--muted: #94a3b8;--primary-soft: #0f766e;--accent: #38bdf8}.appearance-system{color-scheme:light}@media (prefers-color-scheme: dark){.appearance-system{color-scheme:dark;--background: #0f172a;--panel: rgba(15, 23, 42, .94);--card: #111827;--text: #f8fafc;--muted: #94a3b8;--primary-soft: #0f766e;--accent: #38bdf8}}.container{width:min(1080px,92%);margin:0 auto}.centered-screen{min-height:80vh;display:grid;place-items:center}.student-header{display:grid;gap:1rem;padding:1.5rem 0 0}.student-profile-card,.announcement-card{background:var(--panel);border-radius:28px;box-shadow:0 24px 80px #0f172a1f}.student-profile-card{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;padding:1.5rem}.profile-avatar{width:92px;height:92px;border-radius:48px;background:linear-gradient(180deg,var(--primary) 0%,var(--accent) 100%);box-shadow:inset 0 0 0 5px #fff6}.profile-info{color:var(--text)}.greeting{margin:0 0 .45rem;color:var(--muted)}.student-profile-card h1{margin:0;font-size:clamp(1.7rem,2.4vw,2.5rem)}.subtext{margin:.65rem 0 0;color:var(--muted)}.id-text,.school-code{font-size:.92rem}.announcement-action{border:none;background:transparent;text-align:left;cursor:pointer}.announcement-action:hover,.announcement-action:focus-visible{transform:translateY(-1px);box-shadow:0 20px 60px #0f172a24}.announcement-preview{overflow:hidden;border-radius:24px;min-height:140px}.announcement-preview img{width:100%;height:100%;object-fit:cover;display:block}.announcement-copy{display:grid;gap:.75rem}.announcement-card p.announcement-description{margin:0;color:var(--muted);line-height:1.6}.announcement-card{padding:1.5rem;position:relative;display:grid;grid-template-columns:140px 1fr;gap:1rem;align-items:center}.announcement-label{position:absolute;top:1.25rem;right:1.25rem;background:#22c55e;color:#fff;font-size:.75rem;padding:.45rem .8rem;border-radius:999px;letter-spacing:.04em}.announcement-card h2{margin:0;font-size:1.2rem;color:var(--text)}.announcement-date{margin:.85rem 0 0;color:var(--muted)}.theme-toggle-bar{display:flex;justify-content:flex-end;gap:.75rem;margin:1rem 0}.theme-toggle-bar button{background:var(--panel);color:var(--text);border:1px solid rgba(148,163,184,.2);border-radius:999px;padding:.8rem 1.4rem;cursor:pointer}.theme-toggle-bar button.active{background:var(--primary);color:#fff;border-color:transparent}.module-nav{display:flex;gap:.85rem;flex-wrap:wrap;margin-bottom:1.5rem}.module-nav button{background:var(--panel);color:var(--text);border:1px solid rgba(148,163,184,.2);border-radius:999px;padding:.9rem 1.3rem;cursor:pointer}.module-nav button.active{background:var(--primary);color:#fff;border-color:transparent}.module-panel{padding-bottom:2rem}.dashboard-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:1.5rem}.dashboard-shell{display:grid;grid-template-columns:320px 1fr;gap:1.5rem;min-height:100vh;padding:2rem 0}.sidebar-panel{background:#0f172aeb;color:#fff;border-radius:36px;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem}.sidebar-backdrop{display:none}.sidebar-header{display:flex;align-items:center;gap:1rem}.sidebar-avatar{width:56px;height:56px;border-radius:50%;background:#ffffff29}.sidebar-name{margin:0;font-size:1rem;font-weight:700}.sidebar-subtext{margin:.25rem 0 0;color:#94a3b8;font-size:.95rem}.sidebar-menu{display:grid;gap:.65rem}.sidebar-item{display:flex;align-items:center;gap:.85rem;border:none;background:transparent;color:#cbd5e1;padding:.95rem 1rem;border-radius:18px;text-align:left;cursor:pointer;transition:background .2s ease,color .2s ease}.sidebar-item:hover,.sidebar-item.active{background:#ffffff1a;color:#fff}.sidebar-icon{width:32px;height:32px;display:grid;place-items:center;background:#ffffff24;border-radius:12px}.dashboard-content{min-height:100vh;position:relative}.top-right-theme-palette{position:absolute;top:1.25rem;right:1.5rem;display:flex;gap:.75rem;align-items:center;z-index:10}.theme-dot{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.95);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.theme-dot.purple{background:#8b5cf6}.theme-dot.teal{background:#14b8a6}.theme-dot.orange{background:#f97316}.theme-dot.blue{background:#2563eb}.theme-dot.active{transform:scale(1.15);box-shadow:0 0 0 4px #3b82f62e}@media (max-width: 900px){.top-right-theme-palette{position:static;margin:0 0 1rem;justify-content:flex-end}}.dashboard-menu{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));padding-bottom:2rem}.feature-card{display:grid;justify-items:center;gap:.75rem;padding:1.35rem;border-radius:28px;border:1px solid rgba(148,163,184,.18);background:var(--card);color:var(--text);text-align:center;box-shadow:0 22px 48px #0f172a1a}.feature-icon{width:54px;height:54px;border-radius:18px;background:linear-gradient(135deg,var(--primary),var(--accent))}.module-card{background:var(--card);border:1px solid rgba(148,163,184,.18);border-radius:24px;padding:1.5rem;box-shadow:0 22px 48px #0f172a14;margin-bottom:1.25rem}.module-card h2{margin-top:0}.about-page{display:grid;gap:1.5rem}.about-hero{display:grid;padding:2rem;border-radius:28px;background:linear-gradient(135deg,#8b5cf61f,#ec48991f)}.about-hero-content{max-width:680px}.about-badge{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:999px;background:#ffffffc7;color:var(--primary);font-size:.85rem;font-weight:700;letter-spacing:.04em;margin-bottom:1rem}.about-summary{margin:1rem 0 0;line-height:1.75;color:var(--muted)}.about-body{display:grid;gap:1.5rem}.about-body section h2{margin:0 0 .75rem}.about-body section p{margin:0;line-height:1.75;color:var(--text)}.about-logo-card{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;padding:1.5rem;border-radius:24px;background:var(--panel)}.about-logo-placeholder{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(180deg,var(--primary),var(--accent));color:#fff;font-size:1.5rem;font-weight:800}.about-logo-title{margin:0 0 .35rem;font-weight:700;letter-spacing:.02em}.about-logo-tagline{margin:0;color:var(--muted)}.notification-panel{padding:1.5rem}.feedback-page{display:grid;gap:1.5rem}.feedback-hero{background:linear-gradient(135deg,#2196f3,#4f46e5);color:#fff;border-radius:28px;padding:2rem}.feedback-title{margin:0 0 .75rem;font-size:.95rem;letter-spacing:.12em;text-transform:uppercase}.feedback-subtext{margin:.5rem 0 0;max-width:620px;line-height:1.7}.feedback-form{display:grid;gap:1rem}.feedback-label{font-weight:700;color:var(--text)}.feedback-input{width:100%;min-height:170px;padding:1rem;border:1px solid rgba(148,163,184,.3);border-radius:20px;resize:vertical;font-size:1rem;color:var(--text)}.feedback-error{margin:0;color:#dc2626;font-weight:700}.feedback-actions{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.cancel-button,.save-button{min-width:140px;border:none;border-radius:999px;padding:.95rem 1.4rem;font-weight:700;cursor:pointer}.cancel-button{background:var(--panel);color:var(--text);border:1px solid rgba(148,163,184,.2)}.save-button{background:#0ea5e9;color:#fff}.wellness-page{display:grid;gap:1.5rem}.wellness-header{display:flex;align-items:center;gap:1rem}.wellness-filter-bar{display:grid;gap:.75rem}.filter-label{font-weight:700;color:#475569}.bus-tracking-page{display:grid;gap:1.5rem}.bus-tracking-header h1{margin:0 0 .35rem}.bus-tracking-header p{margin:0;color:var(--muted)}.bus-tracking-grid{display:grid;gap:1.5rem;grid-template-columns:1fr 1.05fr}.bus-status-panel,.bus-map-panel{display:grid;gap:1.25rem}.bus-status-card,.bus-detail-card,.bus-route-card,.map-legend-card{background:var(--card);border:1px solid rgba(148,163,184,.18);border-radius:28px;padding:1.5rem;box-shadow:0 20px 50px #0f172a14}.bus-status-card{display:flex;justify-content:space-between;align-items:center;gap:1rem}.status-label{display:inline-flex;align-items:center;gap:.35rem;color:#0f766e;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.8rem}.status-copy{margin:.35rem 0 0;color:var(--muted)}.status-meta{text-align:right}.status-meta span{display:block;color:var(--muted)}.status-meta strong{font-size:2rem;display:block;margin-top:.25rem;color:var(--text)}.bus-detail-card{display:grid;gap:1rem}.bus-detail-card h3,.bus-route-card h3,.map-legend-card .legend-title{margin:0 0 .75rem;color:var(--text)}.bus-detail-card p{margin:.25rem 0 0;color:var(--muted)}.bus-stop-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.bus-stop-list li{display:flex;justify-content:space-between;align-items:center;padding:.95rem 1rem;border-radius:18px;background:#0f172a08}.bus-stop-list li.completed{background:#38bdf81f}.stop-name{font-weight:700}.stop-time{color:var(--muted)}.bus-map-frame{min-height:420px;border-radius:28px;overflow:hidden;background:linear-gradient(180deg,#dbeafe,#eff6ff);border:1px solid rgba(59,130,246,.22);position:relative}.bus-map-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:1fr 1fr 1fr 1fr;padding:2rem;gap:1.75rem}.map-stop{position:relative;padding-left:3.5rem;display:flex;align-items:center;gap:.85rem;color:var(--text);font-weight:700}.map-stop:before{content:"";position:absolute;left:1rem;width:1rem;height:1rem;border-radius:50%;background:#fff;border:3px solid var(--primary)}.map-start:before,.map-end:before{background:#fff}.map-current:before{background:#0ea5e9;border-color:#0ea5e9}.map-stop strong{display:block;font-size:.95rem;font-weight:700;color:var(--text)}.bus-map-overlay:after{content:"";position:absolute;left:1.45rem;top:3.75rem;bottom:3.75rem;width:4px;background:linear-gradient(180deg,#3b82f6cc,#38bdf84d);border-radius:999px}.map-legend-card{padding:1.5rem}.legend-title{margin:0;font-weight:700}.legend-copy{margin:.75rem 0 0;color:var(--muted);line-height:1.75}@media (max-width: 980px){.bus-tracking-grid{grid-template-columns:1fr}}.filter-chips{display:flex;flex-wrap:wrap;gap:.75rem}.filter-chip{background:#f8fafc;border:1px solid rgba(148,163,184,.25);border-radius:999px;padding:.85rem 1.25rem;cursor:pointer;color:#475569;font-weight:700}.filter-chip.active{background:linear-gradient(135deg,#3b82f6,#10b981);border-color:transparent;color:#fff}.wellness-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem}.wellness-summary-title{margin:0;font-size:1.1rem;font-weight:700}.wellness-summary-count{margin:0;color:#64748b}.wellness-list{display:grid;gap:1rem}.wellness-card{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:start;width:100%;text-align:left;border:1px solid rgba(148,163,184,.18);border-radius:28px;background:var(--card);padding:1.25rem;color:inherit;cursor:pointer}.wellness-card:hover{box-shadow:0 22px 48px #0f172a14}.wellness-card-content h2{margin:.45rem 0 .8rem;font-size:1.05rem}.wellness-card-category{display:inline-flex;padding:.35rem .85rem;border-radius:999px;background:#3b82f61f;color:#1d4ed8;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.wellness-card-content p{margin:.4rem 0 0;color:#475569;line-height:1.6}.wellness-card-date{margin-top:1rem;color:#94a3b8;font-size:.95rem}.wellness-card-arrow{font-size:1.8rem;color:#94a3b8;align-self:center}.wellness-empty-state{padding:2rem;text-align:center;border:1px dashed rgba(148,163,184,.35);border-radius:24px;color:#64748b}.attendance-page{display:grid;gap:1.5rem}.attendance-header{display:flex;align-items:center;gap:1rem}.back-button{border:none;background:transparent;color:var(--text);font-size:1.3rem;cursor:pointer}.attendance-tabs{display:flex;gap:.75rem;margin-bottom:1rem}.attendance-tab{flex:1;background:var(--card);border:1px solid rgba(148,163,184,.2);padding:.95rem 1rem;border-radius:18px;cursor:pointer;font-weight:700}.attendance-tab.active{border-color:transparent;background:linear-gradient(135deg,#6366f1,#ec4899);color:#fff}.attendance-exam-view,.attendance-class-view{display:grid;gap:1rem}.attendance-summary-card,.attendance-secondary-card,.attendance-month-card,.attendance-summary-list{background:var(--card);border:1px solid rgba(148,163,184,.22);border-radius:28px;padding:1.5rem;box-shadow:0 22px 48px #0f172a0d}.attendance-summary-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.attendance-summary-title{margin:0 0 .5rem;letter-spacing:.1em;text-transform:uppercase;color:#0f172aa6;font-size:.75rem}.attendance-summary-card h2{margin:0;font-size:3rem}.attendance-term-select{border:1px solid rgba(148,163,184,.3);border-radius:18px;padding:.85rem 1rem;color:#475569;cursor:pointer;min-width:120px;text-align:center}.attendance-chart-placeholder{display:flex;justify-content:center;align-items:center;min-height:210px;background:#f8fafc;border-radius:24px;font-size:.95rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.opinion-poll-page{display:grid;gap:1.5rem}.opinion-poll-page h1{margin:0;font-size:clamp(2rem,2.6vw,2.6rem)}.page-description{margin:0;max-width:740px;color:var(--muted);line-height:1.8}.poll-form{display:grid;gap:1.5rem}.poll-question{border:1px solid rgba(148,163,184,.22);border-radius:24px;padding:1.5rem;background:var(--card)}.poll-question legend{font-size:1rem;font-weight:700;margin-bottom:1rem}.poll-options{display:grid;gap:.75rem}.poll-option{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.85rem;border:1px solid rgba(148,163,184,.18);padding:1rem 1.2rem;border-radius:18px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.poll-option:hover,.poll-option input:checked+span{background:#3b82f612}.poll-option input{accent-color:var(--primary)}.poll-submit-button{width:fit-content;border:none;border-radius:999px;background:var(--primary);color:#fff;padding:1rem 1.8rem;font-weight:700;cursor:pointer}.poll-success-card{border:1px solid rgba(16,185,129,.22);background:#10b98114;border-radius:24px;padding:1.5rem}.poll-success-card h3{margin:0 0 .5rem}.poll-success-card p{margin:0;color:var(--muted)}.poll-list{display:grid;gap:1rem}.poll-list-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%;text-align:left;padding:1.3rem 1.4rem;border-radius:24px;background:var(--card);border:1px solid rgba(148,163,184,.22);color:var(--text);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.poll-list-card:hover{transform:translateY(-2px);box-shadow:0 20px 50px #0f172a14}.poll-list-card h2{margin:0 0 .3rem;font-size:1.05rem}.poll-list-card p{margin:0;color:var(--muted)}.status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:84px;padding:.55rem .85rem;border-radius:999px;font-size:.8rem;font-weight:700;color:#fff}.status-badge.active{background:#2563eb}.status-badge.completed{background:#22c55e}.attendance-status-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.attendance-status-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:22px;background:#f8fafc}.status-dot{width:.75rem;height:.75rem;border-radius:999px;display:inline-block;margin-right:.5rem}.status-dot.present{background:#16a34a}.status-dot.absent{background:#f97316}.status-dot.holiday{background:#22c55e}.attendance-details-button{width:100%;border:1px solid #fb7185;background:transparent;color:#fb7185;border-radius:18px;padding:.95rem 1rem;font-weight:700;cursor:pointer}.attendance-secondary-card h3{margin:0 0 .75rem}.attendance-secondary-card p{color:#64748b}.attendance-month-labels h2{margin:0 0 1rem}.attendance-month-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1.5rem}.attendance-month-picker div{border:1px solid rgba(148,163,184,.25);border-radius:18px;padding:.9rem 1rem;text-align:center;color:#475569}.attendance-month-picker .selected-month{background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff}.attendance-calendar{display:grid;gap:.5rem}.calendar-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}.calendar-headings span{color:#94a3b8;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.calendar-day{min-height:48px;border-radius:16px;display:grid;place-items:center;background:#f8fafc;color:#334155}.calendar-day.present{background:#d1fae5}.calendar-day.absent{background:#fee2e2}.calendar-day.holiday{background:#e0f2fe}.calendar-day.selected{background:#3b82f6;color:#fff}.attendance-summary-list{display:grid;gap:1rem}.attendance-summary-item{display:flex;justify-content:space-between;align-items:center}.attendance-summary-status-grid{display:grid;gap:.75rem}.attendance-summary-badge{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:22px;background:#f8fafc}.attendance-summary-badge span{width:12px;height:12px;border-radius:999px;display:inline-block}.attendance-summary-badge.present span{background:#16a34a}.attendance-summary-badge.absent span{background:#f97316}.attendance-summary-badge.muted span{background:#fbbf24}.attendance-summary-badge.holiday span{background:#3b82f6}.events-page{display:grid;gap:1.5rem}.events-header,.events-detail-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.events-header h1,.events-detail-header h1{margin:0}.event-count{color:#64748b;margin-top:.35rem}.events-filter-button{border:1px solid rgba(148,163,184,.25);background:#fff;border-radius:18px;padding:.9rem 1rem;cursor:pointer;font-size:1rem}.events-list{display:grid;gap:1rem}.event-card{display:grid;grid-template-columns:110px minmax(0,1fr) 24px;gap:1rem;align-items:center;padding:1rem;background:var(--card);border:1px solid rgba(148,163,184,.2);border-radius:24px;text-align:left;color:inherit;cursor:pointer}.event-card-image{width:110px;height:90px;overflow:hidden;border-radius:20px}.event-card-image img{width:100%;height:100%;object-fit:cover}.event-card-body h2{margin:0;font-size:1rem}.event-card-subtitle,.event-card-meta,.event-meta{margin:.35rem 0 0;color:#64748b;font-size:.95rem}.event-card-action{font-size:1.5rem;color:#94a3b8}.event-detail-description{padding:1.25rem 1.5rem;background:var(--card);border:1px solid rgba(148,163,184,.2);border-radius:24px;color:#475569}.event-gallery-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.event-gallery-card{border-radius:24px;overflow:hidden;min-height:170px;background:#f8fafc}.event-gallery-card img{width:100%;height:100%;object-fit:cover}.feedback-success{background:var(--panel);border-radius:24px;padding:1.75rem}.feedback-success h3{margin:0 0 .75rem}.feedback-success p{margin:0 0 1rem;color:var(--text)}.settings-page{display:grid;gap:1.5rem}.settings-header{display:grid;gap:.75rem}.settings-label{margin:0;color:var(--primary);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase}.settings-page h2{margin:0}.settings-subtitle{margin:.5rem 0 0;color:var(--muted);line-height:1.6}.settings-theme-list{display:grid;gap:.85rem}.settings-theme-item{display:flex;align-items:center;gap:.85rem;background:var(--panel);padding:.9rem 1rem;border-radius:18px;border:1px solid rgba(148,163,184,.22);cursor:pointer}.settings-language-list{display:grid;gap:.6rem}.settings-language-item{display:flex;align-items:center;gap:.85rem;background:var(--panel);padding:.75rem 1rem;border-radius:12px;border:1px solid rgba(148,163,184,.12);cursor:pointer}.settings-language-item input{accent-color:var(--primary)}.settings-language-dropdown{display:grid;gap:.5rem;margin:.5rem 0 0 .5rem}.settings-language-option{display:flex;align-items:center;gap:.75rem;width:calc(100% - 1rem);padding:.75rem 1rem;border-radius:12px;background:var(--panel);border:1px solid rgba(148,163,184,.08);color:var(--text);cursor:pointer}.settings-language-option.active{border-color:var(--primary);box-shadow:0 4px 18px #0000000f}.settings-theme-item input{accent-color:var(--primary)}.theme-label{font-weight:700}.settings-list{display:grid;gap:.75rem}.settings-list-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:1rem 1.25rem;border-radius:18px;background:var(--panel);border:1px solid rgba(148,163,184,.18);color:var(--text);font-size:1rem;cursor:pointer}.settings-item-icon{font-size:1.2rem}.settings-color-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.85rem}.settings-color-swatch{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.95rem 1rem;border-radius:18px;border:1px solid transparent;cursor:pointer;font-weight:700;color:#fff;min-height:58px}.settings-color-swatch span{text-transform:capitalize}.settings-color-swatch.purple{background:linear-gradient(135deg,#8b5cf6,#ec4899)}.settings-color-swatch.teal{background:linear-gradient(135deg,#14b8a6,#0ea5e9)}.settings-color-swatch.orange{background:linear-gradient(135deg,#f97316,#f59e0b)}.settings-color-swatch.blue{background:linear-gradient(135deg,#2563eb,#3b82f6)}.settings-color-swatch.active{border-color:#fff;box-shadow:0 0 0 3px #ffffff40}.settings-item-arrow{color:var(--muted)}.settings-brand{background:var(--panel);border-radius:24px;padding:1.5rem;text-align:center}.settings-brand-badge{display:inline-flex;padding:.55rem 1rem;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-weight:700;margin-bottom:.75rem}.settings-brand p{margin:0;color:var(--muted)}.spotlight-page{display:grid;gap:1.5rem}.spotlight-header{display:flex;justify-content:space-between;gap:1rem;align-items:center}.spotlight-label{margin:0 0 .5rem;color:var(--primary);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem}.spotlight-subtext{margin:.5rem 0 0;color:var(--muted)}.spotlight-list{display:grid;gap:1rem}.spotlight-card{background:var(--card);border:1px solid rgba(148,163,184,.18);border-radius:24px;padding:1.35rem 1.5rem;box-shadow:0 18px 32px #0f172a14}.spotlight-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.95rem}.spotlight-card-badge{display:inline-flex;padding:.45rem .85rem;border-radius:999px;color:#fff;background:var(--primary);font-size:.8rem;font-weight:700}.spotlight-card h3{margin:0 0 .5rem}.spotlight-card p{margin:0;color:var(--text)}.spotlight-footer{display:flex;justify-content:flex-end}.continue-button{background:var(--primary);color:#fff;border:none;padding:.95rem 1.6rem;border-radius:999px;font-weight:700;cursor:pointer}.notification-list{display:grid;gap:1rem;margin-top:1rem}.notification-card{border-radius:22px;background:#fff;padding:1.25rem 1.5rem;box-shadow:0 16px 36px #0f172a14;border:1px solid rgba(148,163,184,.14)}.notification-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem}.notification-title{font-weight:700;color:var(--primary)}.notification-badge{background:#10b981;color:#fff;padding:.35rem .75rem;border-radius:999px;font-size:.75rem;letter-spacing:.04em}.notification-body{margin:0;color:#334155;line-height:1.6}.notification-footer{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;color:#64748b;font-size:.92rem}.notification-dot{width:12px;height:12px;border-radius:50%;background:#2563eb}.module-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:1rem}.module-table{width:100%;border-collapse:collapse;margin-top:1rem}.module-table th,.module-table td{padding:.95rem 1rem;border:1px solid rgba(148,163,184,.12);text-align:left}.status-badge{display:inline-flex;padding:.35rem .7rem;border-radius:999px;background:#38bdf826;color:#0369a1;font-weight:700}@media (max-width: 720px){.student-profile-card{grid-template-columns:1fr;text-align:center}.profile-avatar{margin:0 auto}.dashboard-shell{grid-template-columns:1fr}.sidebar-panel{position:fixed;inset:0 auto auto 0;width:min(280px,80vw);max-width:280px;height:100vh;transform:translate(-100%);transition:transform .25s ease;z-index:30;border-radius:0 24px 24px 0;padding:1.5rem 1rem}.sidebar-panel.open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:20}.sidebar-backdrop.active{opacity:1;pointer-events:auto}.mobile-header{display:flex;justify-content:flex-start;padding:0 0 1rem}.mobile-menu-button{background:var(--card);color:var(--text);border:1px solid rgba(148,163,184,.2);border-radius:999px;padding:.85rem 1.2rem;cursor:pointer;width:max-content}.student-header{gap:1rem}.dashboard-content{min-height:auto}}.parent-concerns-page{display:grid;gap:1.5rem}.page-header{display:grid;gap:1rem;align-items:start}.page-tag{margin:0 0 .35rem;color:#64748b;text-transform:uppercase;font-size:.78rem;letter-spacing:.12em}.parent-concerns-page h1{margin:0;font-size:clamp(2rem,2.6vw,2.6rem)}.concern-grid{display:grid;gap:1.5rem;grid-template-columns:1fr 1.1fr}.concern-list-panel,.concern-detail-panel{display:grid;gap:1rem}.concern-list-header{display:flex;justify-content:space-between;align-items:center}.concern-list-header h2{margin:0}.concern-list-header p{margin:0;color:var(--muted)}.concern-list{display:grid;gap:.9rem}.concern-card{width:100%;text-align:left;padding:1rem 1.2rem;border-radius:22px;background:var(--card);border:1px solid rgba(148,163,184,.18);display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.concern-card:hover,.concern-card.selected{transform:translateY(-1px);box-shadow:0 20px 50px #0f172a14}.concern-card h3{margin:0;font-size:1rem}.concern-card p{margin:.35rem 0 0;color:var(--muted)}.concern-status{font-size:.8rem;font-weight:700;padding:.55rem .9rem;border-radius:999px;color:#fff;text-transform:uppercase}.concern-status.open{background:#2563eb}.concern-status.resolved{background:#22c55e}.concern-add-card,.concern-detail-card,.concern-empty-state{background:var(--card);border:1px solid rgba(148,163,184,.22);border-radius:24px;padding:1.5rem}.input-label{display:block;margin-bottom:.5rem;font-weight:700;color:var(--text)}.text-input,select.text-input{width:100%;border:1px solid rgba(148,163,184,.3);border-radius:18px;padding:.95rem 1rem;background:var(--panel);color:var(--text)}.text-input:focus,select.text-input:focus{outline:none;border-color:#3b82f699}.primary-button{border:none;border-radius:999px;background:var(--primary);color:#fff;padding:1rem 1.3rem;font-weight:700;cursor:pointer;margin-top:1rem}.success-note{margin-top:.85rem;color:#16a34a}.concern-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.concern-detail-category{margin:0;font-size:.85rem;font-weight:700;text-transform:uppercase;color:var(--muted)}.concern-detail-card h2{margin:.35rem 0 0}.concern-detail-date{margin:1rem 0 0;color:var(--muted)}.concern-detail-description{margin:1rem 0 0;line-height:1.75;color:var(--text)}.concern-empty-state{display:grid;place-items:center;min-height:220px;color:var(--muted)}@media (max-width: 980px){.concern-grid{grid-template-columns:1fr}}.feature-icon{width:54px;height:54px;border-radius:18px;overflow:hidden;background:linear-gradient(135deg,var(--primary),var(--accent))}.feature-icon img{width:100%;height:100%;object-fit:cover;display:block}.feature-card span{display:block;font-size:.95rem;font-weight:700}.student-footer{text-align:center;color:var(--muted);padding:1.5rem 0 2rem}.achievements-view{display:grid;gap:1.5rem}.achievements-view .card-header h2{margin:0 0 .35rem}.achievements-view .card-header p{margin:0;color:var(--muted)}.achievement-list{display:grid;gap:1rem}.achievement-card{background:var(--panel);border-radius:24px;overflow:hidden;box-shadow:0 20px 45px #0f172a14;display:grid;grid-template-columns:120px 1fr;gap:1rem;padding:1rem;align-items:center}.achievement-image img{width:100%;height:100%;object-fit:cover}.achievement-details{display:grid;gap:.5rem}.achievement-tag{margin:0;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}.achievement-card h3{margin:0}.achievement-details p{margin:0;color:var(--muted)}.achievement-date{font-size:.9rem;font-weight:600;color:var(--text)}.loader-card,.error-card{background:var(--panel);padding:1.5rem 2rem;border-radius:22px;box-shadow:0 12px 40px #0f172a1a}@media print{body{background:#fff!important}.app-shell *{visibility:hidden}.printable-report,.printable-report *{visibility:visible}.printable-report{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;padding:24px;box-shadow:none;background:#fff;color:#111827}.printable-report .no-print{display:none!important}.printable-report .student-exam-table-wrap{overflow:visible}.printable-report .student-exam-table{min-width:0}.printable-report .student-result-summary{grid-template-columns:repeat(5,1fr)}}
