/* Readable legal documents in the existing mobile shell. */
body[data-page^="policy-"] .category-nav { display: none; }
.policy-page { padding: 20px 24px 30px; }
.policy-back { display: inline-flex; align-items: center; gap: 4px; padding: 5px 0 15px; color: #85798d; font-size: 11px; }
.policy-back .icon { width: 12px; height: 12px; transform: rotate(180deg); }
.policy-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.policy-tabs a { padding: 13px 4px; margin-bottom: -1px; text-align: center; color: #928898; font-size: 12px; border-bottom: 2px solid transparent; }
.policy-tabs a[aria-current] { color: #77538c; border-bottom-color: #9066a1; font-weight: 700; }
.policy-heading { padding: 30px 0 22px; }
.policy-symbol { display: grid; place-items: center; width: 38px; height: 38px; margin-bottom: 15px; border: 1px solid #ece5f2; border-radius: 13px; background: #f9f5fc; color: #9e7eac; }
.policy-symbol .icon { width: 21px; height: 21px; }
.policy-heading h1 { color: #2c2438; font-size: 27px; line-height: 1.5; letter-spacing: -1px; }
.policy-heading > p { margin-top: 8px; color: #8b8193; font-size: 12px; line-height: 1.8; }
.policy-version { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; color: #9a8ca4; font-size: 10px; }
.policy-version > span { padding: 4px 9px; border-radius: 6px; background: #f6f2f8; }
.policy-intro { color: #665d71; font-size: 13px; line-height: 1.95; word-break: keep-all; overflow-wrap: anywhere; }
.policy-notice { margin-top: 22px; padding: 16px; border-radius: 12px; border: 1px solid #ece5f1; background: #faf7fc; color: #857390; font-size: 11px; line-height: 1.85; }
.policy-notice > strong { display: block; margin-bottom: 4px; color: #795d8c; font-size: 12px; }
.policy-toc { margin: 23px 0 8px; border-block: 1px solid var(--line); }
.policy-toc summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 0; list-style: none; font-size: 12px; font-weight: 600; cursor: pointer; }
.policy-toc summary::-webkit-details-marker { display: none; }
.policy-toc summary > span { display: inline-flex; align-items: center; gap: 8px; color: #a194aa; font-size: 10px; font-weight: 400; }
.policy-toc summary .icon { width: 13px; height: 13px; transform: rotate(90deg); }
.policy-toc[open] summary .icon { transform: rotate(-90deg); }
.policy-toc ol { display: grid; gap: 1px; margin: 0 0 16px; padding: 0; list-style: none; }
.policy-toc a { display: block; padding: 8px 10px; border-radius: 6px; color: #8a729a; font-size: 11px; line-height: 1.7; }
.policy-toc a:hover { background: #f8f4fb; }
.policy-toc summary:focus-visible { outline: 2px solid #8764c8; outline-offset: 2px; }
.policy-section { padding: 25px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 86px; }
.policy-section h2 { margin-bottom: 13px; color: #32273f; font-size: 15px; line-height: 1.7; letter-spacing: -.35px; word-break: keep-all; overflow-wrap: anywhere; }
.policy-section h3 { margin: 0 0 13px; color: #665176; font-size: 13px; line-height: 1.6; }
.policy-section p, .policy-section li, .policy-definition { color: #746a7d; font-size: 13px; line-height: 1.95; word-break: keep-all; overflow-wrap: anywhere; }
.policy-section p + p, .policy-section ul + p, .policy-section ol + p, .policy-definition + p { margin-top: 13px; }
.policy-section ul, .policy-section ol { margin: 0; padding-left: 19px; }
.policy-section li + li { margin-top: 8px; }
.policy-section a { color: #85599e; text-decoration: underline; text-underline-offset: 3px; }
.policy-section strong { font-weight: 650; color: #594466; }
.policy-data-card { margin-bottom: 16px; padding: 17px 15px; border: 1px solid #eee9f3; border-radius: 12px; background: #fcfafd; }
.policy-definition { display: grid; gap: 9px; margin: 0; }
.policy-definition > div { display: grid; grid-template-columns: 75px minmax(0,1fr); gap: 10px; }
.policy-definition dt { color: #8b7a96; font-size: 11px; }
.policy-definition dd { margin: 0; min-width: 0; font-size: 12px; }
.policy-data-card .policy-definition > div { grid-template-columns: 51px minmax(0,1fr); }
.policy-contact { margin-top: 28px; padding: 21px 16px; text-align: center; border-radius: 13px; background: #f7f3fa; }
.policy-contact > strong { color: #756083; font-size: 12px; }
.policy-contact > p { margin-top: 7px; font-size: 11px; color: #9b8ba4; }
.policy-contact > a { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 5px; font-size: 12px; color: #8b699e; }
.policy-contact .icon { width: 14px; height: 14px; }
.policy-top { display: block; margin-top: 15px; padding: 12px; text-align: center; color: #a293ab; font-size: 11px; }
@media (max-width: 360px) {
  .policy-page { padding-inline: 19px; }
  .policy-heading h1 { font-size: 25px; }
  .policy-tabs a { font-size: 11px; }
  .policy-data-card { padding: 15px 12px; }
}

.policy-update { margin: 17px 0; color: #9985a5; font-size: 10px; line-height: 1.9; }
.policy-update a { color: #886598; text-decoration: underline; text-underline-offset: 3px; }
