/* R68 shared viewport layer: loaded after each application's own CSS. */
:root{--ho-ink:#173b4d;--ho-blue:#edf8fc;--ho-yellow:#fff1ad;--ho-line:#cfe2eb;color-scheme:light}
html{scroll-padding-top:100px;-webkit-text-size-adjust:100%}body{margin:0;background:#fff;color:var(--ho-ink)}*,*::before,*::after{box-sizing:border-box}#root,main,section,article,form,fieldset,header,footer{min-width:0}img,video,canvas{max-width:100%}img,video{height:auto}iframe{max-width:100%}input,select,textarea{max-width:100%;min-width:0}button,a,input,select,textarea{touch-action:manipulation}button,[role=button],input:not([type=checkbox]):not([type=radio]),select{min-height:44px}button{white-space:normal}button:disabled{cursor:not-allowed}a,button{overflow-wrap:anywhere}p,dd,td,th,h1,h2,h3,h4,small{overflow-wrap:anywhere}pre{max-width:100%;overflow:auto}input[type=checkbox],input[type=radio]{flex-shrink:0;width:20px;height:20px;min-height:20px;accent-color:#24617c}textarea{resize:vertical}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d8a510;outline-offset:3px}button:not(.icon-button):not(.text-button):not(.nav-item):not(.ph-stat):not(.stat){line-height:1.35}
.ho-admin-content,.ho-admin-workspace,.ho-admin-main,.page,.shell,.ph-shell,.student-app main,.parent-hub main{min-width:0;max-width:100%}.ho-admin-workspace>*{min-width:0}.recharts-responsive-container{min-width:0!important;max-width:100%}.recharts-wrapper{max-width:100%}.recharts-surface{max-width:100%}.table-wrap,.table-wrapper,.overflow-x-auto,.ph-table-wrap,.roster-table-wrap,.ho-evidence-table{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.table-wrap table,.table-wrapper table,.overflow-x-auto table,.ph-table-wrap table,.roster-table-wrap table{width:100%}td,th{vertical-align:top}.panel,.ph-card,.card{min-width:0}.grid,.two,.stats,.ph-stats,.groups,.quick-grid,.detail-grid,.ph-fields,.form-grid{min-width:0}.grid>*,.two>*,.stats>*,.ph-stats>*,.groups>*,.quick-grid>*,.detail-grid>*,.form-grid>*{min-width:0}.row-main{min-width:0}.row-main strong,.row-main small{white-space:normal}.actions,.top-actions,.group-actions,.ph-actions{flex-wrap:wrap}.sidebar,.ph-sidebar{height:100dvh;max-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}.sidebar nav,.ph-sidebar nav{min-height:0;overscroll-behavior:contain}.ho-control-links{display:flex;gap:10px;flex-wrap:wrap;padding:14px 0}.ho-control-links a{padding:10px 16px;min-height:44px;border:1px solid #d1b94a;border-radius:10px;background:var(--ho-yellow);color:var(--ho-ink);font-weight:700}.ho-control-links a:focus-visible{outline:3px solid #34657d}
@media(max-width:1023px){.app>.sidebar,.student-app>.sidebar,.parent-hub>.ph-sidebar{width:min(300px,88vw);transform:translateX(-105%);transition:transform .2s;z-index:70}.app>.sidebar.open,.student-app>.sidebar.open,.parent-hub>.ph-sidebar.ph-open{transform:translateX(0)}.app>.page,.student-app>.shell,.parent-hub>.ph-shell{margin-left:0!important;width:100%!important}.mobile-menu,.mobile-only,.ph-mobile{display:inline-flex!important;align-items:center;justify-content:center}.scrim,.ph-overlay,.backdrop{position:fixed;inset:0;z-index:60;background:#183d4d55}.topbar,.ph-top{gap:12px;padding:12px 16px;flex-wrap:wrap;height:auto;min-height:68px}.top-title,.topbar .actions{min-width:0}.user-chip strong,.today,.top-note{display:none}.app main,.student-app main,.parent-hub main{padding:20px 16px}.grid,.two{grid-template-columns:repeat(2,minmax(0,1fr))}.stats,.ph-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ho-admin-content{padding-left:0!important}.ho-admin-main{padding:20px 16px!important}.ph-heading,.page-heading,.intro,.panel-heading{gap:14px;flex-wrap:wrap}}
@media(max-width:640px){input,select,textarea{font-size:16px!important}.grid,.two,.stats,.ph-stats,.groups,.quick-grid,.detail-grid,.ph-fields,.form-grid{grid-template-columns:minmax(0,1fr)!important}.topbar,.ph-top{position:sticky;top:0;z-index:20;background:#fff}.topbar .actions{gap:8px}.page-heading h1,.ph-heading h1,h1{font-size:clamp(26px,7vw,36px);line-height:1.15}.hero,.ph-hero{padding:22px 18px;gap:16px}.hero>svg,.ph-hero>svg{width:46px;height:46px;flex-shrink:0}.panel,.ph-card{padding:18px 14px}.attendance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-heading .text-link{width:100%}.ph-child{width:100%}.ph-child select{width:100%}.ph-child-strip{flex-wrap:wrap}.user-chip{padding:5px}.modal,.modal-panel,.ph-modal,[role=dialog]{max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important;overflow:auto!important;overscroll-behavior:contain}.modal-overlay,.modal-backdrop,.ph-modal-overlay{padding:12px!important}.login-layout{display:grid!important;grid-template-columns:minmax(0,1fr)!important;max-width:100%;padding:16px!important}.login-page .welcome{padding:20px!important}.login-page .site-header,.login-page .site-footer{flex-wrap:wrap;gap:12px}.login-page .sign-in{width:100%;min-width:0;padding:22px 18px!important}.login-page .remember{display:flex;align-items:flex-start;gap:10px}.login-page .remember input{flex:0 0 20px}.ho-admin-workspace [class*=grid-cols-]{grid-template-columns:minmax(0,1fr)!important}.ho-admin-workspace [class*=min-w-]{min-width:0!important}.ho-admin-workspace table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.ho-admin-workspace table th,.ho-admin-workspace table td{min-width:110px}.ho-admin-workspace [class*=fixed][class*=inset-0]{padding:12px!important}.ho-admin-workspace [role=dialog]{width:100%!important}.ho-admin-workspace [class*=w-\[900px\]],.ho-admin-workspace [class*=w-\[800px\]]{width:100%!important}.ho-admin-main{padding-bottom:calc(24px + env(safe-area-inset-bottom))!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

@media(max-width:1023px){.ph-overlay{display:block}.ho-teacher-scrim{position:fixed;inset:0;z-index:60;background:#183d4d55}.ho-teacher-responsive .mobile-close{display:inline-flex!important}.ho-teacher-responsive .sidebar{z-index:70}.ho-teacher-responsive .page{margin-left:0!important}}
@media(max-width:640px){.ho-teacher-responsive .grid,.ho-teacher-responsive .groups,.ho-teacher-responsive .class-list,.ho-teacher-responsive .profile-details,.ho-teacher-responsive .class-module-grid,.ho-teacher-responsive .work-form-grid,.ho-teacher-responsive .stats,.ho-teacher-responsive .att-summary,.student-app .two,.student-app .detail-grid,.student-app .stats,.student-app .profile-fields,.student-app .portrait-grid,.student-app .cards,.parent-hub .ph-stats,.parent-hub .ph-fields,.pcp-cards,.hw-filters,.hw-fields,.hw-group-grid,.ho-class-grid,.ho-notice-filters,.timetable-filters,.roster-filters{grid-template-columns:minmax(0,1fr)!important}.work-toolbar .work-field,.filters .field,.roster-filters>*,.ph-filter label{min-width:0!important;width:100%}.hw-dialog,.work-dialog,.att-dialog,.reader-dialog{max-width:calc(100vw - 24px)!important;width:100%!important;max-height:calc(var(--ho-viewport-height,100dvh) - 24px)!important;overflow:auto;overscroll-behavior:contain}.work-overlay,.hw-overlay,.ph-modal-wrap{padding:12px!important}.ho-table-scroll{max-width:100%;overflow-x:auto}.ho-teacher-responsive .topbar{flex-wrap:wrap;gap:12px;height:auto;min-height:68px}.ho-teacher-responsive .top-title{max-width:100%}.ho-teacher-responsive .user-chip{min-width:0}.ho-admin-workspace [class*=grid-cols-]{grid-template-columns:minmax(0,1fr)!important}}

.login-page{background:#f4fbfe!important}.login-page .auth-card{min-width:0;max-width:100%;background:#fff}.login-page .auth-card:before{background:linear-gradient(90deg,#fff0ad,#eaf7fc)}.login-page .primary{background:#fff0ad;color:#173b4d;border-color:#d9bd52}.login-page .mode-switch button.selected{background:#fff9dd;color:#173b4d}.login-page .auth-card form>label:not(.remember){font-size:14px}.login-page .input-shell input::placeholder{font-size:14px}@media(max-width:1023px){.login-page .login-layout{display:grid!important;grid-template-columns:minmax(0,1fr)!important;max-width:620px;gap:24px}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.login-page .auth-card{padding:24px 18px}.login-page .mode-switch{flex-wrap:wrap}.login-page .mode-switch button{font-size:13px;min-height:44px;min-width:100px}.login-page .site-header,.login-page .site-footer{padding:18px 16px}.login-page .card-description,.login-page .secure-note{font-size:14px}.media-grid{grid-template-columns:minmax(0,1fr)}}
