/* Status footer shared by all VMS pages. */
body .app-footer.vms-footer-host {
    width: 100%; min-width: 0; margin: 0; padding: 0;
    border: 0; box-shadow: none; background: transparent;
}
body .vms-status-footer {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center; gap: 8px 18px; width: 100%; box-sizing: border-box;
    padding: 10px 14px; border-top: 1px solid var(--erp-theme-border, #dce3ed);
    background: var(--erp-theme-surface, #f8fafc); color: #64748b;
    font-family: 'Poppins', 'Segoe UI', Arial, sans-serif;
    font-size: 11px; line-height: 18px;
}
.vms-status-footer .vms-footer-activity,
.vms-status-footer .vms-footer-credit { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.vms-status-footer .vms-footer-session { min-width: 0; text-align: center; }
.vms-status-footer .vms-footer-credit { flex-wrap: wrap; justify-content: flex-end; }
.vms-status-footer .vms-footer-icon {
    flex: 0 0 14px; width: 14px; height: 14px;
    fill: none; stroke: var(--erp-theme-ink, #475569); stroke-width: 1.8;
    stroke-linecap: round; stroke-linejoin: round;
}
.vms-status-footer time,
.vms-status-footer #vmsSessionActivity { font-variant-numeric: tabular-nums; }
.vms-status-footer .vms-footer-divider { color: #cbd5e1; }
.vms-status-footer a { color: var(--erp-theme-ink, #355e99); font-weight: 500; text-decoration: none; }
.vms-status-footer a:hover { text-decoration: underline; }
.vms-status-footer a:focus-visible { outline: 2px solid var(--erp-theme-focus, #9bb9ed); outline-offset: 2px; border-radius: 2px; }
.vms-status-footer #vmsConnectionStatus:empty + .vms-footer-divider { display: none; }
@media (max-width: 1199px) {
    body .vms-status-footer { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; }
    .vms-status-footer .vms-footer-session { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 767px) {
    body .vms-status-footer { display: flex; justify-content: center; padding: 8px 10px; }
    .vms-status-footer .vms-footer-activity,
    .vms-status-footer .vms-footer-session { display: none; }
    .vms-status-footer .vms-footer-credit { justify-content: center; }
}
@media print { body .app-footer.vms-footer-host { display: none !important; } }

/* Pin the status bar while reserving enough room for every responsive row. */
:root { --vms-footer-height: 40px; }
@media (max-width: 1199px) { :root { --vms-footer-height: 64px; } }
@media (max-width: 767px) { :root { --vms-footer-height: 36px; } }
@media screen {
    body { padding-bottom: var(--vms-footer-height) !important; }
    body .vms-status-footer {
        position: fixed; inset: auto 0 0; z-index: 1020; margin: 0;
        visibility: visible !important;
        padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
        box-shadow: 0 -2px 9px rgba(23, 32, 51, .05);
    }
    html:is(.erp-theme-loading, .erp-report-loading) .vms-status-footer {
        visibility: visible !important; background: #f8fafc; border-color: #e2e8f0;
        color: #64748b; pointer-events: none;
    }
    html:is(.erp-theme-loading, .erp-report-loading) .vms-status-footer :is(a, .vms-footer-icon) { color: #64748b; stroke: #64748b; }
    body #loader { bottom: var(--vms-footer-height); max-height: calc(100vh - var(--vms-footer-height)); }
}
@media screen and (max-width: 767px) {
    body .vms-status-footer { padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px)); }
}
@media print {
    body .vms-status-footer { display: none !important; }
}

/* The pinned footer must not leave a second padded content region in the document. */
@media screen {
    body .main-content-wrap.vms-footer-layout {
        padding: 0 !important;
        margin: 0 !important;
        min-height: 0 !important;
        height: 0;
        border: 0;
    }
    body .vms-footer-layout > .flex-grow-1 { flex-grow: 0 !important; }
    body .main-content-wrap:has(#erp-layout-page-body) {
        padding-bottom: 8px !important;
    }
    body .main-content-wrap:has(#erp-layout-page-body) > .col-md-12 > br:last-child {
        display: none;
    }
}
