/*
 * Contrato responsive global de TheDinoLeague.
 * Se carga desde el footer para corregir también estilos inline de cada página.
 */
.gift-mobile-swipe-hint {
    display: none;
}

@media (max-width: 767px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: clip !important;
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }

    :where(main, section, article, aside, header, footer, nav, form, fieldset, .container, .app-shell-content) {
        min-width: 0;
        max-width: 100%;
    }

    :where(img, video, canvas, iframe, svg) {
        max-width: 100%;
    }

    :where(h1, h2, h3, h4, h5, h6, p, span, strong, small, label, a, button) {
        overflow-wrap: break-word;
    }

    :where(input, select, textarea) {
        max-width: 100%;
        font-size: 16px !important;
    }

    :where(button, a, input, select, textarea, [role="button"]) {
        touch-action: manipulation;
    }

    :where(button, [role="button"], input[type="button"], input[type="submit"], select) {
        min-height: 44px;
    }

    :where(.adm-table-wrap, .overflow-x-auto, .table-responsive) {
        max-width: 100%;
        overflow-x: auto !important;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    :where(.events-detail-tabs, .event-detail-tabs, .event-room-tabs, .market-nav, .trade-offer-filters, .market-section-filters > div) {
        max-width: 100%;
        overflow-x: auto !important;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin;
    }

    :where(
        .gift-modal,
        .gift-reveal-modal,
        .inventory-modal-frame,
        .store-skin-modal,
        .purchase-confirm-modal,
        .market-modal,
        .entry-event-modal,
        .entry-announcement-modal,
        .event-mutation-modal,
        .prime-mutation-modal,
        .map-prime-mission-modal,
        .social-chat-delete-modal,
        #member-payment-modal,
        #roulette-modal,
        #live-action-modal
    ) {
        box-sizing: border-box !important;
        width: 100vw !important;
        max-width: 100vw !important;
        height: 100dvh;
        max-height: 100dvh;
        padding: max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left)) !important;
        overflow: auto;
        overscroll-behavior: contain;
    }

    :where(
        dialog,
        .adm-confirm-dialog,
        .adm-ops-dialog,
        .event-withdraw-dialog,
        .message-delete-dialog,
        .nest-delete-dialog
    ) {
        box-sizing: border-box !important;
        width: calc(100% - 16px) !important;
        max-width: calc(100vw - 16px) !important;
        max-height: calc(100dvh - 16px) !important;
        margin: auto;
        overflow-y: auto !important;
        overscroll-behavior: contain;
    }

    :where(
        .gift-modal-panel,
        .gift-reveal-card,
        .market-modal-card,
        .entry-event-panel,
        .entry-announcement-panel,
        .skin-detail-modal-panel,
        .store-skin-modal-panel,
        .mutation-modal-shell,
        .event-mutation-modal-shell,
        .delete-modal-content,
        .dino-action-modal-content,
        .live-action-modal-content,
        .community-tutorial-dialog-card,
        .nest-page-dialog-card,
        .payment-result-modal
    ) {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: calc(100vw - 20px) !important;
        max-height: calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
    }

    :where(.friends-drawer-panel, .global-chat-drawer, .private-chat-mini) {
        max-width: 100vw !important;
        max-height: 100dvh;
    }

    .friends-drawer-panel {
        box-sizing: border-box !important;
        width: min(360px, 100vw) !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        padding: max(16px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) 14px !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
    }

    .event-room-page {
        width: min(100% - 16px, 1500px) !important;
        padding-top: 14px !important;
        padding-bottom: calc(72px + env(safe-area-inset-bottom)) !important;
    }

    .event-room-head {
        display: grid !important;
        align-items: start !important;
        gap: 12px !important;
    }

    .event-room-head h1 {
        font-size: clamp(30px, 11vw, 42px) !important;
        overflow-wrap: anywhere;
    }

    .event-room-back {
        width: 100%;
        justify-content: center;
    }

    .event-room-layout {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .event-room-video {
        min-height: min(58dvh, 430px) !important;
    }

    .event-room-controls button {
        min-width: 0;
        min-height: 46px;
        flex: 1 1 calc(50% - 4px) !important;
        padding-inline: 9px !important;
    }

    .event-room-control-status {
        flex-basis: 100% !important;
    }

    .event-room-side {
        min-height: 470px !important;
    }

    .event-mutation-modal-layout,
    .mutation-modal-layout {
        grid-template-columns: minmax(0, 1fr) !important;
        height: auto !important;
        max-height: none !important;
    }

    .event-mutation-modal-side,
    .mutation-modal-side {
        min-height: 0;
    }

    /* Pase semanal: una recompensa completa por gesto, sin tarjetas cortadas. */
    .gift-modal-panel {
        display: flex !important;
        height: auto;
        overflow: hidden !important;
    }

    .gift-modal-head {
        align-items: flex-start !important;
        gap: 8px !important;
        padding: 14px 13px 11px !important;
    }

    .gift-modal-head > .text-right {
        display: none;
    }

    .gift-modal-head h2 {
        font-size: 19px !important;
    }

    .gift-title-icon {
        width: 38px !important;
        height: 38px !important;
        flex: 0 0 38px;
    }

    .gift-progress {
        margin-inline: 13px !important;
    }

    .gift-mobile-swipe-hint {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        margin: 9px 13px 0;
        color: #aab1aa;
        font-size: 11px;
        font-weight: 900;
        letter-spacing: .1em;
        text-transform: uppercase;
    }

    .gift-mobile-swipe-hint i { color: #e4b655; }

    .gift-week-grid {
        display: grid !important;
        grid-template-columns: none !important;
        grid-auto-flow: column;
        grid-auto-columns: 100%;
        gap: 10px !important;
        padding: 9px 13px 14px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 13px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .gift-week-grid::-webkit-scrollbar {
        display: none;
    }

    .gift-day {
        box-sizing: border-box;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 232px !important;
        scroll-snap-align: center;
        scroll-snap-stop: always;
    }

    .gift-modal-actions {
        gap: 8px !important;
        padding: 0 13px 13px !important;
    }

    /* La tarjeta verde ocupa el ancho útil y el selector se comporta como una app. */
    .embedded-inventory-shell [data-inventory-view-panel="event"] .inventory-item-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    #event-mutation-modal .event-mutation-modal-shell {
        height: calc(100dvh - 20px) !important;
        max-height: calc(100dvh - 20px) !important;
        overflow: hidden !important;
    }

    #event-mutation-modal .event-mutation-modal-layout {
        display: flex !important;
        height: 100% !important;
        max-height: 100% !important;
        flex-direction: column !important;
        overflow: hidden !important;
    }

    #event-mutation-modal .event-mutation-modal-main {
        min-height: 0 !important;
        flex: 1 1 0 !important;
        overflow: hidden !important;
    }

    #event-mutation-modal .event-mutation-modal-content {
        min-height: 0 !important;
        flex: 1 1 0 !important;
        overflow: hidden !important;
    }

    #event-mutation-modal .event-mutation-scroll {
        min-height: 0 !important;
        max-height: none !important;
        flex: 1 1 0 !important;
        overflow-y: auto !important;
    }

    .adm-shell,
    .adm-main,
    .adm-content,
    .adm-panel,
    .adm-grid {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .adm-ops-dialog.mutation-catalog .adm-ops-dialog-form,
    .adm-ops-dialog.skin-catalog .adm-ops-dialog-form {
        max-height: calc(100dvh - 16px) !important;
        padding: 16px !important;
        overflow-y: auto !important;
    }
}

