:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:#102033;background:radial-gradient(circle at top left,rgba(243,183,76,.35),transparent 28%),radial-gradient(circle at bottom right,rgba(17,138,178,.18),transparent 32%),linear-gradient(135deg,#f8fbff,#eef5f9)}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-x:hidden;line-height:1.5}#root{min-height:100vh}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{padding:32px 24px;background:linear-gradient(180deg,#0f2b46,#153d61);color:#f8fbff;border-right:1px solid rgba(255,255,255,.08);position:sticky;top:0;height:100vh;overflow-y:auto}.brand h1,.page h2,.panel h3,.data-card h3{margin:0}.brand h1{font-size:clamp(1.2rem,1.1rem + .9vw,1.5rem);line-height:1.15;overflow-wrap:anywhere}.eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:#f3b74c}.muted{color:#617285}.sidebar .muted{color:#f8fbffb8}.nav{margin-top:32px;display:grid;gap:10px}.nav-group{display:grid;gap:8px}.nav-group-toggle{width:100%;border:0;color:inherit;cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;font:inherit}.nav-link{padding:12px 14px;border-radius:14px;background:#ffffff0a;transition:background-color .2s ease,transform .2s ease}.nav-subgroup{display:grid;gap:8px;padding-left:14px}.sub-nav-link{padding:10px 14px;border-radius:12px;background:#ffffff08;font-size:13px;color:#f8fbffe0;transition:background-color .2s ease,transform .2s ease}.nav-chevron{display:inline-flex;transition:transform .2s ease}.nav-chevron.open{transform:rotate(90deg)}.nav-link:hover,.nav-link.active,.sub-nav-link:hover,.sub-nav-link.active{background:#f3b74c2e;transform:translate(4px)}.main-panel{min-height:100vh;padding:32px;display:flex;flex-direction:column;overflow-x:hidden;min-width:0}.main-panel-body{flex:1 1 auto;min-width:0}.dashboard-footer{margin-top:24px;margin-left:auto;display:flex;align-items:flex-end;justify-content:flex-end;gap:12px;flex-wrap:wrap;text-align:right;color:#617285}.dashboard-footer-text{margin:0;font-size:13px}.dashboard-footer-brand{width:min(130px,28vw);height:auto;display:block;opacity:.94}.public-page{min-height:100vh;padding:32px;display:grid;gap:24px}.public-site-shell{min-height:100vh}.public-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 32px;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f8fbffd1;border-bottom:1px solid rgba(16,32,51,.08)}.public-brand{display:grid;gap:4px;min-width:0}.public-brand strong{font-size:1rem;color:#102033;overflow-wrap:anywhere}.public-brand-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:#617285}.public-nav{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}.public-nav-link{padding:10px 14px;border-radius:999px;color:#29455d;font-size:14px;transition:background-color .2s ease,color .2s ease}.public-nav-link:hover,.public-nav-link.active{background:#118ab21f;color:#0f4c5c}.public-topbar-actions{display:flex;align-items:center}.public-hero{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.9fr);gap:24px;align-items:stretch}.public-hero-copy,.public-summary-card,.public-compliance-note{background:#ffffffc7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(16,32,51,.08);border-radius:28px;box-shadow:0 20px 40px #10203314}.public-hero-copy{padding:32px;position:relative;overflow:hidden}.public-hero-copy:after{content:"";position:absolute;inset:auto -40px -60px auto;width:220px;height:220px;background:radial-gradient(circle,rgba(17,138,178,.14),transparent 70%);pointer-events:none}.public-hero-copy h1,.public-summary-card h2{margin:0;line-height:1.08;letter-spacing:-.03em}.public-hero-copy h1{max-width:14ch;font-size:clamp(2.2rem,1.8rem + 2vw,4rem)}.public-hero-copy p:not(.eyebrow){margin:18px 0 0;max-width:60ch;color:#42576d;font-size:1rem}.public-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.public-summary-card{padding:28px;display:grid;align-content:space-between;gap:18px;background:linear-gradient(160deg,#0f2b46fa,#118ab2e0);color:#f8fbff}.public-summary-card .muted{color:#f8fbffcc}.public-summary-label{margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:#f3b74cfa}.public-summary-list{display:grid;gap:12px}.public-summary-list p{margin:0;padding-bottom:12px;border-bottom:1px solid rgba(248,251,255,.16);color:#f8fbffe6;font-weight:600}.public-summary-list p:last-child{padding-bottom:0;border-bottom:0}.public-compliance-note{padding:18px 22px;border-left:6px solid #118ab2}.public-compliance-note p{margin:0;color:#29455d}.public-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.public-option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.public-option-card{background:#ffffffc7;border:1px solid rgba(16,32,51,.08);border-radius:24px;box-shadow:0 20px 40px #10203314;padding:24px;display:grid;gap:18px}.public-option-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.public-option-index{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;border-radius:999px;background:#118ab21a;color:#0f6d8c;font-size:12px;font-weight:700;letter-spacing:.08em}.public-option-card h3,.public-gallery-card h3,.public-timeline-card h3{margin:0;color:#102033;font-size:1.15rem}.public-option-card p,.public-gallery-card p,.public-timeline-card p{margin:0;color:#42576d}.public-option-subtitle{margin-top:2px!important;text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:#118ab2!important}.public-info-card h3{font-size:1.1rem;line-height:1.4}.public-section-panel{padding:28px}.public-rich-copy{display:grid;gap:14px}.public-rich-copy p{margin:0;color:#42576d}.public-timeline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.public-timeline-card,.public-gallery-card,.public-contact-card{min-width:0}.public-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.public-gallery-card{background:#ffffff8f;border:1px solid rgba(16,32,51,.08);border-radius:20px;padding:18px;display:grid;gap:14px}.public-gallery-placeholder{min-height:180px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#118ab229,#f3b74c38),repeating-linear-gradient(45deg,#ffffff59,#ffffff59 12px,#ffffff29 12px,#ffffff29 24px);color:#0f4c5c;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.public-gallery-image{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:18px;display:block}.public-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.public-site-admin-form{gap:20px}.content-editor-group,.content-editor-stack{display:grid;gap:16px}.content-editor-card{padding:18px;border-radius:18px;background:#f8fbffbd;border:1px solid rgba(16,32,51,.08);display:grid;gap:14px}.gallery-admin-card{grid-template-columns:220px 1fr;align-items:start}.gallery-admin-preview{min-width:0}.gallery-admin-image{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:16px;display:block}.gallery-admin-body{display:grid;gap:12px}.content-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.content-editor-grid label,.content-editor-card label{display:grid;gap:8px;font-size:14px;color:#42576d;font-weight:600}.content-editor-span{grid-column:1 / -1}.public-inline-link{color:#0f6d8c;font-weight:600;text-decoration:underline;text-underline-offset:3px}.disclosure-panel{scroll-margin-top:24px}.disclosure-document{padding:32px;display:grid;gap:28px}.disclosure-document-head{display:grid;gap:8px;text-align:center}.disclosure-document-head p,.disclosure-document-head h2,.disclosure-document-head h3{margin:0}.disclosure-document-head p{font-size:14px;font-weight:700;letter-spacing:.08em;color:#42576d}.disclosure-document-head h2{font-size:clamp(1.5rem,1.25rem + 1vw,2rem);color:#102033}.disclosure-document-head h3{font-size:1rem;font-weight:600;color:#42576d}.disclosure-document-actions{display:grid;justify-items:center;gap:12px;margin-top:12px}.disclosure-document-actions .muted{margin:0}.disclosure-section-title{margin:0 0 14px;font-size:1rem;color:#102033;letter-spacing:.02em}.disclosure-pdf-panel{display:grid;gap:18px}.disclosure-pdf-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.disclosure-pdf-header .muted{margin:0;max-width:62ch}.disclosure-pdf-frame{width:100%;min-height:960px;border:1px solid rgba(16,32,51,.1);border-radius:20px;background:#f8fbffb8}.disclosure-pdf-fallback{padding:20px}.disclosure-table-wrap{width:100%;overflow-x:auto}.disclosure-table{width:100%;min-width:760px;border-collapse:collapse}.disclosure-table th,.disclosure-table td{padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(16,32,51,.08)}.disclosure-table th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#617285}.disclosure-table td:first-child,.disclosure-table th:first-child{width:88px}.disclosure-doc-link{color:#0f6d8c;font-weight:600;text-decoration:underline;text-underline-offset:3px}.disclosure-pending{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#f3b74c2e;color:#8a5a00;font-size:12px;font-weight:700}.disclosure-results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.disclosure-result-block h4{margin:0 0 12px;font-size:1rem;color:#102033}.disclosure-result-table th:first-child,.disclosure-result-table td:first-child{width:auto}.page{display:grid;gap:24px;min-width:0}.students-page{max-width:100%;overflow-x:hidden}.hero,.panel,.data-card{background:#ffffffb8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(16,32,51,.08);border-radius:24px;box-shadow:0 20px 40px #10203314}.hero,.panel{padding:24px}.hero h2,.page-header h2,.page-title{margin:0;font-size:clamp(1.45rem,1.15rem + 1.1vw,2rem);line-height:1.15;letter-spacing:-.02em;overflow-wrap:anywhere}.page-subtitle,.hero-copy{margin:8px 0 0;max-width:60ch;color:#42576d;font-size:.96rem;line-height:1.55}.page-subtitle{max-width:54ch}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.data-card{padding:22px}.data-card h3{font-size:clamp(1.45rem,1.15rem + .9vw,1.95rem);line-height:1.15;overflow-wrap:anywhere}.card-label,.card-helper,.endpoint-url{margin:0}.card-label{color:#617285;font-size:14px;margin-bottom:8px}.card-helper{color:#617285;margin-top:10px;line-height:1.45}.panel-head,.page-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;min-width:0}.page-header>div:first-child,.panel-head>div:first-child{min-width:0}.toolbar{display:flex;gap:12px;flex-wrap:wrap}.toolbar>*{min-width:0}.student-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.student-form label{display:grid;gap:8px;font-size:14px;color:#42576d;min-width:0}.photo-preview-wrap{display:flex;align-items:center}.photo-preview{width:120px;height:150px;object-fit:cover;border-radius:16px;border:1px solid rgba(16,32,51,.12);background:#fffc}.student-form-span{grid-column:1 / -1}.student-form .search-input{min-width:0;width:100%}.students-form{grid-template-columns:repeat(2,minmax(0,1fr))}.students-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.students-page .panel,.students-page .page-header,.students-page .card-grid,.students-page .student-list,.students-page .student-card,.students-page .student-card-head,.students-page .student-card-title,.students-page .student-meta-grid,.students-page .student-footer,.students-page .toolbar,.students-page form{min-width:0}.students-page .panel{max-width:100%;overflow-x:hidden}.students-page .page-header>div:first-child,.students-page .panel-head>div:first-child{min-width:0}.students-page .page-header h2,.students-page .panel h3,.students-page .muted,.students-page .student-card h3,.students-page .student-card p{overflow-wrap:anywhere}.students-page .panel-head .toolbar,.students-page .page-header .toolbar{min-width:0;flex-wrap:wrap}.students-page .panel-head .search-input,.students-page .page-header .search-input{min-width:0;width:min(100%,280px)}.student-directory-toolbar{flex-wrap:wrap}.student-directory-toolbar .search-input{min-width:180px}.student-directory-table-wrap{max-width:100%}.student-directory-table{min-width:920px}.student-directory-table td,.student-directory-table th{white-space:nowrap}.student-directory-table td:last-child,.student-directory-table th:last-child{width:1%}.student-directory-name strong{display:inline-block;min-width:180px}.student-directory-actions{display:flex;gap:8px;flex-wrap:nowrap}.student-directory-actions .secondary-button,.student-directory-actions .danger-button{padding:8px 12px;white-space:nowrap}.form-section-title{margin-top:8px;padding-top:12px;border-top:1px solid rgba(16,32,51,.08);font-size:14px;font-weight:700;color:#102033}.required-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.required-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#f3b74c2e;color:#8a5a00;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.form-textarea{min-height:110px;resize:vertical}.checkbox-row{display:flex!important;align-items:center;gap:10px;padding-top:30px}.search-input{min-width:260px;width:100%;padding:12px 14px;border-radius:14px;border:1px solid rgba(16,32,51,.16);background:#fffc;color:#102033}.primary-button{padding:12px 18px;border:0;border-radius:14px;background:#118ab2;color:#fff;font-weight:600;cursor:pointer}.secondary-button{padding:12px 18px;border-radius:14px;border:1px solid rgba(16,32,51,.16);background:#ffffffbf;color:#102033;font-weight:600;cursor:pointer}.danger-button{padding:12px 18px;border-radius:14px;border:1px solid rgba(192,57,43,.24);background:#c0392b1a;color:#922b21;font-weight:600;cursor:pointer}.success-button{padding:12px 18px;border-radius:14px;border:1px solid rgba(25,135,84,.24);background:#1987541f;color:#166534;font-weight:600;cursor:pointer}.warning-button{padding:12px 18px;border-radius:14px;border:1px solid rgba(243,183,76,.32);background:#f3b74c29;color:#7a4b00;font-weight:600;cursor:pointer}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled,.success-button:disabled,.warning-button:disabled{opacity:.6;cursor:not-allowed}.status-pill{padding:10px 14px;border-radius:999px;background:#102033;color:#f8fbff;font-size:14px;white-space:nowrap}.endpoint-list{display:grid;gap:14px}.dashboard-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.endpoint-card{padding:16px;border-radius:18px;background:#1020330a}.student-list,.teacher-list,.fee-list,.attendance-list,.exam-list,.academics-list{display:grid;gap:16px}.academics-list-scroll{max-height:360px;overflow-y:auto;overflow-x:hidden;padding-right:6px;scrollbar-gutter:stable;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.student-card,.teacher-card,.fee-card,.attendance-card,.exam-card,.academics-item{padding:20px;border-radius:20px;background:#1020330a;border:1px solid rgba(16,32,51,.06)}.academics-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.academics-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.academics-form label{display:grid;gap:8px;font-size:14px;color:#42576d;min-width:0}.accounts-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.accounts-form-field{min-width:0}.accounts-form .search-input,.academics-form .search-input{min-width:0;width:100%}.academics-form-span{grid-column:1 / -1}.academics-item{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.academics-item h4,.academics-item p{margin:0}.academics-item-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.student-card-head,.teacher-card-head,.fee-card-head,.attendance-card-head,.exam-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.student-meta-grid,.teacher-meta-grid,.fee-summary-grid,.attendance-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.student-meta-grid,.teacher-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.student-meta-grid p,.student-footer p,.teacher-meta-grid p,.teacher-address{margin:0}.student-footer{display:grid;gap:8px}.student-card-title{display:flex;gap:14px;align-items:flex-start}.student-avatar{width:64px;height:82px;object-fit:cover;border-radius:12px;border:1px solid rgba(16,32,51,.12);background:#fffc}.student-actions{margin-top:16px;display:flex;justify-content:flex-end}.assignment-section{display:grid;gap:10px;margin-bottom:16px}.assignment-section h4{margin:0;font-size:14px;color:#102033}.chip-row{display:flex;flex-wrap:wrap;gap:10px}.assignment-chip{padding:8px 12px;border-radius:999px;background:#118ab21f;color:#0f4c5c;font-size:13px;font-weight:600}.teacher-address{margin-top:4px}.amount-box{padding:16px;border-radius:18px;background:#ffffffb3;border:1px solid rgba(16,32,51,.06)}.amount-box h4{margin:0;font-size:20px}.payment-list,.attendance-records,.schedule-list,.result-list{display:grid;gap:10px}.payment-row,.attendance-record-row,.schedule-row,.result-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 14px;border-radius:16px;background:#ffffffb3}.payment-row p{margin:4px 0 0}.payment-date{color:#617285;white-space:nowrap}.attendance-status{font-weight:700;color:#102033}.result-meta{display:flex;align-items:center;gap:10px}.badge{padding:8px 12px;border-radius:999px;font-size:13px;font-weight:700}.badge-active{background:#19875424;color:#166534}.badge-inactive{background:#c0392b24;color:#922b21}.badge-warning{background:#b47e0429;color:#8a5b00}.scroll-panel{max-height:480px;overflow-y:auto;padding-right:6px}.bus-status-card{display:grid;gap:14px;padding:16px 18px;border-radius:18px;background:#ffffffc2;border:1px solid rgba(16,32,51,.08)}.bus-status-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.bus-status-head h4{margin:0 0 4px;color:#102033}.month-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:10px}.month-status-chip{display:grid;gap:4px;padding:12px 14px;border-radius:14px;border:1px solid rgba(16,32,51,.08);background:#f6f8fbe6;color:#42576d}.month-status-chip strong{color:#102033;font-size:13px}.month-status-chip span{font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.month-status-chip.paid{background:#1987541a;border-color:#19875433}.month-status-chip.paid span{color:#166534}.month-status-chip.partial{background:#b47e041c;border-color:#b47e0433}.month-status-chip.partial span{color:#8a5b00}.month-status-chip.unpaid{background:#c0392b17;border-color:#c0392b2e}.month-status-chip.unpaid span{color:#922b21}.endpoint-url{color:#102033;word-break:break-all}.table-wrap{overflow-x:auto}.resource-table{width:100%;border-collapse:collapse}.resource-table th,.resource-table td{text-align:left;padding:14px 12px;border-bottom:1px solid rgba(16,32,51,.08);vertical-align:top}.resource-table th{color:#617285;text-transform:uppercase;font-size:12px;letter-spacing:.08em}.empty-state,.error-text{padding:18px;border-radius:16px}.empty-state{background:#1020330a}.error-text{color:#922b21;background:#c0392b1a}@media (max-width: 960px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:24px 20px}.main-panel{padding:24px 20px}.nav{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.card-grid,.academics-layout,.academics-form{grid-template-columns:1fr}.panel-head,.page-header{flex-direction:column;align-items:flex-start}.student-meta-grid,.teacher-meta-grid,.fee-summary-grid,.attendance-summary-grid,.dashboard-meta-grid,.student-form,.students-form,.students-card-grid{grid-template-columns:1fr}.payment-row,.attendance-record-row,.schedule-row,.result-row{align-items:flex-start;flex-direction:column}.search-input{min-width:100%}.toolbar>*{width:100%}.status-pill{width:100%;text-align:center}.user-table-actions,.user-table-inline,.student-directory-actions{flex-wrap:wrap}}.login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:radial-gradient(circle at top left,rgba(243,183,76,.35),transparent 28%),radial-gradient(circle at bottom right,rgba(17,138,178,.18),transparent 32%),linear-gradient(135deg,#f8fbff,#eef5f9);padding:20px}.login-box{width:100%;max-width:420px;position:relative;background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(16,32,51,.08);border-radius:24px;box-shadow:0 20px 60px #1020331f;padding:40px 40px 96px}.login-header{text-align:center;margin-bottom:32px}.login-header h1{margin:0 0 12px;font-size:clamp(1.5rem,1.25rem + 1vw,1.9rem);color:#102033}.login-header p{margin:0;color:#617285;font-size:16px}.login-box form{display:grid;gap:20px;margin-bottom:24px}.form-group{display:grid;gap:8px}.form-group label{font-size:14px;font-weight:600;color:#102033}.form-group input{padding:12px 14px;border-radius:14px;border:1px solid rgba(16,32,51,.16);background:#fffc;color:#102033;font-size:14px;transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus{outline:none;border-color:#118ab2;box-shadow:0 0 0 3px #118ab21a}.form-group input:disabled{background:#1020330a;cursor:not-allowed;opacity:.6}.login-button{padding:12px 18px;border:0;border-radius:14px;background:linear-gradient(135deg,#118ab2,#0f4c5c);color:#fff;font-weight:600;font-size:15px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #118ab240}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-footer{text-align:center;margin:0;color:#617285;font-size:13px}.login-brand-mark{position:absolute;right:20px;bottom:18px;display:flex;justify-content:flex-end;pointer-events:none}.login-brand-image{width:min(140px,36vw);height:auto;display:block;opacity:.92}.error-message{padding:12px 14px;margin-bottom:20px;border-radius:12px;background:#c0392b1a;color:#922b21;font-size:14px;border:1px solid rgba(192,57,43,.24)}.user-info{margin-top:24px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1)}.user-name{margin:0;font-weight:600;color:#f8fbff;font-size:14px}.user-role{margin:4px 0 0;color:#f8fbffb8;font-size:12px;text-transform:capitalize}.nav-footer{margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1)}.logout-button{width:100%;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:#c0392b26;color:#f8fbff;font-weight:600;font-size:14px;cursor:pointer;transition:background-color .2s ease}.logout-button:hover{background:#c0392b40}.loading-container{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(circle at top left,rgba(243,183,76,.35),transparent 28%),radial-gradient(circle at bottom right,rgba(17,138,178,.18),transparent 32%),linear-gradient(135deg,#f8fbff,#eef5f9)}.loading-container-inline{min-height:min(50vh,360px);border-radius:24px;border:1px solid rgba(16,32,51,.08)}.spinner{width:40px;height:40px;border:4px solid rgba(16,32,51,.1);border-top-color:#118ab2;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.loading-container p{color:#617285;font-size:16px}@media (max-width: 640px){.sidebar{padding:20px 14px}.main-panel{padding:18px 14px}.dashboard-footer{gap:10px}.dashboard-footer-brand{width:min(110px,34vw)}.public-topbar{padding:14px}.public-page{padding:18px 14px}.public-hero-copy,.public-summary-card,.public-compliance-note{border-radius:20px}.disclosure-document{padding:20px 16px}.public-hero-copy{padding:24px 20px}.public-summary-card{padding:22px 20px}.login-box{padding:32px 20px 88px}.login-header h1{font-size:24px}.login-brand-mark{right:16px;bottom:16px}.login-brand-image{width:min(120px,38vw)}.public-hero,.public-card-grid,.card-grid,.public-option-grid,.public-timeline-grid,.public-gallery-grid,.public-contact-grid,.content-editor-grid,.gallery-admin-card,.disclosure-results-grid{grid-template-columns:1fr}.hero,.panel,.data-card{border-radius:18px}}@media (max-width: 960px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.main-panel{min-height:auto}.public-hero{grid-template-columns:1fr}.public-topbar{position:static;align-items:flex-start;flex-direction:column}.public-nav{justify-content:flex-start}.public-card-grid,.public-option-grid,.public-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.user-form{display:grid;gap:24px}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.form-row label{display:grid;gap:8px;font-size:14px;color:#42576d;font-weight:600}.form-row input,.form-row select{padding:12px 14px;border-radius:12px;border:1px solid rgba(16,32,51,.16);background:#fffc;color:#102033;font-size:14px;font-family:inherit;transition:border-color .2s ease}.form-row input:focus,.form-row select:focus{outline:none;border-color:#118ab2;box-shadow:0 0 0 3px #118ab21a}.form-row input:disabled,.form-row select:disabled{background:#1020330a;cursor:not-allowed;opacity:.6}.success-message{padding:12px 14px;margin-bottom:20px;border-radius:12px;background:#1987541a;color:#166534;font-size:14px;border:1px solid rgba(25,135,84,.24);animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.users-table-wrap{overflow-x:auto;margin-top:18px;max-width:100%}.users-table{width:100%;border-collapse:collapse;font-size:14px;min-width:860px}.users-table th,.users-table td{text-align:left;padding:14px 12px;border-bottom:1px solid rgba(16,32,51,.08);vertical-align:center}.users-table th{color:#617285;text-transform:uppercase;font-size:12px;letter-spacing:.08em;font-weight:600;background:#10203305}.users-table td{color:#42576d;white-space:nowrap}.role-badge{display:inline-block;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:600;text-transform:capitalize;background:#118ab21f;color:#0f4c5c}.status-active{color:#166534;font-weight:600}.status-inactive{color:#922b21;font-weight:600}.user-table-inline,.user-table-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap}.user-table-actions .secondary-button,.user-table-actions .danger-button,.user-table-actions .primary-button,.user-table-inline .secondary-button{padding:8px 12px;font-size:12px}.mark-entry-table-section{display:grid;gap:12px;min-width:0}.mark-entry-section-title{margin:0;font-size:14px;font-weight:700;color:#102033}.mark-entry-table-wrap{max-width:100%;min-width:0;overflow:auto;max-height:min(65vh,560px);border-radius:18px;border:1px solid rgba(16,32,51,.12);background:#ffffffb8;box-shadow:inset 0 1px #fff9}.mark-entry-table{width:100%;min-width:max-content;border-collapse:separate;border-spacing:0;font-size:13px}.mark-entry-table th,.mark-entry-table td{padding:12px 14px;border-bottom:1px solid rgba(16,32,51,.08);vertical-align:middle;background-color:inherit}.mark-entry-table thead th{position:sticky;top:0;z-index:3;background:#10203305;color:#617285;text-transform:uppercase;font-size:12px;letter-spacing:.08em;font-weight:700;white-space:normal;overflow-wrap:anywhere}.mark-entry-row:nth-child(2n){background:#10203304}.mark-entry-student-col,.mark-entry-student-cell{width:260px;min-width:260px;text-align:left;border-right:1px solid rgba(16,32,51,.08)}.mark-entry-subject-col,.mark-entry-mark-cell{min-width:130px;text-align:center}.sticky-col{position:sticky;left:0;z-index:2;background-color:inherit;box-shadow:1px 0 #10203314}.mark-entry-table thead .sticky-col{z-index:4}.mark-entry-input{width:96px;padding:8px 10px;border:1px solid rgba(16,32,51,.16);border-radius:12px;background:#fffc;color:#102033;font-family:inherit;font-size:13px;text-align:center;transition:border-color .2s ease,box-shadow .2s ease}.mark-entry-input:focus{outline:none;border-color:#118ab2;box-shadow:0 0 0 3px #118ab21f}.mark-entry-input:disabled{background:#1020330a;cursor:not-allowed;opacity:.65}@media (max-width: 960px){.mark-entry-student-col,.mark-entry-student-cell{width:220px;min-width:220px}.mark-entry-subject-col,.mark-entry-mark-cell{min-width:120px}.mark-entry-table th,.mark-entry-table td{padding:10px 12px}.mark-entry-input{width:88px;padding:8px}}.nav-divider{height:1px;background:#ffffff1a;margin:16px 0}.nav-section-title{margin:12px 0 8px;padding:0 14px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#f8fbff99;font-weight:700}@media (max-width: 960px){.form-row{grid-template-columns:1fr}.users-table{font-size:12px}.users-table th,.users-table td{padding:10px 8px}}.bulk-upload-form{display:grid;gap:24px}.file-help-text{padding:16px;background:#118ab20f;border-radius:12px;border-left:4px solid #118ab2;font-size:13px;color:#42576d;line-height:1.6}.file-help-text p{margin:8px 0}.file-help-text code{display:block;margin:8px 0;padding:8px 12px;background:#1020330a;border-radius:6px;font-family:Courier New,monospace;font-size:12px;overflow-x:auto}.bulk-results{padding:16px;background:#10203305;border-radius:12px;border:1px solid rgba(16,32,51,.1);margin-bottom:24px}.results-summary{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(16,32,51,.08)}.results-summary h4{margin:0 0 12px;color:#102033;font-size:14px;font-weight:600}.results-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#ffffff80;border-radius:8px;border:1px solid rgba(16,32,51,.08)}.stat-label{font-size:12px;color:#617285;font-weight:500}.stat-value{display:inline-block;padding:4px 8px;background:#118ab21a;border-radius:6px;color:#0f4c5c;font-weight:700;font-size:16px}.stat.success .stat-value{background:#1987541a;color:#166534}.stat.error .stat-value{background:#b222221a;color:#922b21}.results-section{margin-top:16px}.results-section h4{margin:0 0 12px;color:#102033;font-size:14px;font-weight:600}.results-list{list-style:none;padding:0;margin:0;max-height:300px;overflow-y:auto}.results-list li{padding:8px 12px;margin-bottom:6px;border-radius:6px;font-size:13px;line-height:1.4}.success-item{background:#19875414;color:#166534;border-left:3px solid #28a745}.error-item{background:#b2222214;color:#922b21;border-left:3px solid #dc3545}.annual-consolidation-table th,.annual-consolidation-table td{padding:10px 8px}.annual-consolidation-table th:nth-child(1),.annual-consolidation-table td:nth-child(1){width:54px}.annual-consolidation-table th:nth-child(2),.annual-consolidation-table td:nth-child(2){width:230px;white-space:normal}.annual-consolidation-table th:nth-child(3),.annual-consolidation-table td:nth-child(3),.annual-consolidation-table th:nth-child(4),.annual-consolidation-table td:nth-child(4),.annual-consolidation-table th:nth-child(5),.annual-consolidation-table td:nth-child(5),.annual-consolidation-table th:nth-child(6),.annual-consolidation-table td:nth-child(6),.annual-consolidation-table th:nth-child(7),.annual-consolidation-table td:nth-child(7),.annual-consolidation-table th:nth-child(8),.annual-consolidation-table td:nth-child(8),.annual-consolidation-table th:nth-child(9),.annual-consolidation-table td:nth-child(9){width:74px}.annual-consolidation-table th:nth-child(10),.annual-consolidation-table td:nth-child(10){width:80px}.search-input.annual-consolidation-mark-input{min-width:54px;width:54px;padding:10px 8px;text-align:center}.report-remark-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.report-remark-card{padding:14px;border-radius:16px;border:1px solid rgba(16,32,51,.08);background:#ffffffc7}.report-remark-card h4,.report-remark-card p{margin:0}.report-remark-card h4{margin-bottom:8px;font-size:13px;color:#102033}.report-remark-card p{font-size:14px;line-height:1.5;color:#42576d;white-space:pre-wrap}.report-remark-card-positive{background:#19875412}.report-remark-card-negative{background:#c0392b12}@media (max-width: 960px){.disclosure-pdf-header{flex-direction:column}.disclosure-pdf-frame{min-height:70vh}.report-remark-grid{grid-template-columns:1fr}}.daily-update-list{display:grid;gap:16px}.daily-update-card{padding:20px;border-radius:20px;background:#1020330a;border:1px solid rgba(16,32,51,.08)}.daily-update-head,.daily-update-footer{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.daily-update-head h4,.daily-update-head p,.daily-update-block h5,.daily-update-block p,.daily-update-footer p{margin:0}.daily-update-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.daily-update-block{padding:14px;border-radius:16px;background:#ffffffb8;border:1px solid rgba(16,32,51,.08)}.daily-update-block h5{margin-bottom:8px;font-size:13px;color:#102033}.daily-update-block p{color:#42576d;line-height:1.5;white-space:pre-wrap}.daily-update-block-full{grid-column:1 / -1}.daily-update-actions{display:flex;gap:10px;flex-wrap:wrap}.ledger-list-scroll{max-height:420px;overflow-y:auto;padding-right:6px;scrollbar-gutter:stable;overscroll-behavior:contain}.ledger-actions{flex-wrap:wrap;justify-content:flex-end}@media (max-width: 960px){.daily-update-grid{grid-template-columns:1fr}.daily-update-head,.daily-update-footer{flex-direction:column}}
