/* RC6.58 Batch 02 — public/student authentication theme and focus components. */
:root{color-scheme:light}
body.public-app-body{--b2-ink:#172d43;--b2-subtle:#485e72;--b2-card:#fff;--b2-outline:#2764bd}
body.public-app-body .app-welcome h1{max-width:820px;overflow-wrap:anywhere;line-height:1.16}
body.public-app-body .portal-entry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr));gap:clamp(12px,2vw,22px);min-width:0}
body.public-app-body .portal-entry-card{min-width:0;min-height:116px;display:flex;align-items:center;gap:15px;overflow-wrap:anywhere}
body.public-app-body .portal-entry-card strong,body.public-app-body .portal-entry-card small{display:block}
body.public-app-body .portal-entry-card small{color:var(--b2-subtle);line-height:1.5;margin-top:5px}
body.public-app-body :is(.portal-entry-card,.public-nav a,.public-nav-utility a,.public-sidebar-toggle):focus-visible,
body.student-auth-page :is(a,button,input):focus-visible{outline:3px solid var(--b2-outline,#2764bd);outline-offset:3px}
body.public-app-body .public-sidebar-toggle{min-width:44px;min-height:44px}
body.student-auth-page .student-auth-card{max-width:100%;box-sizing:border-box}
body.student-auth-page .student-pin-field input{padding-right:58px}
body.student-auth-page .student-auth-form button{touch-action:manipulation}
body.student-auth-page .student-auth-submit[aria-busy=true]{cursor:progress;opacity:.78}
body.student-auth-page .student-auth-links a{overflow-wrap:anywhere}
body.student-auth-page .student-remember input{flex:none}
body.student-auth-page .student-theme-button,body.public-app-body .public-theme-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;min-width:40px;padding:7px 12px;border-radius:12px;border:1px solid #9baebf;background:#fff;color:#183951;font:inherit;font-size:13px;font-weight:750;cursor:pointer}
:is(body.student-auth-page .student-theme-button,body.public-app-body .public-theme-button){margin-left:auto}
html[data-b2-theme=dark] body.public-app-body{background:#101c2b!important;color:#ebf1f9!important;--b2-subtle:#c7d4e1;--b2-card:#1c3043;--b2-outline:#7fb4ff}
html[data-b2-theme=dark] body.public-app-body .public-main,html[data-b2-theme=dark] body.public-app-body .app-welcome{background:#101c2b!important;color:#ebf1f9!important}
html[data-b2-theme=dark] body.public-app-body .app-welcome h1{color:#f5f8ff!important}
html[data-b2-theme=dark] body.public-app-body .portal-entry-card{background:#1c3043!important;border-color:#40576f!important;color:#f1f6ff!important}
html[data-b2-theme=dark] body.public-app-body .portal-entry-card :is(strong,small){color:#edf4ff!important}
html[data-b2-theme=dark] body.public-app-body .public-appbar{background:#192d40!important;color:#f2f7ff!important;border-color:#38546a!important}
html[data-b2-theme=dark] body.public-app-body .public-appbar-context :is(strong,small){color:#f1f6ff!important}
html[data-b2-theme=dark] body.public-app-body .footer{background:#101c2b!important;color:#d9e6f5!important}
html[data-b2-theme=dark] body.student-auth-page{background:linear-gradient(145deg,#0e1929,#182c43)!important;color:#eaf3ff!important}
html[data-b2-theme=dark] body.student-auth-page .student-auth-card{background:#1b3048!important;border-color:#425d78!important;color:#f1f6ff!important}
html[data-b2-theme=dark] body.student-auth-page :is(.student-auth-copy h1,.student-auth-brand,.student-auth-form label){color:#f4f8ff!important}
html[data-b2-theme=dark] body.student-auth-page :is(.student-auth-copy p,.student-auth-links){color:#ccdae9!important}
html[data-b2-theme=dark] body.student-auth-page .student-auth-form input:not([type=checkbox]){background:#13273c!important;color:#f5f9ff!important;border-color:#69819a!important}
html[data-b2-theme=dark] body.student-auth-page .student-auth-form input::placeholder{color:#c8d5e4!important}
html[data-b2-theme=dark] body.student-auth-page .student-auth-links{border-color:#405a74!important}
html[data-b2-theme=dark] body.student-auth-page .student-auth-links a{color:#93c7ff!important}
html[data-b2-theme=dark] body.student-auth-page .student-shared-note{background:#443414!important;color:#ffe2a8!important;border-color:#887044!important}
html[data-b2-theme=dark] body.student-auth-page .student-pin-field button{color:#f4f8ff!important}
html[data-b2-theme=dark] body.student-auth-page .student-theme-button,html[data-b2-theme=dark] body.public-app-body .public-theme-button{background:#243c54;color:#f4f8ff;border-color:#6b87a2}
@media(max-width:600px){body.public-app-body .portal-entry-grid{grid-template-columns:1fr}body.public-app-body .portal-entry-card{min-height:88px}body.student-auth-page .student-auth-shell{padding:12px}}
@media(prefers-reduced-motion:reduce){body.public-app-body .portal-entry-card{transition:none!important}}

/* Consolidated keyboard/touch feedback for entry and authentication actions. */
body.public-app-body .portal-entry-card,body.student-auth-page .student-auth-submit{touch-action:manipulation}
@media (prefers-reduced-motion:reduce){body.student-auth-page .student-auth-submit{animation:none!important;transition:none!important}}

/* Portal entry semantics shared by database-backed and static fallback landing. */
body.public-app-body .portal-intro{max-width:760px;margin:14px 0 26px;color:var(--b2-subtle,#485e72);font-size:clamp(15px,1.3vw,18px);line-height:1.65}
body.public-app-body .portal-entry-title{font-size:clamp(18px,2vw,24px);line-height:1.3;margin:0 0 16px;color:inherit}
body.public-app-body .portal-entry-card{position:relative;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
@media(hover:hover) and (prefers-reduced-motion:no-preference){body.public-app-body .portal-entry-card:hover{transform:translateY(-2px)}}
body.public-app-body .portal-entry-card:focus-visible{outline:3px solid var(--b2-outline,#2764bd);outline-offset:3px}
@media(max-width:600px){body.public-app-body .portal-intro{margin:10px 0 22px}body.public-app-body .portal-entry-title{margin-bottom:12px}}
