[data-app-design-v2] .appV2LegalPage.appV2LegalPage { box-sizing: border-box; background: var(--app-v2-paper); color: var(--app-v2-ink); font-family: var(--app-v2-font); min-height: 0; padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px)); overflow-wrap: anywhere; }
[data-app-design-v2] .appV2LegalTitle.appV2LegalTitle { font-family: var(--app-v2-font-display); color: var(--app-v2-ink); line-height: 1.5; overflow-wrap: anywhere; }
[data-app-design-v2] .appV2LegalText.appV2LegalText { font-family: var(--app-v2-font); line-height: 1.75; overflow-wrap: anywhere; color: var(--app-v2-ink); }
[data-app-design-v2] .appV2LegalContent.appV2LegalContent { background: var(--app-v2-surface); font-family: var(--app-v2-font); color: var(--app-v2-ink); border-color: var(--app-v2-rule); }
[data-app-design-v2] .appV2LegalLabel.appV2LegalLabel { font: 500 15px/1.6 var(--app-v2-font); color: var(--app-v2-ink); min-height: 44px; }
[data-app-design-v2] .appV2LegalInput.appV2LegalInput { box-sizing: border-box; min-width: 0; max-width: 100%; min-height: 48px; border: 1px solid var(--app-v2-rule); border-radius: 16px; padding: 12px 14px; background: var(--app-v2-surface); color: var(--app-v2-ink); font: 400 16px/1.6 var(--app-v2-font); }
[data-app-design-v2] .appV2LegalControl.appV2LegalControl { accent-color: var(--app-v2-plum); min-width: 44px; min-height: 44px; }
[data-app-design-v2] .appV2LegalButton.appV2LegalButton { box-sizing: border-box; min-width: 44px; min-height: 44px; border-radius: 28px; border-color: var(--app-v2-rule); padding: 12px 18px; background: var(--app-v2-gradient); color: var(--app-v2-on-night); font: 600 15px/1.5 var(--app-v2-font); overflow-wrap: anywhere; }
[data-app-design-v2] .appV2LegalLink.appV2LegalLink { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; color: var(--app-v2-plum); font-family: var(--app-v2-font); text-underline-offset: 3px; overflow-wrap: anywhere; }
[data-app-design-v2] .appV2LegalButton:focus-visible { outline: var(--app-v2-focus); outline-offset: 3px; }
[data-app-design-v2] .appV2LegalLink:focus-visible { outline: var(--app-v2-focus); outline-offset: 3px; }
[data-app-design-v2] .appV2LegalInput:focus-visible { outline: var(--app-v2-focus); outline-offset: 3px; }
[data-app-design-v2] .appV2LegalControl:focus-visible { outline: var(--app-v2-focus); outline-offset: 3px; }
[data-app-design-v2] .appV2LegalButton:disabled, [data-app-design-v2] .appV2LegalButton[aria-disabled="true"] { opacity: 0.45; cursor: default; }
[data-app-design-v2] .appV2LegalText[role="alert"] { color: var(--app-v2-error); }

[data-app-design-v2] .appV2LegalSurface.appV2LegalSurface { background: var(--app-v2-surface); color: var(--app-v2-ink); border-color: var(--app-v2-rule); font-family: var(--app-v2-font); }
[data-app-design-v2] .appV2LegalInline.appV2LegalInline { font-family: var(--app-v2-font); color: var(--app-v2-ink); }


[data-app-design-v2] .appV2LegalButton .appV2LegalInline, [data-app-design-v2] .appV2LegalLink .appV2LegalInline { color: inherit; }

/* P: the published document remains the sole source of every label and cell. */
[data-app-design-v2] .appV2LegalPage.appV2LegalPage { padding: 1.25rem 1rem calc(10rem + env(safe-area-inset-bottom, 0px)); }
[data-app-design-v2] .appV2LegalShell.appV2LegalShell,
[data-app-design-v2] .appV2LegalHeader.appV2LegalHeader,
[data-app-design-v2] .appV2LegalNav.appV2LegalNav,
[data-app-design-v2] .appV2LegalArticle.appV2LegalArticle { min-width: 0; background: transparent; }
[data-app-design-v2] .appV2LegalHeader .appV2LegalTitle { font-size: clamp(1.625rem, 8vw, 2rem); }
[data-app-design-v2] .appV2LegalHeader.appV2LegalHeader { padding: 1rem 0; border: 0; border-radius: 0; }
[data-app-design-v2] .appV2LegalNav.appV2LegalNav { flex-wrap: wrap; gap: .5rem; }
[data-app-design-v2] .appV2LegalNav .appV2LegalLink { min-width: 0; white-space: normal; font-size: .9375rem; }
[data-app-design-v2] .appV2LegalSection.appV2LegalSection { padding: 1rem 0; border: 0; border-bottom: 1px solid var(--app-v2-rule); border-radius: 0; background: transparent; }
[data-app-design-v2] .appV2LegalSection .appV2LegalTitle { font: 700 1.0625rem/1.6 var(--app-v2-font); }
[data-app-design-v2] .appV2LegalText.appV2LegalText,
[data-app-design-v2] .appV2LegalInline.appV2LegalInline { font-size: .9375rem; line-height: 1.85; }
[data-app-design-v2] .appV2LegalStatus.appV2LegalStatus { padding: 1rem; border-radius: 1.125rem; }
[data-app-design-v2] .appV2LegalList { font-size: .9375rem; padding-left: 1.25rem; }
[data-app-design-v2] .appV2LegalTableCards { display: grid; min-width: 0; gap: .75rem; margin-block: 1rem; }
[data-app-design-v2] .appV2LegalTableCard { margin: 0; padding: .875rem; border: 1px solid var(--app-v2-rule); border-radius: 1rem; background: var(--app-v2-surface); }
[data-app-design-v2] .appV2LegalTableField { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr)); gap: .625rem; padding-block: .5rem; }
[data-app-design-v2] .appV2LegalTableField + .appV2LegalTableField { border-top: 1px solid var(--app-v2-rule); }
[data-app-design-v2] .appV2LegalTableLabel { min-width: 0; color: var(--app-v2-muted); font: 600 .875rem/1.75 var(--app-v2-font); overflow-wrap: anywhere; }
[data-app-design-v2] .appV2LegalTableValue { min-width: 0; margin: 0; color: var(--app-v2-ink); font: 400 .9375rem/1.85 var(--app-v2-font); overflow-wrap: anywhere; }
[data-app-design-v2] .appV2LegalBusiness.appV2LegalBusiness { min-width: 0; padding: 1rem; border-radius: 1.125rem; }
[data-app-design-v2] .appV2LegalReturn.appV2LegalReturn { left: 50%; right: auto; transform: translateX(-50%); width: min(100%, 480px); max-height: 60vh; overflow-y: auto; border: 1px solid var(--app-v2-rule); border-radius: 1.5rem 1.5rem 0 0; }
[data-app-design-v2] .appV2LegalReturn .appV2LegalLink { padding: .75rem 1rem; background: var(--app-v2-panel); font-size: .9375rem; }

