.analytics-consent[hidden] { display: none !important; }
.analytics-consent { position: fixed; z-index: 10000; bottom: 16px; left: 16px; right: 16px; max-width: 650px; margin-left: auto; padding: 24px; max-height: calc(100dvh - 32px); overflow: auto; box-sizing: border-box; color: var(--forest); background: var(--card, var(--cream)); border: 1px solid var(--brass); box-shadow: var(--retro-shadow, var(--shadow)); font: 16px/1.5 var(--sans); }
.analytics-consent h2 { font: 600 26px/1.25 var(--serif); letter-spacing: normal; margin: 0 0 12px; color: inherit; max-width: none; width: auto; }
.analytics-consent p { font: inherit; margin: 0 0 12px; color: inherit; }
.analytics-consent a { color: inherit; text-decoration: underline; }
.analytics-consent-actions { display: flex; gap: 12px; margin-top: 18px; }
.analytics-consent-actions button { flex: 1; min-height: 48px; padding: 12px; border: 1px solid currentColor; border-radius: 3px; background: var(--forest); color: var(--card, var(--cream)); font: 600 15px/1.4 var(--sans); cursor: pointer; }
.analytics-settings { margin: 16px; min-height: 44px; padding: 8px 12px; border: 1px solid currentColor; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.analytics-consent button:focus-visible, .analytics-settings:focus-visible { outline: 3px solid var(--acc, var(--orange)); outline-offset: 3px; }
.analytics-consent-error:empty { display: none; }
.analytics-consent-error { margin-top: 12px !important; }
@media (max-width: 480px) { .analytics-consent { padding: 18px; } .analytics-consent-actions { flex-direction: column; } }
@media print { .analytics-consent, .analytics-settings { display: none !important; } }
.analytics-choice { display: flex; gap: 12px; align-items: flex-start; margin: 16px 0 8px; font: inherit; cursor: pointer; }
.analytics-choice input { flex: 0 0 20px; width: 20px; height: 20px; margin: 3px 0 0; accent-color: currentColor; }
.analytics-consent .analytics-consent-owner { font-size: 13px; }
.analytics-consent-details { margin-top: 14px; border-top: 1px solid currentColor; padding-top: 8px; }
.analytics-consent-details summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; gap: 8px; font-weight: 600; list-style: none; }
.analytics-consent-details summary::before { content: "+"; }
.analytics-consent-details[open] summary::before { content: "−"; }
.analytics-consent-details summary:focus-visible, .analytics-choice input:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.analytics-consent-privacy { display: inline-block; margin-top: 8px; }
.analytics-consent-details summary::after{content:none}
