/* Shared readable policy wrapper. Policy wording remains in its existing JSP/JSPF source. */
body.fitz-member-app.fitz-policy-page { padding: 0; color: var(--ds-text); background: var(--ds-bg); word-break: keep-all; }
.fitz-member-app.fitz-policy-page .policy-content {
  box-sizing: border-box;
  width: calc(100% - 32px);
  max-width: 820px;
  min-width: 0;
  margin: 24px auto;
  padding: 20px 16px;
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-card-radius);
  background: var(--ds-surface);
  overflow-wrap: anywhere;
}
.policy-content h1 { margin: 0 0 20px; color: var(--ds-text); }
.policy-content h2 { margin: 28px 0 8px; color: var(--ds-text); }
.policy-content h3 { margin: 20px 0 8px; color: var(--ds-text); }
.policy-content p,.policy-content li,.policy-content table { color: var(--ds-text); font-size: var(--ds-body); line-height: 1.75; }
.policy-content p { margin: 8px 0; }
.policy-content ol,.policy-content ul { margin: 8px 0 0; padding-left: 22px; }
.policy-content li { margin: 6px 0; }
.policy-content li > ul { margin-top: 6px; }
.policy-content a { color: var(--ds-primary); text-underline-offset: 3px; }
.policy-content .terms-change-date { margin: 0 0 4px; color: var(--ds-muted); }
.policy-content .terms-intro { margin: 0 0 24px; }
.policy-content .terms-clause + .terms-clause { margin-top: 24px; padding-top: 4px; border-top: 1px solid var(--ds-border); }
.policy-content .terms-clause + .terms-clause h2 { margin-top: 20px; }
.policy-content .terms-notice { color: var(--ds-muted); }
.policy-content .table-wrap { width: 100%; max-width: 100%; margin: 12px 0; overflow-x: auto; overscroll-behavior-inline: contain; }
.policy-content table { width: 100%; min-width: 360px; border-collapse: collapse; }
.policy-content th,.policy-content td { padding: 12px; border: 1px solid var(--ds-border); text-align: left; vertical-align: top; }
.policy-content th { background: var(--ds-soft); font-weight: 600; }
.policy-content .products { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; margin-top: 16px; }
.policy-content .product { min-width: 0; padding: 16px; border: 1px solid var(--ds-border); border-radius: var(--ds-radius); background: var(--ds-surface); }
.policy-content .product strong { display: block; }
.policy-content .price { margin-top: 8px; color: var(--ds-primary); font-size: var(--ds-section); font-weight: 700; }
.policy-content .notice { padding: 16px; border-radius: var(--ds-radius); background: var(--ds-soft); }
.policy-content .links { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 20px; }
.policy-content .links a { display: inline-flex; align-items: center; min-height: var(--ds-control); font-size: var(--ds-caption); font-weight: 600; }
.policy-content .pay-link { display: flex; width: 100%; margin-top: 16px; }
.policy-version-nav { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:24px; }
.policy-version-nav a,.policy-back-link { display:inline-flex; align-items:center; min-height:44px; font-weight:700; }
.policy-consent-history > h1 { margin-top:10px; }
.policy-consent-card { margin-top:12px; padding:16px; border:1px solid var(--ds-border); border-radius:16px; background:var(--ds-surface); }
.policy-consent-card header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.policy-consent-card header h2 { margin:0; font-size:18px; }
.policy-consent-status { flex:0 0 auto; padding:5px 9px; border-radius:999px; background:var(--ds-soft); color:var(--ds-primary); font-size:12px; font-weight:800; }
.policy-consent-card dl { margin:14px 0 0; }
.policy-consent-card dl div { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; min-height:44px; padding:11px 0; border-top:1px solid var(--ds-border); }
.policy-consent-card dt { color:var(--ds-muted); font-size:13px; }
.policy-consent-card dd { margin:0; color:var(--ds-text); font-size:13px; font-weight:750; text-align:right; overflow-wrap:anywhere; }
.policy-consent-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
.policy-consent-actions a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:0 12px; border:1px solid var(--ds-border); border-radius:12px; text-align:center; text-decoration:none; font-size:13px; font-weight:800; }
.policy-consent-actions a:first-child { border-color:var(--ds-primary); background:var(--ds-primary); color:#fff; }
@media (min-width: 640px) {
  .fitz-member-app.fitz-policy-page .policy-content { padding: 32px; }
  .policy-content .products { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .policy-content .pay-link { width: max-content; max-width: 100%; }
}
