@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#17243a;--muted:#7d899b;--line:#e9edf3;--bg:#f6f8fb;--primary:#4569e8;--sidebar:#fff;--shadow:0 8px 28px rgba(28,43,74,.045)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:258px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:24px 16px 16px;z-index:20}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);padding:0 8px 24px}.brand-mark{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#5c7df3,#3654cf);display:grid;place-items:center;color:#fff;font:800 21px Manrope;box-shadow:0 6px 14px #4569e833}.brand strong{display:block;font:800 17px Manrope;letter-spacing:-.5px}.brand small{display:block;color:#9aa4b3;font-size:9px;letter-spacing:1.5px;font-weight:700;margin-top:2px}.school-switch{display:flex;align-items:center;gap:10px;background:#f7f8fc;border:1px solid #eef0f5;padding:11px;border-radius:12px;margin:0 0 22px}.school-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#e8edff;color:#4569e8;font-weight:700;font-size:11px}.school-switch strong,.school-switch small{display:block}.school-switch strong{font-size:12px}.school-switch small{font-size:10px;color:var(--muted);margin-top:2px}.school-switch i{color:#9ba6b5}.side-nav{overflow:auto;flex:1;padding:0 2px}.nav-group-label{font-size:9px;letter-spacing:1.3px;color:#a2adbc;font-weight:700;padding:14px 10px 7px;text-transform:uppercase}.nav-link-custom{height:41px;display:flex;align-items:center;gap:12px;padding:0 11px;margin:2px 0;color:#6f7c90;text-decoration:none;border-radius:9px;font-size:12px;font-weight:600;transition:.18s}.nav-link-custom i{font-size:16px;width:19px;text-align:center}.nav-link-custom:hover{background:#f5f7ff;color:#4569e8}.nav-link-custom.active{background:#edf1ff;color:#4569e8;font-weight:700}.sidebar-bottom{padding-top:12px}.help-card{background:#f6f8fd;border:1px solid #edf0f7;padding:13px;border-radius:11px;display:grid;gap:4px;margin-bottom:10px}.help-card i{color:#4569e8;font-size:17px}.help-card strong{font-size:11px}.help-card small{font-size:10px;color:var(--muted)}.logout-link{width:100%;border:0;background:none;text-align:left;padding:10px;color:#7c8797;font-size:12px;font-weight:600}.logout-link i{margin-right:9px}.main-area{margin-left:258px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:10}.breadcrumb-line{color:#a1aaba;font-size:11px}.breadcrumb-line i{font-size:9px;margin:0 9px}.breadcrumb-line strong{color:#35445b;font-weight:700}.topbar-actions{display:flex;align-items:center;gap:22px}.icon-button{border:0;background:none;color:#7f8b9c;font-size:18px;position:relative}.notification-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:#f47c6b;right:1px;top:2px;border:1px solid #fff}.user-menu{display:flex;align-items:center;gap:9px}.user-avatar{width:34px;height:34px;border-radius:50%;background:#e9edff;color:#4569e8;display:grid;place-items:center;font-weight:700;font-size:11px}.user-meta strong,.user-meta small{display:block}.user-meta strong{font-size:11px}.user-meta small{font-size:10px;color:#98a3b2;text-transform:capitalize;margin-top:2px}.page-content{padding:30px 34px;flex:1;max-width:1600px;width:100%;margin:0 auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:25px;gap:20px}.eyebrow{font-size:9px;letter-spacing:1.5px;color:#8e9aab;font-weight:700}.page-heading h1{font:800 26px Manrope;letter-spacing:-.8px;margin:6px 0 5px;color:#19263c}.page-heading p{margin:0;color:#8a96a8;font-size:12px}.wave{color:#e7aa47;font-size:20px}.date-chip{background:#fff;border:1px solid var(--line);padding:9px 13px;border-radius:9px;color:#758197;font-size:11px}.date-chip i{margin-right:8px;color:#4569e8}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stats-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card,.panel-card{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.stat-card{padding:18px 19px}.stat-top{display:flex;justify-content:space-between;align-items:center;color:#7d899b;font-size:11px;font-weight:600}.stat-icon{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;font-size:16px}.stat-icon.blue{background:#edf1ff;color:#5272e7}.stat-icon.violet{background:#f3edff;color:#9568d9}.stat-icon.green{background:#e9f8f0;color:#39a879}.stat-icon.orange{background:#fff3e8;color:#e69b4a}.stat-value{font:800 25px Manrope;letter-spacing:-.7px;margin:15px 0 4px;color:#202d43}.stat-value.small-value{font-size:17px}.stat-foot{font-size:10px;color:#a2acba}.content-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}.panel-card{padding:20px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:17px}.panel-heading h3{font:800 14px Manrope;margin:0 0 4px}.panel-heading p{font-size:10px;color:#9aa5b4;margin:0}.text-link{color:#4569e8;text-decoration:none;font-size:11px;font-weight:700}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.quick-item{border:1px solid #edf0f5;border-radius:10px;padding:12px 10px;display:flex;align-items:center;gap:8px;text-decoration:none;color:#45536a;font-size:10px;min-width:0}.quick-item>span{width:28px;height:28px;border-radius:8px;background:#f0f3ff;color:#5574e8;display:grid;place-items:center;font-size:14px}.quick-item strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-item .arrow{color:#b4bdca;font-size:10px}.quick-item:hover{border-color:#cbd5ff;background:#fafbff;color:#4569e8}.notice-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid #f0f2f6}.notice-row:last-child{border:0}.notice-icon{width:30px;height:30px;border-radius:9px;background:#fff4e9;color:#df9a4c;display:grid;place-items:center}.notice-row strong,.notice-row small{display:block}.notice-row strong{font-size:11px}.notice-row small{font-size:9px;color:#a1acba;margin-top:3px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:7px;min-height:175px;color:#99a4b3}.empty-state>i{font-size:26px;color:#9cabe0}.empty-state strong{font-size:12px;color:#536177}.empty-state span{font-size:10px;max-width:350px}.app-footer{padding:15px 34px;color:#a4adba;font-size:10px;border-top:1px solid var(--line);background:#fff}.app-footer span{padding:0 6px}.modern-table{font-size:11px;margin:0}.modern-table thead th{background:#fafbfe;color:#8d98a8;font-size:9px;letter-spacing:.7px;text-transform:uppercase;font-weight:700;padding:13px 15px;border-bottom:1px solid #edf0f4;white-space:nowrap}.modern-table tbody td{padding:13px 15px;color:#68758a;border-bottom:1px solid #f0f2f6;vertical-align:middle}.modern-table tbody tr:last-child td{border-bottom:0}.modern-table td strong{color:#35445b}.table-note{border-top:1px solid #f0f2f6;padding:12px 15px;color:#a0aaba;font-size:10px}.mono{font-family:monospace;color:#536bba!important}.status-pill{font-size:9px;padding:4px 8px;border-radius:20px;font-weight:700}.status-active{background:#e9f8f0;color:#2b9a6c}.status-inactive{background:#fff0ef;color:#d56a66}.profile-card{display:flex;align-items:center;gap:17px;background:#fff;border:1px solid var(--line);padding:22px;border-radius:13px;margin-bottom:17px}.profile-avatar{width:60px;height:60px;border-radius:16px;background:#e9edff;color:#4569e8;display:grid;place-items:center;font:800 20px Manrope}.profile-card h2{font:800 19px Manrope;margin:0 0 4px}.profile-card p{color:#8a96a8;font-size:11px;margin:0 0 7px}.child-card h3{font:800 15px Manrope;margin:13px 0 3px}.child-card p,.child-class{font-size:10px;color:#8d99a9}.child-links{display:flex;gap:13px;border-top:1px solid #eef1f5;padding-top:12px;margin-top:12px}.child-links a{font-size:10px;color:#4569e8;text-decoration:none;font-weight:700}.login-page{background:#fff;min-height:100vh}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:radial-gradient(circle at 15% 15%,#6684f5 0,#3859d4 45%,#263e9d 100%);padding:9% 11%;color:#fff;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-art:after{content:"";position:absolute;width:500px;height:500px;border:1px solid #ffffff20;border-radius:50%;right:-180px;bottom:-180px;box-shadow:0 0 0 50px #ffffff09,0 0 0 100px #ffffff07}.login-art .brand-mark{background:#ffffff20;box-shadow:none;margin-bottom:55px}.login-art .eyebrow{color:#c4d0ff}.login-art h1{font:800 clamp(32px,4vw,53px)/1.13 Manrope;max-width:530px;margin:18px 0}.login-art p{color:#d6defd;line-height:1.8;max-width:390px;font-size:14px}.login-art-footer{position:absolute;bottom:35px;font-size:10px;color:#d1dafb}.login-art-footer span{padding:0 8px}.login-form-wrap{display:grid;place-items:center;padding:35px}.login-form{width:min(390px,100%)}.login-form .eyebrow{color:#5573e4}.login-form h2{font:800 25px Manrope;margin:9px 0}.muted{color:#8d99aa;font-size:12px;margin-bottom:28px}.form-label{font-size:11px;font-weight:700;color:#59677d}.form-control{border-color:#e6eaf1;border-radius:9px;font-size:12px;padding:12px}.form-control:focus{border-color:#8fa2f3;box-shadow:0 0 0 3px #4569e81a}.btn-primary{background:#4569e8;border-color:#4569e8;border-radius:9px;font-size:12px;font-weight:700;padding:12px}.btn-primary:hover{background:#3656ce}.login-help{font-size:10px;color:#a0aaba;text-align:center;margin-top:24px}.brand-mobile,.mobile-menu{display:none}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s;box-shadow:10px 0 30px #14264a15}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.topbar{height:60px;padding:0 17px}.mobile-menu{display:block;border:0;background:none;font-size:22px;color:#52627a;margin-right:12px}.breadcrumb-line{margin-right:auto}.topbar-actions{gap:12px}.user-meta{display:none}.page-content{padding:23px 16px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:18px}.page-heading h1{font-size:23px}.date-chip{font-size:10px}.stats-grid,.stats-grid.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{padding:14px}.stat-value{font-size:21px}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-card{padding:15px}.app-footer{padding:14px 16px}.login-shell{grid-template-columns:1fr}.login-art{display:none}.login-form-wrap{min-height:100vh;padding:25px}.brand-mobile{display:flex;align-items:center;gap:10px;margin-bottom:45px}.brand-mobile strong{font:800 16px Manrope}.brand-mobile .brand-mark{width:36px;height:36px;margin:0}.login-form h2{font-size:23px}}

