/* EDU-018B: shared, mobile-first containment without changing portal behavior. */
html{overflow-x:hidden}body{overflow-x:hidden}img,video,iframe{max-width:100%;height:auto}.portal-card,.metric,.lesson-card,.subject-card,.file-card,.info-item{min-width:0}.portal-card,.stream-card,.subject-card,.lesson-card,.file-card,.info-item{overflow-wrap:anywhere}.file-card-main,.lesson-card-main,.stream-body,.card-meta,.lesson-meta,td,th,.validation-summary-errors,.field-validation-error{overflow-wrap:anywhere;word-break:break-word}.status,.badge{white-space:normal;text-align:center}.actions>*{max-width:100%;min-height:44px}.table-actions{white-space:normal}.portal-card:has(> table){overflow-x:auto}.portal-card>table{min-width:600px}.cinema,.public-preview-player{width:100%;max-width:100%}.cinema video,.public-preview-player{height:auto;aspect-ratio:16/9}.login-page,.login-split{min-height:100dvh}
@media (max-width:900px){.app-sidebar{padding:7px max(7px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left))}.app-nav{justify-content:flex-start;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.app-nav a,.app-nav button{flex:0 0 auto;min-height:44px;padding:8px 11px;font-size:12px;white-space:nowrap}.portal-main{padding-bottom:calc(94px + env(safe-area-inset-bottom))}.section-head{gap:12px;align-items:flex-start;flex-wrap:wrap}.file-card{min-width:0;flex-wrap:wrap}.file-card-main{margin-left:0;flex:1 1 180px}.filters input,.filters select{min-width:0;flex:1 1 100%}.filters button{width:100%}.attendance-row{min-width:0}.login-brand{min-height:unset}.login-card{max-width:100%;overflow-wrap:anywhere}.login-card input,.login-card select,.login-card textarea{min-width:0}}
@media (max-width:480px){.portal-grid{grid-template-columns:1fr}.portal-main{padding-inline:12px}.portal-card{padding:16px}.subject-grid,.stream-grid{grid-template-columns:1fr}.page-head .actions,.page-head .primary{width:100%}.actions{align-items:stretch}.actions>a,.actions>button{flex:1 1 auto}.info-grid{grid-template-columns:1fr}.profile-hero{align-items:flex-start;flex-wrap:wrap}.login-panel{padding:12px}.login-card{padding:20px}.login-brand{padding:28px 20px}.login-brand h1{font-size:clamp(1.45rem,8vw,1.9rem)}}
