.avn-launchers,
.avn-cookie-banner,
.avn-dialog {
    --avn-control-ink: #17191d;
    --avn-control-border: #65676d;
    --avn-control-accent: #8c1522;
    --avn-control-paper: #fff;
    color: var(--avn-control-ink);
    font: 1rem/1.5 system-ui, sans-serif;
}

.avn-launchers {
    position: fixed;
    z-index: 10000;
    inset: auto max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: end;
    gap: 8px;
    max-inline-size: calc(100% - 24px);
}

.avn-launchers[hidden],
.avn-cookie-banner[hidden],
.avn-dialog [hidden] {
    display: none;
}

html:has(.avn-launchers:not([hidden])) {
    scroll-padding-block-end: 64px;
}

body:has(.avn-launchers:not([hidden])) {
    padding-block-end: 64px;
}

html:has(.avn-cookie-banner:not([hidden])) {
    scroll-padding-block-end: min(80vh, 19rem);
}

.avn-cookie-banner,
.avn-dialog {
    box-sizing: border-box;
    padding: 16px;
    background: var(--avn-control-paper);
    border: 1px solid var(--avn-control-border);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgb(0 0 0 / 20%);
}

.avn-cookie-banner {
    position: fixed;
    z-index: 9999;
    inset: auto max(12px, env(safe-area-inset-right)) calc(max(12px, env(safe-area-inset-bottom)) + 54px) auto;
    inline-size: min(30rem, calc(100% - 24px));
    max-block-size: min(65vh, calc(100dvh - 84px));
    overflow: auto;
}

.avn-cookie-banner h2,
.avn-dialog h2 {
    margin: 0 0 6px;
    color: var(--avn-control-ink);
    font: 700 1.25rem/1.3 system-ui, sans-serif;
}

.avn-cookie-banner p,
.avn-dialog p {
    margin: 0 0 12px;
}

.avn-cookie-banner a {
    color: var(--avn-control-accent);
    text-decoration: underline;
}

.avn-dialog {
    inline-size: min(28rem, calc(100% - 24px));
    max-block-size: calc(100dvh - 24px);
    margin: auto;
    overflow: auto;
}

.avn-dialog::backdrop {
    background: rgb(0 0 0 / 55%);
}

.avn-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.avn-launcher,
.avn-actions button {
    min-block-size: 44px;
    padding: 7px 12px;
    border: 1px solid var(--avn-control-border);
    border-radius: 5px;
    background: var(--avn-control-paper);
    color: var(--avn-control-ink);
    font: 650 0.9rem/1.35 system-ui, sans-serif;
    cursor: pointer;
}

.avn-launcher {
    border-color: var(--avn-control-ink);
    background: var(--avn-control-ink);
    color: var(--avn-control-paper);
}

.avn-launcher:hover,
.avn-actions button:hover {
    border-color: var(--avn-control-accent);
    background: var(--avn-control-accent);
    color: var(--avn-control-paper);
}

.avn-launchers :focus-visible,
.avn-cookie-banner :focus-visible,
.avn-dialog :focus-visible {
    outline: 3px solid #a91f2d;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px #fff;
}

.avn-dialog select {
    min-block-size: 44px;
    margin-block: 4px 12px;
    padding-inline: 8px;
    color: var(--avn-control-ink);
    background: var(--avn-control-paper);
    border: 1px solid var(--avn-control-border);
    border-radius: 5px;
    font: inherit;
}

.avn-choice {
    display: flex;
    align-items: center;
    gap: 8px;
    min-block-size: 36px;
    margin-block: 4px 8px;
}

.avn-choice input {
    inline-size: 1.15em;
    block-size: 1.15em;
    accent-color: var(--avn-control-accent);
}

.avn-feedback:empty {
    display: none;
}

.avn-underlined-links .wp-site-blocks a {
    text-decoration: underline !important;
}

html[data-avn-page-size="112"] .wp-site-blocks { zoom: 1.12; }
html[data-avn-page-size="125"] .wp-site-blocks { zoom: 1.25; }
html[data-avn-page-size="150"] .wp-site-blocks { zoom: 1.5; }

@media (max-width: 340px) {
    .avn-launchers { gap: 5px; }
    .avn-launcher { padding-inline: 7px; font-size: 0.8rem; }
}
