/* OWNED_BY: ava — early-phase portal entry. */
#login-screen { height: 100dvh !important; overflow-y: auto !important; }
#login-screen .login-intro { flex: 1; min-width: 0; padding: clamp(28px, 5vw, 76px); display: flex; flex-direction: column; justify-content: space-between; gap: 32px; background: #edf3f8; }
.portal-brand { display: flex; align-items: center; gap: 12px; color: #0a2342; text-decoration: none; font-size: 20px; font-weight: 700; letter-spacing: .04em; }
.portal-brand img { border-radius: 50%; }
.portal-stage { display: inline-block; padding: 7px 12px; border: 1px solid #b7cbdc; border-radius: 6px; color: #254761; font-size: 14px; margin-bottom: 24px; }
.portal-intro-copy { max-width: 560px; }
.portal-intro-copy h1 { font-size: clamp(30px, 3.3vw, 48px); line-height: 1.15; color: #0a2342; margin-bottom: 24px; }
.portal-intro-copy p, .portal-steps { font-size: 16px; line-height: 1.7; color: #44566a; }
.portal-steps { padding-left: 22px; margin-top: 28px; }
.portal-steps li { margin-bottom: 10px; padding-left: 4px; }
.portal-support { font-size: 14px; line-height: 1.6; color: #44566a; max-width: 420px; }
#login-screen .login-right-panel { width: min(50%, 580px) !important; min-height: min-content; padding: 32px !important; background: #fff !important; border: 0 !important; }
#login-screen .login-box { max-width: 440px; padding: 28px !important; border: 1px solid #dce4ec !important; border-radius: 16px !important; box-shadow: 0 12px 36px #0a23420a !important; }
#login-screen #login-form-title { font-size: 24px !important; }
#login-screen #login-form-subtitle, #login-screen #login-footer-desc, #login-screen .role-label, #login-screen .input-group label { font-size: 14px !important; line-height: 1.5; text-transform: none !important; letter-spacing: normal !important; }
#login-screen .role-pill-span { font-size: 14px !important; min-height: 44px; display: flex !important; align-items: center; justify-content: center; box-shadow: none !important; }
#login-screen .role-pill-span.active { border-color: #0f2963 !important; background: #edf3fc !important; color: #0a2342 !important; }
#login-screen input:not([type=radio]) { font-size: 16px !important; min-height: 46px; }
#login-screen button[type=submit] { min-height: 48px; font-size: 15px !important; background: #0f2963 !important; color: #fff !important; box-shadow: none !important; }
#login-screen button:disabled { opacity: .65; cursor: wait; }
#login-screen :is(a, button, input):focus-visible { outline: 3px solid #2563eb !important; outline-offset: 3px; }
#login-screen .role-btn:focus-within .role-pill-span { outline: 3px solid #2563eb; outline-offset: 2px; }
.login-error { margin-bottom: 16px; padding: 12px; border: 1px solid #e8b4b4; border-radius: 8px; background: #fff4f4; color: #9b1c1c; font-size: 14px; line-height: 1.5; }
.login-error[hidden] { display: none; }
.portal-pilot-notice { padding: 12px 20px; border-bottom: 1px solid #d6b970; background: #fff8e8; color: #614500; font-size: 14px; line-height: 1.5; }
.apps-menu-group { margin: 0 0 12px; }
.apps-menu-group summary { list-style: none; display: flex; justify-content: space-between; padding: 12px; color: #d0dcef; font-size: 13px; font-weight: 600; cursor: pointer; }
.apps-menu-group summary::-webkit-details-marker { display: none; }
.apps-menu-group .sidebar-link { width: 100%; font: inherit; font-size: 14px; text-align: left; cursor: pointer; border: 0; background: transparent; min-height: 44px; display: flex; flex-wrap: wrap; gap: 4px; }
.apps-menu-group .sidebar-link small { font-size: 12px; color: #cad6e7; width: 100%; }
.apps-menu-group .sidebar-link.active { background: #234974; color: white; border-radius: 8px; }
.apps-menu-group :is(summary,button):focus-visible { outline: 2px solid #7dd3fc; outline-offset: -2px; }
.apps-state { padding: 24px; border: 1px solid #d9e2ed; border-radius: 12px; background: #fff; margin-bottom: 16px; }
.apps-state p,.apps-page-heading p { font-size: 16px; line-height: 1.6; color: #475569; margin-top: 10px; }
.apps-state h2,.apps-page-heading h2 { font-size: 24px; color: #0a2342; }
.apps-page-heading { margin-bottom: 24px; }
.apps-shortcuts { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr)); gap: 14px; }
.apps-shortcuts > button { padding: 20px; min-height: 72px; display: flex; justify-content: space-between; gap: 16px; background: #fff; border: 1px solid #cbd5e1; border-radius: 10px; color: #0f2963; font: inherit; font-size: 16px; text-align: left; cursor: pointer; }
.apps-shortcuts > button:hover { border-color: #0f2963; background: #f0f6ff; }
.apps-shortcuts > button:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
.apps-profile { background: #fff; border: 1px solid #d9e2ed; border-radius: 12px; padding: 8px 24px; }
.apps-profile > div { padding: 16px 0; border-bottom: 1px solid #e2e8f0; display: grid; grid-template-columns: minmax(110px,1fr) 2fr; gap: 16px; font-size: 16px; }
.apps-profile > div:last-child { border: 0; }
.apps-profile dt { color: #475569; } .apps-profile dd { overflow-wrap: anywhere; }
@media (max-width: 900px) {
  #login-screen .login-intro { display: flex !important; flex: none; padding: 24px; gap: 16px; }
  .portal-intro-copy, .portal-support { display: none; }
  #login-screen .login-right-panel { width: 100% !important; height: auto !important; flex: 1 0 auto; padding: 20px !important; align-items: flex-start !important; }
  #login-screen .login-box { padding: 24px !important; }
}
@media (max-height: 760px) and (min-width: 901px) {
  #login-screen .login-right-panel { align-items: flex-start !important; }
}