@media (max-width: 420px) {
    :where(
        .gift-modal-actions,
        .event-withdraw-dialog-actions,
        .live-action-modal-actions,
        .delete-modal-actions,
        .adm-ops-dialog-actions,
        .entry-event-actions,
        .entry-announcement-actions
    ) {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100%;
    }

    :where(
        .gift-modal-actions,
        .event-withdraw-dialog-actions,
        .live-action-modal-actions,
        .delete-modal-actions,
        .adm-ops-dialog-actions,
        .entry-event-actions,
        .entry-announcement-actions
    ) > :where(button, a) {
        width: 100% !important;
        min-height: 46px;
    }

    .event-room-controls button {
        flex-basis: 100% !important;
    }
}

@media (max-width: 767px) and (orientation: landscape) and (max-height: 520px) {
    :where(
        .gift-modal-panel,
        .market-modal-card,
        .entry-event-panel,
        .entry-announcement-panel,
        .mutation-modal-shell,
        .event-mutation-modal-shell,
        .payment-result-modal,
        dialog
    ) {
        max-height: calc(100dvh - 12px) !important;
    }

    .event-room-video {
        min-height: 300px !important;
    }
}

/* Auditoría UX 2026-09: legibilidad, controles táctiles y dock no invasivo. */
@media (max-width: 767px) {
    :root {
        --mobile-touch-target: 44px;
        --mobile-dock-height: calc(66px + env(safe-area-inset-bottom));
    }

    html {
        scroll-padding-bottom: calc(var(--mobile-dock-height) + 12px);
    }

    .app-icon-button,
    .notification-top-button,
    .gift-top-button,
    #nav-toggle,
    .app-user-chip,
    .mobile-drawer-close {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        flex-basis: 44px !important;
    }

    /* Los tres accesos inferiores se retiran al bajar o al escribir. */
    .global-chat-tab.store-quick-tab,
    .community-fab,
    .friends-fab {
        transition: opacity .18s ease, transform .22s ease, filter .18s ease !important;
        will-change: transform, opacity;
    }

    body.mobile-dock-hidden .global-chat-tab.store-quick-tab,
    body.mobile-dock-input-active .global-chat-tab.store-quick-tab,
    body.page-la_caceria.hunt-map-visible .global-chat-tab.store-quick-tab,
    body.mobile-dock-hidden .friends-fab,
    body.mobile-dock-input-active .friends-fab,
    body.page-la_caceria.hunt-map-visible .friends-fab {
        opacity: 0 !important;
        transform: translateY(calc(100% + 24px)) !important;
        pointer-events: none !important;
    }

    body.mobile-dock-hidden .community-fab,
    body.mobile-dock-input-active .community-fab,
    body.page-la_caceria.hunt-map-visible .community-fab {
        opacity: 0 !important;
        transform: translate(-50%, calc(100% + 24px)) !important;
        pointer-events: none !important;
    }

    body:has(dialog[open], .gift-modal.open, .market-modal:not([hidden]), .entry-event-modal.open, .entry-announcement-modal.open, .map-prime-mission-modal.open) :is(.global-chat-tab.store-quick-tab, .community-fab, .friends-fab) {
        opacity: 0 !important;
        pointer-events: none !important;
    }

    /* Mercado: las tres secciones siempre quedan visibles y tocables. */
    .market-page.market-rebuild .market-nav {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 6px !important;
        overflow: visible !important;
        padding: 7px !important;
        scrollbar-width: none;
    }

    .market-page.market-rebuild .market-nav > button {
        position: relative;
        display: flex !important;
        min-width: 0 !important;
        min-height: 64px !important;
        flex: none !important;
        flex-direction: column;
        gap: 4px !important;
        padding: 7px 3px !important;
        font-size: 9px !important;
        line-height: 1.15 !important;
        letter-spacing: .025em !important;
        text-align: center;
        white-space: normal !important;
    }

    .market-page.market-rebuild .market-nav > button > i {
        width: 27px !important;
        height: 27px !important;
        flex: 0 0 27px !important;
    }

    .market-page.market-rebuild .market-nav > button > b {
        position: absolute;
        top: 4px;
        right: 4px;
        min-width: 17px;
        height: 17px;
        padding: 0 4px;
        font-size: 8px;
    }

    .market-page .market-search-field > div,
    .market-page .market-search-field input,
    .market-page .market-exchange-toolbar select,
    .market-page [data-collection-search] {
        min-height: 48px !important;
    }

    .market-page .market-panel-header p,
    .market-page .market-lot-description,
    .market-page .market-seller,
    .market-page .market-result-count {
        font-size: 12px !important;
        line-height: 1.5 !important;
    }

    /* Eventos: el próximo evento aparece en el primer vistazo del teléfono. */
    .events-page {
        padding-top: 12px !important;
        padding-bottom: calc(var(--mobile-dock-height) + 24px) !important;
    }

    .events-primary-tabs {
        margin-bottom: 10px !important;
    }

    .events-hero {
        min-height: 0 !important;
        gap: 10px !important;
        border-radius: 19px !important;
    }

    .events-hero-copy {
        padding: 22px 20px 13px !important;
    }

    .events-hero h1 {
        margin: 7px 0 10px !important;
        font-size: clamp(36px, 11vw, 46px) !important;
        line-height: .96 !important;
    }

    .events-hero-copy > p:last-of-type {
        font-size: 13px !important;
        line-height: 1.55 !important;
    }

    .events-hero-stats {
        display: none !important;
    }

    .events-next {
        margin: 0 10px 10px !important;
        padding: 16px !important;
    }

    .events-next > small,
    .events-kicker,
    .events-list-date,
    .events-countdown small,
    .events-fact small,
    .events-auditorium-copy small,
    .events-auditorium-state {
        font-size: 10px !important;
        letter-spacing: .08em !important;
    }

    .events-next h2 {
        margin: 7px 0 6px !important;
        font-size: 29px !important;
    }

    .events-next > p,
    .events-list-card p,
    .events-detail-section p,
    .events-profile-card strong,
    .events-fact strong {
        font-size: 13px !important;
        line-height: 1.55 !important;
    }

    .events-countdown {
        margin-top: 12px !important;
    }

    .events-countdown span {
        padding: 10px 3px !important;
        font-size: 20px !important;
    }

    .events-calendar-nav a,
    .event-map-viewer-controls button,
    .events-next a,
    .events-primary-tab,
    .event-detail-tabs a {
        min-width: var(--mobile-touch-target) !important;
        min-height: var(--mobile-touch-target) !important;
    }

    /* Mapa y paneles de misión. */
    body.page-mapa .map-control-btn {
        min-height: var(--mobile-touch-target) !important;
        font-size: 11px !important;
    }

    body.page-mapa :is(#map-zoom-in, #map-zoom-out, .map-daily-expand),
    body.page-mapa .map-daily-target-marker {
        width: var(--mobile-touch-target) !important;
        min-width: var(--mobile-touch-target) !important;
        height: var(--mobile-touch-target) !important;
        min-height: var(--mobile-touch-target) !important;
    }

    body.page-mapa .map-daily-target-marker span,
    body.page-mapa .map-prime-mission-list :is(small, span),
    body.page-mapa .map-layer-panel :is(small, span) {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }

    /* Contratos y pase: estados y recompensas legibles. */
    body.page-misiones .mission-map-link,
    body.page-misiones .mission-card :is(small, .mission-task-label, .mission-status),
    body.page-misiones .missions-nav button small,
    body.page-battle_pass .bp-page :is(small, .bp-track-pill, .bp-status, .bp-list-header) {
        font-size: 11px !important;
        line-height: 1.35 !important;
        letter-spacing: .04em !important;
    }

    body.page-misiones .mission-map-link,
    body.page-battle_pass .bp-range-tab,
    body.page-battle_pass .bp-action,
    body.page-battle_pass .bp-claim {
        display: inline-flex;
        min-height: var(--mobile-touch-target) !important;
        align-items: center;
        justify-content: center;
    }

    /* Soporte, intercambios y juegos. */
    body.page-soporte .support-btn,
    body.page-soporte .support-new-btn,
    body.page-intercambios :is(.trade-offer-filters button, .trade-inventory-filters button, .trade-offer-actions button),
    body.page-dino_duelo .stake-quick,
    body.page-coinflip .cf-quick,
    body.page-maquinitas .slot-limit-upsell a,
    body.page-comunidad .general-voice-actions button,
    body.page-comunidad .voice-device-field select {
        min-height: var(--mobile-touch-target) !important;
    }

    body.page-soporte :is(.support-kicker, .support-private, .support-item p, .support-item footer, .support-status, .support-thread-head p, .support-message strong, .support-message time, .support-message p, .support-attachment, .support-replay-file small, .support-upload-hint, .support-field label, .support-new > p, .support-empty, .support-send-state, .support-key-hint),
    body.page-intercambios :is(.trade-offer-filters button, .trade-inventory-filters button, .trade-status),
    body.page-maquinitas :is(.slot-kicker, .slot-control-note, .slot-limit-upsell p, .slot-limit-upsell a, .slot-history-item small),
    body.page-comunidad :is(.general-voice-head p, .general-voice-status, .general-voice-connected-label, .general-voice-members-title, .general-voice-members-title small, .general-voice-help, .voice-lounge-badge, .voice-lounge-people, .voice-device-field > span, .voice-device-help, .voice-lounge-live, .voice-lounge-guide > p, .voice-lounge-guide li small, .voice-lounge-rule small) {
        font-size: 11px !important;
        line-height: 1.4 !important;
        letter-spacing: .04em !important;
    }

    body.page-dino_duelo .stake-quick,
    body.page-coinflip .cf-quick {
        font-size: 11px !important;
    }

    /* Etiquetas auxiliares que antes quedaban entre 6 y 8 px. */
    body:is(.page-index, .page-mapa, .page-eventos, .page-soporte, .page-intercambios, .page-dino_duelo, .page-coinflip, .page-maquinitas, .page-comunidad, .page-la_caceria) main :is(
        small,
        time,
        [class*="-label"],
        [class*="-meta"],
        [class*="-status"],
        [class*="-hint"],
        [class*="-kicker"],
        [class*="-eyebrow"],
        [class*="-badge"]
    ) {
        font-size: 10px !important;
        line-height: 1.35 !important;
    }

    body.page-comunidad #nest-prime {
        width: 28px !important;
        min-width: 28px !important;
        height: 28px !important;
    }

    body.page-la_caceria .hunt-map-toolbar button {
        min-width: var(--mobile-touch-target) !important;
        height: var(--mobile-touch-target) !important;
        min-height: var(--mobile-touch-target) !important;
    }

    body.page-la_caceria .hunt-map-toolbar [data-map-reset] {
        min-width: 58px !important;
        font-size: 11px !important;
    }

    body.page-la_caceria :is(.hunt-state-pill, .hunt-card-head span, .hunt-prey-copy small, .hunt-rule p, .hunt-map-hint, .hunt-map-legend, .hunt-map-empty) {
        font-size: 11px !important;
        line-height: 1.4 !important;
    }
}