/* PX-B: S27-S29 reading surface and persistent top return, same document. */
[data-app-design-v2] .appV2LegalPage.appV2LegalPage { padding: 0 20px 40px; }
[data-app-design-v2] .appV2LegalShell { display: flex; flex-direction: column; gap: 0; }
[data-app-design-v2] .appV2LegalNav.appV2LegalNav { order: 3; padding-top: 24px; border-top: 1px solid var(--app-v2-rule); }
[data-app-design-v2] .appV2LegalHeader.appV2LegalHeader { padding-top: 26px; }
[data-app-design-v2] .appV2LegalHeader .appV2LegalTitle { margin-top: 8px; font-size: 1.75rem; line-height: 1.4; }
[data-app-design-v2] .appV2LegalReturn.appV2LegalReturn { position: sticky; top: 0; bottom: auto; left: auto; right: auto; transform: none; width: auto; margin-inline: -8px; padding: 6px 0; border: 0; border-radius: 0; background: var(--app-v2-paper); box-shadow: none; }
[data-app-design-v2] .appV2LegalReturn .appV2LegalLink, [data-app-design-v2] .appV2LegalReturn .appV2LegalButton { display: inline-flex; align-items: center; justify-content: flex-start; width: auto; gap: 6px; min-height: 44px; padding: 8px 14px 8px 8px; background: var(--app-v2-panel); color: var(--app-v2-ink); border-radius: 22px; font: 600 .875rem/1.5 var(--app-v2-font); }
[data-app-design-v2] .appV2LegalBackIcon { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; }
[data-app-design-v2] .appV2LegalBusiness.appV2LegalBusiness { background: transparent; padding: 24px 0; border-top: 1px solid var(--app-v2-rule); border-radius: 0; }

[data-app-design-v2] .appV2LegalPage.appV2LegalPage { display: flex; flex-direction: column; }
[data-app-design-v2] .appV2LegalReturn.appV2LegalReturn { order: -1; }

[data-app-design-v2] .appV2LegalToc { display: grid; padding: 14px 16px; border-radius: 18px; background: var(--app-v2-panel); }
[data-app-design-v2] .appV2LegalToc .appV2LegalLink { font-size: .875rem; line-height: 1.5; }
[data-app-design-v2] .appV2LegalSection .appV2LegalTitle { scroll-margin-top: 80px; }

/* PX-B2: S27-S29 .ver/.toc/.ah/.lph/.ltab typography. Full text is retained. */
[data-app-design-v2] .appV2LegalHeader .appV2LegalTitle { font-size: 28px; line-height: 1.28; }
[data-app-design-v2] .appV2LegalText.appV2LegalText,
[data-app-design-v2] .appV2LegalInline.appV2LegalInline,
[data-app-design-v2] .appV2LegalList { font-size: 13px; line-height: 1.5; }
[data-app-design-v2] .appV2LegalSection.appV2LegalSection { padding: 22px 0 8px; }
[data-app-design-v2] .appV2LegalSection .appV2LegalTitle { font: 700 16px/1.4 var(--app-v2-font); margin-bottom: 8px; }
[data-app-design-v2] .appV2LegalToc { padding: 12px 16px; }
[data-app-design-v2] .appV2LegalToc .appV2LegalLink { font-size: 13.5px; line-height: 1.5; }
[data-app-design-v2] .appV2LegalNav .appV2LegalLink { font-size: 13px; line-height: 1.5; }
[data-app-design-v2] .appV2LegalTableCard { padding: 12px 14px; }
[data-app-design-v2] .appV2LegalTableLabel { font-size: 13px; line-height: 1.4; }
[data-app-design-v2] .appV2LegalTableValue { font-size: 13px; line-height: 1.5; }
