/* Shared school-role dashboard system inspired by the approved Smart School MS reference. */
.role-school_admin,.role-teacher,.role-student,.role-parent{--school-navy:#08284f;--school-navy-2:#041d3d;--school-blue:#1478f8;--school-canvas:#f5f8fc;--school-ink:#10294a;--school-muted:#71829b;--school-line:#e3ebf4;--school-green:#17a66c;--school-shadow:0 8px 26px rgba(20,49,84,.065)}
.role-school_admin .sidebar,.role-teacher .sidebar,.role-student .sidebar,.role-parent .sidebar{background:linear-gradient(180deg,var(--school-navy),var(--school-navy-2))!important}
.role-school_admin .nav-link.active,.role-teacher .nav-link.active,.role-student .nav-link.active,.role-parent .nav-link.active{background:var(--school-blue)!important}
.role-school_admin .content,.role-teacher .content,.role-student .content,.role-parent .content{max-width:1680px;margin-inline:auto}
.role-dashboard{display:grid;gap:16px;min-width:0}
.role-dashboard .metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}
.role-dashboard .metric-card{min-width:0;min-height:112px;padding:17px;display:flex;align-items:center;gap:13px;border:1px solid var(--school-line)!important;border-radius:13px!important;box-shadow:var(--school-shadow)!important;background:#fff;transition:transform .16s ease,box-shadow .16s ease}
.role-dashboard .metric-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(20,49,84,.1)!important}
.role-dashboard .metric-card>div{min-width:0;display:grid;gap:4px}
.role-dashboard .metric-card small{color:#657791;font-size:11px!important;font-weight:700}
.role-dashboard .metric-card strong{display:block;color:var(--school-ink);font-size:23px!important;line-height:1.2;overflow-wrap:anywhere}
.role-dashboard .metric-card em{color:#8190a4;font-size:10px!important;font-style:normal}
.role-dashboard .metric-icon{width:44px!important;height:44px!important;flex:0 0 44px;border-radius:12px!important}
.role-dashboard .metric-blue{background:linear-gradient(135deg,#fff,#edf5ff)!important}.role-dashboard .metric-green{background:linear-gradient(135deg,#fff,#edfbf5)!important}.role-dashboard .metric-purple{background:linear-gradient(135deg,#fff,#f4efff)!important}.role-dashboard .metric-orange{background:linear-gradient(135deg,#fff,#fff3e7)!important}
.role-dashboard .dashboard-grid{display:grid;gap:14px;min-width:0;align-items:stretch}
.role-dashboard .panel{min-width:0;border:1px solid var(--school-line)!important;border-radius:13px!important;box-shadow:var(--school-shadow)!important;background:#fff}
.role-dashboard .panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.role-dashboard .panel-head>div{min-width:0}.role-dashboard .panel-head>div>small{display:block;color:#7b8da4;font-size:9px;letter-spacing:.1em;font-weight:850;margin-bottom:3px}
.role-dashboard .panel-head h3{margin:0;color:var(--school-ink);font-size:15px!important;font-weight:800}
.role-dashboard .panel-head>a{flex:none;color:#126de0;font-size:10px;font-weight:750;text-decoration:none}
.role-dashboard .panel-head>a:hover{text-decoration:underline}
.role-dashboard .feed{display:grid;gap:2px}.role-dashboard .feed>a,.role-dashboard .feed>div{min-width:0;display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid #eef2f7;text-decoration:none;color:inherit}
.role-dashboard .feed>a:last-child,.role-dashboard .feed>div:last-child{border-bottom:0}
.role-dashboard .feed p{min-width:0;flex:1;margin:0;display:grid;gap:3px}.role-dashboard .feed p b{color:#203b5b;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-dashboard .feed p small,.role-dashboard .feed time{color:#7a8ba1;font-size:9px}.role-dashboard .feed strong{color:#173454;font-size:11px;white-space:nowrap}
.role-dashboard .feed-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#edf5ff;color:#166cd4;font-size:12px}.role-dashboard .feed-icon.green{background:#e8f8f0;color:#13915c}.role-dashboard .feed-icon.orange{background:#fff2e6;color:#d77515}.role-dashboard .feed-icon.purple{background:#f2edff;color:#7652df}.role-dashboard .feed-icon svg{width:16px;height:16px}
.role-dashboard .empty-state{margin:6px 0;padding:22px 16px!important;border:1px dashed #d9e4f0;border-radius:11px;background:#fafcff}.role-dashboard .empty-state h4{margin:6px 0;color:#304b69;font-size:12px}.role-dashboard .empty-state p{margin:0;color:#7789a0;font-size:10px;line-height:1.5}
.teacher-primary-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(210px,.75fr)}
.teacher-lower-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-notices{display:grid;grid-template-columns:1fr;gap:14px}.teacher-dashboard .class-list{display:grid;gap:2px}.teacher-dashboard .class-list>a{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid #eef2f7;text-decoration:none;color:inherit}.teacher-dashboard .class-list>a:last-child{border-bottom:0}.teacher-dashboard .class-list p{min-width:0;flex:1;margin:0;display:grid;gap:4px}.teacher-dashboard .class-list p b{font-size:11px;color:#203b5b}.teacher-dashboard .class-list p small{font-size:9px;color:#7b8da3}.teacher-dashboard .class-list>a>svg{width:15px;color:#8292a7}.teacher-dashboard .schedule{display:grid;gap:2px}.teacher-dashboard .schedule>div{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid #eef2f7}.teacher-dashboard .schedule>div:last-child{border-bottom:0}.teacher-dashboard .schedule time{font-size:10px;font-weight:800;color:#176fd8}.teacher-dashboard .schedule p{min-width:0;margin:0;display:grid;gap:3px}.teacher-dashboard .schedule p b{font-size:11px;color:#203b5b}.teacher-dashboard .schedule p small{font-size:9px;color:#7b8da3}.teacher-dashboard .status{color:#188456;background:#e9f8f0;border-radius:20px;padding:4px 7px;font-size:9px;white-space:nowrap}
.teacher-action-tiles,.student-action-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.teacher-action-tiles a,.student-action-tiles a{min-height:76px;padding:11px;border:1px solid #e7eef6;border-radius:11px;background:#f7faff;color:#1d5da6;display:flex;align-items:center;gap:9px;font-size:10px;font-weight:750;text-decoration:none}.teacher-action-tiles a:nth-child(2n),.student-action-tiles a:nth-child(2n){background:#f7f4ff;color:#6747bd}.teacher-action-tiles a:hover,.student-action-tiles a:hover{border-color:#a8cafa;transform:translateY(-1px)}.teacher-action-tiles svg,.student-action-tiles svg{width:19px;height:19px;flex:none}
.parent-main-grid{grid-template-columns:minmax(0,1.45fr) minmax(270px,.8fr)}.parent-lower-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.parent-child-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.parent-child-card{min-width:0;padding:14px;border:1px solid #e7edf5;border-radius:12px;background:#fbfdff}.parent-child-heading{display:flex;gap:10px;align-items:center}.parent-child-heading .avatar{flex:none}.parent-child-heading>div{min-width:0}.parent-child-heading h4{margin:0;color:#183656;font-size:12px}.parent-child-heading p{margin:3px 0;color:#516782;font-size:10px}.parent-child-heading small{color:#8391a5;font-size:9px}.child-attendance{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;margin:14px 0 10px}.child-attendance>span,.child-report>span{display:flex;align-items:center;gap:6px;color:#667b95;font-size:10px;font-weight:700}.child-attendance>span svg,.child-report>span svg{width:14px;height:14px;color:#1678e8}.child-attendance strong{color:#13875a;font-size:12px}.progress-track{grid-column:1/-1;height:6px;overflow:hidden;border-radius:10px;background:#e9eff5}.progress-track i{display:block;width:min(var(--value),100%);height:100%;border-radius:inherit;background:linear-gradient(90deg,#23b77b,#0e9362)}.child-report{display:grid;gap:5px;padding:10px 0;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5}.child-report a{color:#176ed5;font-size:10px;font-weight:750;text-decoration:none}.child-report small{color:#8290a4;font-size:9px}.child-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.child-actions a{flex:1;text-align:center;padding:7px 5px;border-radius:7px;background:#eef5ff;color:#1b5fa8;font-size:9px;font-weight:750;text-decoration:none}.child-actions a:hover{background:#e1efff}
.student-main-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) minmax(210px,.72fr)}.student-lower-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-subject-list{display:grid;gap:5px}.student-subject-list>div{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid #eef2f7}.student-subject-list>div:last-child{border-bottom:0}.student-subject-list b{color:#294765;font-size:11px}.student-actions-panel .action-tiles a{min-height:68px}.student-dashboard .schedule{display:grid;gap:2px}.student-dashboard .schedule>div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid #eef2f7}.student-dashboard .schedule time{font-size:10px;font-weight:800;color:#176fd8}.student-dashboard .schedule p{margin:0;display:grid;gap:3px}.student-dashboard .schedule p b{font-size:11px;color:#203b5b}.student-dashboard .schedule p small{font-size:9px;color:#7b8da3}
.dashboard-heading-actions{display:flex;align-items:center;gap:10px}.role-school_admin .dashboard-heading-actions .primary-button{white-space:nowrap}
.notification-bell{display:flex!important}
.role-dashboard a:focus-visible,.role-dashboard button:focus-visible{outline:3px solid rgba(20,120,248,.25);outline-offset:2px;border-radius:7px}
[data-theme="dark"] .role-dashboard .panel,[data-theme="dark"] .role-dashboard .metric-card{background:#151f33!important;border-color:#26344e!important;color:#ecf2ff}
[data-theme="dark"] .role-dashboard .metric-card>div,[data-theme="dark"] .role-dashboard .metric-card strong,[data-theme="dark"] .role-dashboard .panel-head h3,[data-theme="dark"] .role-dashboard .feed p b,[data-theme="dark"] .role-dashboard .feed strong,[data-theme="dark"] .teacher-dashboard .schedule p b,[data-theme="dark"] .teacher-dashboard .class-list p b,[data-theme="dark"] .student-dashboard .schedule p b,[data-theme="dark"] .student-subject-list b,[data-theme="dark"] .parent-child-heading h4{color:#ecf2ff}
[data-theme="dark"] .role-dashboard .metric-card small,[data-theme="dark"] .role-dashboard .metric-card em,[data-theme="dark"] .role-dashboard .feed p small,[data-theme="dark"] .role-dashboard .feed time,[data-theme="dark"] .parent-child-heading p,[data-theme="dark"] .parent-child-heading small,[data-theme="dark"] .child-attendance>span,[data-theme="dark"] .child-report small{color:#9aabc8}
[data-theme="dark"] .parent-child-card,[data-theme="dark"] .teacher-action-tiles a,[data-theme="dark"] .student-action-tiles a{background:#111a2c!important;border-color:#26344e;color:#dce8fa}
[data-theme="dark"] .role-dashboard .feed>a,[data-theme="dark"] .role-dashboard .feed>div,[data-theme="dark"] .teacher-dashboard .class-list>a,[data-theme="dark"] .teacher-dashboard .schedule>div,[data-theme="dark"] .student-dashboard .schedule>div,[data-theme="dark"] .student-subject-list>div,[data-theme="dark"] .child-report{border-color:#26344e}
[data-theme="dark"] .progress-track{background:#26344e}[data-theme="dark"] .child-actions a{background:#1a2d48;color:#add0ff}
@media(max-width:1240px){.teacher-primary-grid,.student-main-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-primary-grid>.panel:last-child,.student-main-grid>.panel:last-child{grid-column:1/-1}.parent-lower-grid,.student-lower-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-notices{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.role-dashboard .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-primary-grid,.teacher-lower-grid,.parent-main-grid,.parent-lower-grid,.student-main-grid,.student-lower-grid{grid-template-columns:1fr}.teacher-primary-grid>.panel:last-child,.student-main-grid>.panel:last-child{grid-column:auto}.teacher-notices{grid-template-columns:1fr}.role-school_admin .dashboard-heading-actions{width:100%;justify-content:space-between}}
@media(max-width:600px){.role-dashboard{gap:12px}.role-dashboard .dashboard-grid{gap:12px}.role-dashboard .metric-grid{gap:8px}.role-dashboard .metric-card{min-height:92px;padding:11px;gap:9px}.role-dashboard .metric-icon{width:36px!important;height:36px!important;flex-basis:36px}.role-dashboard .metric-card strong{font-size:17px!important}.role-dashboard .metric-card small{font-size:9px!important}.role-dashboard .metric-card em{font-size:8px!important}.role-dashboard .panel{padding:13px!important}.role-dashboard .panel-head h3{font-size:13px!important}.parent-child-grid{grid-template-columns:1fr}.parent-child-card{padding:12px}.dashboard-heading-actions{align-items:stretch;flex-direction:column}.dashboard-heading-actions .primary-button{justify-content:center}.dashboard-heading-actions .period-picker{width:100%}.dashboard-heading-actions .period-picker select{min-width:0}.teacher-dashboard .schedule>div{grid-template-columns:46px minmax(0,1fr)}.teacher-dashboard .schedule .status{grid-column:2;justify-self:start}.teacher-action-tiles a,.student-action-tiles a{min-height:56px}.role-dashboard .feed p b{white-space:normal}.role-dashboard .feed>div,.role-dashboard .feed>a{align-items:flex-start}.role-dashboard .feed strong{font-size:10px}}
@media(prefers-reduced-motion:reduce){.role-dashboard .metric-card,.teacher-action-tiles a,.student-action-tiles a{transition:none}.role-dashboard .metric-card:hover,.teacher-action-tiles a:hover,.student-action-tiles a:hover{transform:none}}
