/* Scoped to public/account pages; existing product theme remains intact. */
body.login-body { --text-muted:#46564d; --text-tertiary:#46564d; --text-secondary:#405047; }
[data-theme="dark"] body.login-body, body.login-body[data-theme="dark"] { --text-muted:#c1cdc4; --text-tertiary:#c1cdc4; --text-secondary:#c1cdc4; }
.login-body .login-footer,.login-body .field-hint,.login-body .login-brand-subtitle,.login-body .login-section-title,.login-body .password-strength-text,.login-body .pw-requirements,.login-body .login-release-info,.login-body .login-agree { color:var(--text-muted); opacity:1; }
.login-body .login-footer {font-size:12px;line-height:1.7}
.public-links {display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;margin:16px 0;font-size:13px;line-height:1.7}
.public-links a,.login-body .login-agree a {color:var(--text);text-decoration:underline;text-underline-offset:3px}
.public-summary {font-size:13px;line-height:1.7;margin:0 0 20px;color:var(--text-muted)}
.public-summary strong {display:block;font-size:15px;color:var(--text);margin-bottom:4px}
.auth-inline-error {color:var(--danger-text,#9b322d);font-size:13px;line-height:1.6;margin:6px 0}
.login-body input[aria-invalid="true"] {border-color:var(--danger,#a94337)}
.login-body :focus-visible {outline:2px solid var(--text);outline-offset:3px}
.release-loading {display:inline-block;min-width:5em;min-height:1.25em;border-radius:4px;background:var(--border);vertical-align:middle}
.legal-state {font-size:13px;line-height:1.6;margin:10px 0;color:var(--text-muted)}
.public-document {max-width:900px;margin:auto;padding:24px;background:var(--bg);color:var(--text);font:16px/1.8 system-ui,sans-serif}
.public-document header {display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.public-document a {color:var(--text);text-decoration:underline;text-underline-offset:4px}
.public-document main {padding:32px 0}
.public-document h1 {font-size:clamp(26px,5vw,38px);line-height:1.3;margin:16px 0}
.public-document h2 {font-size:20px;margin:24px 0 8px}
.public-document p {overflow-wrap:anywhere}
.public-document .draft-notice {border:1px solid currentColor;border-radius:8px;padding:10px 16px}
.public-document nav {display:flex;gap:12px 20px;flex-wrap:wrap;border-top:1px solid var(--border);padding:20px 0}
.clinical-use-notice {font-size:13px;line-height:1.7;color:var(--text);padding:10px 0}
@media(max-width:480px){.public-document{padding:20px}.login-body .login-container{min-width:0}.public-links{gap:8px 12px}}
body.login-body .login-card {background:var(--surface-card)}
body.login-body .login-submit {background:#2f6156;color:#fff}
[data-theme="dark"] body.login-body .login-submit {background:#8cc2af;color:#14261f}
body.login-body .login-release-info {font-size:12px;line-height:1.6}
body.login-body .pw-requirements li {color:var(--text-muted)}
body.login-body .pw-requirements li.pass {color:var(--text)}
body.login-body input::placeholder {color:var(--text-muted);opacity:1}

/* Shared reading rhythm for the three legal documents and their dialogs. */
body.policy-open {overflow:hidden}
.policy-dialog {position:fixed;inset:0;margin:auto;box-sizing:border-box;width:min(760px,calc(100% - 40px));max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--border);border-radius:20px;background:var(--surface-card,var(--bg));color:var(--text);box-shadow:0 24px 80px #0006;overflow:hidden}
.policy-dialog::backdrop {background:rgba(0,0,0,.65)}
.policy-dialog[open] {display:flex;flex-direction:column}
.policy-dialog header {display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 32px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface-card,var(--bg))}
.policy-dialog header h2 {font-size:1.5rem;line-height:1.5;margin:0;min-width:0;overflow-wrap:anywhere}
.policy-dialog button {font:inherit;cursor:pointer;min-height:44px;min-width:44px;padding:8px 14px;border:1px solid var(--border);border-radius:12px;color:var(--text);background:var(--bg);flex-shrink:0}
.policy-content {min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:28px 32px 36px;scrollbar-gutter:stable;overflow-wrap:anywhere}
.policy-content,.policy-reading {font-size:1rem;line-height:1.9}
.public-document {box-sizing:border-box;max-width:760px}
.policy-reading {overflow-wrap:anywhere}
.policy-content .policy-intro,.policy-reading .policy-intro {font-size:1rem;line-height:1.85;margin:0 0 28px;color:var(--text)}
.policy-sections {counter-reset:policy-section}
.policy-content .policy-section:first-child {border-top:0;padding-top:0}
.policy-section {counter-increment:policy-section;border-top:1px solid var(--border);padding:28px 0}
.policy-content .policy-section h2,.policy-reading .policy-section h2 {display:flex;align-items:baseline;gap:12px;font-size:1.125rem;font-weight:650;line-height:1.6;margin:0 0 18px}
.policy-section h2::before {content:counter(policy-section,decimal-leading-zero);font-size:.75rem;font-weight:600;letter-spacing:.04em;flex:0 0 24px;color:var(--text-muted)}
.policy-content .policy-section p,.policy-reading .policy-section p {margin:0 0 16px}
.policy-section ul {margin:0;padding-left:24px;list-style:disc}
.policy-section li {padding-left:4px;margin:16px 0;line-height:1.9}
.policy-section li::marker {color:var(--text-muted);font-size:.8em}
.policy-section p:last-child,.policy-section li:last-child {margin-bottom:0}
.policy-section.policy-contact {margin-top:8px;padding:24px;border:1px solid var(--border);border-left:3px solid #578c7e;border-radius:16px;background:var(--bg)}
.policy-contact h2::before {display:none}
.policy-contact ul {list-style:none;padding:0}
.policy-contact li {padding:0}
.policy-content .policy-contact > p,.policy-reading .policy-contact > p {font-weight:600}
.policy-contact ul:has(li:nth-child(4)) li:last-child {border-top:1px solid var(--border);padding-top:16px;margin-top:20px;font-size:.9375rem;line-height:1.85}
.policy-meta {display:flex;gap:8px 16px;flex-wrap:wrap}
.policy-meta p {font-size:.8125rem}
.policy-meta .document-version {color:var(--text-muted)}
.policy-content .draft-notice,.policy-reading .draft-notice {padding:10px 14px;border-radius:8px;background:var(--bg);border:1px solid var(--border)}
@media(max-width:480px){
 .policy-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);border-radius:16px}
 .policy-dialog header{padding:18px 20px;gap:12px}
 .policy-dialog header h2{font-size:1.25rem}
 .policy-content{padding:24px 20px 28px;scrollbar-gutter:auto}
 .policy-section{padding:24px 0}
 .policy-section.policy-contact{padding:20px 18px}
 .policy-meta{flex-direction:column}
}
/* Numbered cards are limited to legal documents, including their text-only dialogs. */
.policy-cards {display:grid;gap:20px;margin-top:28px}
.policy-content .policy-cards {margin-top:0}
:is(.policy-reading,.policy-content) .policy-cards .policy-section {
 padding:28px;border:1px solid var(--border);border-radius:16px;
 background:var(--surface-card);min-width:0;
}
:is(.policy-reading,.policy-content) .policy-cards h2 {
 display:flex;align-items:flex-start;gap:14px;margin:0 0 16px;
 font-size:1.25rem;font-weight:700;line-height:1.5;
}
.policy-cards h2::before {content:none;display:none}
.policy-cards .policy-number {
 display:flex;align-items:center;justify-content:center;flex:0 0 2.5rem;
 min-height:2.5rem;border-radius:12px;background:var(--brand-jade-strong);
 color:var(--accent-contrast);font-size:1.125rem;font-weight:750;line-height:1.4;
 font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap;
}
.policy-cards .policy-heading-text {min-width:0;padding-top:5px}
.policy-cards .policy-section-body {margin-left:calc(2.5rem + 14px);font-size:1rem;line-height:1.85}
:is(.policy-reading,.policy-content) .policy-cards p {margin:0 0 14px}
.policy-cards ul {padding-left:1.25em;margin:0;list-style:disc}
.policy-cards li {padding-left:4px;margin:12px 0;line-height:1.85}
.policy-cards li::marker {color:var(--brand-jade);font-size:1em}
.policy-cards .policy-section-body > :last-child,.policy-cards li:last-child {margin-bottom:0}
:is(.policy-reading,.policy-content) .policy-cards .policy-contact {
 margin-top:0;background:color-mix(in srgb,var(--brand-jade) 7%,var(--surface-card));
 box-shadow:inset 3px 0 0 var(--brand-jade);
}
.policy-cards .policy-contact .policy-section-body > p {font-weight:650}
.policy-cards .policy-contact .policy-section-body {margin-left:0}
.policy-cards .policy-contact .policy-heading-text {padding-top:0}
.policy-cards .policy-contact ul {list-style:none;padding:0}
.policy-cards .policy-contact li {padding:0;margin:8px 0}
.policy-cards .policy-contact ul:has(li:nth-child(4)) li:last-child {
 border-top:1px solid var(--border);padding-top:16px;margin-top:16px;font-size:1rem;line-height:1.85;
}
@media(max-width:600px){
 .policy-cards {gap:16px;margin-top:24px}
 :is(.policy-reading,.policy-content) .policy-cards .policy-section {padding:20px}
 :is(.policy-reading,.policy-content) .policy-cards h2 {font-size:1.125rem;gap:12px}
 .policy-cards .policy-number {flex-basis:2.25rem;min-height:2.25rem;border-radius:10px}
 .policy-cards .policy-heading-text {padding-top:4px}
 .policy-cards .policy-section-body {margin-left:0}
}
/* Registration already links policies beside its consent checkbox. */
body[data-public-auth="login"]:has(.login-tab[data-tab="register"].active) .public-links {display:none}
