/* FilePile mobile optimization — touch-first layouts, safe areas, readable type */

:root {
    --mobile-pad: 1rem;
    --mobile-pad-lg: 1.25rem;
    --touch-min: 2.75rem;
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --safe-left: env(safe-area-inset-left, 0px);
    --safe-right: env(safe-area-inset-right, 0px);
}

/* Fluid type scale on small viewports */
@media (max-width: 900px) {
    .mkt-hero-copy h1,
    .mkt-inner-hero h1 {
        font-size: clamp(1.75rem, 5vw + 1rem, 2.5rem);
        line-height: 1.12;
    }
    .mkt-lead,
    .mkt-inner-hero .mkt-lead {
        font-size: clamp(0.95rem, 2.5vw + 0.65rem, 1.1rem);
    }
    .section-title,
    .mkt-section-head h2 {
        font-size: clamp(1.35rem, 3vw + 0.85rem, 1.75rem);
    }
}

/* ─── Tablet landscape (≤1100px) ─── */
@media (max-width: 1100px) {
    .pricing-plans-grid {
        grid-template-columns: 1fr;
        max-width: 22rem;
        margin-inline: auto;
        gap: 1.25rem;
    }
    .pricing-plans-section,
    .pricing-packs-section {
        padding: 2.5rem 0;
    }
    .security-layout,
    .team-layout,
    .tickets-layout,
    .reminders-layout {
        grid-template-columns: 1fr;
    }
    .mkt-footer-top {
        grid-template-columns: 1fr 1fr;
        gap: 1.5rem;
    }
    .mkt-pillar-grid,
    .mkt-capability-grid-trio {
        grid-template-columns: 1fr;
    }
}

