.psx-mobile-nav-open,
.psx-mobile-nav-close,
.psx-mobile-nav-backdrop,
.psx-mobile-header-row,
.psx-mobile-scan-settings,
.psx-mobile-scan-actions,
.psx-mobile-scan-loading,
.psx-mobile-tool-settings,
.psx-mobile-tool-actions,
.psx-mobile-tool-loading { display: none; }

@media screen and (max-width: 900px) {
    .plagscanx-app-overlay {
        --psx-mobile-dock-height: 0px;
        --psx-mobile-header-height: 56px;
        top: var(--psx-mobile-viewport-top, 0px);
        bottom: auto;
        height: var(--psx-mobile-viewport-height, 100dvh);
        min-height: 0;
    }
    .plagscanx-app-overlay .plagscanx-app-container {
        display: block;
        height: 100%;
        max-height: none;
        padding: 0 0 var(--psx-mobile-dock-height);
        overflow-y: auto;
        overscroll-behavior: contain;
        scroll-padding-top: calc(var(--psx-mobile-header-height) + 12px);
        scroll-padding-bottom: calc(var(--psx-mobile-dock-height) + 12px);
    }
    .plagscanx-app-overlay .plagscanx-main,
    .plagscanx-app-overlay .plagscanx-main.is-standalone-scan {
        display: flex;
        flex-direction: column;
        width: 100%;
        height: auto;
        min-height: 100%;
        padding: 0;
        overflow: visible;
    }
    .plagscanx-app-overlay #plagscanx-form,
    .plagscanx-app-overlay .plagscanx-view,
    .plagscanx-app-overlay #view-new_scan {
        flex: 0 0 auto;
        height: auto;
        min-height: 0;
        overflow: visible;
    }
    .plagscanx-app-overlay .plagscanx-sidebar-right {
        flex: 0 0 auto;
        height: auto;
        min-height: 0;
        padding: 24px 16px;
        overflow: visible;
    }
    .plagscanx-app-overlay .plagscanx-sidebar-right :is(.results-container, .ai-results-container) { max-height: none; overflow: visible; }
    .plagscanx-app-overlay.psx-mobile-ready .plagscanx-app-header,
    .plagscanx-app-overlay.psx-mobile-ready .plagscanx-app-header.is-new-scan-header { display: contents !important; }
    .plagscanx-app-overlay .psx-mobile-header-row {
        display: flex;
        align-items: center;
        flex: 0 0 auto;
        gap: 4px;
        min-height: 56px;
        padding: 4px max(8px, env(safe-area-inset-right)) 4px max(8px, env(safe-area-inset-left));
        position: sticky;
        top: 0;
        z-index: 110;
        border-bottom: 1px solid var(--psx-border);
        background: var(--psx-card, #fff);
    }
    .plagscanx-app-overlay .psx-mobile-header-row .header-left { flex: 1 1 0; min-width: 0; gap: 10px; margin: 0; }
    .plagscanx-app-overlay .psx-mobile-header-row .header-left h2 {
        flex: 0 1 auto;
        min-width: 0;
        margin: 0;
        font-size: 16px;
        line-height: 1.35;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .plagscanx-app-overlay .psx-dashboard-home { display: none; }
    .plagscanx-app-overlay .psx-mobile-header-row .header-info-icon { flex: 0 0 32px; width: 32px; height: 44px; }
    .plagscanx-app-overlay .psx-mobile-nav-open,
    .plagscanx-app-overlay .psx-mobile-nav-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 0;
        border-radius: 50%;
        background: transparent;
        color: var(--psx-text);
        cursor: pointer;
    }
    .plagscanx-app-overlay :is(.psx-mobile-nav-open, .psx-mobile-nav-close):hover { background: var(--psx-hover, #f4f4f5); }
    .plagscanx-app-overlay :is(.psx-mobile-nav-open, .psx-mobile-nav-close) .psx-icon { width: 20px; height: 20px; }
    .plagscanx-app-overlay .psx-mobile-header-row .psx-dashboard-header-actions { display: flex; flex: 0 0 44px; margin: 0; }
    .plagscanx-app-overlay .psx-mobile-header-row #psx-dashboard-new-analysis {
        box-sizing: border-box;
        width: 44px;
        height: 44px;
        min-width: 44px;
        min-height: 44px;
        margin: 0;
        padding: 0;
        /* Match the 32px avatar while retaining the 44px touch target. */
        border: 6px solid transparent;
        border-radius: 50% !important;
        background-clip: padding-box !important;
        gap: 0;
    }
    .plagscanx-app-overlay .psx-mobile-header-row #psx-dashboard-new-analysis span { display: none; }
    .plagscanx-app-overlay .psx-mobile-header-row .psx-app-profile { display: block; flex: 0 0 44px; padding: 0; margin: 0; }
    .plagscanx-app-overlay .psx-mobile-header-row .psx-app-profile-trigger { width: 44px; height: 44px; min-height: 44px; padding: 4px; }
    .plagscanx-app-overlay .psx-mobile-header-row .user-avatar { width: 36px; height: 36px; }
    .plagscanx-app-overlay .plagscanx-app-header .plagscanx-profile-menu {
        position: absolute;
        inset: auto 8px auto auto;
        top: 100%;
        width: min(300px, calc(100vw - 16px));
        max-height: calc(var(--psx-mobile-viewport-height, 100dvh) - var(--psx-mobile-header-height) - 16px);
        overflow-y: auto;
    }
    .plagscanx-app-overlay .psx-app-profile { position: static; }
    .plagscanx-app-overlay .profile-menu-list a { min-height: 44px; }
    .plagscanx-app-overlay .psx-resource-grid {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: min(320px, calc(100% - 36px));
        gap: 12px;
        margin-inline: -4px;
        padding: 4px 4px 8px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x proximity;
        scroll-padding-inline: 4px;
        scrollbar-width: thin;
        scrollbar-color: var(--psx-border-strong) transparent;
    }
    .plagscanx-app-overlay .psx-resource { scroll-snap-align: start; }
    .plagscanx-app-overlay .plagscanx-app-header .header-right,
    .plagscanx-app-overlay .plagscanx-app-header .psx-new-actions {
        width: 100%;
        min-width: 0;
        flex: 0 0 auto;
        flex-wrap: wrap;
        justify-content: flex-end;
        align-items: center;
        gap: 8px;
        min-height: 52px;
        padding: 4px 12px;
        margin: 0;
        border-bottom: 1px solid var(--psx-border);
        background: var(--psx-card, #fff);
    }
    .plagscanx-app-overlay .plagscanx-app-header .header-right:not(:has(> :not([hidden]):not([style*="display: none"]))) { display: none !important; }
    .plagscanx-app-overlay .plagscanx-app-header .psx-new-includes { display: none; }
    .plagscanx-app-overlay .plagscanx-app-header .psx-deep-search { margin-inline-end: auto; min-height: 44px; }
    .plagscanx-app-overlay .plagscanx-app-header :is(.header-action-btn, .header-share-btn, #psx-new-share, #psx-new-download) {
        flex: 0 0 44px;
        width: 44px;
        min-width: 44px;
        height: 44px;
        min-height: 44px;
        padding: 0 !important;
    }
    .plagscanx-app-overlay .plagscanx-app-header :is(.header-action-btn, .header-share-btn, #psx-new-share, #psx-new-download),
    .plagscanx-app-overlay .psx-mobile-dock :is(.plagscanx-btn-upload, .plagscanx-btn-secondary) {
        border-radius: var(--psx-radius-full, 9999px) !important;
    }
    .plagscanx-app-overlay .plagscanx-app-header .btn-text { display: none; }
    .plagscanx-app-overlay .header-usage-text { font-size: 13px; white-space: normal; }
    .plagscanx-app-overlay .header-usage-full { display: inline-flex; flex-wrap: wrap; }
    .plagscanx-app-overlay .header-usage-compact { display: none; }

    .plagscanx-app-overlay.psx-mobile-ready .plagscanx-sidebar-left {
        display: flex !important;
        position: fixed;
        inset: var(--psx-mobile-viewport-top, 0px) auto auto 0;
        width: min(320px, calc(100vw - 32px));
        height: var(--psx-mobile-viewport-height, 100dvh);
        max-height: none;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        visibility: hidden;
        transform: translateX(-100%);
        transition: none;
        z-index: 100003;
        padding-bottom: env(safe-area-inset-bottom, 0px);
        background: var(--psx-sidebar, #fff);
    }
    .plagscanx-app-overlay.psx-mobile-nav-visible .plagscanx-sidebar-left { visibility: visible; transform: none; }
    .plagscanx-app-overlay.psx-mobile-nav-visible .plagscanx-app-container { overflow: hidden; }
    .plagscanx-app-overlay .plagscanx-sidebar-left .plagscanx-sidebar-toggle { display: none; }
    .plagscanx-app-overlay .plagscanx-sidebar-left .plagscanx-brand { min-height: 56px; padding: 6px 12px; }
    .plagscanx-app-overlay .plagscanx-sidebar-left .plagscanx-nav-section { flex: 0 0 auto; overflow: visible; }
    .plagscanx-app-overlay .plagscanx-sidebar-left :is(.plagscanx-brand, .psx-new-scan-nav, .plagscanx-sidebar-footer) { flex-shrink: 0; }
    .plagscanx-app-overlay .plagscanx-nav li { min-height: 44px; white-space: normal; }
    .plagscanx-app-overlay .psx-mobile-nav-backdrop:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 100002; background: rgb(24 24 27 / 40%); }

    .plagscanx-app-overlay .plagscanx-view.active .psx-mobile-dock {
        position: fixed;
        inset: auto 0 var(--psx-mobile-bottom, 0px);
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px 12px;
        width: 100%;
        min-height: 0;
        padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px));
        border: 0;
        border-top: 1px solid var(--psx-border);
        background: var(--psx-card, #fff);
        border-radius: 0;
        z-index: 120;
    }
    .plagscanx-app-overlay .psx-mobile-dock .toolbar-left { display: contents; }
    .plagscanx-app-overlay .psx-mobile-dock .toolbar-item { flex: 0 0 auto; width: auto; min-width: 0; margin: 0; padding: 0; border: 0; }
    .plagscanx-app-overlay .psx-mobile-dock .counter-item { flex: 1 0 100%; font-size: 12px; line-height: 1.4; }
    .plagscanx-app-overlay .psx-mobile-dock .toolbar-right { flex: 1 1 auto; width: auto; min-width: 0; justify-content: flex-end; gap: 8px; }
    .plagscanx-app-overlay .psx-mobile-dock .toolbar-left > .toolbar-item:not(.counter-item):not(.psx-edit-mode) { flex: 0 0 44px; width: 44px; padding: 0; border: 0; order: 2; }
    .plagscanx-app-overlay .psx-mobile-dock .toolbar-right { order: 2; }
    .plagscanx-app-overlay .psx-mobile-dock:has(.psx-edit-mode:not([hidden])) .counter-item { flex: 1 1 calc(100% - 140px); }
    .plagscanx-app-overlay .psx-mobile-dock .toolbar-left > .psx-edit-mode { flex: 0 0 auto; order: 1; padding: 0; border: 0; }
    .plagscanx-app-overlay .psx-mobile-dock .toolbar-compact-label { display: none; }
    .plagscanx-app-overlay .psx-mobile-dock :is(.plagscanx-btn-upload, .plagscanx-btn-secondary) { flex: 0 0 44px; min-width: 44px; width: 44px; height: 44px; min-height: 44px; padding: 0 !important; }
    .plagscanx-app-overlay .psx-mobile-dock .plagscanx-btn-primary { min-height: 44px; height: auto; min-width: 88px; padding: 10px 16px; white-space: normal; font-size: 14px; }
    .plagscanx-app-overlay .psx-mobile-dock .plagscanx-cta-tooltip-wrap { flex: 0 1 auto; min-width: 0; max-width: 100%; }
    .plagscanx-app-overlay .psx-mobile-dock .rewriter-toolbar-left { flex: 1 1 auto; width: auto; flex-wrap: wrap; gap: 8px; }
    .plagscanx-app-overlay .psx-mobile-dock .rewriter-toolbar-left .counter-item { flex-basis: auto; }
    .plagscanx-app-overlay .psx-mobile-dock .rewriter-toolbar-right { flex: 1 1 auto; width: auto; justify-content: flex-end; }
    .plagscanx-app-overlay .psx-mobile-dock .plagscanx-select-btn { min-height: 44px; }
    .plagscanx-app-overlay .psx-mobile-dock .rewriter-toolbar-left .rw-tone-select { flex: 0 1 auto; max-width: 100%; width: auto; margin-inline-start: auto; }
    .plagscanx-app-overlay .psx-mobile-dock .selected-val { white-space: normal; overflow: visible; overflow-wrap: anywhere; }
    .plagscanx-app-overlay .psx-mobile-dock .rewriter-toolbar-left .toolbar-compact-label { display: inline; }
    .plagscanx-app-overlay.psx-mobile-short .psx-mobile-header-row,
    .plagscanx-app-overlay.psx-mobile-short .plagscanx-view.active .psx-mobile-dock { position: static; }
    .plagscanx-app-overlay .plagscanx-input-card { height: auto; min-height: 0; overflow: visible; }
    .plagscanx-app-overlay :is(#plagscanx-text, #plagscanx-ai-text, #psx-new-text) {
        min-height: 220px;
        height: clamp(220px, calc(var(--psx-mobile-viewport-height, 100dvh) - 500px), 340px);
        max-height: 340px;
        font-size: 16px;
    }
    .plagscanx-app-overlay .psx-new-workspace { min-height: 0; }
    .plagscanx-app-overlay .psx-new-results { overflow: visible; padding: 20px 16px; }
    .plagscanx-app-overlay .is-new-scan-header .psx-new-actions { display: none; }
    .plagscanx-app-overlay #view-new_scan {
        --psx-mobile-scan-area-height: max(220px, calc(var(--psx-mobile-viewport-height, 100dvh) - var(--psx-mobile-header-height) - var(--psx-mobile-dock-height) - var(--psx-mobile-notice-height, 0px)));
    }
    .plagscanx-app-overlay #view-new_scan:is([data-mobile-scan-state="input"], [data-mobile-scan-state="loading"]) .plagscanx-input-card {
        display: flex;
        flex: 0 0 auto;
        flex-direction: column;
        height: var(--psx-mobile-scan-area-height);
        min-height: 220px;
    }
    .plagscanx-app-overlay #view-new_scan[data-mobile-scan-state="input"] #psx-new-text {
        flex: 1 1 auto;
        height: 0;
        min-height: 0;
        max-height: none;
    }
    .plagscanx-app-overlay #view-new_scan:is([data-mobile-scan-state="input"], [data-mobile-scan-state="loading"]) .psx-new-results,
    .plagscanx-app-overlay #view-new_scan[data-mobile-scan-state="loading"] :is(#psx-new-text, #psx-new-highlights, #psx-new-heading, #psx-new-file-name, #psx-new-message) { display: none !important; }
    .plagscanx-app-overlay #view-new_scan[data-mobile-scan-state="loading"] .psx-mobile-scan-loading {
        display: flex;
        align-items: center;
        justify-content: center;
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
    }
    .plagscanx-app-overlay .psx-mobile-scan-loading .psx-scan-loading { width: 100%; max-width: 420px; padding: 20px 24px; }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-dock { --psx-mobile-scan-button-size: 44px; gap: 4px; }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-scan-actions { display: flex; flex: 1 0 100%; align-items: center; gap: 8px; min-width: 0; order: 2; }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-scan-tools { display: flex; flex: 0 0 auto; align-items: center; gap: 4px; }
    .plagscanx-app-overlay #view-new_scan:is([data-mobile-scan-state="editing"], [data-mobile-scan-state="loading"]) .psx-mobile-scan-tools { flex: 0 1 auto; flex-wrap: wrap; min-width: var(--psx-mobile-scan-button-size); }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-dock .toolbar-right { display: flex; flex: 0 1 auto; flex-wrap: nowrap; align-items: center; gap: 4px; min-width: min-content; margin-inline-start: auto; }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-scan-tools > .toolbar-item { flex: 0 0 var(--psx-mobile-scan-button-size); width: var(--psx-mobile-scan-button-size); }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-dock .counter-item { order: 0; }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-scan-settings {
        display: flex;
        flex: 1 0 100%;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 0 12px;
        order: 1;
    }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-scan-settings .psx-edit-mode-control { min-height: 44px; white-space: normal; }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-scan-settings .psx-edit-mode { margin-inline-start: auto; }
    .plagscanx-app-overlay #view-new_scan[data-mobile-scan-state="input"] .psx-mobile-dock :is(.counter-item, .psx-mobile-scan-settings) { flex: 1 1 calc(50% - 2px); min-width: 0; }
    .plagscanx-app-overlay #view-new_scan[data-mobile-scan-state="input"] .psx-mobile-scan-settings { justify-content: flex-end; }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-dock :is(#psx-new-upload, #psx-new-configure, #psx-new-share, #psx-new-download, #psx-new-clear) {
        flex: 0 0 var(--psx-mobile-scan-button-size);
        width: var(--psx-mobile-scan-button-size);
        min-width: var(--psx-mobile-scan-button-size);
        height: var(--psx-mobile-scan-button-size);
        min-height: var(--psx-mobile-scan-button-size);
    }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-dock .btn-text { display: none; }
    .plagscanx-app-overlay #view-new_scan #psx-new-submit-hint { flex: 0 1 auto; min-width: min-content; }
    .plagscanx-app-overlay #view-new_scan #psx-new-submit { width: 100%; min-width: min-content; }
    .plagscanx-app-overlay #view-new_scan #psx-new-submit span { min-width: min-content; overflow-wrap: normal; }
    .plagscanx-app-overlay #view-new_scan #psx-new-submit .psx-icon { flex-shrink: 0; }
    .plagscanx-app-overlay #view-new_scan:is([data-mobile-scan-state="results"], [data-mobile-scan-state="loading"]) .counter-item,
    .plagscanx-app-overlay #view-new_scan[data-mobile-scan-state="results"] .toolbar-item:has(#psx-new-upload) { display: none; }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-dock .psx-deep-search[data-tooltip]::after { top: auto; bottom: calc(100% + 10px); left: 0; right: auto; max-width: min(280px, calc(100vw - 24px)); }
    .plagscanx-app-overlay #view-new_scan .psx-mobile-dock .psx-deep-search[data-tooltip]::before { top: auto; bottom: calc(100% + 4px); left: 18px; right: auto; border-width: 6px 6px 0; border-color: #111827 transparent transparent; }
    .plagscanx-app-overlay #view-new_scan[data-mobile-scan-state="input"] .psx-mobile-dock .psx-deep-search[data-tooltip]::after { left: auto; right: 0; }
    .plagscanx-app-overlay #view-new_scan[data-mobile-scan-state="input"] .psx-mobile-dock .psx-deep-search[data-tooltip]::before { left: auto; right: 18px; }
    .plagscanx-app-overlay .results-empty-state { margin-top: 0; min-height: 220px; padding: 24px 12px; }
    .plagscanx-app-overlay :is(#psx-new-highlights, .ai-highlight-overlay) { max-height: none; min-height: 0; overflow: visible; font-size: 16px; }
    .plagscanx-app-overlay .rewriter-panel { min-height: 0; height: auto; flex: 0 0 auto; }
    .plagscanx-app-overlay .rewriter-grid { min-height: 0; height: auto; }
    .plagscanx-app-overlay .rewriter-panel textarea { min-height: 220px; font-size: 16px; }
    .plagscanx-app-overlay .rewriter-panel :is(.rewriter-content, .rewriter-output) { min-height: 180px; }
    .plagscanx-app-overlay .is-standalone-scan .plagscanx-app-header .header-right,
    .plagscanx-app-overlay .is-standalone-scan:not([data-mobile-tool-state="results"]):not([data-mobile-tool-state="editing"]) .plagscanx-sidebar-right { display: none !important; }
    .plagscanx-app-overlay .psx-mobile-tool {
        --psx-mobile-tool-area-height: max(220px, calc(var(--psx-mobile-viewport-height, 100dvh) - var(--psx-mobile-header-height) - var(--psx-mobile-subheader-height, 0px) - var(--psx-mobile-dock-height) - var(--psx-mobile-notice-height, 0px) - var(--psx-mobile-tool-inset, 0px)));
        --psx-mobile-tool-button-size: 44px;
    }
    .plagscanx-app-overlay .psx-mobile-writing-tool { --psx-mobile-tool-inset: 32px; }
    .plagscanx-app-overlay .psx-mobile-writing-tool .plagscanx-editor-container { padding: 16px; }
    .plagscanx-app-overlay .psx-mobile-tool:is([data-mobile-tool-state="input"], [data-mobile-tool-state="loading"]) :is(.plagscanx-input-card, .rewriter-input-panel) {
        display: flex;
        flex-direction: column;
        flex: 0 0 auto;
        height: var(--psx-mobile-tool-area-height);
        min-height: 220px;
    }
    .plagscanx-app-overlay .psx-mobile-tool[data-mobile-tool-state="input"] :is(#plagscanx-text, #plagscanx-ai-text, textarea) {
        flex: 1 1 auto;
        height: 0;
        min-height: 0;
        max-height: none;
    }
    .plagscanx-app-overlay .psx-mobile-tool[data-mobile-tool-state="loading"] :is(textarea, .ai-highlight-overlay, .psx-report-heading, .plagscanx-error),
    .plagscanx-app-overlay .psx-mobile-writing-tool[data-mobile-tool-state="loading"] .rewriter-input-panel > .rewriter-panel-header,
    .plagscanx-app-overlay .psx-mobile-writing-tool:is([data-mobile-tool-state="input"], [data-mobile-tool-state="loading"]) .rewriter-output-panel { display: none !important; }
    .plagscanx-app-overlay .psx-mobile-tool[data-mobile-tool-state="loading"] .psx-mobile-tool-loading {
        display: flex;
        flex: 1 1 auto;
        min-height: 0;
        align-items: center;
        justify-content: center;
        overflow-y: auto;
    }
    .plagscanx-app-overlay .psx-mobile-tool-loading > :is(.psx-scan-loading, .rw-state-box) { width: 100%; max-width: 420px; padding: 20px 24px; }
    .plagscanx-app-overlay .psx-mobile-tool .psx-mobile-dock { gap: 4px; }
    .plagscanx-app-overlay .psx-mobile-tool-settings {
        display: flex;
        flex: 1 0 100%;
        min-width: 0;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 4px 12px;
        order: 0;
    }
    .plagscanx-app-overlay .psx-mobile-tool-settings .counter-item { flex: 1 1 auto; order: 0; }
    .plagscanx-app-overlay .psx-mobile-tool-settings .psx-deep-search { order: 1; }
    .plagscanx-app-overlay .psx-mobile-tool-settings .psx-edit-mode { order: 2; margin-inline-start: auto; }
    .plagscanx-app-overlay .psx-mobile-tool-settings .psx-edit-mode-control { min-height: 44px; white-space: normal; }
    .plagscanx-app-overlay .psx-mobile-tool-actions {
        display: flex;
        flex: 1 0 100%;
        align-items: center;
        gap: 8px;
        min-width: 0;
        order: 1;
    }
    .plagscanx-app-overlay .psx-mobile-tool-utilities { display: flex; flex: 0 0 auto; align-items: center; gap: 4px; }
    .plagscanx-app-overlay .psx-mobile-tool:is([data-mobile-tool-state="loading"], [data-mobile-tool-state="editing"]) .psx-mobile-tool-utilities { flex: 0 1 auto; flex-wrap: wrap; min-width: var(--psx-mobile-tool-button-size); }
    .plagscanx-app-overlay .psx-mobile-tool-actions .toolbar-right { display: flex; flex: 0 1 auto; flex-wrap: nowrap; min-width: min-content; align-items: center; gap: 4px; margin-inline-start: auto; }
    .plagscanx-app-overlay .psx-mobile-tool .psx-mobile-dock :is(.plagscanx-btn-upload, .plagscanx-btn-secondary) {
        flex: 0 0 var(--psx-mobile-tool-button-size);
        width: var(--psx-mobile-tool-button-size);
        min-width: var(--psx-mobile-tool-button-size);
        height: var(--psx-mobile-tool-button-size);
        min-height: var(--psx-mobile-tool-button-size);
        margin: 0 !important;
    }
    .plagscanx-app-overlay .psx-mobile-tool .psx-mobile-dock .btn-text { display: none; }
    .plagscanx-app-overlay .psx-mobile-tool .toolbar-right :is(.plagscanx-cta-tooltip-wrap, .plagscanx-btn-primary) { min-width: min-content; }
    .plagscanx-app-overlay .psx-mobile-tool .toolbar-right .plagscanx-btn-primary { width: 100%; }
    .plagscanx-app-overlay .psx-mobile-tool .toolbar-right .psx-scan-label { overflow-wrap: normal; min-width: min-content; }
    .plagscanx-app-overlay .psx-mobile-tool .plagscanx-btn-primary .psx-icon { flex-shrink: 0; }
    .plagscanx-app-overlay .psx-mobile-tool:not(.psx-mobile-writing-tool):is([data-mobile-tool-state="loading"], [data-mobile-tool-state="results"]) .counter-item,
    .plagscanx-app-overlay .psx-mobile-tool[data-mobile-tool-state="results"] .psx-mobile-tool-utilities .toolbar-item:has(.hidden-file-input) { display: none; }
    .plagscanx-app-overlay .psx-mobile-writing-tool .psx-mobile-tool-settings .rewriter-toolbar-left { flex: 1 1 0; min-width: 0; }
    .plagscanx-app-overlay .psx-mobile-writing-tool .psx-mobile-tool-actions .rewriter-toolbar-right {
        display: flex;
        flex: 1 1 100%;
        width: 100%;
        min-width: 0;
        align-items: center;
        gap: 8px;
    }
    .plagscanx-app-overlay .psx-mobile-writing-tool .rewriter-toolbar-right > :is(.plagscanx-cta-tooltip-wrap, .plagscanx-btn-primary) { flex: 1 1 0; min-width: 0; }
    .plagscanx-app-overlay .psx-mobile-writing-tool .rewriter-toolbar-right .plagscanx-btn-primary { width: 100%; }
    .plagscanx-app-overlay .psx-mobile-writing-tool .psx-mobile-tool-settings .rw-copy-btn {
        flex: 0 0 var(--psx-mobile-tool-button-size);
        width: var(--psx-mobile-tool-button-size);
        min-width: var(--psx-mobile-tool-button-size);
        height: var(--psx-mobile-tool-button-size);
        min-height: var(--psx-mobile-tool-button-size);
        border-radius: 50%;
        padding: 0;
        gap: 0;
        font-size: 0;
    }
    .plagscanx-app-overlay .psx-mobile-writing-tool .rewriter-output-panel { scroll-margin-top: calc(var(--psx-mobile-header-height) + 12px); }
    .plagscanx-app-overlay .psx-mobile-tool .psx-mobile-dock .psx-deep-search[data-tooltip]::after { top: auto; bottom: calc(100% + 10px); left: 0; right: auto; max-width: min(280px, calc(100vw - 24px)); }
    .plagscanx-app-overlay .psx-mobile-tool .psx-mobile-dock .psx-deep-search[data-tooltip]::before { top: auto; bottom: calc(100% + 4px); left: 18px; right: auto; border-width: 6px 6px 0; border-color: #111827 transparent transparent; }
    .plagscanx-app-overlay .psx-mobile-tool[data-mobile-tool-state="input"] .psx-mobile-dock .psx-deep-search[data-tooltip]::after { left: auto; right: 0; }
    .plagscanx-app-overlay .psx-mobile-tool[data-mobile-tool-state="input"] .psx-mobile-dock .psx-deep-search[data-tooltip]::before { left: auto; right: 18px; }
    .plagscanx-app-overlay .plagscanx-view input:not([type=checkbox]):not([type=radio]),
    .plagscanx-app-overlay .plagscanx-view select { font-size: 16px; }
    .plagscanx-app-overlay .psx-reports-toolbar { --psx-reports-control-height: 44px; }
    .plagscanx-app-overlay :is(.psx-report-icon, .psx-report-actions-menu summary.psx-report-icon, .psx-reports-page-controls button, .btn-delete-lib-item, .psx-website-add, .psx-website-remove) { min-width: 44px; min-height: 44px; }
    .plagscanx-app-overlay .psx-reports-table tr { grid-template-columns: 24px minmax(0, 1fr) 44px; }
    .plagscanx-app-overlay .psx-report-selection { position: relative; }
    .plagscanx-app-overlay .psx-report-selection input { width: 24px; height: 24px; }
    .plagscanx-app-overlay :is(.psx-report-actions-list button, .psx-library-filters select, .psx-collection-search) { min-height: 44px; }
    .plagscanx-app-overlay :is(.row-info, .row-action, .static-val, .settings-plan-action) { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
    .plagscanx-app-overlay .settings-profile-summary { flex-wrap: wrap; }
    .plagscanx-app-overlay .psx-settings-save-row { flex-direction: column; align-items: stretch; }
    .plagscanx-app-overlay #psx-tool-settings-status { flex: 0 0 auto; }
    .plagscanx-app-overlay .psx-settings-save-row button { align-self: flex-end; min-height: 44px; }
    .plagscanx-app-overlay .plagscanx-toggle-container::after { content: ''; position: absolute; inset: -13px 0; }
    .plagscanx-app-overlay .plagscanx-pricing-card { min-height: 0; }
    .plagscanx-app-overlay .plagscanx-pricing-card[data-tier="free"] { display: none; }
    .plagscanx-app-overlay .pricing-card-header { min-height: 0; }
    .plagscanx-app-overlay .pricing-billing-control { flex-wrap: wrap; }
    .plagscanx-app-overlay .pricing-cta-btn { min-height: 44px; }
    .plagscanx-app-overlay .psx-app-notice { position: static; flex: 0 0 auto; }
    .plagscanx-app-overlay :is(.psx-app-notice-message, .psx-app-notice-code code) { overflow-wrap: anywhere; }
    .plagscanx-app-overlay .psx-app-notice-code { max-width: 100%; }
    .plagscanx-app-overlay :is(.psx-new-dialog, .plagscanx-modal-content) { max-height: calc(var(--psx-mobile-viewport-height, 100dvh) - 24px); overflow-y: auto; }
    .plagscanx-app-overlay :is(.plagscanx-modal-overlay, .plagscanx-drawer-overlay) { top: var(--psx-mobile-viewport-top, 0px); bottom: auto; height: var(--psx-mobile-viewport-height, 100dvh); }
    .plagscanx-app-overlay .psx-new-dialog { position: fixed; top: calc(var(--psx-mobile-viewport-top, 0px) + var(--psx-mobile-viewport-height, 100dvh) / 2); bottom: auto; margin-block: 0; transform: translateY(-50%); }
    .plagscanx-app-overlay :is(.psx-comprehensive-close, .psx-unified-gate-close, .drawer-close) { min-width: 44px; min-height: 44px; }
    .plagscanx-app-overlay .psx-comprehensive-dialog-heading { padding-inline-end: 44px; }
    .plagscanx-app-overlay .psx-new-dialog-actions { flex-wrap: wrap; }
    .plagscanx-app-overlay .psx-new-dialog-actions button { min-height: 44px; }
    .plagscanx-app-overlay :is(.psx-mobile-nav-open, .psx-mobile-nav-close):focus-visible { outline: 2px solid var(--psx-primary); outline-offset: 2px; }
    body:has(.plagscanx-app-overlay) .plagscanx-toast-container { top: auto; bottom: 12px; max-height: 30dvh; overflow-y: auto; }
}

@media screen and (max-width: 400px) {
    .plagscanx-app-overlay #view-new_scan .psx-mobile-dock { --psx-mobile-scan-button-size: 40px; }
    .plagscanx-app-overlay .psx-mobile-tool { --psx-mobile-tool-button-size: 40px; }
}

@media screen and (min-width: 561px) and (max-width: 900px) {
    .plagscanx-app-overlay .pricing-card-cluster { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .plagscanx-app-overlay .pricing-card-cluster.psx-subscription-count-1,
    .plagscanx-app-overlay .pricing-card-cluster.psx-subscription-count-2.psx-has-free-plan { grid-template-columns: 1fr; }
}
