/* Cross-portal foundations; retain brand tokens and native controls. */
:root{--studyos-space:1rem;--studyos-control-height:2.75rem;--studyos-focus:#8050ef;--studyos-dialog-width:52rem}
[hidden]{display:none!important}
html.studyos-dialog-open,html.studyos-dialog-open body{overflow:hidden!important}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{touch-action:manipulation}
:is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--studyos-focus);outline-offset:3px}
:is(input,select,textarea){min-width:0;max-width:100%;box-sizing:border-box}
button{overflow-wrap:anywhere}
dialog{box-sizing:border-box;width:min(var(--studyos-dialog-width),calc(100vw - 2rem));max-width:calc(100vw - 2rem);max-height:calc(100dvh - 2rem);overflow:auto;border:1px solid var(--border,#e3dff0);border-radius:18px;padding:1.5rem;color:var(--text,#252536);background:var(--surface,#fff)}
dialog::backdrop{background:rgb(23 15 46 / .55);backdrop-filter:blur(3px)}
dialog .dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
dialog .dialog-head button{flex:none;position:relative;z-index:1;min-width:44px;min-height:44px;pointer-events:auto}
dialog :is(.dialog-actions,.profile-actions){display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}
dialog form{min-width:0}dialog h2{margin-top:0}
:is(#app,#studentPortal,#portal) :is(.panel,.metric,.card){min-width:0;box-sizing:border-box}
:is(#app,#studentPortal,#portal) :is(.toolbar,.panel-head,.page-heading){gap:1rem;flex-wrap:wrap}
.studyos-table-scroll{max-width:100%;overflow:auto;overscroll-behavior-inline:contain;border-radius:12px}
.studyos-table-scroll:focus-visible{outline:3px solid var(--studyos-focus)}
.studyos-table-controls{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;margin-block:1rem}
.studyos-table-controls label{display:grid;gap:.3rem}.studyos-table-controls button{min-height:44px}
@media(max-width:767px){
 dialog{padding:1rem;width:calc(100vw - 1rem);max-width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}
 dialog :is(.grid,.profile-grid,.form-grid){grid-template-columns:minmax(0,1fr)!important}
 dialog .span-two{grid-column:auto}
 :is(#app,#studentPortal,#portal) :is(.toolbar,.panel-head,.page-heading){align-items:stretch}
 :is(#app,#studentPortal,#portal) :is(input:not([type=checkbox]):not([type=radio]),select,button){min-height:44px}
 :is(#app,#studentPortal,#portal) :is(.form-grid,.profile-grid){grid-template-columns:minmax(0,1fr)}
 .studyos-table-controls>*{flex:1 1 140px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.side nav button svg{width:20px;height:20px;flex:none;vertical-align:middle;margin-right:.6rem}
.portal-menu-toggle,.portal-menu-close,.portal-menu-backdrop{display:none}
@media(max-width:800px){
 #studentPortal .side,#portal .side{position:fixed!important;inset:0 auto 0 0;width:min(290px,85vw);height:100dvh!important;overflow:auto;z-index:1002;transform:translateX(-110%);background:var(--surface,#fff)}
 #studentPortal .side nav,#portal .side nav{display:grid!important;overflow:visible}
 .portal-menu-open :is(#studentPortal,#portal) .side{transform:none}
 .portal-menu-toggle,.portal-menu-close{display:inline-flex}
 .portal-menu-open .portal-menu-backdrop{display:block;position:fixed;inset:0;z-index:1001;background:#21113b80;border:0;border-radius:0}
 body.portal-menu-open{overflow:hidden}
}
[class~="header-popover"] .popover-close{display:block;margin:0 0 .5rem auto;width:44px;min-height:44px;text-align:center;font-size:1.25rem;}
@media(max-width:767px){.header-popover{max-width:calc(100vw - 24px);max-height:calc(100dvh - 80px);overflow:auto;right:12px!important;}.course-pagination{display:flex;flex-wrap:wrap;gap:12px;}.course-pagination label{display:flex;align-items:center;gap:8px;}}
#portal .main>header.top,#studentPortal .main>header.top{height:auto;min-height:64px;max-height:none;box-sizing:border-box;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:22px;}
#portal .main>header.top>div,#studentPortal .main>header.top>div{min-width:0;overflow-wrap:anywhere;}
.portal-menu-toggle,.portal-menu-close{border:1px solid var(--border,#e2e4ee);border-radius:10px;background:var(--surface,#fff);color:var(--text,#252735);padding:10px 14px;font:inherit;}
@media(max-width:800px){#portal .main>header.top,#studentPortal .main>header.top{flex-direction:row;align-items:center;padding:12px;row-gap:14px;}#portal .main>header.top>div{order:2;flex-basis:100%;}#portal .main>header.top>#logout{order:1;margin-left:auto;}#portal .main>header.top>.portal-menu-toggle{order:0;}#portal .main>header.top h1,#studentPortal .main>header.top h1{margin:0 0 6px;font-size:24px;line-height:1.25;}}
@media(max-width:800px){#studentPortal .main>header.top>div{order:2;flex-basis:100%;}#studentPortal .main>header.top>#logout{order:1;margin-left:auto;}#studentPortal .main>header.top>.portal-menu-toggle{order:0;}}
.employee-menu-close,.employee-menu-backdrop{display:none;}
@media(max-width:900px){body.sidebar-open{overflow:hidden;}.employee-menu-close{display:block;min-height:44px;margin:0 0 12px auto;}.employee-menu-backdrop{position:fixed;inset:0;z-index:29;border:0;border-radius:0;background:rgba(20,16,40,.45);}body.sidebar-open .employee-menu-backdrop{display:block;}}
/* Summary figures must remain visible without sideways scrolling on phones. */
@media (max-width: 800px) {
  .accounts-hero .accounts-today { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:9px; width:100%; overflow:visible; }
  .accounts-hero .accounts-today span { min-width:0; overflow-wrap:anywhere; }
}
