/* Pulse 1.2.27 : présentation tactile, sans remplacement du thème ni des droits. */
.pulse-mobile-dock { display: none; }
.pulse-mobile-back-to-inbox { display: none; }
@media (max-width: 860px) {
    .pulse-shell { min-width: 0; }
    .pulse-mobile-dock {
        position: fixed;
        inset: auto 0 0;
        z-index: 1070;
        display: flex;
        align-items: stretch;
        justify-content: space-evenly;
        gap: 3px;
        min-height: calc(64px + env(safe-area-inset-bottom, 0px));
        padding: 6px 8px calc(6px + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid var(--p-border-strong);
        background: var(--p-surface-solid);
        box-shadow: 0 -8px 32px rgba(0, 0, 0, .12);
    }
    .pulse-mobile-dock-item {
        position: relative;
        flex: 1 1 0;
        min-width: 0;
        min-height: 52px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        padding: 6px 4px;
        border: 0;
        border-radius: 13px;
        background: transparent;
        color: var(--p-text-2);
        font: inherit;
        font-size: 11px;
        line-height: 1.2;
        font-weight: 650;
        text-align: center;
        text-decoration: none;
        cursor: pointer;
        touch-action: manipulation;
    }
    .pulse-mobile-dock-item i { font-size: 23px; line-height: 1; }
    .pulse-mobile-dock-item span:not(.pulse-mobile-unread) { white-space: nowrap; }
    .pulse-mobile-dock-item:is(.is-current, :hover) { background: var(--p-side-active); color: var(--p-text); }
    .pulse-mobile-dock-item:focus-visible { outline: 3px solid var(--p-accent); outline-offset: -2px; }
    .pulse-mobile-unread { position: absolute; top: 4px; left: calc(50% + 10px); width: 8px; height: 8px; border-radius: 50%; background: var(--p-danger); }
    body.homelab-mobile-menu-open { overflow: hidden; }
    .pulse-sidebar { padding-bottom: env(safe-area-inset-bottom, 0px); }
    .pulse-topbar {
        min-width: 0;
        min-height: 68px !important;
        padding-top: max(12px, env(safe-area-inset-top, 0px)) !important;
        padding-bottom: 12px !important;
    }
    .pulse-topbar-title { flex: 1 1 auto; min-width: 0; }
    .pulse-topbar-title h1 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 1rem !important; }
    .pulse-topbar-actions { gap: 6px; flex: 0 0 auto; }
    .pulse-topbar .navigation-context-switch { gap: 3px; }
    .pulse-topbar .navigation-context-button { width: 34px; height: 38px; }
    .pulse-main:not(.pulse-main-full) .pulse-content {
        box-sizing: border-box;
        min-width: 0;
        padding: 16px 12px calc(100px + env(safe-area-inset-bottom, 0px)) !important;
    }
    .pulse-main:not(.pulse-main-full) .pulse-content > * { min-width: 0; max-width: 100%; }
    .pulse-main:not(.pulse-main-full) .pulse-content :is(.card, .homelab-card, .pulse-card) { max-width: 100%; }
    .pulse-main:not(.pulse-main-full) .pulse-content :is(.card-header,.card-body) { min-width: 0; }
    .pulse-main:not(.pulse-main-full) .pulse-content :is(.btn-toolbar,.btn-group,.mobile-actions,.table-actions,.action-buttons) { max-width: 100%; }
    .pulse-main:not(.pulse-main-full) .pulse-content :is(.form-control, .form-select, textarea, input) { max-width: 100%; }
    .pulse-main:not(.pulse-main-full) .pulse-content :is(.table-responsive,.bp5-table-wrap) {
        max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;
    }
    /* La consultation des colonnes reste possible, sans supprimer de données. */
    .pulse-main:not(.pulse-main-full) .pulse-content table.table:not(.table-responsive table) {
        display: block; overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch;
    }
    .pulse-main:not(.pulse-main-full) .pulse-content .dashboard-showcase-grid { grid-template-columns: 1fr; gap: 12px; }
    .pulse-main:not(.pulse-main-full) .pulse-content .dashboard-overview-grid { grid-template-columns: 1fr; gap: 12px; }
    .pulse-main:not(.pulse-main-full) .pulse-content :is(.bp5-list-header,.bp5-editor-header,.bp5-filters) { min-width: 0; }
}
@media (max-width: 560px) {
    .homelab-mobile-menu-toggle { width: 46px; min-width: 46px; min-height: 44px; top: max(12px, env(safe-area-inset-top, 0px)); left: 10px; }
    .homelab-mobile-menu-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
    .pulse-topbar { padding-left: 67px !important; gap: 5px !important; }
    .pulse-topbar-actions { gap: 4px; }
    .pulse-topbar .pulse-avatar-with-role .topbar-scope-badges { display: none; }
    .pulse-topbar .pulse-logout-btn { padding: 8px !important; min-width: 36px; min-height: 38px; justify-content: center; }
    .pulse-topbar .pulse-logout-btn span { display: none; }
    .pulse-topbar-badge { font-size: 0; padding: 7px; }
    .pulse-topbar-badge i { font-size: 15px; }
    .pulse-topbar-title h1 { font-size: .94rem !important; }
    .pulse-main:not(.pulse-main-full) .pulse-content { padding-left: 10px !important; padding-right: 10px !important; }
    .pulse-main:not(.pulse-main-full) .pulse-content :is(.pulse-page-header,.page-header) { padding: 15px 13px; }
    .pulse-main:not(.pulse-main-full) .pulse-content :is(.card,.homelab-card,.pulse-card) > .card-body { padding: 15px 13px; }
    .pulse-main:not(.pulse-main-full) .pulse-content .row { --bs-gutter-x: .65rem; }
    .pulse-mobile-dock { padding-left: 4px; padding-right: 4px; }
    .pulse-mobile-dock-item { font-size: 10px; }
    /* Messagerie privée : liste ou conversation, jamais deux panneaux comprimés. */
    .pulse-content .im-private-workspace.is-compose-page .im-thread-panel { display: none; }
    .pulse-content .im-private-workspace.pulse-mobile-inbox .im-conversation-panel { display: none; }
    .pulse-content .im-private-workspace.pulse-mobile-inbox .im-thread-panel { display: flex; max-height: none; min-height: 55vh; }
    .pulse-content .im-private-workspace.pulse-mobile-thread .im-thread-panel { display: none; }
    .pulse-content .im-private-workspace.pulse-mobile-thread .im-conversation-panel { min-height: min(70dvh, 760px); }
    .pulse-content .im-private-workspace .im-chat-shell { min-height: 0; height: auto; grid-template-columns: minmax(0, 1fr); border-radius: 15px; }
    .pulse-content .im-private-workspace .im-conversation-topbar { flex-wrap: wrap; }
    .pulse-content .im-private-workspace .pulse-mobile-back-to-inbox {
        display: inline-flex; align-items: center; gap: 7px; margin: 11px 10px 2px;
        padding: 10px 12px; border: 1px solid var(--p-border-strong); border-radius: 10px;
        background: var(--p-surface-solid); color: var(--p-text); text-decoration: none; font-weight: 650;
    }
}
@media (prefers-reduced-motion: reduce) {
    .pulse-mobile-dock-item { transition: none; }
}