.role-form{min-width:145px}.role-form .form-select{font-size:10px;border-color:#e7ebf2;border-radius:7px;padding:6px 26px 6px 9px;max-width:180px}

/* Student management module */
.student-list-card{padding:0;overflow:hidden}.student-filters{display:flex;align-items:center;gap:9px;padding:16px;border-bottom:1px solid #edf0f5;flex-wrap:wrap}.student-filters .form-select{width:auto;min-width:130px;font-size:11px;border-color:#e9edf3;border-radius:8px}.search-field{position:relative;flex:1;min-width:220px}.search-field i{position:absolute;left:12px;top:10px;color:#9ba6b6}.search-field input{width:100%;height:36px;border:1px solid #e9edf3;border-radius:8px;padding:0 12px 0 34px;font-size:11px;outline:none}.search-field input:focus{border-color:#9baff9}.student-list-card .modern-table{margin:0}.student-name-cell{display:flex;align-items:center;gap:9px}.student-mini-avatar{width:31px;height:31px;flex:0 0 31px;border-radius:10px;background:#edf1ff;color:#5472e4;display:grid;place-items:center;font-size:10px;font-weight:800}.student-name-cell strong,.student-name-cell small{display:block}.student-name-cell small{font-size:9px;color:#9ba6b5;margin-top:3px}.student-list-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-top:1px solid #edf0f5;color:#9aa5b4;font-size:10px}.pagination-links{display:flex;align-items:center;gap:13px}.pagination-links a{color:#4569e8;text-decoration:none;font-weight:700}.credential-alert{font-size:11px}.credential-values{display:flex;gap:20px;flex-wrap:wrap;margin:7px 0}.credential-alert small{color:#577c67}.student-form-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.8fr);gap:18px;align-items:start}.student-form-main,.student-form-side{display:grid;gap:16px}.form-section{padding:19px}.form-section-title{display:flex;align-items:center;gap:11px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid #f0f2f6}.form-section-title h3{font:800 13px Manrope;margin:0 0 3px}.form-section-title p{font-size:10px;color:#98a3b2;margin:0}.section-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#edf1ff;color:#5472e4;font-size:16px}.section-icon.purple{background:#f4efff;color:#9469d5}.section-icon.green{background:#eaf8f1;color:#39a879}.section-icon.orange{background:#fff4e9;color:#df9b4d}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-field{display:grid;gap:6px;margin-bottom:13px}.form-grid .form-field{margin:0}.form-field.full{grid-column:1/-1}.form-field label{font-size:10px;font-weight:700;color:#5d6b80}.form-field label b{color:#e16c67}.form-field label small{font-weight:400;color:#9ba6b5}.form-field .form-control,.form-field .form-select{font-size:11px;border-color:#e6eaf1;border-radius:8px;padding:9px 10px;min-height:36px}.form-field textarea.form-control{min-height:64px}.form-hint{font-size:9px;color:#9ba6b5;line-height:1.5}.current-photo{display:flex;align-items:center;gap:8px;font-size:10px;color:#718096;margin-bottom:10px}.current-photo i{font-size:22px;color:#8095e8}.form-actions{display:grid;gap:8px}.form-actions .btn{font-size:11px}.student-form-side .form-section{padding:16px}.student-form-side .form-section-title{margin-bottom:13px}.student-form-side .form-field{margin-bottom:11px}
@media(max-width:1000px){.student-form-grid{grid-template-columns:1fr}.student-form-side{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.form-actions{grid-column:1/-1}}
@media(max-width:760px){.student-filters{align-items:stretch}.student-filters .form-select{flex:1;min-width:calc(50% - 6px)}.search-field{flex-basis:100%}.student-form-side{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.student-list-footer{align-items:flex-start;gap:10px;flex-direction:column}}

.profile-settings-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(350px,1.2fr);gap:18px;align-items:start}.profile-overview{text-align:center;padding:28px}.profile-avatar.large{width:72px;height:72px;border-radius:22px;font-size:23px;margin:0 auto 13px}.profile-overview h2{font:800 18px Manrope;margin:0 0 4px}.profile-overview>p{font-size:11px;color:#8e9aab;margin-bottom:10px}.profile-meta{border-top:1px solid #edf0f5;margin-top:20px;padding-top:15px;display:grid;gap:13px;text-align:left}.profile-meta small,.profile-meta strong{display:block}.profile-meta small{font-size:9px;color:#9ba6b5;margin-bottom:3px}.profile-meta strong{font-size:11px;color:#506077}.password-panel{padding:22px}.password-panel form{max-width:440px}.password-panel .btn{font-size:11px;margin-top:5px}
@media(max-width:760px){.profile-settings-grid{grid-template-columns:1fr}}

/* Accessibility pass: slightly larger default typography and controls */
body{font-size:16px}
.nav-group-label{font-size:11px}
.nav-link-custom{font-size:14px;height:44px}
.school-switch strong{font-size:14px}.school-switch small{font-size:12px}
.help-card strong{font-size:13px}.help-card small{font-size:12px}.logout-link{font-size:14px}
.breadcrumb-line{font-size:13px}.user-meta strong{font-size:13px}.user-meta small{font-size:12px}
.page-heading p{font-size:14px}.eyebrow{font-size:11px}
.stat-top{font-size:13px}.stat-foot{font-size:12px}.stat-value{font-size:28px}
.panel-heading h3{font-size:16px}.panel-heading p{font-size:12px}.text-link{font-size:13px}
.quick-item{font-size:12px}.notice-row{font-size:13px}
.modern-table{font-size:14px}.modern-table th{font-size:12px}.modern-table td{font-size:14px}
.table-note,.table-note *{font-size:12px}
.form-label{font-size:13px}.form-control,.form-select{font-size:14px}
.form-field label{font-size:13px}.form-field .form-control,.form-field .form-select{font-size:14px;min-height:42px;padding:10px 12px}
.form-hint{font-size:11px}.form-section-title h3{font-size:16px}.form-section-title p{font-size:12px}
.btn,.btn-primary{font-size:14px}.student-filters .form-select,.search-field input{font-size:13px;min-height:40px}
.student-name-cell small{font-size:11px}.student-list-footer{font-size:12px}.credential-alert{font-size:13px}
.profile-overview h2{font-size:21px}.profile-overview>p{font-size:13px}.profile-meta small{font-size:11px}.profile-meta strong{font-size:13px}
@media(max-width:760px){body{font-size:15px}.nav-link-custom{font-size:14px}.page-heading p{font-size:13px}.modern-table td{font-size:13px}.form-field label{font-size:13px}}

/* Staff attendance register */
.attendance-date-panel{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px;padding:18px 20px}.attendance-date-form{display:flex;align-items:flex-end;gap:12px}.attendance-date-form .form-field{min-width:190px;margin:0}.attendance-date-form .btn{height:42px}.attendance-summary{display:flex;gap:20px;flex-wrap:wrap;color:#778499;font-size:13px}.attendance-summary strong{color:#263750;font-size:19px;margin-right:4px}.attendance-table-card{padding:0;overflow:hidden}.attendance-table-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 20px;border-bottom:1px solid #edf0f5}.attendance-table-head h3{font:800 16px Manrope;margin:0 0 5px}.attendance-table-head p{font-size:13px;color:#8b97a8;margin:0}.attendance-table{min-width:930px}.attendance-table th{white-space:nowrap}.attendance-table td{vertical-align:middle}.attendance-table td strong{font-size:14px}.attendance-status{min-width:135px;font-size:13px!important;min-height:40px}.attendance-time{min-width:105px;font-size:13px!important;min-height:40px}.attendance-note{min-width:150px;font-size:13px!important;min-height:40px}.attendance-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 20px;border-top:1px solid #edf0f5;color:#8290a3;font-size:12px}.attendance-footer .btn{white-space:nowrap}
@media(max-width:760px){.attendance-date-panel{align-items:stretch;flex-direction:column}.attendance-date-form{align-items:stretch;flex-direction:column}.attendance-date-form .form-field{min-width:0}.attendance-summary{gap:12px 18px}.attendance-table-head,.attendance-footer{align-items:flex-start;flex-direction:column}.attendance-table-head .btn,.attendance-footer .btn{width:100%}}
