/* Scoped to the preview client. Admin and production do not load this file. */
.client-portal { max-width:1200px; font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:15px; line-height:1.55; }
.client-portal [hidden] { display:none !important; }
.client-portal h1,.client-portal h2,.client-portal h3 { font-family:Georgia,serif; font-weight:400; }
.client-portal h1 { font-size:30px; margin:0; }
.client-portal h2 { font-size:27px; margin:0 0 24px; }
.client-portal h3 { font-size:21px; margin:24px 0 16px; }
.client-portal h4 { font-size:16px; margin:24px 0 8px; }
.client-portal #accountMessage:not(:empty) { display:block; margin:16px 0; padding:12px 0; border-bottom:1px solid #cbd5ce; }
.client-portal #signInSection { max-width:480px; margin:24px auto 48px; }
.client-workspace { display:grid; grid-template-columns:200px minmax(0,1fr); gap:40px; margin-top:28px; }
.client-workspace[hidden] { display:none; }
.client-portal .client-member { grid-column:1 / -1; margin:0; padding-bottom:16px; border-bottom:1px solid #cbd5ce; font-size:14px; }
.client-portal .client-member p { margin:0; min-width:0; }
.client-portal .client-member #userLogout { margin-left:auto; }
.client-portal .portal-tabs { display:flex; flex-direction:column; align-self:start; gap:8px; border:0; margin:0; padding:0; position:sticky; top:24px; overflow:visible; }
.client-portal .portal-tabs button { display:flex; align-items:center; gap:12px; background:transparent; font:inherit; white-space:normal; }
.client-portal .portal-tabs button[aria-selected=true] { box-shadow:inset 3px 0 #36523f; background:#e4ece5; }
.client-content { min-width:0; }
.client-portal .account-section { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; margin:0; }
.client-portal .account-header { gap:16px; flex-wrap:wrap; }
.client-portal .account-header h2 { margin-bottom:0; }
.client-portal .account-list { margin:20px 0 0; }
.client-portal .account-list li { list-style:none; border-bottom:1px solid #d9e0db; }
.client-portal .ui-record strong { font-family:inherit; font-size:16px; font-weight:500; }
.client-portal a.ui-record:hover { color:#42685b; text-decoration:underline; }
.client-portal .conversation-modes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:640px; border-bottom:1px solid #bac8be; }
.client-portal .conversation-modes button { min-height:52px; display:flex; gap:8px; align-items:center; justify-content:center; background:transparent; color:#53625a; border:0; border-bottom:3px solid transparent; padding:10px 8px; font:inherit; cursor:pointer; }
.client-portal .conversation-modes [aria-pressed=true] { color:#202f2e; border-bottom-color:#42685b; font-weight:600; }
.client-portal .conversation-modes button { flex-wrap:wrap; font-size:14px; overflow-wrap:normal; }
.client-portal .client-access-note { color:#53625a; font-size:14px; max-width:640px; margin:20px 0; }
.client-portal .conversation-actions { margin:16px 0 24px; }
.client-portal .client-empty { padding:24px 0; color:#53625a; }
.client-portal .profile-section { border-top:1px solid #cbd5ce; padding:24px 0; margin-top:24px; }
.client-portal .profile-section > h3:first-child { margin-top:0; }
.client-portal .profile-section summary { min-height:44px; cursor:pointer; font-size:16px; }
.client-portal .profile-section[open] summary { margin-bottom:16px; }
.client-portal .portal-pager { margin-top:20px; }
.client-portal .portal-pager[hidden] { display:none; }
.client-portal #testResult:empty,.client-portal #testScores:empty { display:none; }
.client-portal .password-field { display:flex; position:relative; }
.client-portal .password-field input { width:100%; padding-right:52px; }
.client-portal .password-toggle { position:absolute; right:1px; top:1px; width:44px; height:42px; display:grid; place-items:center; background:transparent; color:#36523f; border:0; cursor:pointer; }
@media(max-width:820px) {
    .client-portal { padding:24px 18px; }
    .client-workspace { grid-template-columns:minmax(0,1fr); gap:24px; margin-top:20px; }
    .client-portal .portal-tabs { position:static; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.65fr) minmax(0,1fr); gap:0; border-bottom:1px solid #cbd5ce; }
    .client-portal .portal-tabs button { flex-direction:column; justify-content:flex-start; gap:6px; padding:10px 2px; font-size:12px; line-height:1.35; min-width:0; min-height:78px; text-align:center; overflow-wrap:anywhere; }
    .client-portal .portal-tabs button[aria-selected=true] { box-shadow:inset 0 -3px #36523f; }
    .client-portal .account-header { align-items:flex-start; }
    .client-portal .account-header > .btn { width:100%; }
    .client-portal .client-member { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; }
    .client-portal .client-member #memberEmail { grid-column:1; overflow-wrap:anywhere; }
    .client-portal .client-member #identityBadge { grid-column:1; justify-self:start; }
    .client-portal .client-member #userLogout { grid-column:2; grid-row:1 / 3; width:auto; }
    .client-portal .conversation-actions > .btn { flex:1 1 100%; }
    .client-portal h1 { font-size:27px; }
    .client-portal h2 { font-size:24px; }
}
@media(max-width:360px) {
    .preview-ui:has(.client-portal) .ui-brand strong { font-size:18px; }
    .preview-ui:has(.client-portal) .ui-header-actions { gap:6px; }
    .preview-ui:has(.client-portal) .ui-languages a { min-width:26px; }
}
