.consent-field { margin: 24px 0 16px; padding-top: 18px; border-top: 1px solid var(--border); }
.consent-link { color: var(--primary); background: none; border: none; padding: 8px 0; font: inherit; font-size: .84rem; text-decoration: underline; text-underline-offset: 3px; text-align: left; cursor: pointer; line-height: 1.7; }
.consent-check { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; font-size: .86rem; font-weight: 600; line-height: 1.8; cursor: pointer; }
.consent-check input { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 3px; accent-color: var(--primary); }
.consent-required { color: var(--danger); white-space: nowrap; }
.consent-dialog { position: fixed; inset: 0; margin: auto; width: min(680px, calc(100% - 24px)); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); padding: 0; border: none; border-radius: 16px; background: var(--surface); color: var(--text); box-shadow: 0 16px 64px #0003; overflow: hidden; }
.consent-dialog[open] { display: flex; flex-direction: column; }
.consent-dialog::backdrop { background: rgba(15, 30, 40, .55); }
body:has(.consent-dialog[open]) { overflow: hidden; }
.consent-header { position: relative; flex: 0 0 auto; padding: 24px 60px 18px 28px; border-bottom: 1px solid var(--border); }
.consent-dismiss { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; border: none; border-radius: 8px; background: transparent; color: var(--text); font-size: 30px; line-height: 1; cursor: pointer; }
.consent-dismiss:hover { background: var(--bg); }
.consent-header h2 { font-size: 1.15rem; line-height: 1.6; }
.consent-header p { font-size: .83rem; line-height: 1.8; color: var(--text-muted); margin-top: 8px; }
.consent-body { overflow-y: auto; overscroll-behavior: contain; padding: 24px 28px; min-height: 0; font-size: .88rem; line-height: 1.9; }
.consent-body section + section { margin-top: 26px; }
.consent-body h3 { font-size: .95rem; margin-bottom: 10px; }
.consent-body ul { padding-left: 1.4em; }
.consent-body li + li { margin-top: 10px; }
.consent-footer { flex: 0 0 auto; padding: 14px 28px 20px; border-top: 1px solid var(--border); }
.consent-footer .submit-btn { margin: 0; }
.consent-link:focus-visible, .consent-check input:focus-visible, .consent-dialog button:focus-visible { outline: 3px solid var(--primary); outline-offset: 3px; }
.consent-body:focus-visible { outline: 2px solid var(--primary); outline-offset: -4px; }
@media (max-width: 480px) {
    .consent-header { padding: 18px 56px 14px 18px; }
    .consent-header h2 { font-size: 1rem; }
    .consent-body { padding: 18px; }
    .consent-footer { padding: 12px 18px 16px; }
}
