.privacy-link { width: auto; height: auto; min-height: 44px; padding: 0; color: var(--muted); font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.privacy-link:hover { background: transparent; color: #fff; }
.consent-banner { position: fixed; z-index: 10; inset: auto 24px 24px auto; width: min(560px, calc(100% - 48px)); padding: 24px; border: 1px solid #555; border-top: 2px solid var(--accent); background: #181818; box-shadow: 0 12px 48px #0009; }
.consent-banner[hidden] { display: none; }
.consent-banner h2, .privacy-dialog h2 { margin: 0 0 12px; font-size: 20px; line-height: 1.3; }
.consent-banner p, .privacy-dialog p, .privacy-dialog li { color: #ccc; font-size: 14px; line-height: 1.6; }
.consent-banner p { margin: 0 0 16px; }
.privacy-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.privacy-actions button { flex: 1 1 150px; width: auto; min-height: 44px; height: auto; padding: 12px 16px; border: 1px solid #777; background: #272727; font-size: 14px; line-height: 1.3; }
.privacy-actions button:hover { background: #3a3a3a; border-color: #eee; }
.privacy-actions button:disabled { cursor: default; opacity: .55; }
.consent-banner .privacy-link { margin-top: 8px; }
.privacy-dialog { width: min(660px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 28px; border: 1px solid #555; border-top: 2px solid var(--accent); color: var(--text); background: #181818; }
.privacy-dialog::backdrop { background: #000b; }
body:has(.privacy-dialog[open]) { overflow: hidden; }
.privacy-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.privacy-heading h2 { padding-top: 9px; }
.privacy-heading button { flex: 0 0 44px; font-size: 24px; }
.privacy-option { display: flex; gap: 12px; padding: 18px 0; border-top: 1px solid #444; border-bottom: 1px solid #444; margin-block: 20px; }
.privacy-option input { flex: 0 0 22px; width: 22px; height: 22px; margin: 0; accent-color: #eee; }
.privacy-option label { cursor: pointer; font-size: 16px; line-height: 1.5; }
.privacy-option small { display: block; color: #ccc; font-size: 14px; }
.privacy-dialog details { margin: 20px 0; }
.privacy-dialog summary { cursor: pointer; min-height: 44px; padding-block: 12px; font-size: 14px; }
.privacy-dialog h3 { margin: 20px 0 8px; font-size: 16px; }
.privacy-dialog a { color: #eee; text-underline-offset: 3px; }
.privacy-dialog ul { padding-left: 20px; }
.privacy-status { min-height: 1.6em; }
.privacy-dialog :focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
@media (max-width: 600px) { .consent-banner { inset: auto 12px 12px; width: auto; padding: 18px; max-height: calc(100dvh - 24px); overflow-y: auto; } .consent-banner h2 { font-size: 18px; } .privacy-dialog { padding: 20px; } .privacy-actions button { flex-basis: 130px; } }
