/* Opaque theme colours keep the notice readable over photographs and maps. */
.consent-panel {
    position: fixed;
    z-index: 10000;
    inset: auto 20px max(20px, env(safe-area-inset-bottom));
    width: min(1100px, calc(100% - 40px));
    max-height: calc(100dvh - 40px - env(safe-area-inset-bottom));
    margin-inline: auto;
    padding: 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    overflow: auto;
    background: var(--bg);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

.consent-panel[hidden], .consent-panel [hidden] { display: none; }
.consent-panel h2 { margin: 0 0 12px; font-size: 30px; }
.consent-panel p { margin: 0 0 12px; font-size: 15px; line-height: 1.6; }
.consent-panel__policy { font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
.consent-panel p.consent-panel__state { margin: 10px 0 0; font-size: 14px; }
.consent-panel__state:empty { display: none; }
.consent-panel__actions { display: grid; gap: 10px; }
.consent-panel__actions .btn { min-height: 48px; min-width: 210px; font-size: 15px; }
.consent-panel__close { margin-top: 4px; border: 0; padding: 8px; background: none; color: var(--text); font: inherit; font-size: 14px; cursor: pointer; text-decoration: underline; }
.consent-panel :focus-visible { outline: 2px solid var(--text); outline-offset: 4px; }

@media (max-width: 720px) {
    .consent-panel { grid-template-columns: minmax(0, 1fr); inset-inline: 12px; width: calc(100% - 24px); padding: 20px; gap: 18px; }
    .consent-panel__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .consent-panel__actions .btn { min-width: 0; padding: 12px; }
    .consent-panel__close { grid-column: 1 / -1; }
}

@media (max-width: 359px) {
    .consent-panel__actions { grid-template-columns: minmax(0, 1fr); }
}
