/* Ollie mobile UI foundations. Desktop presentation remains owned by DashLite
   and the feature stylesheets; these rules only apply below the shared 768px
   mobile breakpoint. */

.kf-generic-mobile-filter-trigger,
.kf-generic-mobile-filter-header,
.kf-generic-mobile-filter-backdrop,
.kf-mobile-edit-trigger,
.kf-mobile-floor-toggle { display: none; }

@media (max-width: 767.98px) {
    :root {
        --kf-mobile-gap: .75rem;
        --kf-mobile-page-pad: .875rem;
        --kf-mobile-safe-bottom: env(safe-area-inset-bottom, 0px);
    }

    .kf-password-control { position: relative; }
    .kf-password-control > .form-control { padding-right: 4rem; }
    .kf-password-toggle {
        position: absolute;
        top: 50%;
        right: .25rem;
        min-width: 3.25rem;
        min-height: 44px;
        padding: 0 .5rem;
        border: 0;
        border-radius: 5px;
        background: transparent;
        color: #2263b3;
        font-size: .72rem;
        font-weight: 700;
        transform: translateY(-50%);
    }
    .kf-password-toggle:hover { background: #eef4fb; }
    .kf-password-toggle:focus-visible { outline: 2px solid #2263b3; outline-offset: 1px; }

    html,
    body,
    .nk-app-root,
    .nk-main,
    .nk-wrap { max-width: 100%; overflow-x: hidden; }

    .nk-content { padding: 1rem 0 !important; }
    .nk-content > .container-fluid { padding-inline: var(--kf-mobile-page-pad) !important; }
    .nk-block-head,
    .nk-block-head-content,
    .nk-block-between,
    .nk-block-head-sub,
    .card-title-group { min-width: 0; }
    .nk-block-between,
    .nk-block-head-flex,
    .card-title-group { align-items: flex-start; gap: var(--kf-mobile-gap); flex-wrap: wrap; }
    .nk-block-head-content:last-child,
    .nk-block-head-content .toggle-wrap,
    .nk-block-head-content .btn-group { max-width: 100%; }

    /* All routine and comparison tables use the same row-as-card contract.
       The JS companion supplies data-label from the existing table headers. */
    .table-responsive { overflow: visible !important; border: 0 !important; }
    table.kf-mobile-record-table,
    table.kf-mobile-record-table tbody,
    table.kf-mobile-record-table tr,
    table.kf-mobile-record-table th,
    table.kf-mobile-record-table td { display: block; width: 100%; }
    table.kf-mobile-record-table { border: 0 !important; background: transparent !important; }
    table.kf-mobile-record-table colgroup { display: none !important; }
    table.kf-mobile-record-table thead { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    table.kf-mobile-record-table tbody { display: grid; gap: var(--kf-mobile-gap); padding: var(--kf-mobile-gap); }
    table.kf-mobile-record-table tbody tr {
        margin: 0;
        padding: .25rem .875rem;
        border: 1px solid #dbe2ea !important;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 2px 8px rgba(31, 43, 61, .05);
    }
    table.kf-mobile-record-table tbody tr[hidden] { display: none !important; }
    table.kf-mobile-record-table tbody th,
    table.kf-mobile-record-table tbody td {
        min-width: 0 !important;
        max-width: none !important;
        padding: .625rem 0 !important;
        border: 0 !important;
        border-bottom: 1px solid #edf0f4 !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
        text-align: left !important;
    }
    table.kf-mobile-record-table tbody th:last-child,
    table.kf-mobile-record-table tbody td:last-child { border-bottom: 0 !important; }
    table.kf-mobile-record-table tbody th::before,
    table.kf-mobile-record-table tbody td::before {
        display: block;
        margin-bottom: .2rem;
        color: #8094ae;
        content: attr(data-label);
        font-size: .66rem;
        font-weight: 700;
        letter-spacing: .035em;
        line-height: 1.2;
        text-transform: uppercase;
    }
    table.kf-mobile-record-table tbody th[data-label="" ]::before,
    table.kf-mobile-record-table tbody td[data-label="" ]::before { display: none; }
    table.kf-mobile-record-table .kf-hide-mobile { display: block !important; }
    table.kf-mobile-record-table .dropdown-menu { position: fixed !important; inset: auto var(--kf-mobile-page-pad) calc(var(--kf-mobile-safe-bottom) + .75rem) !important; width: auto !important; max-height: min(60dvh, 480px); overflow-y: auto; transform: none !important; }
    table.kf-mobile-record-table .btn,
    table.kf-mobile-record-table button,
    table.kf-mobile-record-table a[role="button"] { min-height: 44px; }
    table.kf-mobile-record-table .kf-mobile-record-actions {
        display: flex !important;
        align-items: stretch;
        flex-wrap: wrap;
        gap: .5rem;
        padding-top: .75rem !important;
    }
    table.kf-mobile-record-table .kf-mobile-record-actions::before { flex-basis: 100%; }
    table.kf-mobile-record-table .kf-mobile-record-actions > .btn,
    table.kf-mobile-record-table .kf-mobile-record-actions > button,
    table.kf-mobile-record-table .kf-mobile-record-actions > form { flex: 1 1 100%; }
    .kf-mobile-edit-trigger { display: inline-flex !important; width: 100%; justify-content: center; margin-bottom: .5rem; }

    /* Forms and controls */
    .form-control,
    .custom-select,
    .select2-container .select2-selection--single,
    .select2-container--default .select2-selection--multiple,
    button.btn,
    a.btn { min-height: 44px; }
    textarea.form-control { min-height: 112px; }
    .row > [class*="col-"] { min-width: 0; }
    .form-actions,
    .kf-user-form-actions,
    .bld-actions .actions,
    .proposal-form-actions {
        position: sticky;
        bottom: 0;
        z-index: 50;
        padding: .75rem var(--kf-mobile-page-pad) calc(.75rem + var(--kf-mobile-safe-bottom));
        border-top: 1px solid #dbe2ea;
        background: rgba(255, 255, 255, .97);
        box-shadow: 0 -8px 20px rgba(31, 43, 61, .08);
    }
    .form-actions .btn,
    .kf-user-form-actions .btn,
    .proposal-form-actions .btn { width: 100%; justify-content: center; }

    /* Tabs remain the existing tabs, but are usable as a touch strip. */
    .nav-tabs,
    .kf-location-popup-tabs,
    .kf-plan-builder__unit-tabs,
    .proposal-tabs,
    .steps > ul {
        display: flex !important;
        flex-wrap: nowrap !important;
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: none;
        scroll-snap-type: x proximity;
    }
    .nav-tabs::-webkit-scrollbar,
    .kf-location-popup-tabs::-webkit-scrollbar,
    .kf-plan-builder__unit-tabs::-webkit-scrollbar { display: none; }
    .nav-tabs > *,
    .kf-location-popup-tabs > *,
    .kf-plan-builder__unit-tabs > *,
    .steps > ul > * { flex: 0 0 auto; scroll-snap-align: start; }

    /* Wizard progress remains compact and the current step stays visible. */
    .nk-wizard .steps { margin: 0 -.875rem 1rem; overflow: hidden; }
    .nk-wizard .steps > ul { gap: .375rem; padding: .25rem .875rem .75rem; }
    .nk-wizard .steps > ul > li { width: auto !important; min-width: 132px; margin: 0 !important; }
    .nk-wizard .steps > ul > li > a {
        display: flex !important;
        align-items: center;
        min-height: 48px;
        padding: .5rem .625rem !important;
        border: 1px solid #dbe2ea;
        border-radius: 7px;
        background: #fff;
    }
    .nk-wizard .steps > ul > li.current > a { border-color: #2263b3; background: #eef6ff; }
    .nk-wizard .steps .number { flex: 0 0 auto; }
    .nk-wizard .content { min-height: 0 !important; }
    .nk-wizard .content > .body { width: 100% !important; padding: 0 !important; }
    .nk-wizard .actions {
        position: sticky;
        bottom: 0;
        z-index: 60;
        margin: 1rem -.875rem -.875rem;
        padding: .75rem .875rem calc(.75rem + var(--kf-mobile-safe-bottom));
        border-top: 1px solid #dbe2ea;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 -8px 20px rgba(31, 43, 61, .08);
    }
    .nk-wizard .actions > ul { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
    .nk-wizard .actions > ul > li { float: none !important; order: 0 !important; width: 100%; margin: 0 !important; }
    .nk-wizard .actions a { display: flex !important; align-items: center; justify-content: center; min-height: 44px; }

    /* Framework and custom dialogs become bounded mobile sheets. */
    .modal-dialog,
    .modal-dialog.modal-lg,
    .modal-dialog.modal-xl,
    .kf-editor-dialog,
    .kf-record-audit-dialog {
        width: calc(100% - 1rem) !important;
        max-width: none !important;
        height: calc(100dvh - 1rem) !important;
        max-height: calc(100dvh - 1rem) !important;
        margin: .5rem !important;
    }
    .modal-content,
    .kf-editor-dialog,
    .kf-record-audit-content { max-height: 100%; overflow: hidden; border-radius: 10px; }
    .modal-content { display: flex; flex-direction: column; }
    .modal-header,
    .modal-footer { flex: 0 0 auto; }
    .modal-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
    .modal-footer {
        gap: .5rem;
        padding-bottom: calc(.75rem + var(--kf-mobile-safe-bottom));
        flex-wrap: wrap;
    }
    .modal-footer .btn { flex: 1 1 100%; justify-content: center; margin: 0 !important; }
    .kf-confirm-modal { width: calc(100% - 1.5rem) !important; padding: 1.25rem !important; }
    .kf-confirm-modal-actions { align-items: stretch; flex-direction: column-reverse; }
    .kf-confirm-modal-btn { min-height: 44px; }

    /* Stack plans become floor sections containing vertical unit cards. */
    .kf-stack-viewer__unit-strip,
    .kf-sp-unit-strip,
    .kf-plan-builder__unit-strip { display: grid !important; grid-template-columns: 1fr !important; gap: .5rem; min-width: 0 !important; overflow: visible !important; padding: .625rem; }
    .kf-stack-viewer__unit,
    .kf-sp-unit-card,
    .kf-plan-builder__unit-block { width: 100% !important; min-width: 0 !important; min-height: 88px; border: 1px solid rgba(54, 74, 99, .16) !important; border-radius: 6px; }
    .kf-stack-viewer__floor,
    .kf-sp-floor-row { height: auto !important; min-height: 0 !important; overflow: hidden; border: 1px solid #dbe2ea; border-radius: 8px; background: #fff; }
    .kf-sp-floor-row + .kf-sp-floor-row { margin-top: .75rem; }
    .kf-sp-floor-header,
    .kf-stack-viewer__floor > header { position: relative; min-height: 52px; margin: 0 !important; padding: .625rem 3.5rem .625rem .75rem !important; border-bottom: 1px solid #dbe2ea; background: #f7f9fc; }
    .kf-mobile-floor-toggle {
        position: absolute;
        top: 4px;
        right: 4px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 0;
        border-radius: 6px;
        background: transparent;
        color: #526484;
    }
    .kf-mobile-floor-toggle span { width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); transition: transform .15s ease; }
    .is-mobile-collapsed > .kf-sp-unit-strip,
    .is-mobile-collapsed > .kf-stack-viewer__unit-strip { display: none !important; }
    .is-mobile-collapsed .kf-mobile-floor-toggle span { transform: rotate(-45deg); }
    .kf-plan-builder__canvas { padding: .625rem !important; overflow: visible !important; }
    .kf-plan-builder__plan-grid { min-width: 0 !important; border: 0 !important; }
    .kf-plan-builder__column-headings { display: none !important; }
    .kf-plan-builder__floor-row { display: block !important; height: auto !important; margin-bottom: .75rem !important; border: 1px solid #d8e0ea !important; border-radius: 8px; overflow: hidden; }
    .kf-plan-builder__floor-summary { width: 100% !important; height: auto !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; border: 0 !important; border-bottom: 1px solid #d8e0ea !important; }
    .kf-plan-builder__floor-summary span,
    .kf-plan-builder__floor-number { min-height: 52px; padding: .5rem !important; }
    .kf-plan-builder__preview-tools { align-items: stretch !important; flex-direction: column !important; }
    .kf-plan-builder__totals { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

    .kf-action-feedback-region { top: max(12px, env(safe-area-inset-top, 0px)); }

    body.kf-mobile-sheet-open { overflow: hidden; }
    .kf-generic-mobile-filter-trigger { display: flex !important; width: 100%; justify-content: center; margin-bottom: .75rem; }
    .kf-generic-mobile-filter-backdrop { position: fixed; inset: 0; z-index: 2080; display: block; width: 100%; height: 100%; border: 0; background: rgba(36, 50, 74, .45); backdrop-filter: blur(1px); }
    .kf-generic-mobile-filter-backdrop[hidden] { display: none !important; }
    .kf-mobile-filter-panel {
        position: fixed !important;
        inset: auto 0 0 !important;
        z-index: 2090 !important;
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        max-height: calc(100dvh - 24px);
        margin: 0 !important;
        padding: 0 1rem calc(1rem + var(--kf-mobile-safe-bottom)) !important;
        border-radius: 14px 14px 0 0;
        background: #fff;
        box-shadow: 0 -18px 50px rgba(31, 43, 61, .24);
        overflow-y: auto;
        transform: translateY(110%);
        visibility: hidden;
        transition: transform .2s ease, visibility .2s;
    }
    .kf-mobile-filter-panel.is-open { transform: translateY(0); visibility: visible; }
    .kf-generic-mobile-filter-header { position: sticky; top: 0; z-index: 3; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin: 0 -1rem 1rem; padding: 1rem; border-bottom: 1px solid #e5e9f2; background: #fff; }
    .kf-generic-mobile-filter-header strong,
    .kf-generic-mobile-filter-header span { display: block; }
    .kf-generic-mobile-filter-header strong { color: #364a63; }
    .kf-generic-mobile-filter-header span { margin-top: .2rem; color: #8094ae; font-size: .72rem; }
    .kf-generic-mobile-filter-header button { flex: 0 0 44px; width: 44px; height: 44px; border: 0; border-radius: 6px; background: #f5f6fa; color: #526484; font-size: 1.4rem; }

    /* Property management */
    .kf-detail-wrapper,
    .kf-detail-body,
    .kf-detail-header,
    .kf-ov-spaces-grid,
    .kf-spec-rows { display: grid !important; grid-template-columns: 1fr !important; gap: var(--kf-mobile-gap) !important; }
    .kf-detail-wrapper { padding-inline: var(--kf-mobile-page-pad) !important; }
    .kf-detail-header { height: 220px !important; min-height: 220px; border-radius: 8px !important; }
    .kf-detail-side-card,
    .kf-detail-content-card { width: 100% !important; min-width: 0 !important; }
    .kf-detail-side-actions,
    .kf-section-actions,
    .kf-shortlist-bar,
    .kf-shortlist-bar-actions { align-items: stretch !important; flex-direction: column !important; }
    .kf-detail-side-actions .btn,
    .kf-shortlist-bar-actions > * { width: 100%; justify-content: center; }
    .kf-editor-overlay { padding: 0 !important; align-items: flex-end !important; }
    .kf-editor-panel { width: 100% !important; max-width: none !important; height: 100dvh !important; max-height: 100dvh !important; border-radius: 0 !important; }
    .kf-editor-head { position: sticky; top: 0; z-index: 3; background: #fff; }
    .kf-editor-body { min-height: 0; overflow-y: auto; }
    .kf-editor-foot { position: sticky; bottom: 0; z-index: 3; display: grid !important; grid-template-columns: 1fr !important; gap: .5rem; padding-bottom: calc(.75rem + var(--kf-mobile-safe-bottom)) !important; background: #fff; }
    .kf-editor-foot .btn { width: 100%; justify-content: center; }
    .kf-detail-content-card .kf-location-popup-info,
    .kf-detail-content-card .kf-location-popup-body,
    .kf-detail-content-card .kf-location-popup-tabs { padding-inline: .875rem !important; }
    .kf-ov-grid,
    .kf-ov-owner-row,
    .kf-ov-rep-card,
    .kf-nb-head,
    .kf-nb-actions { display: grid !important; grid-template-columns: 1fr !important; gap: .625rem !important; }
    .kf-nb-actions > * { width: 100%; justify-content: center; }
    .kf-nb-large-map-dialog {
        display: grid !important;
        grid-template-rows: auto minmax(0, 1fr);
        width: 100% !important;
        height: 100dvh !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }
    .kf-nb-large-map-body { display: grid !important; grid-template-columns: 1fr !important; grid-template-rows: minmax(150px, 34dvh) minmax(260px, 1fr); min-height: 0 !important; overflow: hidden; }
    .kf-nb-large-map-side { max-height: none !important; border-right: 0 !important; border-bottom: 1px solid #dbe2ea; }
    .kf-nb-large-map { height: 100% !important; min-height: 260px !important; }

    .kf-brochure-modal { padding: 0 !important; }
    .kf-brochure-dialog,
    .kf-photo-manager-dialog { width: 100% !important; height: 100dvh !important; max-height: 100dvh !important; margin: 0 !important; border-radius: 0 !important; }
    .kf-brochure-head,
    .kf-brochure-foot,
    .kf-photo-manager-head,
    .kf-photo-manager-foot { flex: 0 0 auto; padding: .875rem !important; }
    .kf-brochure-body,
    .kf-photo-manager-body { min-height: 0; padding: .875rem !important; overflow-y: auto; }
    .kf-brochure-foot,
    .kf-photo-manager-foot { display: grid !important; grid-template-columns: 1fr !important; padding-bottom: calc(.875rem + var(--kf-mobile-safe-bottom)) !important; }
    .kf-brochure-row { display: grid !important; grid-template-columns: auto minmax(0, 1fr); }
    .kf-brochure-row-actions { grid-column: 1 / -1; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .bld-map-wrap { height: auto !important; min-height: 0 !important; overflow: visible !important; }
    #bld-map { height: min(48dvh, 360px) !important; min-height: 260px; }
    .bld-map-hint { position: static !important; display: block; padding: .625rem .75rem; background: #f8fafc; }
    .bld-map-status { position: static !important; width: 100% !important; max-width: none !important; border: 0 !important; border-top: 1px solid #dbe2ea !important; border-radius: 0 !important; box-shadow: none !important; }
    .bld-card-actions,
    .bld-search-wrap,
    .bld-add-custom { display: grid !important; grid-template-columns: 1fr !important; gap: .5rem !important; }
    .bld-card-actions .btn,
    .bld-search-wrap > *,
    .bld-add-custom > * { width: 100% !important; max-width: none !important; }
    .bld-rep-remove,
    .bld-lift-zone-remove,
    .bld-ceiling-height-remove,
    .bld-custom-spec-remove { width: 100% !important; min-height: 44px; margin: 0 !important; }

    .bld-map-wrap,
    .proposal-current-map-wrap,
    .kf-loc-map-wrap { min-height: 280px; height: min(52dvh, 420px) !important; }
    .bld-coord-row,
    .bld-rep-row,
    .bld-lift-zone-row,
    .bld-ceiling-height-row,
    .bld-custom-spec-row,
    .proposal-current-coords { display: grid !important; grid-template-columns: 1fr !important; gap: .625rem !important; padding: .75rem; border: 1px solid #dbe2ea; border-radius: 8px; background: #f8fafc; }
    .bld-rep-row + .bld-rep-row,
    .bld-lift-zone-row + .bld-lift-zone-row,
    .bld-ceiling-height-row + .bld-ceiling-height-row,
    .bld-custom-spec-row + .bld-custom-spec-row { margin-top: .75rem; }
    .bld-check-grid { grid-template-columns: 1fr !important; }

    /* Proposals */
    .proposal-list-toolbar,
    .proposal-list-filters,
    .proposal-list-filter-actions,
    .proposal-detail-header,
    .proposal-detail-header-main,
    .proposal-detail-actions,
    .proposal-unit-summary,
    .proposal-unit-summary-metrics,
    .proposal-unit-building-header,
    .proposal-dossier-main,
    .proposal-dossier-brief-grid,
    .proposal-dossier-contact-grid,
    .proposal-share-cover-adjust-layout { display: grid !important; grid-template-columns: 1fr !important; gap: var(--kf-mobile-gap) !important; }
    .proposal-list-search,
    .proposal-list-filter-field,
    .proposal-list-filter-actions,
    .proposal-list-filter-actions .btn,
    .proposal-detail-action,
    .proposal-unit-action { width: 100% !important; }
    .proposal-deal-overview-statuses { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .proposal-detail-title-group,
    .proposal-detail-meta { min-width: 0; flex-wrap: wrap; }
    .proposal-note-form { align-items: stretch !important; flex-direction: column !important; }
    .proposal-note-submit { width: 100%; }
    .proposal-unit-building { padding: .875rem !important; }
    .proposal-unit-building-actions { display: grid !important; grid-template-columns: 1fr !important; width: 100%; }
    .proposal-table { width: 100% !important; min-width: 0 !important; table-layout: auto !important; }
    .proposal-cell-editor,
    .proposal-cell-display,
    .proposal-row-actions,
    .proposal-row-edit-actions { width: 100% !important; max-width: none !important; }
    .proposal-row-actions,
    .proposal-row-edit-actions { display: grid !important; grid-template-columns: 1fr !important; gap: .5rem !important; }
    .proposal-row-actions .btn,
    .proposal-row-edit-actions .btn { width: 100%; justify-content: center; }
    .proposal-current-body,
    .proposal-current-building.is-expanded .proposal-current-body { grid-template-columns: 1fr !important; }
    .proposal-current-actions,
    .proposal-custom-area-actions,
    .kf-review-actions { display: grid !important; grid-template-columns: 1fr !important; gap: .5rem !important; }
    .proposal-current-actions .btn,
    .proposal-custom-area-actions .btn,
    .kf-review-actions .btn { width: 100%; justify-content: center; }
    .proposal-overview-dossier { display: block !important; }
    .proposal-dossier-rail { width: 100% !important; border-left: 0 !important; border-top: 1px solid #e5e9f2; }
    .proposal-activity-item { grid-template-columns: 2rem minmax(0, 1fr) !important; }
    .proposal-activity-time { grid-column: 2; }
    .proposal-share-link-row,
    .proposal-share-copy-row { align-items: stretch !important; flex-direction: column !important; }
    .proposal-share-link-value,
    .proposal-share-copy-main { width: 100% !important; min-width: 0 !important; border-radius: 6px !important; }

    /* Dashboard and administration */
    .kf-dash-chart { min-height: 220px; height: 240px !important; }
    .kf-dash-map-body { min-height: 320px; height: 42dvh !important; }
    .kf-dash-actions { align-items: stretch; flex-direction: column; }
    .kf-dash-actions .btn { width: 100%; }
    .kf-admin-filter-grid,
    .kf-audit-filters,
    .kf-audit-more-grid,
    .kf-audit-metrics,
    .kf-audit-detail-grid,
    .kf-audit-insights-grid { display: grid !important; grid-template-columns: 1fr !important; }
    .kf-audit-page-head,
    .kf-audit-page-actions,
    .kf-audit-filter-foot,
    .kf-audit-filter-actions,
    .kf-audit-pagination { align-items: stretch !important; flex-direction: column !important; }
    .kf-audit-page-actions .btn,
    .kf-audit-filter-actions .btn { width: 100%; }
    .kf-audit-modal-backdrop { padding: 0 !important; align-items: flex-end !important; }
    .kf-audit-modal,
    .kf-audit-modal--wide { width: 100% !important; max-width: none !important; height: 100dvh !important; max-height: 100dvh !important; border-radius: 0 !important; }
    .kf-audit-modal-foot { display: grid !important; grid-template-columns: 1fr !important; gap: .5rem; padding-bottom: calc(.75rem + var(--kf-mobile-safe-bottom)); }

    .kf-settings-shell,
    .kf-settings-workspace { display: block !important; }
    .kf-settings-nav { display: flex !important; width: 100% !important; max-width: 100%; margin-bottom: .875rem; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
    .kf-settings-nav-link { flex: 0 0 auto; min-height: 44px; }
    .kf-settings-content { width: 100% !important; min-width: 0; }
    .kf-loc-actions { display: grid !important; grid-template-columns: 1fr !important; }
    .kf-admin-stat-card,
    .kf-audit-metrics > *,
    .kf-audit-detail-field { min-width: 0 !important; }
    .kf-admin-buildings-table,
    .kf-admin-users-table,
    .kf-admin-departments-table,
    .kf-loc-table,
    .kf-audit-table,
    .table-ulogs { min-width: 0 !important; }
    .kf-user-page-head,
    .kf-user-status-row,
    .kf-settings-heading,
    .kf-release-heading,
    .kf-release-primary,
    .kf-account-actions { align-items: stretch !important; flex-direction: column !important; }
    .kf-user-page-head .btn,
    .kf-settings-heading .btn,
    .kf-account-actions .btn { width: 100%; justify-content: center; }
    .kf-loc-radius { display: grid !important; grid-template-columns: 1fr auto; gap: .5rem; }
    .kf-loc-radius input[type="range"] { grid-column: 1 / -1; width: 100%; min-height: 44px; }
    .kf-audit-change-table,
    .kf-audit-insights-table { min-width: 0 !important; }
    .kf-audit-modal-head { position: sticky; top: 0; z-index: 3; background: #fff; }
    .kf-audit-modal-body { min-height: 0; overflow-y: auto; }
    #logDetailBody .row > [class*="col-"] { flex: 0 0 100%; max-width: 100%; }
    .kf-changelog,
    .kf-release-card,
    .kf-release-panel { min-width: 0; }
    .kf-release-summary,
    .kf-category-item,
    .kf-highlight-item { overflow-wrap: anywhere; }

    /* Public proposal and authentication surfaces */
    .proposal-public-cover,
    .proposal-public-cover-card,
    .proposal-public-showcase,
    .proposal-building-hero,
    .proposal-building-unit-body { grid-template-columns: 1fr !important; }
    .proposal-public-cover { height: auto !important; min-height: 0 !important; }
    .proposal-public-cover-content { min-height: 0 !important; }
    .proposal-public-cover-art { min-height: 260px !important; }
    .proposal-public-cover-brief,
    .proposal-public-cover-metrics,
    .proposal-public-showcase-overview,
    .proposal-public-showcase-metrics,
    .proposal-building-summary-grid,
    .proposal-building-fit-grid,
    .proposal-building-units { grid-template-columns: 1fr !important; }
    .proposal-public-showcase-body { display: grid !important; grid-template-columns: 1fr !important; }
    .proposal-public-building-table { width: 100% !important; min-width: 0 !important; }
    .proposal-public-large-map-modal,
    .proposal-public-large-map-dialog { inset: 0 !important; width: 100% !important; height: 100dvh !important; max-width: none !important; margin: 0 !important; border-radius: 0 !important; }
    .proposal-public-large-map-dialog { display: grid !important; grid-template-rows: auto minmax(0, 1fr); }
    .proposal-public-large-map-body { display: grid !important; grid-template-columns: 1fr !important; grid-template-rows: minmax(150px, 34dvh) minmax(260px, 1fr); min-height: 0 !important; overflow: hidden; }
    .proposal-public-large-map-side { max-height: none !important; border-right: 0 !important; border-bottom: 1px solid #dbe2ea; }
    .proposal-public-large-map { height: 100% !important; min-height: 260px !important; }
    .proposal-building-header-inner,
    .proposal-building-section-head,
    .proposal-building-unit-head { align-items: flex-start !important; flex-direction: column !important; }
    .proposal-building-back { width: 100%; justify-content: center; }
    .nk-split-content,
    .nk-split-stretch { width: 100% !important; min-width: 0 !important; }
    .nk-split-stretch { display: none !important; }
    .nk-auth-body { padding-inline: var(--kf-mobile-page-pad) !important; }
    .nk-auth-body .btn-block { min-height: 48px; }
}

@media (max-width: 359.98px) {
    .nk-content > .container-fluid { padding-inline: .625rem !important; }
    table.kf-mobile-record-table tbody { padding-inline: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .nav-tabs,
    .kf-location-popup-tabs { scroll-behavior: auto; }
}
