/* 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);
    /* Upload / workspace quick bar: button row + vertical padding + safe area */
    --dash-mobile-bar-clearance: calc(3rem + 1.3rem + var(--safe-bottom) + 1.5rem);
    --dash-mobile-bar-height: calc(0.65rem + 3rem + 0.65rem + var(--safe-bottom));
    --ai-assistant-fab-gap: 1rem;
    --ai-assistant-fab-bottom: max(1rem, var(--safe-bottom));
    --ai-assistant-fab-bottom-bar: calc(var(--dash-mobile-bar-height) + var(--ai-assistant-fab-gap));
    --ai-assistant-dashboard-bottom-stack: calc(var(--ai-assistant-fab-bottom-bar) + 3.5rem + 0.85rem);
    --ai-assistant-panel-max: 600px;
    --ai-assistant-panel-min: 400px;
    --ai-assistant-panel-top-gap: 2.5rem;
}

/* 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: calc(var(--mobile-pad) + var(--safe-left));
        padding-right: calc(var(--mobile-pad) + var(--safe-right));
    }
    /* 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-top: 0.35rem;
        padding-bottom: 0.35rem;
        padding-left: calc(var(--mobile-pad) + var(--safe-left));
        padding-right: calc(var(--mobile-pad) + var(--safe-right));
    }
    .nav-inner .logo {
        padding-left: 0.1rem;
    }
    .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-left: calc(var(--mobile-pad) + var(--safe-left));
        padding-right: calc(var(--mobile-pad) + var(--safe-right));
        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: nowrap;
        align-items: center;
        gap: 0.45rem;
        width: auto;
        max-width: 100%;
        justify-content: flex-end;
    }
    .app-header:has(.profile-select) .header-actions {
        flex: 0 1 auto;
        width: auto;
        max-width: 100%;
        order: 2;
        margin-left: auto;
        flex-wrap: nowrap;
    }
    .app-header:not(:has(.profile-select)) .header-actions {
        flex: 0 0 auto;
        margin-left: auto;
        order: 2;
    }
    .profile-select {
        flex: 0 1 auto;
        width: auto;
        min-width: 0;
        max-width: min(11rem, 46vw);
    }
    .profile-select select {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        min-height: var(--control-height);
        font-size: 0.82rem;
        padding-right: 1.75rem;
    }
    .header-actions .btn-sm {
        flex: 0 0 auto;
        width: auto;
        min-height: var(--control-height);
        white-space: nowrap;
        padding-inline: 0.65rem;
    }
    .notif-wrap {
        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: calc(1.5rem + var(--safe-top));
        padding-bottom: calc(1.5rem + var(--safe-bottom));
        padding-left: calc(1.25rem + var(--safe-left));
        padding-right: calc(1rem + var(--safe-right));
    }
    .sidebar .logo {
        display: inline-block;
        padding-left: 0.1rem;
    }
    .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.2rem 1.15rem;
        box-sizing: border-box;
    }
    .dash-stat-tile {
        padding: 1rem 1.15rem;
        min-width: 0;
        overflow: hidden;
        box-sizing: border-box;
        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;
    }

    /* Tax year calendar — horizontal scroll timeline on narrow viewports */
    .tax-calc-calendar-wrap,
    .tax-calc-calendar,
    .dash-tax-calendar,
    .tax-calc-calendar-grid {
        min-width: 0;
    }
    .tax-calc-calendar-scroll {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        width: 100%;
        max-width: 100%;
        padding-bottom: 0.35rem;
        touch-action: pan-x;
        overscroll-behavior-x: contain;
    }
    .tax-calc-calendar-wrap .tax-calc-calendar-scroll,
    .tax-calc-calendar-wrap .tax-calc-calendar .tax-calc-calendar-scroll {
        margin-inline: -1.1rem;
        padding-inline: 1.1rem;
    }
    .dash-tax-calendar .tax-calc-calendar-scroll {
        margin-inline: -0.9rem;
        padding-inline: 0.9rem;
    }
    .tax-calc-calendar-track {
        min-width: 42rem;
        width: max-content;
    }
    .tax-calc-cal-months,
    .tax-calc-cal-quarters {
        grid-template-columns: repeat(12, 3.25rem);
        width: max-content;
        min-width: 42rem;
    }
    .tax-calc-cal-month {
        min-width: 3.25rem;
        min-height: 2rem;
        padding: 0.3rem 0.2rem;
        font-size: 0.78rem;
        white-space: nowrap;
    }
    .tax-calc-cal-quarter {
        min-height: 0;
        min-width: 0;
        padding: 0.5rem 0.4rem;
        font-size: 0.78rem;
        line-height: 1.35;
    }
    .dash-tax-calendar .tax-calc-cal-month {
        min-height: 2rem;
        font-size: 0.78rem;
    }
    .dash-tax-calendar .tax-calc-cal-quarter {
        min-height: 0;
        font-size: 0.78rem;
        line-height: 1.35;
    }
    .tax-calc-cal-quarter-estimate {
        min-width: 0;
        overflow-wrap: anywhere;
    }
    .tax-calc-cal-quarter-estimate-value {
        font-size: 0.88rem;
    }
    .tax-calc-calendar-head h5 {
        font-size: 0.95rem;
        line-height: 1.35;
    }
    .tax-calc-calendar-head p {
        font-size: 0.85rem;
        line-height: 1.45;
    }
    .tax-calc-calendar-dates,
    .dash-tax-calendar .tax-calc-calendar-dates {
        margin-top: 0.65rem;
    }
    .tax-calc-cal-date {
        padding: 0.55rem 0.65rem;
        font-size: 0.85rem;
    }
    .dash-tax-calendar .tax-calc-cal-date {
        font-size: 0.85rem;
        padding: 0.55rem 0.65rem;
    }

    .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;
        position: relative;
        z-index: 1;
    }
    .dash-workspace-header {
        gap: 0.65rem;
        overflow: hidden;
        max-width: 100%;
    }
    .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% - 2rem), transparent);
        -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 2rem), transparent);
    }
    .dash-workspace-tabs::-webkit-scrollbar {
        display: none;
    }
    .dash-workspace-tab {
        flex: 0 0 auto;
        min-height: var(--touch-min);
        padding: 0.5rem 0.7rem;
        white-space: nowrap;
        font-size: 0.8rem;
        max-width: none;
    }
    .dash-workspace-body {
        margin-left: calc(-1 * var(--mobile-pad-lg));
        margin-right: calc(-1 * var(--mobile-pad-lg));
        margin-bottom: 0;
    }
    body.has-dash-mobile-bar .dash-aside {
        position: relative;
        z-index: 2;
        padding-bottom: 0.5rem;
        scroll-margin-bottom: var(--dash-mobile-bar-clearance);
    }
    body.has-dash-mobile-bar .dash-expense-tools {
        scroll-margin-bottom: var(--dash-mobile-bar-clearance);
    }
    .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;
    }
    .dash-upload-meta {
        border-radius: 8px;
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
        line-height: 1.45;
        padding: 0.55rem 0.75rem;
        text-align: center;
        white-space: normal;
    }
    .dash-upload-hint {
        border-radius: 8px;
    }

    /* 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-left: calc(var(--mobile-pad) + var(--safe-left));
        padding-right: calc(var(--mobile-pad) + var(--safe-right));
        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: var(--dash-mobile-bar-clearance);
    }

    /* 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 {
        grid-template-columns: 1fr;
        padding: 1rem 1.15rem 1.1rem;
        gap: 0.55rem;
    }
    .hq-hero-metric {
        padding: 0.95rem 1.05rem;
        min-width: 0;
    }
    .hq-hero-metric .hq-metric-label,
    .hq-hero-metric .hq-metric-value {
        overflow-wrap: anywhere;
        word-break: break-word;
    }
    .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;
    }
    .aff-hero-inner {
        padding: 1.5rem 1.25rem 1.65rem;
    }
    .aff-stats-grid,
    .aff-share-grid,
    .aff-benefits-grid,
    .aff-enroll-grid,
    .aff-charts-grid,
    .aff-data-grid {
        grid-template-columns: 1fr;
    }
    .aff-copy-row .btn {
        width: 100%;
        justify-content: center;
    }
    .aff-period-stats {
        flex-direction: column;
    }
    .aff-customer-title {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.35rem;
    }
    .platform-invoice-header {
        flex-direction: column;
        align-items: stretch;
    }
    .profile-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.65rem;
    }
    .profile-item > div {
        min-width: 0;
        width: 100%;
    }
    .profile-item span {
        overflow-wrap: anywhere;
        word-break: break-word;
    }
    .profile-item .btn {
        width: auto;
        align-self: flex-start;
        flex-shrink: 0;
    }

    /* 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 assistant — FAB fixed bottom-right; popup stacks above it */
    .header-actions .ai-assistant-toggle {
        display: none;
    }
    .ai-assistant-widget {
        display: block;
        position: static;
        width: 0;
        height: 0;
        overflow: visible;
        z-index: 180;
        pointer-events: none;
    }
    .ai-assistant-fab {
        display: flex;
        position: fixed;
        top: auto !important;
        left: auto !important;
        right: max(1rem, var(--safe-right));
        bottom: var(--ai-assistant-fab-bottom);
        align-items: center;
        justify-content: center;
        width: 3.5rem;
        height: 3.5rem;
        min-width: 3.5rem;
        min-height: 3.5rem;
        margin: 0;
        padding: 0;
        border: none;
        border-radius: 999px;
        background: linear-gradient(135deg, #6366f1, #4f46e5);
        color: #fff;
        box-shadow: 0 12px 28px rgba(79, 70, 229, 0.38);
        cursor: pointer;
        transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
        flex-shrink: 0;
        z-index: 182;
        pointer-events: auto;
    }
    body:has(.dash-mobile-bar) .ai-assistant-fab,
    body.has-dash-mobile-bar .ai-assistant-fab {
        bottom: var(--ai-assistant-fab-bottom-bar) !important;
        right: max(1rem, var(--safe-right));
        z-index: 182;
    }
    .ai-assistant-fab:hover {
        transform: translateY(-2px);
        box-shadow: 0 16px 32px rgba(79, 70, 229, 0.45);
    }
    .ai-assistant-widget-open .ai-assistant-fab,
    .ai-assistant-fab[aria-expanded="true"] {
        background: #1e293b;
        box-shadow: 0 8px 20px rgba(15, 23, 42, 0.28);
        transform: none;
    }
    .ai-assistant-rail {
        display: none !important;
        position: fixed !important;
        top: auto !important;
        left: auto !important;
        right: max(1rem, var(--safe-right)) !important;
        bottom: calc(var(--ai-assistant-fab-bottom) + 3.5rem + 0.85rem) !important;
        flex: none !important;
        width: min(380px, calc(100vw - 2rem)) !important;
        min-width: 0 !important;
        max-width: min(380px, calc(100vw - 2rem)) !important;
        height: auto !important;
        overflow: visible !important;
        border: none !important;
        background: transparent !important;
        box-shadow: none !important;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(12px) scale(0.96);
        transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
        z-index: 181;
    }
    body:has(.dash-mobile-bar) .ai-assistant-rail,
    body.has-dash-mobile-bar .ai-assistant-rail {
        bottom: var(--ai-assistant-dashboard-bottom-stack) !important;
        right: max(1rem, var(--safe-right)) !important;
    }
    body.ai-assistant-open .ai-assistant-rail,
    .ai-assistant-widget-open .ai-assistant-rail {
        display: block !important;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0) scale(1);
    }
    body.ai-assistant-open .ai-assistant-rail {
        flex: none !important;
        width: min(380px, calc(100vw - 2rem)) !important;
        min-width: 0 !important;
        max-width: min(380px, calc(100vw - 2rem)) !important;
        border-left-color: transparent !important;
        box-shadow: none !important;
    }
    .ai-assistant-panel {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: auto !important;
        min-height: var(--ai-assistant-panel-min);
        max-height: min(
            var(--ai-assistant-panel-max),
            calc(100dvh - 7rem - var(--ai-assistant-panel-top-gap) - var(--safe-top) - var(--safe-bottom))
        );
        border: 1px solid var(--border);
        border-radius: 16px;
        box-shadow: 0 24px 48px rgba(15, 23, 42, 0.18);
        overflow: hidden;
        display: flex !important;
        flex-direction: column !important;
    }
    body:has(.dash-mobile-bar) .ai-assistant-panel,
    body.has-dash-mobile-bar .ai-assistant-panel {
        min-height: min(var(--ai-assistant-panel-min), calc(42dvh - var(--safe-top)));
        max-height: min(
            var(--ai-assistant-panel-max),
            calc(
                100dvh - var(--ai-assistant-dashboard-bottom-stack)
                - var(--ai-assistant-panel-top-gap) - var(--safe-top)
            )
        );
    }
    body.ai-assistant-open .ai-assistant-panel {
        animation: ai-assistant-popup-in 0.2s ease;
    }
    @keyframes ai-assistant-popup-in {
        from { opacity: 0; transform: translateY(12px) scale(0.96); }
        to { opacity: 1; transform: translateY(0) scale(1); }
    }
    .ai-assistant-head {
        padding: 1rem 1.1rem;
        background: linear-gradient(135deg, #4f46e5 0%, #6366f1 100%);
        color: #fff;
        border-bottom: none;
    }
    .ai-assistant-head h2 {
        color: #fff;
    }
    .ai-assistant-head p {
        color: rgba(255, 255, 255, 0.88);
    }
    .ai-assistant-head-btn {
        background: rgba(255, 255, 255, 0.12);
        border-color: transparent;
        color: #fff;
    }
    .ai-assistant-head-btn:hover {
        background: rgba(255, 255, 255, 0.22);
        color: #fff;
        border-color: transparent;
    }
    .ai-assistant-messages {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        max-height: none;
    }
    .ai-assistant-composer {
        padding: 0.85rem 1rem calc(0.85rem + var(--safe-bottom));
    }
    .ai-cite-popover {
        z-index: 220;
    }

    /* Recurring / monthly upload tracker — stack name + subtitle cleanly */
    .recurring-list li {
        flex-direction: column;
        align-items: stretch;
        gap: 0.55rem;
        padding: 0.75rem 0;
    }
    .recurring-list-info {
        width: 100%;
        gap: 0.15rem;
    }
    .recurring-list-info strong,
    .recurring-list-info span {
        display: block;
        width: 100%;
        padding-left: 0;
        margin-left: 0;
        line-height: 1.4;
    }
    .recurring-list-toolbar {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 0.35rem;
        padding-left: 0;
    }

    /* Modals — full viewport, above fixed dashboard chrome */
    dialog[open] {
        position: fixed;
        inset: 0;
        z-index: 300;
        margin: 0;
        max-height: 100dvh;
    }
    .ticket-report-dialog[open],
    .manual-invoice-dialog[open],
    .recurring-edit-dialog[open],
    .task-review-dialog[open],
    .billing-doc-dialog[open],
    .billing-revise-dialog[open],
    dialog.profile-modal[open],
    .demo-modal[open],
    .mkt-feature-modal[open] {
        width: 100% !important;
        max-width: 100% !important;
        height: 100% !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
        padding: 0 !important;
    }
    .ticket-report-form,
    .ticket-report-success,
    .manual-invoice-shell,
    .recurring-edit-shell {
        max-height: 100dvh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
    }
    body.dash-dialog-open .dash-mobile-bar,
    body:has(dialog[open]) .dash-mobile-bar,
    body.dash-dialog-open .ai-assistant-fab,
    body.dash-dialog-open .ai-assistant-rail,
    body:has(dialog[open]) .ai-assistant-fab,
    body:has(dialog[open]) .ai-assistant-rail,
    body.admin-body:has(dialog[open]) .admin-header,
    body.admin-body:has(dialog[open]) .sidebar-toggle {
        visibility: hidden;
        pointer-events: none;
    }

    /* Tax revenue by month — card rows grouped by quarter */
    .tax-calc-revenue-toolbar {
        padding: 0.75rem var(--mobile-pad-lg);
    }
    .tax-calc-revenue-body {
        min-width: 0;
        overflow-x: hidden;
    }
    #vat-month-grid {
        min-width: 0;
    }
    #vat-month-grid .tax-calc-revenue-head {
        display: none;
    }
    #vat-month-grid .tax-calc-revenue-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "month month"
            "revenue revenue"
            "deductible net";
        gap: 0.5rem 0.75rem;
        padding: 0.85rem var(--mobile-pad-lg);
        align-items: start;
    }
    #vat-month-grid .tax-calc-revenue-month {
        grid-area: month;
        grid-column: auto;
        font-size: 0.95rem;
        font-weight: 700;
        padding-bottom: 0.15rem;
    }
    #vat-month-grid .tax-calc-revenue-input {
        grid-area: revenue;
        min-width: 0;
        flex-direction: column;
        align-items: stretch;
    }
    #vat-month-grid .tax-calc-revenue-input input {
        font-size: 1rem;
        min-height: var(--touch-min);
        width: 100%;
    }
    #vat-month-grid .tax-calc-mobile-label {
        display: block;
        font-size: 0.68rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        color: var(--muted);
        margin-bottom: 0.2rem;
    }
    #vat-month-grid .tax-calc-revenue-readonly {
        grid-area: deductible;
        min-width: 0;
        min-height: 0;
        overflow-wrap: anywhere;
        text-align: left;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 0.15rem;
    }
    #vat-month-grid .tax-calc-revenue-readonly.tax-calc-revenue-net {
        grid-area: net;
    }
    #vat-month-grid .tax-calc-revenue-readonly::before {
        content: attr(data-label);
        font-size: 0.68rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        color: var(--muted);
    }
    .tax-calc-quarter-head {
        background: color-mix(in srgb, var(--primary) 7%, var(--surface2));
        border-bottom: 1px solid var(--border);
    }
    .tax-calc-quarter-label {
        padding: 0.65rem var(--mobile-pad-lg) 0.45rem;
        font-size: 0.78rem;
        color: var(--primary);
        letter-spacing: 0.08em;
    }
    .tax-calc-quarter + .tax-calc-quarter {
        border-top-width: 2px;
    }
    .tax-calc-quarterly-estimates-grid {
        grid-template-columns: 1fr;
    }

    /* 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.15rem 1.1rem;
    }
    .dash-stat-tile {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.2rem;
        padding: 1rem 1.15rem;
    }
    .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(10rem, 42vw);
    }

    /* Tax revenue — keep structured card grid on narrow phones */
    #vat-month-grid .tax-calc-revenue-row {
        gap: 0.45rem 0.65rem;
        padding: 0.85rem var(--mobile-pad);
    }
    .tax-calc-quarter-label {
        padding-left: var(--mobile-pad);
        padding-right: var(--mobile-pad);
    }
}

