/* Aparture mobile shell additions.
   Kept as a standalone public asset so shared-hosting deployment does not
   require rebuilding Vite assets. */
.mobile-app-nav {
    display: none;
}

@media (max-width: 1023px) {
    .mobile-app-header {
        position: sticky !important;
        top: 0;
        z-index: 45;
        min-height: 3.75rem;
        border-bottom: 1px solid rgba(228, 228, 231, .9);
        background: rgba(255, 255, 255, .94) !important;
        -webkit-backdrop-filter: blur(18px);
        backdrop-filter: blur(18px);
        box-shadow: 0 4px 18px rgba(15, 23, 42, .06);
    }

    .mobile-app-nav {
        position: fixed;
        inset-inline: 0;
        bottom: 0;
        z-index: 45;
        display: block;
        border-top: 1px solid rgba(228, 228, 231, .92);
        background: rgba(255, 255, 255, .96);
        -webkit-backdrop-filter: blur(18px);
        backdrop-filter: blur(18px);
        box-shadow: 0 -10px 30px rgba(15, 23, 42, .08);
        padding-bottom: calc(.35rem + env(safe-area-inset-bottom));
    }

    .mobile-app-nav-inner {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        max-width: 32rem;
        margin-inline: auto;
        padding: .375rem .375rem 0;
    }

    .mobile-app-nav-item {
        display: flex;
        min-width: 0;
        min-height: 3.65rem;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: .2rem;
        border-radius: 1rem;
        padding-inline: .2rem;
        color: #71717a;
        font-size: .625rem;
        font-weight: 700;
        line-height: .85rem;
        text-decoration: none;
        transition: background-color .16s ease, color .16s ease, transform .16s ease;
    }

    .mobile-app-nav-item:active {
        transform: scale(.97);
        background: #f4f4f5;
    }

    .mobile-app-nav-item.is-active {
        color: #12358f;
        background: #eef3ff;
    }

    .mobile-app-nav-icon {
        display: flex;
        width: 1.8rem;
        height: 1.8rem;
        align-items: center;
        justify-content: center;
        border-radius: .75rem;
        color: #71717a;
    }

    .mobile-app-nav-icon svg {
        width: 1.05rem;
        height: 1.05rem;
    }

    .mobile-app-nav-item.is-active .mobile-app-nav-icon {
        color: #fff;
        background: #173fa9;
        box-shadow: 0 4px 10px rgba(23, 63, 169, .22);
    }

    .mobile-app-nav-item > span:last-child {
        display: block;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mobile-app-content {
        min-width: 0;
        padding-bottom: calc(6.25rem + env(safe-area-inset-bottom)) !important;
    }

    /* Any data table inside a horizontal-scroll wrapper remains readable
       instead of crushing columns on a phone. */
    .overflow-x-auto table {
        min-width: 40rem;
    }

    button,
    a,
    input,
    select,
    textarea {
        -webkit-tap-highlight-color: transparent;
    }
}

@media (min-width: 640px) {
    .sm\:w-auto {
        width: auto;
    }
}
