/* Screen-only overrides for the app shell. Printed report geometry is unchanged. */
@media screen and (max-width: 1024px) {
    #fildi-app { min-height: 100dvh; }
    #fildi-app .mobile-topbar {
        z-index: 80; min-height: 60px; gap: 10px;
        padding: max(6px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 6px max(12px, env(safe-area-inset-left));
    }
    #fildi-app :is(.hamburger, .mobile-new) { width: 44px; height: 44px; min-width: 44px; align-items: center; }
    #fildi-app .drawer-panel { padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); box-sizing: border-box; }
    #fildi-app .drawer-close {
        position: absolute; top: max(8px, env(safe-area-inset-top)); right: 8px; z-index: 1;
        width: 44px; height: 44px; border: 0; background: transparent;
        color: var(--fildi-ink); font: 400 28px var(--fildi-font); flex: none;
    }
    #fildi-app .drawer-panel > .nav { min-height: 0; overscroll-behavior-y: contain; padding-top: 20px; }
    #fildi-app .drawer-panel .nav-brand { padding-right: 54px; }
    #fildi-app .drawer-panel :is(.nav-link, .nav-new > summary, .nv-acct-id, .nv-account-action, .nav-new-mi) { min-height: 48px; box-sizing: border-box; }
    #fildi-app .drawer-panel .nav-link { border: 0; color: var(--fildi-muted); font-size: 16px; }
    #fildi-app .drawer-panel .nav-link.active { color: var(--fildi-ink); font-weight: 700; }
    #fildi-app .drawer-panel .nav-new-menu { position: static; width: auto; max-width: 100%; box-shadow: none; }
    #fildi-app .drawer-panel .nv-account-actions { max-width: 100%; box-sizing: border-box; }
    #fildi-app .content { padding-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right)); }
    #fildi-app :is(.field, .field-sm, .tf, .edit-grid, .rep-body, .grid-2, .grid2, .dgrid, .cyl-grid) { min-width: 0; }
    #fildi-app :is(.report-form, .geo-form, .lab-entry, .settings-page, .sp-page, .admin-page, .pm-page, .reports-page, .companies-page)
        :is(input, select, textarea):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not(.pv input):not(.pv select):not(.pv textarea):not(.sp-text-input) {
        font-size: 16px; min-height: 44px; min-width: 0; max-width: 100%; box-sizing: border-box;
    }
    #fildi-app :is(.field, .field-sm, .tf) label { white-space: normal; overflow: visible; font-size: 13px; }
    #fildi-app :is(button, summary, a) { touch-action: manipulation; }
    #fildi-app :is(.qm-open, .qm-vopen, .qm-iopen) { display: inline-flex; align-items: center; }
    #fildi-app :is(.qm-open, .qm-vopen, .qm-owner, .rp-pdf, .qm-pdf, .kebab-btn, .kebab-item, .qm-more,
        .rp-pbtn, .page-btn, .qm-pbtn, .qm-tab, .rt-tab, .cp-tab, .sp-cat, .qm-ubtn,
        .mini-btn, .draft-link, .draft-btn, .mat-edit, .mat-del, .test-del, .rk-btn, .comp-chip,
        .btn-dashed, .plot-btn, .setref-go, .walk-cancel, .type-mi, .air-ref-close, .air-help, .pill,
        .le-viewpick button, .sec-edit, .crumb-link, .cyl-del, .sp-act, .l-act, .btn) { min-height: 44px; }
    #fildi-app :is(.kebab-btn, .qm-more, .rp-pbtn, .page-btn, .qm-pbtn, .mat-del, .test-del) { min-width: 44px; }
    #fildi-app :is(.rp-pagination, .pagination, .page-nums, .rp-pages) { flex-wrap: wrap; gap: 6px; }
    #fildi-app :is(.rp-controls, .qm-controls) { display: flex; flex-wrap: wrap; gap: 8px 16px; }
    #fildi-app .rp-controls .rp-utabs { flex: 1 1 100%; gap: 16px; }
    #fildi-app .rp-controls .rp-search { flex: 1 1 100%; order: 0; width: 100%; }
    #fildi-app .rp-controls .rp-sortwrap { flex: 1 1 120px; min-width: 0; }
    #fildi-app .rp-controls .rp-sort { width: 100%; padding-right: 24px; }
    #fildi-app .qm-controls .qm-search { flex: 1 1 100%; width: 100%; }
    #fildi-app .qm-controls > select { flex: 1 1 140px; min-width: 0; }
    #fildi-app .qm-day-h { flex-wrap: wrap; gap: 4px 10px; }
    #fildi-app .qm-card.qm-lrow { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; }
    #fildi-app .qm-lmain { grid-column: 1 / -1; grid-row: 1; min-width: 0; }
    #fildi-app .qm-ltime { grid-column: 1; grid-row: 2; align-self: center; }
    #fildi-app .qm-lact { grid-column: 2; grid-row: 2; justify-self: end; gap: 8px; }
    #fildi-app :is(.qm-lproj, .qm-lname, .qm-cname2, .qm-cname, .qm-metaline) { white-space: normal; overflow-wrap: anywhere; }
    #fildi-app .qm-ctop .qm-cside { flex: 1 1 100%; justify-content: flex-end; gap: 8px; }
    #fildi-app .rp-st { margin-right: 4px; }
    #fildi-app :is(.qm-cmeta, .qm-lmeta, .qm-metaline) { flex-wrap: wrap; }
    #fildi-app :is(.report-form, .geo-form, .lab-entry) .form-actions {
        position: static; display: flex; flex-wrap: wrap; gap: 8px 16px;
        padding-bottom: max(12px, env(safe-area-inset-bottom));
    }
    #fildi-app .form-actions .fa-meta { flex: 1 1 100%; }
    #fildi-app .form-actions .fa-acts { display: flex; flex-wrap: wrap; gap: 8px 16px; }
    #fildi-app :is(.report-form, .geo-form) .draft-banner { flex-wrap: wrap; height: auto; max-height: none; }
    #fildi-app .geo-form .rk-head { flex-direction: column; align-items: stretch; }
    #fildi-app .geo-form .rk-acts { display: flex; flex-wrap: wrap; flex-shrink: 1; gap: 8px; }
    #fildi-app .geo-form .rk-btn { flex: 1 1 90px; justify-content: center; }
    #fildi-app :is(.geo-form .ta-remarks, .report-form .remarks-area) { min-height: 160px; }
    #fildi-app :is(.geo-form .type-grid, .geo-form .chip-row) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #fildi-app .geo-form .comp-chip { white-space: normal; overflow-wrap: anywhere; }
    #fildi-app .geo-form :is(.mat-bar, .test-head, .keep-opts) { flex-wrap: wrap; }
    #fildi-app .geo-form .mat-summary { flex-basis: 100%; }
    #fildi-app :is(.cais-gridwrap, .lsh-tbl, .fibre-tbl) { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
    #fildi-app .fibre-tbl { display: block; }
    #fildi-app .drill-form .dgrid { grid-template-columns: minmax(0, 1fr); }
    #fildi-app .sketchpad { min-width: 0; max-width: 100%; }
    #fildi-app .sketchpad .sp-toolbar { max-width: 100%; box-sizing: border-box; }
    #fildi-app .sketchpad .sp-act { flex-shrink: 0; min-width: 44px; }
    #fildi-app :is(.ticket-modal, .confirm-modal, .qm-scrim) { z-index: 1300; padding: 12px; box-sizing: border-box; }
    #fildi-app :is(.ticket-modal-inner, .confirm-box, .qm-dialog) { max-width: 100%; max-height: calc(100dvh - 24px); overflow-y: auto; box-sizing: border-box; }
    #fildi-app .geo-form .del-backdrop { z-index: 1300; }
    #fildi-app .geo-form .del-dialog { z-index: 1301; max-height: calc(100dvh - 24px); overflow-y: auto; box-sizing: border-box; }
    #fildi-app .pv { z-index: 1400; }
    #fildi-app .pv-head { flex: none; padding: max(8px, env(safe-area-inset-top)) 10px 8px; gap: 8px; }
    #fildi-app .pv-id { flex: 1; min-width: 0; }
    #fildi-app .pv-id .t { overflow-wrap: anywhere; }
    #fildi-app .pv-head > .sp { display: none; }
    #fildi-app .pv-tools { display: flex; flex: 1 1 100%; order: 2; gap: 8px; overflow-x: auto; align-items: center; padding-bottom: 4px; }
    #fildi-app .pv-tools > * { flex-shrink: 0; }
    #fildi-app .pv-b { min-width: 44px; min-height: 44px; justify-content: center; white-space: nowrap; }
    #fildi-app .pv-close { margin-left: auto; font-size: 22px; }
    #fildi-app .pv-body { min-height: 0; justify-content: flex-start; overscroll-behavior: contain; }
    #fildi-app .pv-foot { padding: 8px 12px max(8px, env(safe-area-inset-bottom)); }
}
@media screen and (max-width: 640px) {
    #fildi-app .qm-card { padding: 14px; }
    #fildi-app .qm-card.has-av { padding-left: 56px; }
    #fildi-app .qm-card.qm-lrow { padding: 12px 14px; }
    #fildi-app .qm-list { gap: 10px; }
    #fildi-app .qm-day { margin-top: 24px; }
    #fildi-app :is(.lab-entry .cyl-grid, .lab-entry .lsh-band, .geo-form .cais-cardgrid, .sum-cols) { grid-template-columns: minmax(0, 1fr); }
    #fildi-app .admin-page .sb { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #fildi-app .admin-page .sb-c { padding: 10px; border-right: 0; border-bottom: 1px solid var(--fildi-line); }
    #fildi-app .admin-page .sb-c:nth-child(odd) { border-right: 1px solid var(--fildi-line); }
    #fildi-app .admin-page .sb-c .v { white-space: normal; overflow: visible; overflow-wrap: anywhere; font-size: 18px; letter-spacing: 0; }
    #fildi-app .admin-page .sb-c label { font-size: 11px; color: var(--fildi-muted); letter-spacing: 0; }
    #fildi-app .admin-page .sb-c.ov label { color: var(--fildi-danger); }
    #fildi-app .admin-page .sb-c .v small { font-size: 10px; color: var(--fildi-muted); letter-spacing: 0; }
    #fildi-app :is(.sp-trow, .sp-rrow, .sp-thread-head) { flex-wrap: wrap; }
    #fildi-app .sp-tmsg { flex-basis: 100%; white-space: normal; overflow-wrap: anywhere; }
    #fildi-app .settings-page :is(.sig-tools, .sig-actions) { flex-wrap: wrap; }
    #fildi-app .settings-page .sig-stage { min-height: 130px; }
    #fildi-app .home-ledger { table-layout: fixed; width: 100%; }
    #fildi-app .home-project { display: inline-flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
}
@media screen {
    .pv-tools { display: contents; }
    .pv-body { justify-content: flex-start; }
    .pv-sheet-space { flex: none; position: relative; margin-inline: auto; }
    .pv-sheet-space .pv-sheet { width: max-content; transform-origin: top left; transition: none; }
}