/* ─── Tablet (768px–1024px) — undo phone-only bleed, keep compact controls ─── */
@media (min-width: 768px) and (max-width: 1024px) {
    .card-header,
    .dash-chart-card > .card-header,
    .dash-vendors-card > .card-header,
    .dash-workspace-header {
        margin-left: 0;
        margin-right: 0;
        padding: 1rem 1.25rem;
    }
    .dash-workspace .card-header.dash-workspace-header {
        margin-left: 0;
        margin-right: 0;
    }
    .dash-workspace-body {
        margin-left: 0;
        margin-right: 0;
        margin-bottom: 0;
    }
    .dash-workspace .tab-panel {
        padding: 1rem 1.25rem 1.15rem;
    }
    .acct-panel-head {
        flex-direction: row;
        align-items: center;
    }
    .acct-panel-head .btn {
        align-self: center;
    }
    .hq-hero-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 1rem 1.25rem;
    }
    .hq-metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .mkt-inner-hero-actions {
        flex-direction: row;
        flex-wrap: wrap;
        width: auto;
    }
    .mkt-inner-hero-actions .btn-lg {
        width: auto;
    }
    .mkt-hero-cta {
        flex-direction: row;
        flex-wrap: wrap;
        width: auto;
    }
    .mkt-hero-cta .btn-lg {
        width: auto;
    }
    .profile-item {
        flex-direction: row;
        align-items: center;
    }
    .profile-item .btn {
        align-self: center;
    }
}

