html {
    scroll-padding-top: 5.5rem;
}

.drakima-navbar .drakima-nav-menu {
    max-width: min(24rem, calc(100vw - 2rem));
    max-height: calc(100dvh - 6rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.drakima-nav-menu .dropdown-item {
    overflow-wrap: anywhere;
}

.public-search-panel {
    margin: 0 0 2rem;
    padding: 1rem;
    border: 1px solid rgba(31, 232, 211, .45);
    background: rgba(4, 10, 28, .82);
}

.public-search-panel label {
    display: block;
    margin-bottom: .55rem;
    color: var(--drakima-cyan, #7ffcf0);
    font-weight: 700;
}

.public-search-panel:not(.unified-discovery-filters):not(.gallery-filter-panel) > div,
.public-pagination,
.public-recovery-actions {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.public-search-panel :is(input[type="search"], select) {
    width: 100%;
    min-width: 0;
    padding: .75rem .9rem;
    color: #f4f1ff;
    border: 1px solid rgba(31, 232, 211, .55);
    background: #050919;
    color-scheme: dark;
}

.public-search-panel p {
    margin: .7rem 0 0;
}

.public-pagination {
    justify-content: center;
    margin-top: 2rem;
}

.public-pagination .is-disabled {
    opacity: .45;
    pointer-events: none;
}

.public-recovery-page {
    min-height: 62vh;
    display: grid;
    align-items: center;
}

.public-recovery-panel {
    max-width: 54rem;
    margin-inline: auto;
    padding: clamp(1.5rem, 4vw, 3.5rem);
}

/* Shared layout rules must travel with PublicWeb as well as StudioWeb. */
.drakima-hero-grid > *,
.public-theme-hero > *,
.gynoid-profile-layout > * {
    min-width: 0;
}

.drakima-terminal-panel {
    overflow-wrap: anywhere;
}

.drakima-form :is(.form-control, .form-select):not(.identity-native-date-picker) {
    min-height: 44px;
    font-size: max(1rem, 16px);
}

.drakima-form textarea.form-control {
    line-height: 1.6;
}

:is(.public-search-panel, .gallery-filter-panel, .video-search-panel, .engineering-catalog-controls) :is(input[type="search"], select) {
    min-height: 44px;
    min-width: 0;
    font-size: max(1rem, 16px);
}

#discover-results {
    scroll-margin-top: 6rem;
}

.identity-password-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .5rem;
}

.identity-password-control:has([hidden]) {
    grid-template-columns: minmax(0, 1fr);
}

.identity-password-toggle {
    min-height: 44px;
    min-width: 4.5rem;
    border: 1px solid var(--drakima-line-cyan);
    border-radius: 4px;
    color: var(--drakima-cyan-soft);
    background: #071226;
    font: 1rem/1.2 var(--drakima-mono-font);
}

.identity-password-toggle:hover {
    border-color: var(--drakima-cyan);
}

.novel-reader-console-actions .drakima-button,
.novel-stream-speed {
    min-height: 44px;
    font-size: max(.9rem, 14px);
}

.novel-stream-speed {
    flex-wrap: wrap;
    padding-block: .25rem;
}

.novel-stream-speed select {
    min-height: 44px;
    min-width: 0;
    flex: 1;
    font-size: 16px;
}

@media (max-width: 1399.98px) {
    .drakima-navbar .navbar-collapse {
        max-height: calc(100dvh - 5rem);
        overflow-y: auto;
        overscroll-behavior: contain;
        padding-inline: .25rem;
        scrollbar-gutter: stable;
    }

    .drakima-nav-links {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .drakima-nav-action {
        height: 100%;
        font-size: 1rem;
        text-align: left;
    }

    /* An open dropdown owns a complete grid row; its trigger must not grow with the menu. */
    .drakima-nav-dropdown:has(> .dropdown-menu.show) {
        grid-column: 1 / -1;
    }

    .drakima-nav-dropdown > .drakima-nav-action {
        width: 100%;
        height: auto;
    }

    .drakima-navbar .drakima-nav-menu {
        position: static !important;
        width: 100%;
        min-width: 0;
        max-width: none;
        transform: none !important;
    }

    .drakima-auth-link,
    .drakima-navbar-toggler,
    .drakima-account-trigger,
    .drakima-cart-trigger,
    .drakima-notification-trigger {
        min-height: 44px;
    }
}

.drakima-nav-support-heart {
    margin-inline-start: .4em;
    color: #ff79b0;
    text-shadow: 0 0 6px rgb(255 121 176 / 35%);
}

/* Expand only when the main destinations and account controls fit on one row. */
@media (min-width: 1400px) {
    .drakima-nav-action {
        padding-inline: .5rem !important;
        white-space: nowrap;
    }
}

@media (min-width: 768px) and (max-width: 1399.98px) {
    .drakima-nav-links {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .drakima-hero {
        min-height: auto;
        padding: 3rem 0;
    }

    .drakima-hero-grid,
    .gynoid-profile-layout,
    .gynoid-theme-spotlight,
    .public-theme-hero,
    .public-theme-mode-grid,
    .public-theme-memory-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .drakima-hero-visual {
        min-height: auto;
        justify-content: start;
        padding: 0;
    }

    .public-theme-dossier {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-theme-dossier > div:nth-child(2) {
        border-right: 0;
    }

    .public-theme-dossier > div:nth-child(-n + 2) {
        border-bottom: 1px solid rgba(0, 255, 204, 0.18);
    }

    .gynoid-theme-spotlight-image {
        min-height: 14rem;
    }

    .public-theme-hero-image {
        min-height: 16rem;
    }

    .gynoid-theme-spotlight-image::after {
        background: linear-gradient(180deg, transparent 55%, rgba(5, 2, 10, 0.72));
    }
}

@media (max-width: 575.98px) {
    .drakima-hero .drakima-action-row,
    .identity-date-picker,
    .public-theme-dossier {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .identity-date-picker-button {
        width: 100%;
        min-height: 44px;
    }

    .public-theme-dossier > div {
        border-right: 0;
        border-bottom: 1px solid rgba(0, 255, 204, 0.18);
    }

    .public-theme-dossier > div:last-child {
        border-bottom: 0;
    }

    .drakima-page-shell {
        padding: 2.5rem 0;
    }
}
