.satrap-cookie-links,
.satrap-cookie-banner {
    --_cookie-safe-start: env(safe-area-inset-left, 0px);
    --_cookie-safe-end: env(safe-area-inset-right, 0px);
    --_cookie-reserve-start: max(0px, var(--satrap-cookie-reserve-start, 0px));
    --_cookie-reserve-end: max(0px, var(--satrap-cookie-reserve-end, 0px));
    --_cookie-reserve-bottom: max(0px, var(--satrap-viewport-bottom-reserve, 0px), var(--satrap-cookie-reserve-bottom, 0px));
    font-family: var(--satrap-cookie-font, var(--font-body, inherit));
}
.satrap-cookie-links:dir(rtl),
.satrap-cookie-banner:dir(rtl) {
    --_cookie-safe-start: env(safe-area-inset-right, 0px);
    --_cookie-safe-end: env(safe-area-inset-left, 0px);
}
.satrap-cookie-links {
    padding-block: .55rem calc(.55rem + var(--_cookie-reserve-bottom) + env(safe-area-inset-bottom, 0px));
    padding-inline: calc(max(1rem, 4%, var(--_cookie-safe-start)) + var(--_cookie-reserve-start))
        calc(max(1rem, 4%, var(--_cookie-safe-end)) + var(--_cookie-reserve-end));
    text-align: start;
}
.satrap-cookie-links a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: inherit;
    font-size: .875rem;
    text-decoration: underline;
    text-underline-offset: .2em;
    overflow-wrap: anywhere;
}
.satrap-cookie-banner {
    --_cookie-start: calc(max(1rem, var(--_cookie-safe-start)) + var(--_cookie-reserve-start));
    --_cookie-end: calc(max(1rem, var(--_cookie-safe-end)) + var(--_cookie-reserve-end));
    --_cookie-bottom: calc(max(1rem, env(safe-area-inset-bottom, 0px)) + var(--_cookie-reserve-bottom));
    --_cookie-accent: var(--satrap-cookie-accent, var(--color-accent, var(--color-primary, currentColor)));
    position: fixed;
    z-index: var(--satrap-cookie-layer, 10000);
    inset-inline: var(--_cookie-start) auto;
    inset-block-end: var(--_cookie-bottom);
    inline-size: min(var(--satrap-cookie-max-width, 35rem), calc(100% - var(--_cookie-start) - var(--_cookie-end)));
    max-block-size: calc(100vh - var(--_cookie-bottom) - max(1rem, env(safe-area-inset-top, 0px)));
    max-block-size: calc(100dvh - var(--_cookie-bottom) - max(1rem, env(safe-area-inset-top, 0px)));
    overflow: auto;
    overscroll-behavior: contain;
    overflow-wrap: anywhere;
    box-sizing: border-box;
    padding: 1.25rem;
    color: var(--satrap-cookie-text, CanvasText);
    background: var(--satrap-cookie-surface, Canvas);
    border: 1px solid color-mix(in srgb, currentColor 23%, transparent);
    border-block-start: 3px solid var(--_cookie-accent);
    border-radius: var(--satrap-cookie-radius, var(--button-radius, 6px));
    box-shadow: 0 10px 40px rgb(0 0 0 / .16);
    text-align: start;
}
.satrap-cookie-banner [hidden], .satrap-cookie-banner[hidden] { display: none !important; }
.satrap-cookie-banner h2 {
    margin: 0 0 .5rem;
    color: inherit;
    font-family: var(--satrap-cookie-heading-font, var(--font-heading, inherit));
    font-size: 1.25rem;
    letter-spacing: 0;
    line-height: 1.3;
}
.satrap-cookie-banner p { margin: 0 0 .55rem; color: inherit; line-height: 1.5; }
.satrap-cookie-banner a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.satrap-cookie-banner fieldset { min-inline-size: 0; margin: .8rem 0 0; border: 1px solid currentColor; padding: .55rem .75rem; }
.satrap-cookie-banner label { display: flex; align-items: center; min-height: 44px; gap: .55rem; }
.satrap-cookie-banner input { flex: none; accent-color: var(--_cookie-accent); }
.satrap-cookie-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .85rem; }
.satrap-cookie-actions button {
    box-sizing: border-box;
    min-inline-size: 0;
    max-inline-size: 100%;
    min-height: 44px;
    padding: .5rem .8rem;
    border: 1px solid var(--satrap-cookie-button-border, color-mix(in srgb, currentColor 48%, transparent));
    border-radius: var(--satrap-cookie-button-radius, var(--button-radius, 4px));
    color: var(--satrap-cookie-button-text, inherit);
    background: var(--satrap-cookie-button-surface, transparent);
    cursor: pointer;
    font: inherit;
    white-space: normal;
    overflow-wrap: anywhere;
}
.satrap-cookie-actions button:hover {
    background: var(--satrap-cookie-button-hover,
        color-mix(in srgb, var(--_cookie-accent) 9%, var(--satrap-cookie-button-surface, transparent)));
}
.satrap-cookie-banner :is(button, a, input):focus-visible,
.satrap-cookie-links a:focus-visible { outline: 2px solid var(--satrap-cookie-focus, currentColor); outline-offset: 3px; }
.satrap-cookie-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 30rem) {
    .satrap-cookie-banner { padding: .875rem; }
    .satrap-cookie-actions { gap: .375rem; margin-block-start: .65rem; }
    .satrap-cookie-actions button { flex: 1 1 calc(50% - .375rem); padding-inline: .5rem; }
}