@media (max-width: 374px) {
    .app-icon-button,
    .notification-top-button,
    .gift-top-button,
    #nav-toggle,
    .app-user-chip,
    .mobile-drawer-close {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        flex-basis: 44px !important;
    }

    .market-page.market-rebuild .market-nav > button {
        font-size: 8px !important;
    }
}
@media (max-width: 767px) {
    .skin-filter-options button,
    .combat-leave,
    .friend-profile-back,
    .profile-upgrade-note a {
        min-height: 44px !important;
    }

    .friend-profile-back,
    .profile-upgrade-note a {
        display: inline-flex;
        align-items: center;
    }

    .support-new-btn,
    .combat-link,
    body.page-tienda_skins .store-page-wrap #tab-skins #skin-products-grid .btn-neon,
    .market-page.market-rebuild .market-nav > button {
        font-size: 10px !important;
        line-height: 1.25 !important;
    }
}

/* Revisión móvil 26/09/2026. La geometría de los mapas queda intacta. */
@media (max-width: 767px) {
    /* Saldo bajo la marca: los cuatro controles conservan 44 px incluso a 320 px. */
    .app-topbar .app-topbar-inner.horizontal {
        display: grid !important;
        grid-template-columns: minmax(78px, 1fr) repeat(4, 44px) !important;
        grid-template-rows: 32px 20px !important;
        gap: 0 5px !important;
        min-height: 68px !important;
        padding: 8px !important;
    }
    .app-topbar .topbar-actions { display: contents !important; }
    .app-topbar .app-brand {
        grid-column: 1; grid-row: 1;
        width: 100% !important; min-width: 0 !important; height: 32px !important;
        margin: 0 !important; justify-content: flex-start !important;
    }
    .app-topbar .app-brand img {
        width: 94px !important; max-width: 100% !important; height: 32px !important;
        object-fit: contain !important; object-position: left center;
    }
    .app-topbar .topbar-actions > .notification-wrapper { grid-column: 2; grid-row: 1 / 3; align-self: center; }
    .app-topbar .topbar-actions > .gift-top-button { grid-column: 3; grid-row: 1 / 3; align-self: center; }
    .app-topbar .topbar-actions > .user-menu-wrapper { grid-column: 4; grid-row: 1 / 3; align-self: center; }
    .app-topbar #nav-toggle { grid-column: 5; grid-row: 1 / 3; align-self: center; }
    .app-topbar :is(.notification-top-button, .gift-top-button, .app-user-chip, #nav-toggle) {
        width: 44px !important; min-width: 44px !important;
        height: 44px !important; min-height: 44px !important; padding: 0 !important;
    }
    .app-topbar .wallet-pill {
        grid-column: 1; grid-row: 2;
        display: flex !important; justify-content: flex-start !important;
        width: 100% !important; min-width: 0 !important; max-width: none !important;
        height: 20px !important; min-height: 20px !important;
        padding: 0 !important; gap: 3px !important;
        border: 0 !important; background: transparent !important; box-shadow: none !important;
    }
    .app-topbar .wallet-pill img { width: 14px !important; height: 14px !important; }
    .app-topbar .wallet-pill [data-dinocoin-mobile-balance] {
        font-size: 11px !important; line-height: 20px !important; letter-spacing: 0 !important;
        font-variant-numeric: tabular-nums;
    }
    .app-topbar .topbar-actions > a:not(.wallet-pill):not(.topbar-logout) {
        grid-column: 2 / 5; grid-row: 1 / 3; align-self: center;
        min-height: 44px; display: flex; justify-content: center; align-items: center;
    }

    /* Ningún acceso flotante debe tapar un diálogo o el menú. */
    body:is(.overlay-open, .inventory-modal-open) :is(.store-quick-tab, .community-fab, .friends-fab),
    body:has(#mobile-menu.open, #friends-drawer.open) :is(.store-quick-tab, .community-fab, .friends-fab) {
        visibility: hidden !important; pointer-events: none !important;
    }
    #mobile-menu { padding: 16px !important; gap: 12px !important; }
    #mobile-menu .mobile-menu-scroll { gap: 8px !important; }
    #mobile-menu .mobile-menu-scroll > * { margin-top: 0 !important; }
    #mobile-menu :is(a, button), .user-menu-panel .user-menu-link {
        min-height: 44px !important; font-size: 13px !important; letter-spacing: .025em !important;
    }
    #mobile-menu a span { font-size: inherit !important; }
    .user-menu-panel { max-width: calc(100vw - 24px) !important; max-height: calc(100dvh - 90px) !important; overflow-y: auto !important; }
    .notification-dropdown :is(b, small), .notification-panel :is(b, small) {
        font-size: 13px !important; line-height: 1.45 !important;
    }
    [data-notification-delete] { min-width: 44px !important; min-height: 44px !important; }

    /* Utilidades antiguas de 7–10 px: mínimo legible sin alterar títulos. */
    body:not(.page-mapa):not(.page-la_caceria):not(.page-carrera_voladores) .app-shell-offset :is(
        [class~="text-[7px]"], [class~="text-[8px]"], [class~="text-[9px]"],
        [class~="text-[10px]"], [class~="text-[11px]"]
    ) {
        font-size: 12px !important; line-height: 1.45 !important; letter-spacing: .035em !important;
    }
    body:not(.page-mapa):not(.page-la_caceria):not(.page-carrera_voladores) .app-shell-offset :is(.text-gray-500, .text-gray-600) {
        color: #a5ada9;
    }
    :is(.hub-kicker, .events-kicker, .announcement-card-category, .friends-eyebrow, .privacy-updated,
        .slot-kicker, .slot-eyebrow, .slot-meta-pill, .slot-prime-wallet, .cf-side-chip,
        .membership-tier-label, .membership-benefits-heading, .support-kicker, .support-key-hint,
        .market-result-count, .market-seller, .inventory-view-count, .stored-dino-date) {
        font-size: 12px !important; line-height: 1.4 !important; letter-spacing: .035em !important;
    }
    :is(.profile-tab-btn, .store-section-link, .category-filter, .inventory-filter-btn,
        .events-primary-tab, .event-detail-tabs a, .ranking-tab, .support-btn, .support-new-btn,
        .trades-hero-back, .duel-action-btn, .cf-action, .slot-spin-btn, .skin-filter-options button,
        .community-action-btn, .bp-range-tab, .bp-claim, .bp-action) {
        min-height: 44px !important; font-size: 12px !important;
        line-height: 1.35 !important; letter-spacing: .025em !important;
        white-space: normal !important;
    }
    :is(.events-primary-tab, .event-detail-tabs a, .ranking-tab) { flex-shrink: 0; }
    .profile-tab-btn { padding: 10px 7px !important; }
    :is(.events-detail-section, .announcement-detail-body, .rules-card, .privacy-card) p,
    :is(.events-detail-section, .announcement-detail-body) li {
        font-size: 14px !important; line-height: 1.65 !important;
    }
    :is(.events-fact, .events-countdown, .events-next, .events-list-card, .friends-stats,
        .trades-stat, .ranking-podium-card, .membership-benefits-list, .bp-stats) small {
        font-size: 12px !important; line-height: 1.4 !important; letter-spacing: .025em !important;
    }
    .market-page.market-rebuild .market-nav > button {
        font-size: 12px !important; min-height: 70px !important; padding: 8px 4px !important;
    }
    .market-page.market-rebuild .market-nav > button > b { font-size: 11px !important; }
    .market-page :is(.market-lot-description, .market-panel-header p) { font-size: 14px !important; }
    .skin-filter-native { min-height: 44px !important; padding-block: 8px !important; }
    .skin-filter-label, .skin-filter-toolbar small { font-size: 12px !important; }
    .site-footer :is(.site-footer-legal, .site-footer-legal + div, .site-footer-legal + div a) {
        font-size: 11px !important; line-height: 1.6 !important; letter-spacing: .04em !important;
    }

    /* Inventario: dos tarjetas utilizables; una en teléfonos especialmente angostos. */
    .embedded-inventory-shell .inventory-view-btn {
        font-size: 11px !important; line-height: 1.35 !important; letter-spacing: .015em !important;
        min-height: 64px !important; padding: 8px 5px !important;
    }
    .embedded-inventory-shell .inventory-filter-btn { font-size: 12px !important; padding: 9px 6px !important; }
    .embedded-inventory-shell [data-inventory-filters] { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; }
    .embedded-inventory-shell [data-inventory-filters] > button { flex: 1 1 auto; }
    .embedded-inventory-shell .item-card :is([data-prime-trigger], [data-apply-skin], .gift-inventory-action) {
        min-height: 48px !important; padding: 10px 6px !important;
        font-size: 11px !important; line-height: 1.35 !important; letter-spacing: .015em !important;
    }
    .embedded-inventory-shell .item-card h4 { font-size: 18px !important; line-height: 1.25 !important; overflow-wrap: normal; }
    .embedded-inventory-shell .item-card .trash-btn { width: 44px !important; height: 44px !important; min-height: 44px !important; }
    .embedded-inventory-shell .item-card > .p-4 > .flex:last-child { flex-wrap: wrap; gap: 5px; font-size: 11px !important; letter-spacing: 0 !important; }
    .embedded-inventory-shell .stored-dino-grid { grid-template-columns: minmax(0, 1fr) !important; }
    .embedded-inventory-shell .stored-dino-action { min-height: 46px !important; font-size: 12px !important; }
    .embedded-inventory-shell .stored-dino-stat span:first-child { font-size: 11px !important; }

    /* Ambos selectores mantienen las acciones fuera de la zona desplazable. */
    :is(#prime-mutation-modal, #event-mutation-modal) {
        padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)) !important;
        overflow: hidden !important;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-shell {
        height: calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
        max-height: calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
        max-width: 100% !important; overflow: hidden !important;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-layout {
        display: flex !important; flex-direction: column !important;
        height: 100% !important; max-height: 100% !important; overflow: hidden !important;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-side {
        display: grid !important; grid-template-columns: 48px minmax(0, 1fr) !important;
        gap: 4px 10px !important; padding: 10px 12px !important;
        flex: 0 0 auto !important; overflow: hidden !important;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-side > div:first-child { display: contents !important; }
    :is(#prime-mutation-modal, #event-mutation-modal) .prime-dino-preview {
        grid-column: 1; grid-row: 1 / 3; width: 48px !important; height: 48px !important; margin: 0 !important;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-side > div:first-child > div {
        grid-column: 2; grid-row: 1; align-self: end;
        font-size: 11px !important; line-height: 1.25 !important; letter-spacing: .035em !important; text-align: left;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-side h3 {
        grid-column: 2; grid-row: 2; margin: 0 !important; font-size: 20px !important; line-height: 1.2 !important; text-align: left;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-side > div:nth-child(2) { grid-column: 1 / -1; min-width: 0; }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-side > div:nth-child(2) > div:last-child:not(#prime-slot-chip-list):not(#event-mutation-chip-list) { display: none !important; }
    #prime-mutation-form #prime-slot-chip-list, #event-mutation-form #event-mutation-chip-list {
        display: grid !important; grid-template-columns: none !important;
        grid-auto-flow: row !important; grid-auto-columns: auto !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px !important; max-height: 116px !important;
        overflow-x: hidden !important; overflow-y: auto !important; padding: 3px 5px 3px 0 !important;
        scroll-snap-type: y proximity;
    }
    :is(#prime-slot-chip-list, #event-mutation-chip-list) > button {
        min-height: 52px !important; padding: 7px 9px !important; scroll-snap-align: start;
        overflow: visible !important;
    }
    :is(#prime-slot-chip-list, #event-mutation-chip-list) > button :is(strong, .mutation-chip-name) {
        font-size: 12px !important; line-height: 1.3 !important; white-space: normal !important;
        word-break: normal !important; overflow-wrap: normal !important;
    }
    :is(#prime-slot-chip-list, #event-mutation-chip-list) > button :is(small, .mutation-chip-label, .mutation-chip-heading) { font-size: 10px !important; letter-spacing: .025em !important; }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-layout > :last-child h3 { font-size: 22px !important; line-height: 1.2 !important; }
    .mutation-deploy-help summary { min-height: 36px; font-size: 12px; }
    .mutation-deploy-help summary > span { font-size: 11px !important; letter-spacing: 0 !important; }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-layout > :last-child {
        display: flex !important; flex-direction: column !important; flex: 1 1 0 !important;
        min-height: 0 !important; overflow: hidden !important;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-layout > :last-child > :first-child {
        display: flex !important; flex-direction: column !important; flex: 1 1 0 !important;
        min-height: 0 !important; padding: 12px !important; overflow-y: auto !important;
        overscroll-behavior: contain;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-layout > :last-child > :first-child > * { flex-shrink: 0 !important; }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-layout > :last-child > :last-child {
        position: relative !important; flex: 0 0 auto !important;
        padding: 10px 12px !important; gap: 8px !important;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-layout > :last-child > :last-child button {
        min-height: 48px !important; padding: 10px 8px !important; font-size: 13px !important; letter-spacing: .035em !important;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-options-panel {
        display: grid !important; grid-template-columns: minmax(0, 1fr) !important;
        grid-auto-rows: auto !important; flex: none !important; max-height: none !important;
        overflow: visible !important; padding-right: 0 !important; gap: 8px !important;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) .prime-option { min-height: 0 !important; padding: 12px !important; }
    :is(#prime-mutation-modal, #event-mutation-modal) .prime-option-desc { display: block !important; font-size: 13px !important; line-height: 1.5 !important; }
    :is(#prime-mutation-modal, #event-mutation-modal) .prime-option > strong { font-size: 15px !important; }
    :is(#prime-mutation-modal, #event-mutation-modal) :is(#prime-mutation-help, #event-mutation-help, #prime-deploy-wait-detail, #event-mutation-lock-copy) {
        font-size: 12px !important; line-height: 1.45 !important; color: #b8c0bb !important;
    }
    :is(#prime-mutation-modal, #event-mutation-modal) :is(.mb-6, .mb-5, .mb-4) { margin-bottom: 12px !important; }

    /* Regalos, confirmaciones y administración. */
    .gift-modal-panel :is(.gift-mobile-swipe-hint, .gift-day small, .gift-day p, .gift-day span, .gift-modal-actions button) {
        font-size: 12px !important; line-height: 1.4 !important; letter-spacing: .025em !important;
    }
    .gift-reveal-card { padding: 20px 16px !important; }
    .gift-reveal-card :is(p, small) { font-size: 13px !important; line-height: 1.5 !important; }
    .adm-shell :is(.adm-kicker, .adm-nav-count, .adm-status, .adm-badge, .adm-label, .adm-stat-label, small, label) {
        font-size: 12px !important; line-height: 1.4 !important; letter-spacing: .025em !important;
    }
    .adm-shell :is(.adm-btn, .adm-nav-home, .adm-nav-group a, .adm-tabs a, .adm-tabs button) {
        min-height: 44px !important; font-size: 12px !important; line-height: 1.4 !important;
    }
    .adm-shell :is(th, td) { font-size: 12px !important; line-height: 1.45 !important; }
    .adm-shell :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select) { min-height: 44px !important; }
    .adm-shell .adm-table-wrap { border-radius: 12px; }
    .missions-nav { display: flex !important; overflow-x: auto !important; gap: 6px !important; }
    .missions-nav > button { flex: 0 0 auto !important; min-width: 118px !important; min-height: 48px !important; padding: 10px !important; }
    .missions-nav > button > span { font-size: 12px !important; letter-spacing: 0 !important; white-space: nowrap !important; }
    .mission-strip .mission-stat > strong { font-size: 25px !important; line-height: 1.3 !important; }
    .adm-nav-group > summary strong { font-size: 12px !important; letter-spacing: .035em !important; }
    .adm-nav-group > summary small { font-size: 11px !important; line-height: 1.4 !important; color: #a5ada9 !important; white-space: normal !important; }
    .adm-nav-group a { min-height: 44px !important; font-size: 12px !important; }
    .app-topbar .app-brand { background: transparent !important; border: 0 !important; box-shadow: none !important; }
}

@media (max-width: 359px) {
    body { min-width: 0 !important; }
    .missions-hero-panel, .mission-strip { grid-template-columns: minmax(0, 1fr) !important; }
    .mission-stat { min-width: 0 !important; }
    .mission-stat > :first-child { font-size: 12px !important; letter-spacing: .025em !important; }
    .mission-stat > :last-child { font-size: 24px !important; line-height: 1.3 !important; overflow-wrap: normal !important; }
    .embedded-inventory-shell .inventory-item-grid { grid-template-columns: minmax(0, 1fr) !important; }
    .embedded-inventory-shell .inventory-view-btn { font-size: 10px !important; }
    .profile-tab-btn { font-size: 11px !important; }
}

@media (max-width: 767px) and (max-height: 520px) {
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-side > div:first-child { display: none !important; }
    :is(#prime-mutation-modal, #event-mutation-modal) .mutation-modal-side { padding-block: 5px !important; }
    #prime-mutation-form #prime-slot-chip-list, #event-mutation-form #event-mutation-chip-list { max-height: 72px !important; }
}
