:root{--portal-navy:#062a57;--portal-navy-deep:#031d3f;--portal-blue:#0878f9;--portal-canvas:#f5f8fc;--portal-text:#10294a;--portal-muted:#71829b;--portal-border:#e2eaf3;--portal-green:#18ad70;--portal-red:#ef4c55;--portal-amber:#f3a51d;--portal-purple:#7656e8;--portal-shadow:0 8px 26px rgba(20,49,84,.07)}
body{background:var(--portal-canvas);color:var(--portal-text)}
.app-shell{grid-template-columns:238px minmax(0,1fr)}
.sidebar{width:238px!important;padding:16px 12px 18px!important;background:linear-gradient(180deg,var(--portal-navy),var(--portal-navy-deep))!important;box-shadow:4px 0 18px rgba(3,28,61,.08)}
.brand{padding:0 4px 15px;border-bottom:1px solid rgba(255,255,255,.1);gap:10px}.brand img{width:40px!important;height:40px!important;border-radius:50%!important}.brand-copy b{font-size:12px;max-width:158px!important}.brand-copy small{font-size:8px;color:#afc7e3;letter-spacing:.02em}.collapse-button{right:-12px!important;top:58px!important;width:26px!important;height:26px!important}
.sidebar nav{gap:2px;overflow-y:auto;padding-right:2px}.nav-heading{font-size:8px!important;letter-spacing:.12em;color:#8eabc9!important;margin:15px 10px 5px!important}.nav-link{min-height:38px;padding:8px 10px!important;border-radius:7px!important;font-size:11px!important;color:#d4e1ef!important}.nav-link:hover{background:rgba(255,255,255,.1)!important}.nav-link.active{background:var(--portal-blue)!important;box-shadow:0 5px 14px rgba(8,120,249,.25);color:#fff!important}.nav-link svg{width:15px!important;height:15px!important}.logout-form{padding-top:10px;border-top:1px solid rgba(255,255,255,.09)}
.main{grid-column:2!important}.topbar{height:62px!important;padding:0 24px!important;background:rgba(255,255,255,.96)!important}.global-search{max-width:390px!important;height:38px!important;background:#f4f7fb!important;border-color:#e1e8f1!important}.global-search input{font-size:11px!important}.icon-button{width:36px!important;height:36px!important}.profile-button{padding:5px 8px!important}.avatar{width:34px!important;height:34px!important;font-size:11px}.user-copy strong{font-size:11px}.user-copy small{font-size:8px}.content{max-width:none!important;padding:22px 24px 42px!important}.dashboard-heading{margin:0 0 17px!important}.dashboard-heading h1{font-size:25px!important}.dashboard-heading p{font-size:11px!important}.dashboard-heading .eyebrow{display:none}.period-picker{box-shadow:none!important;padding:7px 9px!important}.period-picker select{font-size:10px!important}
.panel,.metric-card{border:1px solid var(--portal-border)!important;border-radius:11px!important;box-shadow:var(--portal-shadow)!important}.panel{padding:16px!important}.metric-card{min-height:108px!important;padding:16px!important}.metric-card .metric-icon{width:41px!important;height:41px!important;border-radius:9px!important}.metric-card strong{font-size:20px!important}.metric-card small,.metric-card em{font-size:9px!important}.panel-head h3,.panel-heading h3{font-size:14px!important}.panel-head a,.panel-heading a{font-size:10px!important}.chart-frame{height:220px!important}.chart-frame.compact{height:175px!important}.executive-grid{grid-template-columns:minmax(0,1.35fr) minmax(260px,.85fr) 270px!important;gap:12px!important}.attendance-visual{min-height:195px!important}.donut{width:125px!important}.action-tiles a{min-height:70px!important}
.page-heading,.page-actions{margin:0 0 16px!important}.page-heading h2,.page-actions h2{font-size:21px;margin:4px 0}.page-heading p,.page-actions p{font-size:11px;color:var(--portal-muted)}.heading-actions,.form-actions,.row-actions,.table-actions,.finance-links,.quick-mark{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.primary-button,.secondary-button,.btn{display:inline-flex!important;width:auto!important;min-height:38px;align-items:center;justify-content:center;padding:0 14px!important;border-radius:7px!important;font-size:11px!important;font-weight:750!important;cursor:pointer;text-decoration:none}.primary-button,.btn-primary{border:1px solid var(--portal-blue)!important;background:var(--portal-blue)!important;color:#fff!important;box-shadow:0 5px 14px rgba(8,120,249,.18)}.secondary-button,.btn-secondary{border:1px solid #d8e2ed!important;background:#fff!important;color:#244463!important}.btn-success{border:1px solid var(--portal-green)!important;background:var(--portal-green)!important;color:#fff!important}.btn-danger{border:1px solid var(--portal-red)!important;background:var(--portal-red)!important;color:#fff!important}.primary-button:hover,.btn-primary:hover{background:#006be4!important}.primary-button:focus-visible,.secondary-button:focus-visible,.btn:focus-visible{outline:3px solid rgba(8,120,249,.22);outline-offset:2px}.primary-button:disabled,.secondary-button:disabled,.btn:disabled{opacity:.55;cursor:not-allowed}
.search-bar,.filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding:12px;background:#fff;border:1px solid var(--portal-border);border-radius:10px}.search-bar .form-input,.filter-bar .form-input{width:auto;min-width:170px}.form-input,select,input,textarea{min-height:39px;border-radius:7px!important;border-color:#d9e3ee!important;font-size:11px!important}.data-form,.form-card{max-width:980px}.form-grid{gap:14px!important}.form-group label,.field-group label{font-size:10px!important;color:#334d6b}.form-actions{justify-content:flex-end;padding-top:16px;border-top:1px solid var(--portal-border);margin-top:18px}
.table-panel{overflow:hidden}.responsive-table{border:1px solid var(--portal-border);border-radius:9px;overflow:auto}.responsive-table table{margin:0}.responsive-table th{background:#f7f9fc!important;color:#526783!important;text-transform:uppercase;letter-spacing:.045em;font-size:8px!important;padding:10px 12px!important}.responsive-table td{font-size:10px!important;padding:11px 12px!important;border-color:#edf1f5!important}.responsive-table tbody tr:hover{background:#f8fbff}.row-actions a,.table-actions a{font-size:10px;font-weight:750}.status{font-weight:750}.empty-state{padding:35px 20px!important}.empty-state h3{font-size:15px}.empty-state p{font-size:11px}.profile-hero{border-radius:12px!important}.large-avatar{background:linear-gradient(135deg,#0878f9,#7656e8)!important;color:#fff!important}
.person-cell{display:flex;align-items:center;gap:9px}.person-cell>img,.table-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none}.table-avatar{display:grid;place-items:center;background:#e8f2ff;color:#0867cc;font-weight:800}.person-cell>span:last-child{display:grid}.person-cell small,.table-subtitle{display:block;color:var(--portal-muted);font-size:8px;margin-top:2px}.attendance-options{display:flex;gap:6px;flex-wrap:wrap}.attendance-option{position:relative;cursor:pointer}.attendance-option input{position:absolute;opacity:0;pointer-events:none}.attendance-option span{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid #dbe4ee;border-radius:999px;background:#fff;color:#5d7089;font-size:9px;font-weight:750}.attendance-option span:before{content:"";width:8px;height:8px;border:2px solid currentColor;border-radius:50%}.attendance-option input:checked+span{color:#fff}.option-present input:checked+span{background:var(--portal-green);border-color:var(--portal-green)}.option-late input:checked+span{background:var(--portal-amber);border-color:var(--portal-amber)}.option-absent input:checked+span{background:var(--portal-red);border-color:var(--portal-red)}.option-excused input:checked+span{background:var(--portal-blue);border-color:var(--portal-blue)}.attendance-option input:focus-visible+span{outline:3px solid rgba(8,120,249,.2)}.attendance-table td:nth-child(4){min-width:310px}.teacher-dashboard .metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.teacher-dashboard .quick-grid a{border-radius:8px;background:#eff6ff;color:#0b5db8}.teacher-dashboard .quick-grid a:nth-child(2){background:#f3efff;color:#6842c8}.teacher-dashboard .quick-grid a:nth-child(3){background:#ecfaf4;color:#13865a}.teacher-dashboard .quick-grid a:nth-child(4){background:#fff2e8;color:#cd690d}
@media(max-width:1200px){.executive-grid{grid-template-columns:1fr 1fr!important}.dashboard-side,.events-side{grid-column:auto!important}.dashboard-kpis{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:900px){.app-shell{display:block}.main{display:block}.sidebar{position:fixed!important;left:-250px!important;top:0;bottom:0;height:100vh;transition:left .2s}.sidebar.open{left:0!important}.content{padding:18px!important}.topbar{padding:0 15px!important}.global-search{max-width:300px!important}.executive-grid{grid-template-columns:1fr!important}.teacher-dashboard .metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid.thirds{grid-template-columns:1fr!important}}
@media(max-width:600px){.content{padding:14px!important}.topbar{height:58px!important}.global-search{display:none!important}.dashboard-heading{display:block!important}.dashboard-heading>form{margin-top:12px}.dashboard-kpis,.teacher-dashboard .metric-grid{grid-template-columns:1fr 1fr!important}.metric-card{min-height:96px!important}.page-heading,.page-actions{align-items:flex-start!important;flex-direction:column}.heading-actions,.finance-links,.quick-mark{width:100%}.heading-actions>a,.finance-links>a,.quick-mark .btn{flex:1}.search-bar .form-input,.filter-bar .form-input{width:100%;min-width:0}.responsive-table table,.responsive-table thead,.responsive-table tbody,.responsive-table tr,.responsive-table th,.responsive-table td{display:block}.responsive-table thead{display:none}.responsive-table tr{padding:10px;border-bottom:1px solid var(--portal-border)}.responsive-table td{display:flex!important;justify-content:space-between;gap:15px;border:0!important;padding:7px 5px!important}.responsive-table td:before{content:attr(data-label);font-weight:750;color:#647790}.dashboard-kpis .metric-card strong{font-size:17px!important}.user-copy{display:none}.period-picker{width:100%}.period-picker select{flex:1}}
