/* A reading layout for the existing policy. Legal text and revision are preserved. */
.policy-page { margin:0; padding:0 !important; background:var(--bg); }
.policy-page::before { display:none !important; }
.policy-page a { text-underline-offset:.2em; }
.policy-page .policy-topbar { width:min(1240px,calc(100% - 48px)); margin:auto; padding:24px 0; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--border); }
.policy-page .policy-brand { display:flex; gap:12px; align-items:center; color:var(--text-primary); text-decoration:none; font-size:1.04rem; font-weight:750; line-height:1.3; }
.policy-page .policy-brand-mark { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; color:#fff; background:var(--primary); font-size:.85rem; letter-spacing:.04em; }
.policy-page .policy-brand small { display:block; color:var(--text-muted); margin-top:3px; font-size:.73rem; font-weight:500; }
.policy-page .policy-topbar .theme-toggle { position:static; width:auto; margin:0; box-shadow:none; flex-shrink:0; }
.policy-page .policy-shell { width:min(1240px,calc(100% - 48px)); margin:auto; padding-bottom:64px; }
.policy-page .policy-back { display:inline-flex; align-items:center; gap:9px; margin:26px 0; color:var(--text-secondary); text-decoration:none; font-size:.88rem; font-weight:600; }
.policy-page .policy-back:hover { color:var(--link); }
.policy-page .policy-intro { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:48px; align-items:center; margin:14px 0 48px; padding:0; border:0; background:none; box-shadow:none; }
.policy-page .policy-intro > * { min-width:0; }
.policy-page .policy-kicker { color:var(--link); text-transform:uppercase; font-size:.75rem; letter-spacing:.11em; font-weight:800; margin:0 0 16px; }
.policy-page .policy-intro h1 { color:var(--text-primary); text-align:left; font-size:clamp(2rem,4.2vw,3.5rem); line-height:1.12; font-weight:750; letter-spacing:-.035em; margin:0; max-width:760px; text-shadow:none; }
.policy-page .policy-description { color:var(--text-secondary); font-size:1.05rem; line-height:1.7; max-width:690px; margin:22px 0 18px; }
.policy-page .policy-revision { color:var(--text-muted); font-size:.79rem; line-height:1.6; margin:0; }
.policy-page .policy-contact { padding:24px; border:1px solid var(--border); background:var(--surface); border-radius:20px; }
.policy-page .policy-contact-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:12px; color:var(--link); background:var(--surface-secondary); font-size:1.25rem; font-weight:700; margin-bottom:16px; }
.policy-page .policy-contact strong { display:block; color:var(--text-primary); font-size:1rem; }
.policy-page .policy-contact p { color:var(--text-secondary); font-size:.82rem; line-height:1.65; margin:8px 0 16px; }
.policy-page .policy-contact a { color:var(--link); font-size:.87rem; font-weight:700; overflow-wrap:anywhere; }
.policy-page .policy-layout { display:grid; grid-template-columns:270px minmax(0,1fr); gap:42px; align-items:start; }
.policy-page .policy-sidebar { position:sticky; top:24px; }
.policy-page .policy-index { border:1px solid var(--border); border-radius:18px; background:var(--surface); margin:0; padding:20px; box-shadow:none; }
.policy-page .policy-index summary { color:var(--text-primary); font-weight:750; font-size:.92rem; cursor:pointer; padding:0; margin:0; background:none; }
.policy-page .policy-index ol { margin:16px 0 0; padding:0; list-style:none; counter-reset:policy; display:grid; gap:4px; }
.policy-page .policy-index li { padding:0; margin:0; border:0; counter-increment:policy; }
.policy-page .policy-index a { display:grid; grid-template-columns:22px minmax(0,1fr); align-items:baseline; gap:6px; padding:7px 6px; border-radius:8px; color:var(--text-secondary); font-size:.77rem; line-height:1.45; text-decoration:none; }
.policy-page .policy-index a::before { content:counter(policy,decimal-leading-zero); color:var(--text-muted); font-size:.65rem; font-variant-numeric:tabular-nums; }
.policy-page .policy-index a:hover, .policy-page .policy-index a[aria-current="location"] { background:var(--surface-secondary); color:var(--link); }
.policy-page .policy-sidebar-note { color:var(--text-muted); font-size:.75rem; line-height:1.7; margin:18px 8px; }
.policy-page .policy-content { min-width:0; }
.policy-page .policy-section { border:1px solid var(--border); border-radius:20px; background:var(--surface); box-shadow:none; padding:30px 34px; margin:0 0 18px; scroll-margin-top:24px; overflow-wrap:anywhere; }
.policy-page .policy-section h2 { color:var(--text-primary); font-size:1.28rem; line-height:1.4; margin:0 0 20px; text-align:left; text-shadow:none; }
.policy-page .policy-section h3 { color:var(--text-primary); font-size:1rem; line-height:1.5; margin:26px 0 10px; }
.policy-page .policy-section p, .policy-page .policy-section li { color:var(--text-secondary); font-size:.9rem; line-height:1.85; }
.policy-page .policy-section p { margin:12px 0; }
.policy-page .policy-section ul, .policy-page .policy-section ol { padding-left:22px; }
.policy-page .policy-section li { margin:10px 0; padding-left:3px; }
.policy-page .policy-section li::marker { color:var(--link); }
.policy-page .policy-section b, .policy-page .policy-section strong { color:var(--text-primary); }
.policy-page .policy-section a { color:var(--link); }
.policy-page .policy-section .callout { border-left:3px solid var(--primary); background:var(--surface-secondary); color:var(--text-secondary); padding:16px 18px; border-radius:0 12px 12px 0; margin-top:20px; font-size:.85rem; line-height:1.75; }
.policy-page .policy-section .callout.warning { border-left-color:var(--warning); }
.policy-page .policy-section .badge, .policy-page .policy-section .pill { display:inline; background:var(--surface-secondary); color:var(--text-primary); padding:3px 7px; border:1px solid var(--border); border-radius:6px; font-size:.78rem; white-space:normal; line-height:2; box-shadow:none; }
.policy-page .policy-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:18px 0; }
.policy-page .policy-mini { padding:16px; background:var(--surface-secondary); border-radius:12px; border:1px solid var(--border); }
.policy-page .policy-mini strong { display:block; margin-bottom:8px; }
.policy-page .policy-mini p { margin:0; font-size:.82rem; }
.policy-page .mono { font-family:ui-monospace,monospace; font-size:.9em; }
.policy-page .policy-footer { border-top:1px solid var(--border); padding:24px 4px 0; display:flex; flex-wrap:wrap; gap:10px 24px; font-size:.82rem; }
.policy-page .policy-footer p { margin:0; width:100%; color:var(--text-muted); }
.policy-page .policy-footer a { color:var(--link); }
.policy-page .policy-footer a:last-child { margin-left:auto; }
.policy-page .policy-skip { position:fixed; top:-100px; left:16px; z-index:5000; padding:12px; background:var(--surface); color:var(--text-primary); border:2px solid var(--focus); border-radius:10px; }
.policy-page .policy-skip:focus { top:12px; }
@media (max-width:1000px) {
  .policy-page .policy-intro { grid-template-columns:minmax(0,1fr) 270px; gap:24px; }
  .policy-page .policy-layout { grid-template-columns:230px minmax(0,1fr); gap:20px; }
  .policy-page .policy-section { padding:24px; }
}
@media (max-width:800px) {
  .policy-page .policy-topbar, .policy-page .policy-shell { width:calc(100% - 32px); }
  .policy-page .policy-topbar { padding:18px 0; gap:12px; }
  .policy-page .policy-topbar .theme-toggle-text { display:none; }
  .policy-page .policy-topbar .theme-toggle { min-width:44px; padding:8px 12px; }
  .policy-page .policy-intro { grid-template-columns:1fr; margin-bottom:26px; gap:24px; }
  .policy-page .policy-intro h1 { font-size:clamp(1.4rem,6.6vw,1.75rem); line-height:1.2; overflow-wrap:anywhere; }
  .policy-page .policy-contact { padding:20px; }
  .policy-page .policy-contact-icon { display:none; }
  .policy-page .policy-layout { grid-template-columns:1fr; gap:20px; }
  .policy-page .policy-sidebar { position:static; }
  .policy-page .policy-sidebar-note { display:none; }
  .policy-page .policy-index { padding:18px; }
  .policy-page .policy-index a { font-size:.84rem; min-height:42px; }
  .policy-page .policy-section { padding:22px 20px; border-radius:16px; }
  .policy-page .policy-section h2 { font-size:1.2rem; }
  .policy-page .policy-grid { grid-template-columns:1fr; }
  .policy-page .policy-description { font-size:1rem; }
  .policy-page .policy-footer a:last-child { margin-left:0; }
}
@media print {
  .policy-page .policy-topbar, .policy-page .policy-back, .policy-page .policy-sidebar, .policy-page .policy-contact, .policy-page .policy-footer { display:none; }
  .policy-page .policy-shell { width:100%; }
  .policy-page .policy-layout, .policy-page .policy-intro { display:block; }
  .policy-page .policy-section { border:0; padding:10px 0; margin:0; }
  .policy-page .policy-section h2 { break-after:avoid; }
}