/* ─── Primary mobile gate (≤900px) ─── */
@media (max-width: 900px) {
    .container {
        padding-left: var(--mobile-pad);
        padding-right: var(--mobile-pad);
    }
    /* Safe area padding on fixed/sticky chrome */
    .nav {
        padding-top: var(--safe-top);
    }
    .nav-inner {
        height: auto;
        min-height: calc(3.5rem + var(--safe-top));
        padding: 0.35rem 0;
    }
    .impersonate-bar {
        padding: 0.55rem var(--mobile-pad);
        padding-top: calc(0.55rem + var(--safe-top));
        font-size: 0.82rem;
        line-height: 1.45;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.25rem 0.5rem;
    }

    /* App shell */
    .app-main {
        padding: var(--mobile-pad);
        padding-bottom: calc(var(--mobile-pad) + var(--safe-bottom));
        min-width: 0;
    }
    .app-content {
        min-width: 0;
    }
    .app-header {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem 0.65rem;
        margin-bottom: 1rem;
    }
    .app-header-title {
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
        align-items: center;
    }
    .app-header h1 {
        font-size: 1.25rem;
        line-height: 1.25;
    }
    .app-header-title .text-muted {
        font-size: 0.8rem;
        overflow-wrap: anywhere;
    }
    .header-actions {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.45rem;
        width: auto;
        max-width: 100%;
        justify-content: flex-start;
    }
    .app-header:has(.profile-select) .header-actions {
        flex: 0 1 auto;
        width: auto;
        max-width: calc(100% - 2.75rem);
        order: 2;
        margin-left: auto;
    }
    .app-header:not(:has(.profile-select)) .header-actions {
        flex: 0 0 auto;
        margin-left: auto;
        order: 2;
    }
    .profile-select {
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
        max-width: min(13rem, 52vw);
    }
    .profile-select select {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        min-height: var(--control-height);
        font-size: 0.82rem;
    }
    .header-actions .btn-sm {
        flex: 0 0 auto;
        width: auto;
        min-height: var(--control-height);
        white-space: nowrap;
    }
    .notif-wrap {
        margin-left: auto;
        flex-shrink: 0;
    }
    .notif-btn {
        min-width: var(--touch-min);
        min-height: var(--touch-min);
    }

    /* Sidebar overlay */
    body.sidebar-open {
        overflow: hidden;
        touch-action: none;
    }
    .sidebar-overlay {
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, 0.45);
        z-index: 140;
        backdrop-filter: blur(2px);
    }
    .sidebar {
        padding-top: var(--safe-top);
        padding-bottom: var(--safe-bottom);
    }
    .sidebar-nav a {
        min-height: var(--touch-min);
        padding: 0.65rem 0.85rem;
        font-size: 0.95rem;
    }

    /* Cards & panels */
    .card {
        border-radius: calc(var(--radius) - 2px);
    }
    .card-header,
    .dash-chart-card > .card-header,
    .dash-vendors-card > .card-header,
    .dash-workspace-header {
        margin-left: calc(-1 * var(--mobile-pad-lg));
        margin-right: calc(-1 * var(--mobile-pad-lg));
        padding: 1rem var(--mobile-pad-lg);
    }
    .dash-workspace .card-header.dash-workspace-header {
        margin-left: -1.25rem;
        margin-right: -1.25rem;
    }

    /* Dashboard hero */
    .dash-hero-top {
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
    }
    .dash-hero {
        border-radius: calc(var(--radius) + 2px);
    }
    .dash-hero-main {
        padding: 1.25rem 1rem;
    }
    .dash-hero-actions {
        width: auto;
        gap: 0.45rem;
    }
    .dash-hero-actions .btn {
        flex: 0 1 auto;
        width: auto;
        min-width: 0;
    }
    .dash-stat-tiles {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.55rem;
        padding: 1rem 1.15rem 1.1rem;
    }
    .dash-stat-tile {
        padding: 0.95rem 1.05rem;
        min-width: 0;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.15rem;
    }
    .dash-stat-label,
    .dash-stat-value,
    .dash-stat-hint,
    .dash-stat-link {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }
    .dash-stat-value {
        font-size: 1.15rem;
        overflow-wrap: anywhere;
        word-break: break-word;
    }
    .dash-stat-hint,
    .dash-stat-link {
        overflow-wrap: anywhere;
        word-break: break-word;
        line-height: 1.35;
    }
    .dash-tax-stat-grid {
        grid-template-columns: 1fr;
    }

    /* Chart filters — stack on mobile */
    .dash-chart-card .card-header {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
    }
    .dash-chart-card .card-header > div:first-child {
        min-width: 0;
    }
    .expense-controls {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        gap: 0.5rem;
    }
    .expense-controls select {
        width: 100%;
        min-height: var(--touch-min);
        font-size: 0.9rem;
    }
    .expense-total-badge {
        align-self: flex-start;
        font-size: 0.85rem;
        padding: 0.35rem 0.75rem;
        max-width: 100%;
        overflow-wrap: anywhere;
    }
    .dash-tax-feature-head .btn {
        width: auto;
        align-self: flex-start;
        margin-left: 0;
        margin-top: 0;
    }
    .card-header .btn,
    .reminders-status-card .card-header .btn {
        width: auto;
        align-self: flex-start;
        margin-left: 0;
        margin-top: 0;
    }
    .dash-vendors-chart-caption {
        padding-inline: 0.15rem;
        overflow-wrap: anywhere;
    }
    .dash-insights {
        gap: 1rem;
    }
    .dash-chart-wrap {
        min-height: 180px;
    }
    .dash-chart-wrap canvas {
        max-height: 200px;
    }

    /* Workspace — scrollable tabs, no clipped overflow */
    .dash-surface-card.dash-workspace {
        overflow: visible;
    }
    .dash-workspace {
        overflow: visible;
    }
    .dash-workspace-header {
        gap: 0.65rem;
    }
    .dash-workspace-header .btn {
        width: auto;
        align-self: flex-start;
        flex: 0 0 auto;
    }
    .dash-workspace-tabs {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 0.35rem;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        margin-left: calc(-1 * var(--mobile-pad-lg));
        margin-right: calc(-1 * var(--mobile-pad-lg));
        padding: 0.4rem var(--mobile-pad-lg) 0.65rem;
        scroll-padding-inline: var(--mobile-pad-lg);
        mask-image: linear-gradient(90deg, #000 calc(100% - 1.75rem), transparent);
        -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 1.75rem), transparent);
    }
    .dash-workspace-tabs::-webkit-scrollbar {
        display: none;
    }
    .dash-workspace-tab {
        flex: 0 0 auto;
        min-height: var(--touch-min);
        padding: 0.5rem 0.75rem;
        white-space: nowrap;
        font-size: 0.8rem;
    }
    .dash-workspace-body {
        margin-left: calc(-1 * var(--mobile-pad-lg));
        margin-right: calc(-1 * var(--mobile-pad-lg));
        margin-bottom: calc(-1 * var(--mobile-pad-lg));
    }
    .dash-workspace .tab-panel {
        padding: 1rem var(--mobile-pad-lg) 1.15rem;
    }

    /* Upload zone */
    .dash-upload-zone {
        padding: 1.5rem 1rem;
        min-height: 10rem;
    }
    .dash-upload-title {
        font-size: 1.05rem;
    }

    /* Ledger — card rows */
    #tab-ledger .data-table.ledger-table thead {
        display: none;
    }
    #tab-ledger .data-table.ledger-table tbody tr {
        display: block;
        margin-bottom: 0.75rem;
        padding: 0.85rem 1rem;
        border: 1px solid var(--border);
        border-radius: 10px;
        background: var(--surface);
        box-shadow: var(--shadow);
    }
    #tab-ledger .data-table.ledger-table tbody tr.empty-row {
        border: none;
        box-shadow: none;
        padding: 1rem;
        text-align: center;
    }
    #tab-ledger .data-table.ledger-table td {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 0.75rem;
        padding: 0.35rem 0;
        border: none;
        font-size: 0.88rem;
    }
    #tab-ledger .data-table.ledger-table td::before {
        content: attr(data-label);
        font-size: 0.68rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        color: var(--muted);
        flex: 0 0 5.5rem;
    }
    #tab-ledger .data-table.ledger-table td.ledger-actions {
        flex-direction: column;
        align-items: stretch;
        padding-top: 0.5rem;
        margin-top: 0.35rem;
        border-top: 1px solid var(--border);
    }
    #tab-ledger .data-table.ledger-table td.ledger-actions::before {
        content: none;
    }
    #tab-ledger .data-table.ledger-table td.ledger-actions .btn {
        width: 100%;
        justify-content: center;
        min-height: var(--touch-min);
    }
    #tab-ledger .ledger-category-cell {
        flex-wrap: wrap;
        justify-content: flex-end;
        text-align: right;
    }

    /* Queue table — simplified */
    #tab-processing .data-table thead {
        display: none;
    }
    #tab-processing .data-table tbody tr {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 0.35rem 0.75rem;
        padding: 0.85rem 0;
        border-bottom: 1px solid var(--border);
    }
    #tab-processing .data-table td:nth-child(1) {
        grid-column: 1 / -1;
        font-weight: 600;
    }
    #tab-processing .data-table td:nth-child(5) {
        grid-column: 1 / -1;
    }
    #tab-processing .data-table td:nth-child(5) .btn {
        width: 100%;
        justify-content: center;
        min-height: var(--touch-min);
    }

    /* Browse tree */
    .browse-file-row {
        flex-wrap: wrap;
        align-items: flex-start;
        padding: 0.85rem 0;
    }
    .browse-file-info {
        flex: 1 1 100%;
    }
    .browse-file-actions,
    .browse-invoice-docs {
        display: flex;
        flex-wrap: wrap;
        gap: 0.35rem;
        width: 100%;
    }
    .browse-file-actions .btn,
    .browse-invoice-docs .btn,
    .browse-file-row > .btn {
        flex: 1 1 calc(50% - 0.2rem);
        justify-content: center;
        min-height: var(--touch-min);
    }
    .browse-company-head,
    .browse-month-head {
        flex-wrap: wrap;
        gap: 0.5rem;
    }
    .browse-company-head .btn,
    .browse-month-head .btn {
        width: 100%;
        justify-content: center;
        min-height: var(--touch-min);
    }

    /* Vendor list — card style */
    .dash-vendor-list-head {
        display: none;
    }
    .dash-vendor-row {
        display: grid;
        grid-template-columns: 1.75rem 1fr;
        grid-template-rows: auto auto;
        gap: 0.25rem 0.65rem;
        padding: 0.75rem 0;
        border-bottom: 1px solid var(--border);
    }
    .dash-vendor-rank {
        grid-row: 1 / 3;
        align-self: center;
    }
    .dash-vendor-name {
        grid-column: 2;
        font-weight: 600;
    }
    .dash-vendor-share,
    .dash-vendor-amount {
        grid-column: 2;
        font-size: 0.82rem;
        color: var(--muted);
    }
    .dash-vendor-share::before {
        content: 'Share: ';
        font-weight: 600;
        color: var(--text);
    }
    .dash-vendor-amount::before {
        content: 'Spend: ';
        font-weight: 600;
        color: var(--text);
    }

    /* Mobile sticky upload bar (dashboard) */
    .dash-mobile-bar {
        display: flex;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 120;
        padding: 0.65rem var(--mobile-pad);
        padding-bottom: calc(0.65rem + var(--safe-bottom));
        background: rgba(255, 255, 255, 0.92);
        border-top: 1px solid var(--border);
        backdrop-filter: blur(12px);
        gap: 0.5rem;
        box-shadow: 0 -4px 20px rgba(15, 23, 42, 0.08);
    }
    .dash-mobile-bar .btn {
        flex: 1 1 auto;
        min-height: 3rem;
        justify-content: center;
        font-size: 0.95rem;
    }
    body.has-dash-mobile-bar .app-main {
        padding-bottom: calc(5rem + var(--safe-bottom));
    }
    body.has-dash-mobile-bar .ai-chat-fab {
        bottom: calc(4.5rem + var(--safe-bottom));
    }

    /* Business HQ */
    .hq-hero-actions {
        width: auto;
        display: flex;
        flex-wrap: wrap;
        gap: 0.45rem;
    }
    .hq-hero-actions .btn {
        flex: 0 1 auto;
        width: auto;
        min-height: var(--control-height);
        justify-content: center;
        min-width: 0;
    }
    .hq-hero-main {
        padding: 1.25rem 1rem;
    }
    .hq-hero-metrics {
        padding: 1rem;
    }
    .hq-panel-head {
        gap: 0.65rem;
    }
    .hq-panel-head h3 {
        font-size: 1.05rem;
    }
    .hq-metric-grid {
        grid-template-columns: 1fr;
    }

    /* Account pages */
    .acct-hero-main {
        padding: 1.25rem;
    }
    .acct-hero-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.65rem;
        padding: 1rem 1.25rem;
    }
    .acct-panel-head {
        flex-direction: column;
        align-items: stretch;
    }
    .acct-panel-head .btn {
        width: auto;
        align-self: flex-start;
        min-height: var(--control-height);
    }
    .acct-hero-actions .btn {
        flex: 0 1 auto;
        width: auto;
    }
    .platform-invoice-header {
        flex-direction: column;
        align-items: stretch;
    }

    /* Auth */
    .auth-page {
        padding: var(--mobile-pad);
        min-height: 100dvh;
        align-items: flex-start;
        padding-top: max(1.5rem, var(--safe-top));
    }
    .auth-card {
        padding: 1.5rem var(--mobile-pad-lg);
        width: 100%;
        max-width: 100%;
        border-radius: 12px;
    }
    .auth-card .btn {
        min-height: var(--touch-min);
        width: 100%;
    }

    /* Marketing */
    .mkt-hero-home {
        padding: 2rem 0 1.5rem;
    }
    .mkt-hero-cta {
        flex-direction: column;
        width: 100%;
    }
    .mkt-hero-cta .btn-lg {
        width: 100%;
        min-height: 3rem;
        justify-content: center;
    }
    .mkt-hero-links {
        flex-direction: column;
        align-items: stretch;
    }
    .mkt-link-btn {
        min-height: var(--touch-min);
        justify-content: center;
    }
    .mkt-section {
        padding: 2.25rem 0;
    }
    .mkt-home-stats-grid {
        grid-template-columns: 1fr 1fr;
        gap: 0.65rem;
    }
    .mkt-home-stat {
        padding: 0.85rem;
    }
    .mkt-footer-top {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    .mkt-footer-cta .btn {
        width: 100%;
        min-height: var(--touch-min);
    }
    .features-modal-grid {
        grid-template-columns: 1fr;
    }

    /* Docs */
    .docs-search {
        flex-direction: row;
        align-items: stretch;
        gap: 0.5rem;
        max-width: 100%;
    }
    .docs-search input {
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
        min-height: var(--control-height);
    }
    .docs-search .btn {
        flex: 0 0 auto;
        width: auto;
        min-height: var(--control-height);
        white-space: nowrap;
    }
    .docs-nav {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 0.35rem;
        padding-bottom: 0.5rem;
        margin: 0 -0.25rem 1rem;
        mask-image: linear-gradient(90deg, transparent, #000 0.35rem, #000 calc(100% - 0.35rem), transparent);
    }
    .docs-nav::-webkit-scrollbar {
        display: none;
    }
    .docs-nav a {
        flex: 0 0 auto;
        white-space: nowrap;
        min-height: var(--touch-min);
        display: inline-flex;
        align-items: center;
        padding: 0.45rem 0.85rem;
        border-radius: 999px;
        border: 1px solid var(--border);
        background: var(--surface);
        font-size: 0.85rem;
    }
    .docs-nav a.active {
        background: var(--primary-light);
        border-color: rgba(79, 70, 229, 0.25);
        color: var(--primary);
    }
    .doc-content {
        padding: 1.25rem var(--mobile-pad);
    }
    .doc-article-layout {
        gap: 0;
    }
    .docs-article-card {
        border-radius: 10px;
    }
    .docs-grid {
        grid-template-columns: 1fr;
        gap: 0.85rem;
    }
    .docs-card {
        min-height: auto;
    }
    .mkt-inner-hero {
        padding: 2rem 0 1.5rem;
    }
    .mkt-inner-hero-actions {
        flex-direction: column;
        width: 100%;
    }
    .mkt-inner-hero-actions .btn-lg {
        width: 100%;
        min-height: 3rem;
        justify-content: center;
    }
    .mkt-compare-table-wrap {
        margin: 0 calc(-1 * var(--mobile-pad));
        padding: 0 var(--mobile-pad);
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .mkt-faq-item summary {
        min-height: var(--touch-min);
        display: flex;
        align-items: center;
    }

    /* Legal */
    .legal-tabs {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 0.35rem;
        padding: 0.5rem var(--mobile-pad);
    }
    .legal-tabs::-webkit-scrollbar {
        display: none;
    }
    .legal-tabs a {
        flex: 0 0 auto;
        white-space: nowrap;
        min-height: var(--touch-min);
        display: inline-flex;
        align-items: center;
        padding: 0 1rem;
    }

    /* Pricing */
    .pricing-card {
        padding: 1.5rem 1.25rem;
    }
    .pricing-card .btn {
        min-height: var(--touch-min);
        width: 100%;
    }
    .pricing-pack-row {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
    }
    .pricing-pack-row .btn {
        width: 100%;
        min-height: var(--touch-min);
    }

    /* Tables — horizontal scroll fallback */
    .table-wrap {
        margin: 0 calc(-1 * var(--mobile-pad));
        padding: 0 var(--mobile-pad);
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .data-table {
        font-size: 0.85rem;
    }
    .data-table .btn-sm {
        min-height: 2.25rem;
    }

    /* Forms */
    .form-row {
        flex-direction: column;
    }
    .form-row label {
        width: 100%;
    }
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="number"],
    input[type="search"],
    input[type="url"],
    input[type="tel"],
    textarea {
        font-size: 1rem;
        min-height: var(--touch-min);
    }

    /* Pagination */
    .list-pagination {
        flex-wrap: wrap;
        justify-content: center;
    }
    .list-pagination .list-page-btn {
        min-height: var(--touch-min);
        min-width: 6rem;
        flex: 1 1 auto;
    }

    /* Security history */
    .security-history-panel .data-table thead {
        display: none;
    }
    .admin-login-history-table tbody tr,
    .security-history-panel tbody tr {
        display: block;
        padding: 0.85rem 0;
        border-bottom: 1px solid var(--border);
    }
    .admin-login-history-table td,
    .security-history-panel td {
        display: flex;
        justify-content: space-between;
        gap: 0.75rem;
        padding: 0.2rem 0;
        border: none;
    }
    .admin-login-history-table td::before,
    .security-history-panel td::before {
        content: attr(data-label);
        font-size: 0.68rem;
        font-weight: 700;
        text-transform: uppercase;
        color: var(--muted);
        flex: 0 0 5rem;
    }

    /* Tickets */
    .ticket-list-item {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
    }
    .ticket-list-item .btn {
        width: 100%;
        min-height: var(--touch-min);
    }

    /* AI chat */
    .ai-chat-fab {
        right: var(--mobile-pad);
        bottom: calc(var(--mobile-pad) + var(--safe-bottom));
        min-width: 3.25rem;
        min-height: 3.25rem;
    }

    /* Dialogs */
    .dialog-actions {
        flex-direction: column-reverse;
        gap: 0.5rem;
    }
    .dialog-actions .btn {
        width: 100%;
        min-height: var(--touch-min);
    }

    /* Alerts */
    .alert {
        font-size: 0.9rem;
        padding: 0.85rem 1rem;
    }
}

/* ─── Narrow phones (≤480px) ─── */
@media (max-width: 480px) {
    .dash-stat-tiles {
        grid-template-columns: 1fr;
        padding: 1rem 1.1rem 1.05rem;
    }
    .dash-stat-tile {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.2rem;
        padding: 1rem 1.1rem;
    }
    .dash-workspace-tab {
        padding: 0.45rem 0.6rem;
        font-size: 0.76rem;
        gap: 0.3rem;
    }
    .dash-stat-label {
        flex: none;
    }
    .mkt-home-stats-grid {
        grid-template-columns: 1fr;
    }
    .acct-hero-metrics {
        grid-template-columns: 1fr;
    }
    .hq-hero-actions .btn {
        flex: 0 1 auto;
        width: auto;
    }
    .dash-mobile-bar {
        flex-direction: row;
    }
    .header-actions .btn-sm {
        flex: 0 0 auto;
        width: auto;
    }
    .profile-select {
        max-width: min(11rem, 48vw);
    }
}

/* ─── Desktop only: hide mobile-only chrome ─── */
@media (min-width: 901px) {
    .dash-mobile-bar {
        display: none !important;
    }
}

/* ─── Admin mobile (≤900px) ─── */
@media (max-width: 900px) {
    body.admin-body .app-main {
        padding: 0;
    }
    body.admin-body .admin-header {
        padding: 0.85rem var(--mobile-pad);
        padding-top: calc(0.85rem + var(--safe-top));
    }
    body.admin-body .admin-header h1 {
        font-size: 1.2rem;
    }
    body.admin-body .admin-content,
    body.admin-body .admin-page {
        padding: var(--mobile-pad);
        padding-bottom: calc(var(--mobile-pad) + var(--safe-bottom));
    }
    body.admin-body .admin-grid {
        grid-template-columns: 1fr;
    }
    body.admin-body .admin-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.65rem;
    }
    body.admin-body .admin-stat-card {
        padding: 0.85rem;
    }
    body.admin-body .admin-stat-card .btn {
        width: auto;
        align-self: flex-start;
        min-height: var(--control-height);
        justify-content: center;
    }
    body.admin-body .card {
        padding: 1rem;
        overflow: hidden;
    }
    body.admin-body .card > h2 {
        font-size: 1.05rem;
        margin-bottom: 0.75rem;
    }
    body.admin-body .card .table-wrap,
    body.admin-body .card > .data-table {
        display: block;
        width: calc(100% + 2rem);
        margin-left: -1rem;
        margin-right: -1rem;
        padding: 0 1rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    body.admin-body .data-table {
        min-width: 32rem;
    }
    body.admin-body .data-table .btn-sm {
        min-height: 2.25rem;
        white-space: nowrap;
    }
    body.admin-body .admin-form .form-row {
        grid-template-columns: 1fr;
    }
    body.admin-body .admin-plan-feature-grid {
        grid-template-columns: 1fr;
    }
    body.admin-body .admin-plan-limit-grid {
        grid-template-columns: 1fr;
    }
    body.admin-body .admin-ticket-filters {
        flex-direction: column;
        align-items: stretch;
    }
    body.admin-body .admin-ticket-filters .btn,
    body.admin-body .admin-ticket-filters select {
        width: 100%;
        min-height: var(--touch-min);
    }
    body.admin-body .admin-page-header {
        flex-direction: column;
        align-items: stretch;
    }
    body.admin-body .admin-client-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    body.admin-body .admin-client-tabs::-webkit-scrollbar {
        display: none;
    }
}

@media (max-width: 480px) {
    body.admin-body .admin-stats {
        grid-template-columns: 1fr;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .sidebar,
    .nav-drawer,
    .dash-mobile-bar {
        transition: none;
    }
}
