:root { color-scheme: light dark; --max: 980px; --gap: 1rem; --border: #d0d7de; --muted: #57606a; }
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.58; }
a { text-underline-offset: 0.18em; }
.policy-container { max-width: var(--max); margin: 0 auto; padding: 2rem 1rem 4rem; }
.policy-container h1 { line-height: 1.15; font-size: clamp(2rem, 5vw, 3.25rem); }
.policy-container h2 { margin-top: 2rem; padding-top: .5rem; border-top: 1px solid var(--border); }
.policy-container table { width: 100%; border-collapse: collapse; margin: 1rem 0; display: block; overflow-x: auto; }
.policy-container th, .policy-container td { border: 1px solid var(--border); padding: .55rem; vertical-align: top; }
.policy-container th { text-align: left; }
.policy-note { border-left: 4px solid var(--border); padding: .8rem 1rem; background: rgba(127,127,127,.08); }
.policy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--gap); margin: 1rem 0; }
.policy-card { border: 1px solid var(--border); border-radius: .75rem; padding: 1rem; }
.legal-footer { display: flex; flex-wrap: wrap; gap: .75rem; border-top: 1px solid var(--border); padding: 1rem; margin-top: 2rem; }
.cookie-banner { position: fixed; inset: auto 1rem 1rem 1rem; max-width: 860px; margin: auto; border: 1px solid var(--border); border-radius: .75rem; padding: 1rem; background: Canvas; box-shadow: 0 8px 30px rgba(0,0,0,.16); z-index: 999; }
.cookie-banner button, form button { margin: .25rem; padding: .65rem .9rem; border-radius: .5rem; border: 1px solid var(--border); cursor: pointer; }
form label { display: block; margin: 1rem 0; font-weight: 600; }
form input, form select, form textarea { width: 100%; margin-top: .35rem; padding: .65rem; border: 1px solid var(--border); border-radius: .4rem; font: inherit; }
form input[type="checkbox"] { width: auto; }
.privacy-modal { position: fixed; inset: 0; background: rgba(0,0,0,.45); display: grid; place-items: center; padding: 1rem; z-index: 1000; }
.privacy-modal__panel { max-width: 520px; width: 100%; border-radius: .75rem; background: Canvas; color: CanvasText; padding: 1.25rem; border: 1px solid var(--border); }
@media print { .cookie-banner, .legal-footer { display: none; } .policy-container { max-width: 100%; } }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.policy-warning { border-left: 4px solid #999; padding: .8rem 1rem; background: rgba(127,127,127,.10); }
code { overflow-wrap: anywhere; }
