.consent-banner { position: fixed; z-index: 10050; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(560px, calc(100vw - 48px)); max-height: calc(100dvh - 96px); overflow: auto; border-radius: 16px; box-shadow: 0 12px 48px #173e3533; }
.consent-banner .panel { padding: 24px; }
.consent-banner .purpose { padding: 12px 0; }
.consent-banner .actions { margin-top: 18px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
.consent-banner .panel { text-align: left; }
.consent-banner .eyebrow { margin: 0 0 10px; }
.consent-banner details { font-size: 13px; overflow-wrap: anywhere; }
.consent-banner summary { cursor: pointer; padding: 8px 0; }
.consent-settings-toggle { position: fixed; z-index: 10051; left: 24px; bottom: 16px; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; box-sizing: border-box; border: 1px solid #246b61; border-radius: 24px; background: white; color: #19534b; font: 600 14px/1.4 system-ui,sans-serif; cursor: pointer; }
.consent-settings-toggle:focus-visible { outline: 3px solid #246b61; outline-offset: 4px; }
.consent-banner-unavailable { position: fixed; bottom: 12px; left: 12px; right: 12px; z-index: 10050; padding: 16px; background: white; color: #1e1e1e; border: 1px solid #246b61; }
@media (max-width: 600px) { .consent-banner { width: calc(100vw - 24px); max-height: calc(100dvh - 96px); } .consent-banner .panel { padding: 18px; } .consent-settings-toggle { left: 12px; } }

.consent-banner[data-preferences-expanded="false"] .consent-category-list,
.consent-banner[data-preferences-expanded="false"] [data-action="accept_selected"],
.consent-banner[data-preferences-expanded="false"] [data-action="withdraw"],
.consent-banner[data-preferences-expanded="false"] details,
.consent-banner[data-preferences-expanded="false"] #refresh { display: none; }
.consent-banner[data-preferences-expanded="true"] .consent-customize { display: none; }
.consent-banner .consent-customize { text-align: center; }

.consent-backdrop { position: fixed; inset: 0; z-index: 10049; background: rgb(20 35 31 / 45%); pointer-events: none; }
.consent-banner[hidden] ~ .consent-backdrop { display: none; }
.consent-banner [data-action="reject_all"] { background: white; border-color: var(--consent-accent); color: var(--consent-accent); }
.consent-banner [data-action="reject_all"]:hover:not(:disabled) { background: #e8f6f2; }

.consent-banner .actions { grid-template-areas: "reject accept" "customize customize"; }
.consent-banner [data-action="reject_all"] { grid-area: reject; }
.consent-banner [data-action="accept_all"] { grid-area: accept; }
.consent-banner .actions .consent-customize { grid-area: customize; margin-top: 0; }
.consent-banner[data-preferences-expanded="true"] .actions { grid-template-areas: "reject accept"; }
.consent-banner .consent-policy { margin: 12px 0; font-size: 13px; }
.consent-banner .consent-policy a { color: #19534b; text-decoration: underline; }
.consent-banner #feedback:empty { display: none; }
@media (max-width: 600px) {
    .consent-banner .actions { grid-template-columns: minmax(0, 1fr); grid-template-areas: "reject" "customize" "accept"; }
    .consent-banner[data-preferences-expanded="true"] .actions { grid-template-areas: "reject" "accept"; }
    .consent-banner .actions button { min-height: 46px; font-size: 14px; }
    .consent-banner h2 { font-size: 22px; }
    .consent-banner p { font-size: 14px; line-height: 1.5; }
}