/* ─── 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;
        min-width: 0;
        overflow-x: hidden;
    }
    body.admin-body .admin-header {
        padding: 0.85rem var(--mobile-pad);
        padding-left: calc(var(--mobile-pad) + var(--safe-left));
        padding-right: calc(var(--mobile-pad) + var(--safe-right));
        padding-top: calc(0.85rem + var(--safe-top));
        gap: 0.65rem;
        z-index: 120;
        flex-wrap: nowrap;
        align-items: center;
    }
    body.admin-body .admin-header-main {
        align-items: center;
        min-width: 0;
        flex: 1 1 auto;
    }
    body.admin-body .admin-header h1 {
        font-size: 1.2rem;
        overflow-wrap: anywhere;
        line-height: 1.2;
    }
    body.admin-body .admin-header-sub {
        font-size: 0.82rem;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    body.admin-body .admin-header-actions {
        width: auto;
        flex-shrink: 0;
        justify-content: flex-end;
    }
    body.admin-body .admin-header-actions .admin-header-app-btn {
        width: auto;
        flex: 0 0 auto;
        min-height: var(--control-height);
        min-width: var(--control-height);
        padding: 0.45rem;
        justify-content: center;
    }
    body.admin-body .admin-header-app-label {
        display: none;
    }
    body.admin-body .admin-content {
        padding: var(--mobile-pad);
        padding-left: calc(var(--mobile-pad) + var(--safe-left));
        padding-right: calc(var(--mobile-pad) + var(--safe-right));
        padding-bottom: calc(var(--mobile-pad) + var(--safe-bottom));
        min-width: 0;
    }
    body.admin-body .admin-page {
        padding: 0;
        min-width: 0;
    }
    body.admin-body .admin-sidebar-branding .logo {
        padding-left: 0.1rem;
    }
    body.admin-body .admin-sidebar-brand {
        white-space: normal;
        line-height: 1.3;
    }
    body.admin-body .admin-grid,
    body.admin-body .admin-analytics-grid,
    body.admin-body .admin-metrics-grid,
    body.admin-body .admin-pulse-grid,
    body.admin-body .admin-announcements-layout,
    body.admin-body .admin-blocked-ips-layout,
    body.admin-body .admin-split,
    body.admin-body .admin-split--promo,
    body.admin-body .admin-ops-split {
        grid-template-columns: 1fr;
    }
    body.admin-body .admin-card--announce-form {
        position: static;
    }
    body.admin-body .admin-card--blocked-form {
        position: static;
    }
    body.admin-body .admin-blocked-ips-toolbar {
        justify-content: stretch;
    }
    body.admin-body .admin-blocked-ips-stats {
        width: 100%;
    }
    body.admin-body .admin-blocked-stat {
        flex: 1 1 calc(50% - 0.35rem);
        min-width: 0;
    }
    body.admin-body .admin-blocked-ips-page {
        gap: 1rem;
    }
    body.admin-body .admin-blocked-ips-layout {
        gap: 1rem;
    }
    body.admin-body .admin-card--blocked-form .admin-card-head {
        padding-bottom: 0.5rem;
    }
    body.admin-body .admin-blocked-form .admin-promo-form-actions {
        margin-top: 0.25rem;
    }
    body.admin-body .admin-blocked-form .admin-promo-form-actions .btn {
        width: 100%;
        min-height: var(--touch-min);
        justify-content: center;
    }
    body.admin-body .admin-blocked-list-card .table-wrap {
        display: block;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
        overflow-x: visible;
    }
    body.admin-body .admin-blocked-table {
        min-width: 0;
    }
    body.admin-body .admin-blocked-table thead {
        display: none;
    }
    body.admin-body .admin-blocked-table tbody tr {
        display: block;
        position: relative;
        padding: 1rem 1.15rem 0.85rem;
        border-bottom: 1px solid var(--border);
    }
    body.admin-body .admin-blocked-table tbody tr:last-child {
        border-bottom: none;
    }
    body.admin-body .admin-blocked-table tbody tr.admin-blocked-row--expired {
        opacity: 1;
        background: var(--surface2);
    }
    body.admin-body .admin-blocked-table td {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 0.75rem;
        padding: 0.3rem 0;
        border: none;
        text-align: right;
        max-width: none;
        overflow: visible;
        white-space: normal;
        text-overflow: clip;
    }
    body.admin-body .admin-blocked-table td::before {
        content: attr(data-label);
        font-size: 0.68rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: var(--muted);
        flex: 0 0 5.75rem;
        text-align: left;
        padding-top: 0.1rem;
    }
    body.admin-body .admin-blocked-table td:first-child {
        display: block;
        padding: 0 3.5rem 0.65rem 0;
        margin-bottom: 0.35rem;
        border-bottom: 1px solid var(--border);
    }
    body.admin-body .admin-blocked-table td:first-child::before {
        content: none;
    }
    body.admin-body .admin-blocked-table td:first-child .admin-blocked-ip {
        font-size: 0.9rem;
    }
    body.admin-body .admin-blocked-table td:nth-child(2) {
        position: absolute;
        top: 1rem;
        right: 1.15rem;
        display: block;
        padding: 0;
        width: auto;
    }
    body.admin-body .admin-blocked-table td:nth-child(2)::before {
        display: none;
    }
    body.admin-body .admin-blocked-table td.admin-blocked-reason {
        text-align: right;
        overflow-wrap: anywhere;
        word-break: break-word;
        max-width: none;
    }
    body.admin-body .admin-blocked-table td.actions-cell {
        justify-content: stretch;
        padding-top: 0.65rem;
        margin-top: 0.25rem;
        border-top: 1px dashed var(--border);
    }
    body.admin-body .admin-blocked-table td.actions-cell::before {
        display: none;
    }
    body.admin-body .admin-blocked-table td.actions-cell .btn {
        width: 100%;
        min-height: var(--touch-min);
        justify-content: center;
    }
    body.admin-body .admin-blocked-empty {
        min-height: 14rem;
        padding: 2rem 1.25rem;
    }
    body.admin-body .admin-invoices-toolbar {
        justify-content: stretch;
    }
    body.admin-body .admin-invoices-stats {
        width: 100%;
    }
    body.admin-body .admin-invoices-stat {
        flex: 1 1 calc(50% - 0.35rem);
        min-width: 0;
    }
    body.admin-body .admin-invoices-search-grid,
    body.admin-body .admin-invoice-detail-stats {
        grid-template-columns: 1fr;
    }
    body.admin-body .admin-invoices-search-actions {
        width: 100%;
    }
    body.admin-body .admin-invoices-search-actions .btn {
        width: 100%;
        justify-content: center;
    }
    body.admin-body .admin-customers-search-actions .btn {
        width: 100%;
        justify-content: center;
    }
    body.admin-body .admin-search-actions-label {
        display: none;
    }
    body.admin-body .admin-customers-search-actions {
        gap: 0;
    }
    body.admin-body .admin-customers-search-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;
        min-width: 0;
    }
    body.admin-body .admin-stat-card .btn {
        width: auto;
        align-self: flex-start;
        min-height: var(--control-height);
        justify-content: center;
    }
    body.admin-body .admin-page-toolbar,
    body.admin-body .admin-page-header {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
    }
    body.admin-body .admin-page-toolbar .btn,
    body.admin-body .admin-page-toolbar .admin-toolbar,
    body.admin-body .admin-page-toolbar .admin-toolbar .btn {
        width: 100%;
        justify-content: center;
        min-height: var(--touch-min);
    }
    body.admin-body .admin-toolbar {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }
    body.admin-body .admin-toolbar .status {
        align-self: flex-start;
    }
    body.admin-body .card,
    body.admin-body .admin-card {
        padding: 1rem;
        overflow: hidden;
        min-width: 0;
    }
    body.admin-body .admin-card-head {
        margin-left: -1rem;
        margin-right: -1rem;
        padding-left: 1rem;
        padding-right: 1rem;
    }
    body.admin-body .card > h2,
    body.admin-body .admin-analytics-card h2 {
        font-size: 1.05rem;
        margin-bottom: 0.75rem;
    }
    body.admin-body .admin-analytics-card {
        padding: 1rem;
    }
    body.admin-body .card .table-wrap,
    body.admin-body .admin-card .table-wrap,
    body.admin-body .admin-card.admin-card--flush-table > .table-wrap,
    body.admin-body .card > .data-table,
    body.admin-body .admin-card > .data-table {
        display: block;
        width: calc(100% + 2rem);
        max-width: none;
        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,
    body.admin-body .data-table .btn-sm {
        min-height: var(--touch-min);
        white-space: nowrap;
    }
    body.admin-body .data-table td:last-child .btn:only-child,
    body.admin-body .data-table td:last-child > a.btn {
        width: 100%;
        justify-content: center;
    }
    body.admin-body .actions-cell {
        flex-direction: column;
        align-items: stretch;
        gap: 0.4rem;
    }
    body.admin-body .actions-cell .btn,
    body.admin-body .actions-cell form {
        width: 100%;
        margin: 0;
    }
    body.admin-body .actions-cell .btn {
        justify-content: center;
    }
    body.admin-body .admin-form .form-row,
    body.admin-body .admin-promo-form-row {
        grid-template-columns: 1fr;
        flex-direction: column;
    }
    body.admin-body .admin-plan-feature-grid,
    body.admin-body .admin-plan-limit-grid,
    body.admin-body .admin-customer-feature-grid,
    body.admin-body .admin-customer-limit-grid {
        grid-template-columns: 1fr;
    }
    body.admin-body .admin-dl > div,
    body.admin-body .admin-dl-wide > div {
        grid-template-columns: 1fr;
        gap: 0.15rem;
    }
    body.admin-body .admin-detail-list {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
    body.admin-body .admin-detail-list dt {
        margin-top: 0.5rem;
    }
    body.admin-body .admin-detail-list dt:first-child {
        margin-top: 0;
    }
    body.admin-body .docs-gen-actions,
    body.admin-body .doc-editor-toolbar,
    body.admin-body .invoice-pay-actions,
    body.admin-body .admin-customer-plan-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
    }
    body.admin-body .docs-gen-actions .btn,
    body.admin-body .docs-gen-actions .inline-form,
    body.admin-body .docs-gen-actions .inline-form .btn,
    body.admin-body .doc-editor-toolbar .btn,
    body.admin-body .invoice-pay-actions .btn,
    body.admin-body .invoice-pay-actions form,
    body.admin-body .admin-customer-plan-actions .btn {
        width: 100%;
        min-height: var(--touch-min);
        justify-content: center;
    }
    body.admin-body .docs-auto-label {
        width: 100%;
        min-height: var(--touch-min);
        align-items: center;
    }
    body.admin-body .doc-title-row {
        align-items: flex-start;
        gap: 0.75rem;
        padding: 0.75rem;
    }
    body.admin-body .doc-title-row input {
        width: 1.15rem;
        height: 1.15rem;
        margin-top: 0.15rem;
        flex-shrink: 0;
    }
    body.admin-body .doc-title-row span {
        min-width: 0;
        overflow-wrap: anywhere;
    }
    body.admin-body .doc-markdown-input {
        min-height: 14rem;
        font-size: 1rem;
    }
    body.admin-body .admin-ticket-filters {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.45rem;
    }
    body.admin-body .admin-ticket-filters .btn {
        width: 100%;
        min-height: var(--touch-min);
        justify-content: center;
    }
    body.admin-body .admin-page-header {
        flex-direction: column;
        align-items: stretch;
    }
    body.admin-body .admin-page-header .btn {
        width: 100%;
        min-height: var(--touch-min);
        justify-content: center;
    }
    body.admin-body .admin-search-card .admin-action-row .btn {
        min-height: var(--touch-min);
    }
    body.admin-body .admin-client-shell {
        border-radius: 12px;
        overflow: hidden;
    }
    body.admin-body .admin-client-hero {
        padding: 1rem var(--mobile-pad);
        padding-left: calc(var(--mobile-pad) + var(--safe-left));
        padding-right: calc(var(--mobile-pad) + var(--safe-right));
        gap: 1rem;
    }
    body.admin-body .admin-client-hero h2 {
        font-size: 1.15rem;
        overflow-wrap: anywhere;
    }
    body.admin-body .admin-client-email {
        overflow-wrap: anywhere;
    }
    body.admin-body .admin-client-hero-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }
    body.admin-body .admin-client-hero-actions {
        flex-direction: column;
        align-items: stretch;
    }
    body.admin-body .admin-client-hero-actions .btn,
    body.admin-body .admin-client-hero-actions form {
        width: 100%;
    }
    body.admin-body .admin-client-hero-actions .btn {
        min-height: var(--touch-min);
        justify-content: center;
    }
    body.admin-body .admin-client-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-left: calc(0.5rem + var(--safe-left));
        padding-right: calc(0.5rem + var(--safe-right));
    }
    body.admin-body .admin-client-tabs::-webkit-scrollbar {
        display: none;
    }
    body.admin-body .admin-client-tab {
        min-height: var(--touch-min);
        padding: 0.75rem 0.85rem;
    }
    body.admin-body .admin-client-body {
        padding: 1rem var(--mobile-pad);
        padding-left: calc(var(--mobile-pad) + var(--safe-left));
        padding-right: calc(var(--mobile-pad) + var(--safe-right));
        padding-bottom: calc(1rem + var(--safe-bottom));
    }
    body.admin-body .admin-client-grid,
    body.admin-body .admin-client-quicklinks {
        grid-template-columns: 1fr;
    }
    body.admin-body .admin-client-panel-head {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
    }
    body.admin-body .admin-client-panel-head .btn {
        width: 100%;
        min-height: var(--touch-min);
        justify-content: center;
    }
    body.admin-body .admin-refund-form {
        min-width: 0;
        width: 100%;
    }
    body.admin-body .invoice-line-row {
        flex-direction: column;
        align-items: stretch;
    }
    body.admin-body .invoice-line-row input[type="text"],
    body.admin-body .invoice-line-row input[type="number"] {
        width: 100%;
        min-width: 0;
    }
    body.admin-body .ticket-example-pre,
    body.admin-body .admin-cron-pre,
    body.admin-body .doc-batch-log {
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    body.admin-body .admin-promo-plan-details {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.2rem;
    }
    body.admin-body .admin-promo-plan-price {
        white-space: normal;
    }
    body.admin-body .admin-login-cell {
        white-space: normal;
        font-size: 0.82rem;
    }
    body.admin-body .admin-login-history-table .data-table thead {
        display: none;
    }
    body.admin-body .admin-login-history-table tbody tr {
        display: block;
        padding: 0.85rem 0;
        border-bottom: 1px solid var(--border);
    }
    body.admin-body .admin-login-history-table td {
        display: flex;
        justify-content: space-between;
        gap: 0.75rem;
        padding: 0.25rem 0;
        border: none;
        text-align: right;
        max-width: none;
        overflow: visible;
        white-space: normal;
        text-overflow: clip;
    }
    body.admin-body .admin-login-history-table td::before {
        content: attr(data-label);
        font-size: 0.68rem;
        font-weight: 700;
        text-transform: uppercase;
        color: var(--muted);
        flex: 0 0 5.5rem;
        text-align: left;
    }
    body.admin-body .admin-login-history-table td:last-child {
        justify-content: stretch;
    }
    body.admin-body .admin-login-history-table td:last-child .btn {
        width: 100%;
        min-height: var(--touch-min);
        justify-content: center;
    }
    body.admin-body .admin-login-ua {
        overflow-wrap: anywhere;
        word-break: break-word;
        text-align: left;
    }
    body.admin-body .dialog-actions {
        flex-direction: column-reverse;
        gap: 0.5rem;
    }
    body.admin-body .dialog-actions .btn {
        width: 100%;
        min-height: var(--touch-min);
        justify-content: center;
    }
    body.admin-body .list-pagination .list-page-btn {
        min-height: var(--touch-min);
    }
}

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

/* ─── Tablet (768px–1024px) — restore layouts overridden by mobile ≤900px / ≤1100px rules ─── */
@media (min-width: 768px) and (max-width: 1024px) {
    /* App shell — compact persistent sidebar */
    .sidebar-toggle { display: none !important; }
    .sidebar-overlay { display: none !important; }
    body.sidebar-open { overflow: auto; touch-action: auto; }
    .sidebar {
        position: relative;
        transform: none !important;
        width: 220px;
        padding: 1.25rem 1rem;
        flex-shrink: 0;
        overflow-y: auto;
    }
    .sidebar-nav a {
        min-height: auto;
        padding: 0.5rem 0.7rem;
        font-size: 0.85rem;
    }
    .app-body { flex-direction: row; }
    .app-main {
        padding: 1.25rem 1.5rem;
        width: auto;
        min-width: 0;
        padding-bottom: 1.25rem;
    }
    body.has-dash-mobile-bar .app-main { padding-bottom: 1.25rem; }
    .dash-mobile-bar { display: none !important; }

    /* Marketing nav — desktop links, no drawer */
    .nav-toggle { display: none !important; }
    .marketing-body .nav-drawer { display: none !important; }
    .nav-center, .nav-actions { display: flex !important; }

    /* Grids — undo ≤1100px single-column stacks */
    .pricing-plans-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: none;
        margin-inline: 0;
    }
    .mkt-pillar-grid,
    .mkt-capability-grid-trio { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mkt-footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    /* Marketing CTAs — inline, not full-width */
    .mkt-hero-cta,
    .mkt-inner-hero-actions,
    .mkt-hero-links { flex-direction: row; flex-wrap: wrap; width: auto; align-items: center; }
    .mkt-hero-cta .btn-lg,
    .mkt-inner-hero-actions .btn-lg,
    .mkt-link-btn { width: auto; min-height: var(--control-height); }

    /* Pricing */
    .pricing-pack-row { flex-direction: row; align-items: center; }
    .pricing-pack-row .btn,
    .pricing-card .btn { width: auto; min-height: var(--control-height); }

    /* Docs — sidebar nav, not horizontal pills */
    .docs-layout,
    .docs-article-layout { grid-template-columns: 180px minmax(0, 1fr); gap: 1.5rem; align-items: start; }
    .docs-nav {
        flex-direction: column;
        flex-wrap: nowrap;
        overflow-x: visible;
        position: sticky;
        top: 5rem;
        margin: 0;
        padding-bottom: 0;
        mask-image: none;
        -webkit-mask-image: none;
    }
    .docs-nav a {
        flex: none;
        white-space: normal;
        min-height: auto;
        display: flex;
        align-items: center;
        padding: 0.45rem 0.75rem;
        border-radius: 8px;
        border: none;
        background: transparent;
        font-size: 0.9rem;
    }
    .docs-nav a.active {
        background: var(--primary-light);
        border-color: transparent;
    }
    .docs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .doc-content { padding: 1.75rem 1.5rem 2rem; }

    /* Legal — sidebar + two-column layout */
    .legal-layout { grid-template-columns: 180px minmax(0, 1fr); gap: 1.5rem; }
    .legal-sidebar { position: sticky; top: 5rem; }
    .legal-sidebar .legal-nav { display: flex; }

    /* Dashboard */
    .dash-hero-top { flex-direction: row; align-items: center; }
    .dash-stat-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dash-chart-card .card-header { flex-direction: row; align-items: center; }
    .expense-controls { flex-direction: row; flex-wrap: wrap; align-items: center; width: auto; }
    .expense-controls select { width: auto; min-width: 8rem; min-height: var(--control-height); }
    .dash-workspace-header { flex-direction: row; align-items: center; flex-wrap: wrap; }
    .dash-workspace-header .btn { width: auto; align-self: center; }
    .dash-tax-feature-head .btn,
    .card-header .btn,
    .reminders-status-card .card-header .btn { width: auto; align-self: center; margin-left: auto; margin-top: 0; }

    /* Ledger — restore table rows (undo mobile card layout) */
    #tab-ledger .data-table.ledger-table thead { display: table-header-group; }
    #tab-ledger .data-table.ledger-table tbody tr {
        display: table-row;
        margin-bottom: 0;
        padding: 0;
        border: none;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }
    #tab-ledger .data-table.ledger-table tbody tr.empty-row { padding: 0; }
    #tab-ledger .data-table.ledger-table td {
        display: table-cell;
        padding: 0.65rem 1rem;
        border-top: 1px solid var(--border);
        font-size: 0.875rem;
    }
    #tab-ledger .data-table.ledger-table td::before { content: none; }
    #tab-ledger .data-table.ledger-table td.ledger-actions {
        flex-direction: row;
        align-items: center;
        padding-top: 0.65rem;
        margin-top: 0;
        border-top: 1px solid var(--border);
    }
    #tab-ledger .data-table.ledger-table td.ledger-actions .btn {
        width: auto;
        min-height: auto;
    }
    #tab-ledger .ledger-category-cell { flex-wrap: nowrap; justify-content: flex-start; text-align: left; }

    /* Processing queue — restore table */
    #tab-processing .data-table thead { display: table-header-group; }
    #tab-processing .data-table tbody tr {
        display: table-row;
        padding: 0;
        border-bottom: none;
    }
    #tab-processing .data-table td { display: table-cell; }
    #tab-processing .data-table td:nth-child(5) .btn { width: auto; min-height: auto; }

    /* Vendor list — restore desktop grid */
    .dash-vendor-list-head { display: grid; }
    .dash-vendor-row {
        display: grid;
        grid-template-columns: 2rem minmax(0, 1fr) 3.25rem 5.75rem;
        grid-template-rows: auto;
        gap: 0.75rem;
        padding: 0.72rem 0;
        border-bottom: 1px solid var(--border);
    }
    .dash-vendor-rank { grid-row: auto; align-self: center; }
    .dash-vendor-name,
    .dash-vendor-share,
    .dash-vendor-amount { grid-column: auto; font-size: inherit; color: inherit; }
    .dash-vendor-share::before,
    .dash-vendor-amount::before { content: none; }

    /* Business HQ */
    .hq-hero-actions { width: auto; flex-wrap: wrap; }
    .hq-hero-actions .btn { flex: 0 1 auto; width: auto; }
    .hq-hero-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hq-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hq-panel-head { flex-direction: row; align-items: center; flex-wrap: wrap; }
    .hq-panel-head .btn { width: auto; align-self: center; }
    .hq-inbox-copy-row .btn,
    .hq-action-row .btn,
    .hq-action-row { flex-direction: row; align-items: center; }
    .hq-accounting-export .btn,
    .hq-accounting-import-form .hq-form-submit,
    .bank-reconcile-submit { width: auto; }
    .hq-export-grid,
    .hq-panel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bank-reconcile-upload { flex-direction: row; }
    .bank-reconcile-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tax-calc-toolbar-inner { flex-direction: row; align-items: center; }
    .tax-calc-toolbar-actions { width: auto; }
    .tax-calc-toolbar-actions .btn,
    .tax-calc-add-month select { width: auto; }
    .tax-calc-summary,
    .tax-calc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tax-calc-categories-head { display: grid; }
    .tax-calc-category-row { grid-template-columns: 1fr auto; }

    /* Account */
    .acct-hero-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .acct-panel-head { flex-direction: row; align-items: center; flex-wrap: wrap; }
    .acct-panel-head .btn { width: auto; align-self: center; }
    .acct-hero-actions .btn { flex: 0 1 auto; width: auto; }
    .platform-invoice-header { flex-direction: row; align-items: flex-start; }

    /* Reminders — side-by-side when width allows */
    .reminders-layout { grid-template-columns: minmax(0, 1.2fr) minmax(240px, 1fr); gap: 1.25rem; }

    /* Security history — restore table */
    .security-history-panel .data-table thead { display: table-header-group; }
    .admin-login-history-table tbody tr,
    .security-history-panel tbody tr {
        display: table-row;
        padding: 0;
        border-bottom: none;
    }
    .admin-login-history-table td,
    .security-history-panel td {
        display: table-cell;
        padding: 0.65rem 1rem;
        border-top: 1px solid var(--border);
    }
    .admin-login-history-table td::before,
    .security-history-panel td::before { content: none; }

    /* Admin — restore tablet layouts overridden at ≤900px */
    body.admin-body .admin-content {
        padding: 1.15rem 1.25rem 1.5rem;
        padding-bottom: 1.5rem;
    }
    body.admin-body .admin-header {
        padding: 1rem 1.25rem;
        padding-top: 1rem;
    }
    body.admin-body .admin-header-actions {
        width: auto;
    }
    body.admin-body .admin-header-actions .btn {
        width: auto;
        flex: 0 0 auto;
        min-height: var(--control-height);
    }
    body.admin-body .admin-header-app-label {
        display: inline;
    }
    body.admin-body .admin-header-actions .admin-header-app-btn {
        min-width: 0;
        padding: 0.4rem 0.75rem;
    }
    body.admin-body .admin-ticket-filters {
        display: flex;
        flex-wrap: wrap;
        grid-template-columns: none;
    }
    body.admin-body .admin-ticket-filters .btn {
        width: auto;
        flex: 0 1 auto;
        min-height: var(--control-height);
    }
    body.admin-body .admin-page-toolbar .btn,
    body.admin-body .admin-page-toolbar .admin-toolbar .btn {
        width: auto;
        min-height: var(--control-height);
    }
    body.admin-body .admin-toolbar {
        flex-direction: row;
        flex-wrap: wrap;
        width: auto;
    }
    body.admin-body .actions-cell {
        flex-direction: row;
        align-items: center;
    }
    body.admin-body .actions-cell .btn,
    body.admin-body .actions-cell form {
        width: auto;
    }
    body.admin-body .dialog-actions {
        flex-direction: row;
    }
    body.admin-body .dialog-actions .btn {
        width: auto;
        min-height: var(--control-height);
    }
    body.admin-body .admin-login-history-table .data-table thead {
        display: table-header-group;
    }
    body.admin-body .admin-blocked-list-card .table-wrap {
        width: calc(100% + 2rem);
        margin-left: -1rem;
        margin-right: -1rem;
        padding: 0 1rem;
        overflow-x: auto;
    }
    body.admin-body .admin-blocked-table {
        min-width: 32rem;
    }
    body.admin-body .admin-blocked-table thead {
        display: table-header-group;
    }
    body.admin-body .admin-blocked-table tbody tr {
        display: table-row;
        position: static;
        padding: 0;
    }
    body.admin-body .admin-blocked-table td {
        display: table-cell;
        padding: inherit;
        text-align: inherit;
        border: inherit;
    }
    body.admin-body .admin-blocked-table td::before {
        content: none;
    }
    body.admin-body .admin-blocked-table td:nth-child(2) {
        position: static;
        width: auto;
    }
    body.admin-body .admin-blocked-table td.actions-cell .btn {
        width: auto;
        min-height: var(--control-height);
    }
    body.admin-body .admin-invoices-list-card .table-wrap,
    body.admin-body .admin-invoice-detail-main .table-wrap,
    body.admin-body .admin-customers-list-card .table-wrap {
        width: calc(100% + 2rem);
        margin-left: -1rem;
        margin-right: -1rem;
        padding: 0 1rem;
        overflow-x: auto;
    }
    body.admin-body .admin-invoices-table,
    body.admin-body .admin-invoice-lines-table,
    body.admin-body .admin-invoice-payments-table,
    body.admin-body .admin-users-table {
        min-width: 32rem;
    }
    body.admin-body .admin-invoices-table thead,
    body.admin-body .admin-invoice-lines-table thead,
    body.admin-body .admin-invoice-payments-table thead,
    body.admin-body .admin-users-table thead {
        display: table-header-group;
    }
    body.admin-body .admin-invoices-table tbody tr,
    body.admin-body .admin-invoice-lines-table tbody tr,
    body.admin-body .admin-invoice-payments-table tbody tr,
    body.admin-body .admin-users-table tbody tr {
        display: table-row;
        position: static;
        padding: 0;
    }
    body.admin-body .admin-invoices-table td,
    body.admin-body .admin-invoice-lines-table td,
    body.admin-body .admin-invoice-payments-table td,
    body.admin-body .admin-users-table td {
        display: table-cell;
        padding: inherit;
        text-align: inherit;
        border: inherit;
    }
    body.admin-body .admin-invoices-table td::before,
    body.admin-body .admin-invoice-lines-table td::before,
    body.admin-body .admin-invoice-payments-table td::before,
    body.admin-body .admin-users-table td::before {
        content: none;
    }
    body.admin-body .admin-invoices-table td:nth-child(2),
    body.admin-body .admin-invoices-table td:nth-child(3),
    body.admin-body .admin-users-table td:first-child,
    body.admin-body .admin-users-table td:nth-child(2) {
        position: static;
        width: auto;
        border: inherit;
        margin: 0;
        padding: inherit;
        text-align: inherit;
    }
    body.admin-body .admin-invoices-table td.actions-cell .btn,
    body.admin-body .admin-invoice-payments-table td:last-child .btn,
    body.admin-body .admin-users-table td.actions-cell .btn {
        width: auto;
        min-height: var(--control-height);
    }
    body.admin-body .admin-invoice-detail-stats {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    body.admin-body .admin-invoice-detail-toolbar {
        display: flex;
        flex-wrap: wrap;
    }
    body.admin-body .admin-invoice-detail-toolbar .btn {
        width: auto;
        min-height: var(--control-height);
    }
    body.admin-body .admin-invoice-detail-toolbar .btn:first-child {
        grid-column: auto;
    }

    /* Tickets */
    .ticket-list-item { flex-direction: row; align-items: center; }
    .ticket-list-item .btn { width: auto; min-height: var(--control-height); }

    /* Forms & dialogs */
    .form-row { flex-direction: row; flex-wrap: wrap; }
    .dialog-actions { flex-direction: row; }
    .dialog-actions .btn { width: auto; min-height: var(--control-height); }

    /* App header */
    .app-header { flex-direction: row; flex-wrap: wrap; align-items: center; }
    .header-actions { width: auto; max-width: none; justify-content: flex-end; }
    .profile-select { max-width: min(13rem, 42vw); }
}

