:root{--surface:#fff;--surface-soft:#f7f9fd;--text:#15213b;--subtle:#71809b;--border:#e6ebf3;--accent:#2463eb;--accent-soft:#e9f0ff;--radius:14px;--shadow-sm:0 3px 14px rgba(30,48,83,.05)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
[data-theme="dark"]{--bg:#0d1424;--surface:#151f33;--surface-soft:#111a2c;--text:#ecf2ff;--subtle:#9aabc8;--border:#26344e;--line:#26344e;--ink:#ecf2ff;--shadow-sm:0 5px 20px rgba(0,0,0,.18)}
body{background:var(--bg);color:var(--text)}.role-teacher{--accent:#6d45dd;--accent-soft:#f0ebff}.role-parent{--accent:#0b9d62;--accent-soft:#e7f8f0}.role-student{--accent:#1474e8;--accent-soft:#e8f2ff}
.app-shell{grid-template-columns:240px 1fr;transition:grid-template-columns .2s}.app-shell.sidebar-collapsed{grid-template-columns:76px 1fr}.sidebar{padding:18px 14px;background:linear-gradient(180deg,#07358f,#082b71);overflow-y:auto;overflow-x:hidden}.role-teacher .sidebar{background:linear-gradient(180deg,#4d24ac,#321278)}.role-parent .sidebar{background:linear-gradient(180deg,#058c58,#046e47)}.role-student .sidebar{background:linear-gradient(180deg,#0751b3,#063779)}
.brand{min-height:44px}.brand img{width:38px;height:38px;border-radius:10px;object-fit:contain;background:#fff}.brand-copy{display:grid;white-space:nowrap}.brand-copy b{font-size:14px}.brand-copy small{font-size:10px;color:#c7d7f7;font-weight:500;margin-top:2px}.collapse-button{position:absolute;right:-1px;top:73px;width:25px;height:28px;border:1px solid rgba(255,255,255,.15);border-radius:8px 0 0 8px;background:rgba(255,255,255,.1);color:#fff;cursor:pointer}.nav-heading{margin:20px 12px 7px;color:#91a9dc;font-size:9px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;white-space:nowrap}.nav-icon{width:20px;text-align:center;font-size:16px}.nav-label{white-space:nowrap}.app-shell.sidebar-collapsed .brand-copy,.app-shell.sidebar-collapsed .nav-label,.app-shell.sidebar-collapsed .nav-heading,.app-shell.sidebar-collapsed .school-chip{display:none}.app-shell.sidebar-collapsed .nav-link{justify-content:center}.app-shell.sidebar-collapsed .collapse-button{transform:rotate(180deg)}.sidebar nav{gap:3px}.nav-link{padding:9px 10px;font-size:12px}.nav-link.active{background:#2374ef;box-shadow:0 5px 18px rgba(0,0,0,.16)}
.topbar{height:70px;padding:0 28px;background:var(--surface)}.global-search{position:relative;width:min(470px,45vw);height:38px;border:1px solid var(--border);background:var(--surface-soft);border-radius:9px;display:flex;align-items:center;gap:8px;padding:0 12px}.global-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:12px}.search-results{display:none;position:absolute;left:0;right:0;top:44px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 45px rgba(14,26,50,.18);padding:7px;max-height:330px;overflow:auto}.search-results.open{display:block}.search-results a{display:flex;justify-content:space-between;padding:10px;border-radius:8px;color:var(--text);font-size:12px}.search-results a:hover,.search-results a:focus{background:var(--accent-soft)}.search-results small{color:var(--subtle)}.top-actions{display:flex;align-items:center;gap:8px}.icon-button,.profile-button{border:0;background:transparent;color:var(--text);cursor:pointer}.icon-button{width:38px;height:38px;border-radius:9px}.icon-button:hover{background:var(--surface-soft)}.profile-button{display:flex;align-items:center;gap:8px}.profile-dropdown{display:none;position:fixed;right:24px;top:63px;z-index:50;width:230px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 45px rgba(14,26,50,.18)}.profile-dropdown.open{display:grid}.profile-dropdown>div{display:grid;padding:8px}.profile-dropdown small{color:var(--subtle)}.profile-dropdown a,.profile-dropdown button{padding:10px;border:0;background:transparent;color:var(--text);text-align:left;border-radius:7px;font-size:12px}.profile-dropdown a:hover,.profile-dropdown button:hover{background:var(--surface-soft)}
.content{padding:24px 28px 40px;max-width:1700px;margin:auto}.dashboard-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:19px}.dashboard-heading h1{font-size:21px;margin:3px 0}.dashboard-heading>div>p:last-child{color:var(--subtle);font-size:12px;margin:0}.dashboard-heading .eyebrow{font-size:9px;color:var(--accent)}.primary-button.compact{width:auto;padding:10px 15px;font-size:12px;background:var(--accent)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;margin-bottom:14px}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:15px;display:flex;gap:11px;align-items:center;box-shadow:var(--shadow-sm)}.metric-icon{flex:0 0 39px;height:39px;border-radius:50%;display:grid;place-items:center}.metric-card div{display:grid;min-width:0}.metric-card small{color:var(--subtle);font-size:10px}.metric-card strong{font-size:18px;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-card em{font-style:normal;color:#18a66c;font-size:9px}.panel{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-sm);padding:17px}.panel-head{padding-bottom:12px;border-color:var(--border)}.panel-head h3{font-size:13px}.panel-head small{font-size:9px;color:var(--subtle)}.panel-head a{font-size:10px}.dashboard-grid{display:grid;gap:14px;margin:14px 0}.dashboard-grid.wide{grid-template-columns:2fr 1fr}.dashboard-grid.thirds{grid-template-columns:repeat(3,1fr)}
.bar-chart{display:grid;gap:12px;padding-top:16px}.bar-row{display:grid;grid-template-columns:90px 1fr 30px;align-items:center;gap:10px;font-size:10px}.bar-row>div{height:7px;background:var(--surface-soft);border-radius:10px;overflow:hidden}.bar-row i{display:block;width:var(--value);height:100%;background:linear-gradient(90deg,var(--accent),#73a5ff);border-radius:10px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:14px}.quick-grid.single{grid-template-columns:1fr}.quick-grid a{background:var(--accent-soft);color:var(--accent);padding:10px;border-radius:8px;font-size:10px;font-weight:700}.feed,.class-list,.schedule,.subject-list{display:grid;padding-top:8px}.feed>div,.feed>a,.class-list>a,.schedule>div{display:flex;align-items:center;gap:9px;padding:10px 2px;border-bottom:1px solid var(--border);color:var(--text)}.feed>div:last-child,.feed>a:last-child{border-bottom:0}.feed p,.class-list p,.schedule p{display:grid;margin:0;flex:1;font-size:10px}.feed small,.class-list small,.schedule small{color:var(--subtle);margin-top:3px}.feed strong{font-size:10px}.feed-icon{width:30px;height:30px;flex:0 0 30px;border-radius:9px;display:grid;place-items:center;font-size:10px;font-weight:800}.feed time{width:34px;text-align:center;text-transform:uppercase;color:var(--subtle);font-size:8px}.feed time b{display:block;color:var(--text);font-size:15px}.schedule time{width:43px;font-size:10px;color:var(--accent);font-weight:700}.status{font-size:8px}.subject-list{grid-template-columns:1fr 1fr;gap:5px}.subject-list>div{display:flex;gap:7px;align-items:center;padding:7px;font-size:10px}.child-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding-top:14px}.child-grid>article{display:grid;grid-template-columns:auto 1fr;gap:10px;border:1px solid var(--border);border-radius:11px;padding:12px}.child-grid h4,.child-grid p{margin:0}.child-grid p{color:var(--subtle);font-size:10px}.avatar.large{width:42px;height:42px}.child-actions{grid-column:1/-1;display:flex;gap:6px}.child-actions a{flex:1;text-align:center;background:var(--surface-soft);padding:6px;border-radius:6px;font-size:9px}.compact-empty{padding:20px 5px}.compact-empty>span{font-size:20px}.compact-empty h4{font-size:12px}.compact-empty p{font-size:10px;margin:0;color:var(--subtle)}
*:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:2px}.table-wrap,.responsive-table{max-width:100%;overflow-x:auto}.panel table{min-width:650px}body,.panel,.metric-card,.topbar,.global-search,.profile-dropdown{transition:background-color .18s,color .18s,border-color .18s}
@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid.thirds{grid-template-columns:1fr 1fr}.dashboard-grid.thirds>*:last-child{grid-column:1/-1}}
@media(max-width:760px){.app-shell,.app-shell.sidebar-collapsed{display:block}.sidebar{left:-250px;width:240px}.sidebar.open{left:0}.collapse-button{display:none}.topbar{padding:0 14px}.global-search{width:auto;flex:1}.profile-button .user-copy,.profile-button>span:last-child{display:none}.content{padding:18px 14px}.dashboard-heading{align-items:flex-start}.dashboard-heading .primary-button{display:none}.dashboard-grid.wide,.dashboard-grid.thirds{grid-template-columns:1fr}.dashboard-grid.thirds>*:last-child{grid-column:auto}.child-grid{grid-template-columns:1fr}}
@media(max-width:480px){.metric-grid{grid-template-columns:1fr 1fr;gap:8px}.metric-card{padding:11px}.metric-card strong{font-size:15px}.metric-icon{width:34px;height:34px;flex-basis:34px}.dashboard-heading h1{font-size:18px}.icon-button:first-child{display:none}.quick-grid{grid-template-columns:1fr}.subject-list{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
.platform-top-actions{display:flex;align-items:center;gap:10px}.platform-top-actions .global-search{width:280px}[data-theme="dark"] .platform-shell{background:var(--bg);color:var(--text)}[data-theme="dark"] .platform-main,[data-theme="dark"] .platform-panel,[data-theme="dark"] .platform-metrics article{background:var(--surface);color:var(--text);border-color:var(--border)}[data-theme="dark"] .row-link,[data-theme="dark"] .platform-sidebar nav a{color:var(--text)}@media(max-width:760px){.platform-top-actions .global-search{display:none}.platform-top-actions>span{display:none}}