/* Narrow tablet (768px–900px) — tighter marketing nav */
@media (min-width: 768px) and (max-width: 900px) {
    .nav-inner {
        height: auto;
        min-height: 64px;
        flex-wrap: wrap;
        gap: 0.35rem 0.5rem;
        padding-top: 0.35rem;
        padding-bottom: 0.35rem;
        padding-left: calc(var(--mobile-pad) + var(--safe-left));
        padding-right: calc(var(--mobile-pad) + var(--safe-right));
    }
    .nav-actions.nav-links-desktop {
        gap: 0.45rem;
        flex-wrap: wrap;
        justify-content: flex-end;
    }
    .nav-center.nav-links-desktop {
        gap: 0.4rem;
        flex-wrap: nowrap;
        justify-content: center;
    }
    .nav-center .nav-link-item,
    .nav-center .nav-menu-trigger { font-size: 0.78rem; padding-inline: 0.5rem; }
    .nav-center .icon-nav-marketing { width: 14px; height: 14px; }
}

/* Wide tablet (901px–1024px) — three plan columns when space allows */
@media (min-width: 901px) and (max-width: 1024px) {
    .pricing-plans-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .mkt-home-stats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

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

/* ── Free tools mobile polish ── */
@media (max-width: 900px) {
    .tools-category-nav {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        margin-left: calc(-1 * var(--mobile-pad));
        margin-right: calc(-1 * var(--mobile-pad));
        padding: 0.15rem var(--mobile-pad) 0.5rem;
        gap: 0.45rem;
    }
    .tools-category-nav::-webkit-scrollbar { display: none; }
    .tools-category-nav a { flex-shrink: 0; }

    .tools-intro-inner {
        padding: 1rem 1.1rem;
        border-radius: 12px;
    }
    .tools-intro-text { font-size: 0.95rem; }

    .tools-workspace-section { padding-top: 1rem; padding-bottom: 2.5rem; }
    .tools-workspace { gap: 1.25rem; }
    .tools-panel { border-radius: 14px; }
    .tools-panel-header { padding: 1.15rem 1.2rem; }
    .tools-panel-body { padding: 1.2rem; }
    .tools-panel-icon { width: 2.65rem; height: 2.65rem; }

    .tools-file-dropzone { padding: 1.65rem 1rem; border-radius: 14px; }
    .tools-dropzone-icon { width: 2.75rem; height: 2.75rem; }

    .tools-form .btn-primary { width: 100%; justify-content: center; }
    .tools-aside { gap: 0.85rem; }
    .tools-aside-card { padding: 1.1rem; }
    .tools-cta-actions { gap: 0.75rem; }
    .tools-cta-actions .btn-block { min-height: var(--touch-min); }
    .tools-aside-card .btn-block { min-height: var(--touch-min); }

    .tools-faq-item summary {
        padding: 1rem 1.1rem;
        min-height: var(--touch-min);
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    .tools-faq-item summary::after { float: none; flex-shrink: 0; margin-left: 0.75rem; }

    .tools-merge-list-wrap { padding: 0.85rem; }
    .tools-merge-actions .btn-ghost {
        min-width: 2.25rem;
        min-height: 2.25rem;
    }

    .tpl-items-header { display: none; }
    .tpl-item-row {
        grid-template-columns: 1fr;
        gap: 0.65rem;
    }
    .tpl-item-row .input { min-height: var(--touch-min); }
}

@media (max-width: 390px) {
    .tools-card { padding: 1.25rem 1.15rem; }
    .tools-card-icon { width: 2.65rem; height: 2.65rem; }
    .tools-rate-banner { font-size: 0.8rem; padding: 0.55rem 0.85rem; }
    .tools-result { padding: 1.1rem 1.15rem; }
    .tools-result h3 { font-size: 1.05rem; }
}
