/* =========================================================
   Pro Talents - Mobile redesign global
   Objectif : améliorer le rendu de l'application WebView
   sur téléphone : formulaires, boutons, modales, notifications,
   filtres et cartes.
   ========================================================= */

:root {
    --pt-bg: #f4f7fb;
    --pt-surface: #ffffff;
    --pt-surface-2: #f8fafc;
    --pt-border: #d8e0ea;
    --pt-text: #1f2a37;
    --pt-muted: #667085;
    --pt-primary: #10375c;
    --pt-primary-dark: #0b2742;
    --pt-primary-light: #eaf2ff;
    --pt-success: #1fa45a;
    --pt-success-dark: #178349;
    --pt-danger: #d64045;
    --pt-warning: #e3a008;
    --pt-shadow: 0 10px 30px rgba(16, 55, 92, 0.10);
    --pt-radius: 18px;
    --pt-radius-sm: 14px;
}

* {
    box-sizing: border-box;
}

html {
    width: 100%;
    max-width: 100%;
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    width: 100%;
    max-width: 100%;
    margin: 0;
    overflow-x: hidden !important;
    background: var(--pt-bg);
    color: var(--pt-text);
}

img,
video,
canvas,
svg,
iframe {
    max-width: 100% !important;
    height: auto;
}

p,
span,
div,
a,
strong,
small,
label,
td,
th,
h1,
h2,
h3,
h4 {
    overflow-wrap: anywhere;
}

form,
.card,
.box,
.stat-card,
.chart-card,
.dashboard-card,
.mission-card,
.notif-item,
.content,
.main,
.main-content,
.container,
.interimaire-container,
.day-box,
.modal-content,
.login-box {
    max-width: 100% !important;
}

input,
select,
textarea,
button,
.btn,
a.btn,
.btn-primary,
.btn-secondary,
.btn-danger,
.btn-success,
.btn-warning,
.btn-accept,
.btn-refuse,
a[class*="btn"] {
    font-size: 16px;
    max-width: 100% !important;
}

textarea {
    min-height: 110px;
    resize: vertical;
}

.badge,
.notif-badge,
.notif-badge-menu {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    line-height: 1.2;
    white-space: normal !important;
}

.table-responsive,
.responsive-table {
    width: 100%;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
}

.login-box {
    max-width: 420px;
}

/* Page de connexion centrée */
body.login-page {
    min-height: 100vh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 22px !important;
    background: linear-gradient(180deg, #f7f9fc 0%, #eff4f9 100%) !important;
}

body.login-page .login-box {
    margin: 0 auto !important;
    width: min(100%, 420px) !important;
}

@media (max-width: 900px) {
    body {
        background: linear-gradient(180deg, #f7f9fc 0%, #eff4f9 100%);
        padding-bottom: env(safe-area-inset-bottom);
    }

    /* Sidebar / menu */
    .sidebar {
        position: relative !important;
        width: 100% !important;
        min-height: auto !important;
        height: auto !important;
        padding: 10px 12px !important;
        display: flex !important;
        gap: 8px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        white-space: nowrap !important;
        align-items: center !important;
        -webkit-overflow-scrolling: touch;
        background: linear-gradient(135deg, var(--pt-primary), #174d80) !important;
        box-shadow: 0 8px 24px rgba(16, 55, 92, 0.18);
    }

    .sidebar h2,
    .sidebar h3,
    .sidebar p {
        display: none !important;
    }

    .sidebar a,
    .mobile-header a {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 auto !important;
        min-height: 38px !important;
        width: auto !important;
        padding: 9px 14px !important;
        border-radius: 999px !important;
        border: 1px solid rgba(255,255,255,0.12) !important;
        background: rgba(255,255,255,0.14) !important;
        color: #fff !important;
        text-decoration: none !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        white-space: nowrap !important;
    }

    .content,
    .main,
    .main-content,
    .container,
    .interimaire-container {
        margin-left: 0 !important;
        width: 100% !important;
        padding: 14px !important;
    }

    h1 {
        font-size: 24px !important;
        line-height: 1.2 !important;
        margin: 0 0 14px 0 !important;
        color: var(--pt-primary-dark);
    }

    h2 {
        font-size: 20px !important;
        line-height: 1.25 !important;
        color: var(--pt-primary-dark);
    }

    h3 {
        font-size: 17px !important;
        line-height: 1.3 !important;
    }

    .card,
    .mission-card,
    .dashboard-card,
    .chart-card,
    .stat-card,
    .box,
    .day-box,
    .notif-item,
    .login-box {
        width: 100% !important;
        background: var(--pt-surface) !important;
        border: 1px solid rgba(216, 224, 234, 0.8) !important;
        border-radius: var(--pt-radius) !important;
        box-shadow: var(--pt-shadow) !important;
        padding: 16px !important;
        margin: 0 0 14px 0 !important;
    }

    .cards,
    .stats,
    .stats-grid,
    .dashboard-grid,
    .charts-grid,
    .grid,
    .row,
    .kpi-grid,
    .quick-actions,
    .summary-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .page-header,
    .card-header,
    .header-actions,
    .mission-top {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        align-items: stretch !important;
    }

    /* Form design */
    form {
        width: 100% !important;
        max-width: 100% !important;
    }

    label {
        display: block !important;
        margin: 12px 0 6px !important;
        color: var(--pt-primary-dark) !important;
        font-weight: 700 !important;
        font-size: 14px !important;
        letter-spacing: 0.01em;
    }

    input,
    select,
    textarea {
        width: 100% !important;
        min-height: 48px !important;
        padding: 12px 14px !important;
        border-radius: 14px !important;
        border: 1.5px solid var(--pt-border) !important;
        background: var(--pt-surface) !important;
        color: var(--pt-text) !important;
        box-shadow: 0 2px 6px rgba(15, 23, 42, 0.03) !important;
        outline: none !important;
        transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
    }

    select {
        appearance: none;
        -webkit-appearance: none;
        background-image: linear-gradient(45deg, transparent 50%, var(--pt-primary) 50%), linear-gradient(135deg, var(--pt-primary) 50%, transparent 50%);
        background-position: calc(100% - 20px) calc(50% - 3px), calc(100% - 14px) calc(50% - 3px);
        background-size: 6px 6px, 6px 6px;
        background-repeat: no-repeat;
        padding-right: 38px !important;
    }

    textarea {
        min-height: 110px !important;
    }

    input:focus,
    select:focus,
    textarea:focus {
        border-color: #7aa7d9 !important;
        box-shadow: 0 0 0 4px rgba(16, 55, 92, 0.10) !important;
        background: #fff !important;
    }

    input[type="checkbox"],
    input[type="radio"] {
        width: auto !important;
        min-height: auto !important;
        accent-color: var(--pt-primary);
    }

    /* Buttons redesign */
    .top-buttons,
    .week-buttons {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 100% !important;
        margin-bottom: 14px !important;
    }

    .actions,
    .mission-actions,
    .button-group,
    .filters,
    .form-actions,
    .action-buttons,
    .notif-actions {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        width: 100% !important;
    }

    .top-buttons a,
    .week-buttons a {
        width: 100% !important;
        display: block !important;
    }

    .top-buttons a button,
    .week-buttons a button,
    button,
    .btn,
    a.btn,
    .btn-primary,
    .btn-secondary,
    .btn-danger,
    .btn-success,
    .btn-warning,
    .btn-accept,
    .btn-refuse,
    a[class*="btn"],
    .restaurant-toggle,
    .add-btn,
    .modal-content button,
    .mission-actions button,
    #modal_submit {
        width: 100% !important;
        min-height: 46px !important;
        padding: 11px 14px !important;
        border: none !important;
        border-radius: 14px !important;
        background: linear-gradient(135deg, var(--pt-primary), #1b5d96) !important;
        color: #fff !important;
        font-size: 15px !important;
        font-weight: 700 !important;
        letter-spacing: 0.01em !important;
        text-decoration: none !important;
        text-align: center !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        box-shadow: 0 10px 18px rgba(16, 55, 92, 0.16) !important;
        white-space: normal !important;
    }

    .top-buttons a button,
    .week-buttons a button,
    .restaurant-toggle {
        min-height: 52px !important;
    }

    .active-btn,
    .restaurant-toggle.active-btn,
    .btn-success,
    .btn-valider,
    .btn-accept {
        background: linear-gradient(135deg, var(--pt-success), #29c46a) !important;
        color: #fff !important;
    }

    .btn-danger,
    .btn-refuse,
    .restaurant-toggle.has-unassigned {
        background: linear-gradient(135deg, var(--pt-danger), #ef5f63) !important;
        color: #fff !important;
    }

    .btn-warning {
        background: linear-gradient(135deg, #f0b429, #ffcc4d) !important;
        color: #3d2d00 !important;
    }

    .mission-actions button,
    td .btn,
    td a.btn,
    td button,
    td a[class*="btn"] {
        min-height: 40px !important;
        font-size: 13px !important;
        padding: 8px 10px !important;
        box-shadow: none !important;
    }

    /* Tables */
    table {
        display: block !important;
        width: 100% !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        white-space: nowrap !important;
        -webkit-overflow-scrolling: touch;
        border-radius: 14px !important;
        background: var(--pt-surface) !important;
    }

    th,
    td {
        padding: 10px !important;
        font-size: 14px !important;
        vertical-align: top !important;
    }

    /* Modals */
    .modal {
        padding: 12px !important;
    }

    .modal-content {
        width: 100% !important;
        max-width: 100% !important;
        max-height: calc(100vh - 24px) !important;
        margin: 0 auto !important;
        padding: 18px !important;
        overflow-y: auto !important;
        border-radius: 22px !important;
        background: var(--pt-surface) !important;
        box-shadow: 0 18px 40px rgba(15, 23, 42, 0.20) !important;
    }

    .modal-content h3 {
        font-size: 22px !important;
        margin: 0 0 16px !important;
        color: var(--pt-primary-dark) !important;
        padding-right: 36px !important;
    }

    .close {
        position: sticky !important;
        top: 0 !important;
        float: none !important;
        display: flex !important;
        justify-content: flex-end !important;
        margin-left: auto !important;
        width: 36px !important;
        height: 36px !important;
        border-radius: 999px !important;
        align-items: center !important;
        font-size: 26px !important;
        background: #eef3f8 !important;
        color: var(--pt-primary-dark) !important;
        z-index: 2 !important;
    }

    .checkbox-line {
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        margin: 12px 0 !important;
    }

    /* Notifications */
    .notif-item {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
        overflow: hidden !important;
    }

    .notif-item > div,
    .notif-actions {
        width: 100% !important;
        min-width: 0 !important;
    }

    .notif-title,
    .notif-message,
    .notif-meta,
    .notif-date {
        max-width: 100% !important;
        word-break: break-word !important;
    }

    .notif-actions a,
    .notif-actions button,
    .notif-item > div:last-child a,
    .notif-item > div:last-child button {
        width: 100% !important;
        margin: 0 !important;
    }

    /* Planner boxes */
    .planning-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        overflow: visible !important;
    }

    .day-box {
        min-height: 0 !important;
    }

    .day-title {
        text-align: left !important;
        font-size: 17px !important;
        font-weight: 700 !important;
        color: var(--pt-primary-dark) !important;
        margin-bottom: 10px !important;
    }

    .mission-item {
        border: 1px solid #e5e7eb !important;
        border-radius: 14px !important;
        background: #f8fbff !important;
        padding: 10px !important;
        margin-bottom: 10px !important;
    }

    .heures-declarees {
        border-radius: 12px !important;
        background: #f5f8fb !important;
        border: 1px solid #e1e7ef !important;
        padding: 8px 10px !important;
    }

    .fixed-badge {
        border-radius: 999px !important;
        padding: 5px 9px !important;
        background: #fff3cd !important;
    }

    /* Dashboard charts */
    canvas {
        width: 100% !important;
        max-height: 280px !important;
    }

    /* Fixed save button when present */
    .content:has(.btn-save-mobile-fixed) {
        padding-bottom: 95px !important;
    }

    .btn-save-mobile-fixed {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        width: calc(100% - 24px) !important;
        min-height: 54px !important;
        z-index: 9999 !important;
        border-radius: 16px !important;
        box-shadow: 0 18px 30px rgba(16, 55, 92, 0.25) !important;
        font-weight: 800 !important;
    }
}

@media (max-width: 520px) {
    .content,
    .main,
    .main-content,
    .container,
    .interimaire-container {
        padding: 10px !important;
    }

    .top-buttons,
    .week-buttons {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }

    .sidebar a,
    .mobile-header a {
        font-size: 12px !important;
        padding: 8px 11px !important;
    }

    .card,
    .mission-card,
    .dashboard-card,
    .chart-card,
    .stat-card,
    .box,
    .day-box,
    .notif-item,
    .modal-content,
    .login-box {
        padding: 14px !important;
        border-radius: 16px !important;
    }

    th,
    td {
        font-size: 13px !important;
    }
}

/* =========================================================
   Effet de clic / retour visuel mobile
   Quand l'utilisateur touche un bouton ou un lien du menu,
   le bouton s'éclaircit et s'enfonce légèrement.
   ========================================================= */

@media (max-width: 900px) {
    a,
    button,
    .btn,
    a.btn,
    .btn-primary,
    .btn-secondary,
    .btn-danger,
    .btn-success,
    .btn-warning,
    .btn-accept,
    .btn-refuse,
    a[class*="btn"],
    .sidebar a,
    .mobile-header a,
    .top-buttons a button,
    .week-buttons a button,
    .restaurant-toggle,
    .add-btn,
    .modal-content button,
    .mission-actions button,
    #modal_submit {
        -webkit-tap-highlight-color: rgba(255,255,255,0.25) !important;
        touch-action: manipulation;
        transition:
            transform 0.12s ease,
            filter 0.12s ease,
            background 0.12s ease,
            box-shadow 0.12s ease,
            opacity 0.12s ease !important;
    }

    a:active,
    button:active,
    .btn:active,
    a.btn:active,
    .btn-primary:active,
    .btn-secondary:active,
    .btn-danger:active,
    .btn-success:active,
    .btn-warning:active,
    .btn-accept:active,
    .btn-refuse:active,
    a[class*="btn"]:active,
    .sidebar a:active,
    .mobile-header a:active,
    .top-buttons a button:active,
    .week-buttons a button:active,
    .restaurant-toggle:active,
    .add-btn:active,
    .modal-content button:active,
    .mission-actions button:active,
    #modal_submit:active {
        transform: scale(0.96) translateY(1px) !important;
        filter: brightness(1.18) saturate(1.08) !important;
        box-shadow: inset 0 3px 10px rgba(255,255,255,0.22), 0 4px 10px rgba(16,55,92,0.12) !important;
        opacity: 0.92 !important;
    }

    .sidebar a:active,
    .mobile-header a:active {
        background: rgba(255,255,255,0.32) !important;
        border-color: rgba(255,255,255,0.55) !important;
    }

    .top-buttons a button:active,
    .week-buttons a button:active,
    .restaurant-toggle:active,
    .add-btn:active {
        background: linear-gradient(135deg, #1c5f99, #2b79b9) !important;
    }

    .active-btn:active,
    .restaurant-toggle.active-btn:active,
    .btn-success:active,
    .btn-valider:active,
    .btn-accept:active {
        background: linear-gradient(135deg, #28c66d, #35dc7e) !important;
    }

    .btn-danger:active,
    .btn-refuse:active,
    .restaurant-toggle.has-unassigned:active {
        background: linear-gradient(135deg, #ef5f63, #ff777a) !important;
    }

    input:active,
    select:active,
    textarea:active,
    input:focus,
    select:focus,
    textarea:focus {
        background: #ffffff !important;
        border-color: #6ea8dc !important;
        box-shadow: 0 0 0 4px rgba(16,55,92,0.12) !important;
    }

    /* Indication visible quand un élément est sélectionné au clavier ou par accessibilité */
    a:focus-visible,
    button:focus-visible,
    .btn:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible {
        outline: 3px solid rgba(42, 123, 185, 0.35) !important;
        outline-offset: 2px !important;
    }
}

/* === MENU MOBILE ACTIF - BLEU, PAS VERT === */
/* Le lien sélectionné du menu reste visible avec un bleu plus clair, sans utiliser le vert. */
@media (max-width: 900px) {
    .sidebar a.active,
    .sidebar a.mobile-menu-active,
    .sidebar a[aria-current="page"],
    .mobile-header a.active,
    .mobile-header a.mobile-menu-active,
    .mobile-header a[aria-current="page"] {
        background: #eaf4ff !important;
        color: #0d2b4c !important;
        border: 2px solid #7db7ec !important;
        text-decoration: none !important;
        font-weight: 800 !important;
        box-shadow: inset 0 -4px 0 rgba(13,43,76,0.18), 0 8px 18px rgba(13,43,76,0.22) !important;
        transform: translateY(-1px) !important;
    }

    .sidebar a:active,
    .sidebar a.pt-menu-pressed,
    .mobile-header a:active,
    .mobile-header a.pt-menu-pressed {
        background: #2b79b9 !important;
        color: #ffffff !important;
        border-color: #ffffff !important;
        text-decoration: none !important;
        box-shadow: inset 0 -4px 0 rgba(255,255,255,0.25), 0 8px 18px rgba(13,43,76,0.25) !important;
    }
}

.top-buttons a.mobile-choice-active button,
.week-buttons a.mobile-choice-active button,
.top-buttons a[aria-current="true"] button,
.week-buttons a[aria-current="true"] button,
.top-buttons a button.active-btn,
.week-buttons a button.active-btn,
button.active-btn,
.restaurant-toggle.active-btn {
    background: #1fa45a !important;
    background-image: none !important;
    color: #ffffff !important;
    border: 2px solid #178349 !important;
    font-weight: 800 !important;
    box-shadow: 0 10px 20px rgba(31,164,90,0.28) !important;
}

button.pt-pressed-green,
a.pt-pressed-green,
.btn.pt-pressed-green,
a[class*="btn"].pt-pressed-green,
.restaurant-toggle.pt-pressed-green,
.add-btn.pt-pressed-green,
#modal_submit.pt-pressed-green,
.top-buttons a.pt-pressed-green button,
.week-buttons a.pt-pressed-green button {
    background: #1fa45a !important;
    background-image: none !important;
    color: #ffffff !important;
    border-color: #178349 !important;
    transform: scale(0.98) !important;
}

button:active,
.btn:active,
a.btn:active,
a[class*="btn"]:active,
.restaurant-toggle:active,
.add-btn:active,
#modal_submit:active,
.top-buttons a:active button,
.week-buttons a:active button {
    background: #1fa45a !important;
    background-image: none !important;
    color: #ffffff !important;
    border-color: #178349 !important;
}

/* =========================================================
   MENU HAMBURGER MOBILE
   Sur téléphone : barre fixe avec bouton 3 tirets + menu latéral.
   Sur ordinateur : le menu garde son affichage normal.
   ========================================================= */
.mobile-menu-bar,
.mobile-menu-overlay {
    display: none;
}

@media (max-width: 900px) {
    body.pt-hamburger-ready {
        padding-top: 64px !important;
    }

    .mobile-menu-bar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        height: 64px !important;
        padding: 10px 14px !important;
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
        background: linear-gradient(135deg, #0d2b4c, #145080) !important;
        color: #ffffff !important;
        box-shadow: 0 8px 24px rgba(13, 43, 76, 0.28) !important;
        z-index: 30000 !important;
    }

    .mobile-menu-toggle {
        width: 46px !important;
        height: 44px !important;
        min-height: 44px !important;
        padding: 0 !important;
        border: 1px solid rgba(255,255,255,0.28) !important;
        border-radius: 14px !important;
        background: rgba(255,255,255,0.14) !important;
        display: inline-flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 5px !important;
        box-shadow: none !important;
        cursor: pointer !important;
        flex: 0 0 auto !important;
    }

    .mobile-menu-toggle:active,
    .mobile-menu-toggle.pt-menu-pressed {
        background: rgba(255,255,255,0.24) !important;
        border-color: rgba(255,255,255,0.65) !important;
        transform: scale(0.97) !important;
    }

    .mobile-menu-toggle span {
        display: block !important;
        width: 23px !important;
        height: 3px !important;
        border-radius: 999px !important;
        background: #ffffff !important;
        transition: transform .22s ease, opacity .22s ease !important;
    }

    body.mobile-menu-open .mobile-menu-toggle span:nth-child(1) {
        transform: translateY(8px) rotate(45deg) !important;
    }

    body.mobile-menu-open .mobile-menu-toggle span:nth-child(2) {
        opacity: 0 !important;
    }

    body.mobile-menu-open .mobile-menu-toggle span:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg) !important;
    }

    .mobile-menu-title {
        display: flex !important;
        flex-direction: column !important;
        line-height: 1.1 !important;
        min-width: 0 !important;
    }

    .mobile-menu-title strong {
        font-size: 16px !important;
        font-weight: 800 !important;
        letter-spacing: 0.02em !important;
    }

    .mobile-menu-title small {
        margin-top: 3px !important;
        font-size: 12px !important;
        color: rgba(255,255,255,0.78) !important;
        font-weight: 600 !important;
    }

    .mobile-menu-overlay {
        position: fixed !important;
        inset: 0 !important;
        display: block !important;
        background: rgba(4, 20, 36, 0.50) !important;
        backdrop-filter: blur(2px) !important;
        z-index: 29990 !important;
    }

    .mobile-menu-overlay[hidden] {
        display: none !important;
    }

    body.pt-hamburger-ready .pt-mobile-nav {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        width: min(82vw, 330px) !important;
        height: 100vh !important;
        min-height: 100vh !important;
        padding: calc(20px + env(safe-area-inset-top)) 14px 20px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        white-space: normal !important;
        background: linear-gradient(180deg, #0d2b4c 0%, #123f68 100%) !important;
        box-shadow: 18px 0 35px rgba(4, 20, 36, 0.35) !important;
        z-index: 30010 !important;
        transform: translateX(-110%) !important;
        transition: transform .25s ease !important;
        -webkit-overflow-scrolling: touch !important;
    }

    body.mobile-menu-open.pt-hamburger-ready .pt-mobile-nav {
        transform: translateX(0) !important;
    }

    body.pt-hamburger-ready .pt-mobile-nav h1,
    body.pt-hamburger-ready .pt-mobile-nav h2,
    body.pt-hamburger-ready .pt-mobile-nav h3,
    body.pt-hamburger-ready .pt-mobile-nav p {
        display: block !important;
        color: #ffffff !important;
        margin: 0 0 12px 2px !important;
        font-size: 20px !important;
        font-weight: 800 !important;
    }

    body.pt-hamburger-ready .pt-mobile-nav a {
        width: 100% !important;
        min-height: 44px !important;
        padding: 12px 14px !important;
        justify-content: flex-start !important;
        border-radius: 14px !important;
        border: 1px solid rgba(255,255,255,0.12) !important;
        background: rgba(255,255,255,0.10) !important;
        color: #ffffff !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        text-align: left !important;
        white-space: normal !important;
        box-shadow: none !important;
    }

    body.pt-hamburger-ready .pt-mobile-nav a.active,
    body.pt-hamburger-ready .pt-mobile-nav a.mobile-menu-active,
    body.pt-hamburger-ready .pt-mobile-nav a[aria-current="page"] {
        background: #eaf4ff !important;
        color: #0d2b4c !important;
        border: 2px solid #9ccbf4 !important;
        box-shadow: inset 5px 0 0 #2b79b9, 0 8px 18px rgba(4,20,36,0.18) !important;
        transform: none !important;
    }

    body.pt-hamburger-ready .pt-mobile-nav a:active,
    body.pt-hamburger-ready .pt-mobile-nav a.pt-menu-pressed {
        background: #2b79b9 !important;
        color: #ffffff !important;
        border-color: #ffffff !important;
        transform: scale(0.98) !important;
    }

    body.pt-hamburger-ready .content,
    body.pt-hamburger-ready .main,
    body.pt-hamburger-ready .main-content,
    body.pt-hamburger-ready .container,
    body.pt-hamburger-ready .interimaire-container {
        margin-left: 0 !important;
        padding-top: 14px !important;
    }

    body.mobile-menu-open {
        overflow: hidden !important;
    }
}


/* Correction intérimaire : .mobile-header devient aussi un vrai menu hamburger */
@media (max-width: 900px) {
    body.pt-hamburger-ready .mobile-header.pt-mobile-nav {
        justify-content: flex-start !important;
        align-items: stretch !important;
    }

    body.pt-hamburger-ready .mobile-header.pt-mobile-nav h1 {
        color: #ffffff !important;
        font-size: 20px !important;
        line-height: 1.2 !important;
        margin: 0 0 14px 2px !important;
        padding: 0 !important;
        white-space: normal !important;
    }

    body.pt-hamburger-ready .mobile-header.pt-mobile-nav a {
        display: flex !important;
    }
}


/* Boutons Mes contrats - correction mobile */
@media (max-width: 900px) {
    .contrat-actions {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        align-items: stretch !important;
        margin: 14px 0 !important;
    }

    .contrat-actions .btn-pdf,
    .contrat-actions .btn-sign-contract,
    .contrat-actions .btn-accept {
        width: 100% !important;
        min-height: 46px !important;
        padding: 12px 14px !important;
        border-radius: 14px !important;
        text-align: center !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-decoration: none !important;
        color: #fff !important;
        font-size: 15px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
    }

    .contrat-actions .btn-pdf {
        background: linear-gradient(135deg, var(--pt-primary), #1b5d96) !important;
        box-shadow: 0 10px 18px rgba(16, 55, 92, 0.16) !important;
    }

    .contrat-actions .btn-sign-contract,
    .contrat-actions .btn-accept {
        background: linear-gradient(135deg, var(--pt-success), #29c46a) !important;
        box-shadow: 0 10px 18px rgba(31, 164, 90, 0.16) !important;
    }

    .contrat-status-signed {
        width: fit-content !important;
        max-width: 100% !important;
        padding: 8px 12px !important;
        border-radius: 999px !important;
        background: #e8f5ee !important;
        color: #17643a !important;
        font-weight: 700 !important;
    }
}

/* Sécurité navbar admin unifiée : le menu reste en panneau latéral même sur petit écran. */
@media (max-width: 900px) {
    body.admin-navbar-unified .pt-admin-topbar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 10030 !important;
        height: 54px !important;
        background: linear-gradient(90deg, #0d2b4c 0%, #123a63 100%) !important;
        border-bottom: 3px solid #21a45a !important;
        display: flex !important;
        align-items: center !important;
    }

    body.admin-navbar-unified .sidebar.admin-sidebar.pt-admin-sidebar {
        position: fixed !important;
        z-index: 10020 !important;
        top: 54px !important;
        left: 0 !important;
        width: min(82vw, 330px) !important;
        height: calc(100vh - 54px) !important;
        min-height: calc(100vh - 54px) !important;
        padding: 10px 10px 20px 10px !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        white-space: normal !important;
        display: block !important;
        background: #0d2b4c !important;
        transform: translateX(-106%) !important;
        transition: transform 0.22s ease !important;
        box-shadow: 12px 0 30px rgba(0, 0, 0, 0.22) !important;
    }

    body.admin-navbar-unified.pt-admin-menu-open .sidebar.admin-sidebar.pt-admin-sidebar {
        transform: translateX(0) !important;
    }

    body.admin-navbar-unified .sidebar.admin-sidebar.pt-admin-sidebar h2 {
        display: none !important;
    }

    body.admin-navbar-unified .content,
    body.admin-navbar-unified .main,
    body.admin-navbar-unified .main-content,
    body.admin-navbar-unified .container {
        margin-left: 0 !important;
        width: 100% !important;
        padding-top: 70px !important;
    }
}

/* =========================================================
   CORRECTIF PERFORMANCE MENU INTÉRIMAIRE - 2026-07-20
   La navbar intérimaire possède déjà son propre hamburger.
   Ce bloc neutralise les anciennes règles mobiles génériques
   qui transformaient une seconde fois la sidebar et rendaient
   l'ouverture lente/saccadée sur téléphone.
   ========================================================= */
@media (max-width: 900px) {
    body.interimaire-navbar-unified {
        padding-top: 0 !important;
    }

    /* Sécurité : aucun hamburger générique ne doit rester visible. */
    body.interimaire-navbar-unified > .mobile-menu-bar,
    body.interimaire-navbar-unified > .mobile-menu-overlay {
        display: none !important;
    }

    body.interimaire-navbar-unified .pt-inter-topbar {
        position: sticky !important;
        top: 0 !important;
        z-index: 1100 !important;
        padding: 10px 14px !important;
        box-shadow: 0 3px 10px rgba(9, 28, 49, 0.16) !important;
        contain: layout paint;
    }

    body.interimaire-navbar-unified .pt-inter-menu-toggle {
        width: 48px !important;
        height: 42px !important;
        min-height: 42px !important;
        padding: 0 !important;
        flex: 0 0 48px !important;
        transform: translateZ(0);
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }

    body.interimaire-navbar-unified .pt-inter-menu-overlay {
        position: fixed !important;
        inset: 0 !important;
        z-index: 1140 !important;
        display: block !important;
        background: rgba(6, 18, 31, 0.38) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body.interimaire-navbar-unified .pt-inter-menu-overlay[hidden] {
        display: none !important;
    }

    body.interimaire-navbar-unified .sidebar.inter-sidebar.pt-inter-sidebar {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        left: auto !important;
        width: min(86vw, 320px) !important;
        height: 100vh !important;
        height: 100dvh !important;
        min-height: 100vh !important;
        min-height: 100dvh !important;
        margin: 0 !important;
        padding: calc(72px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom)) !important;
        display: block !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        white-space: normal !important;
        background: #0f2f57 !important;
        box-shadow: -8px 0 18px rgba(9, 28, 49, 0.22) !important;
        z-index: 1150 !important;
        transform: translate3d(101%, 0, 0) !important;
        transition: transform 0.16s ease-out !important;
        will-change: transform;
        contain: layout paint;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain;
    }

    body.interimaire-navbar-unified.pt-inter-menu-open .sidebar.inter-sidebar.pt-inter-sidebar {
        transform: translate3d(0, 0, 0) !important;
    }

    body.interimaire-navbar-unified .sidebar.inter-sidebar.pt-inter-sidebar h2 {
        display: block !important;
        margin: 0 0 14px !important;
        color: #ffffff !important;
        font-size: 21px !important;
        white-space: normal !important;
    }

    body.interimaire-navbar-unified .sidebar.inter-sidebar.pt-inter-sidebar a {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        width: 100% !important;
        min-height: 44px !important;
        margin: 0 0 8px !important;
        padding: 11px 13px !important;
        flex: 0 0 auto !important;
        border-radius: 11px !important;
        border: 1px solid rgba(255, 255, 255, 0.08) !important;
        background: rgba(255, 255, 255, 0.06) !important;
        color: #ffffff !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        text-align: left !important;
        white-space: normal !important;
        box-shadow: none !important;
        transform: none !important;
        transition: background 0.10s linear, border-color 0.10s linear !important;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }

    body.interimaire-navbar-unified .sidebar.inter-sidebar.pt-inter-sidebar a.active,
    body.interimaire-navbar-unified .sidebar.inter-sidebar.pt-inter-sidebar a.mobile-menu-active,
    body.interimaire-navbar-unified .sidebar.inter-sidebar.pt-inter-sidebar a[aria-current="page"] {
        background: #eaf4ff !important;
        color: #0d2b4c !important;
        border-color: #9ac7ef !important;
        box-shadow: inset 4px 0 0 #2b79b9 !important;
    }

    body.interimaire-navbar-unified.pt-inter-menu-open {
        overflow: hidden !important;
        touch-action: none;
    }

    body.interimaire-navbar-unified.pt-inter-menu-open .sidebar.inter-sidebar.pt-inter-sidebar,
    body.interimaire-navbar-unified.pt-inter-menu-open .pt-inter-menu-toggle {
        touch-action: manipulation;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.interimaire-navbar-unified .sidebar.inter-sidebar.pt-inter-sidebar,
    body.interimaire-navbar-unified .pt-inter-menu-toggle span {
        transition-duration: 0.01ms !important;
    }
}

/* =========================================================
   CORRECTIF V2 - RÉAFFICHAGE DU BOUTON MENU INTÉRIMAIRE
   L'ancien CSS masquait le bouton dédié sur mobile car il
   comptait sur le hamburger générique. Le hamburger générique
   étant maintenant neutralisé, on réactive explicitement le
   bouton ptInterMenuToggle, sans remettre le double menu.
   ========================================================= */
@media (max-width: 900px) {
    body.interimaire-navbar-unified .pt-inter-topbar {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px !important;
        min-height: 64px !important;
        padding: 10px 14px !important;
    }

    body.interimaire-navbar-unified .pt-inter-topbar-title {
        display: block !important;
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #ffffff !important;
        font-size: 22px !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
    }

    body.interimaire-navbar-unified .pt-inter-menu-bar {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        flex: 0 0 auto !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        z-index: 1160 !important;
    }

    body.interimaire-navbar-unified .pt-inter-menu-toggle {
        display: inline-flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 5px !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 48px !important;
        height: 42px !important;
        min-width: 48px !important;
        min-height: 42px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 12px !important;
        background: rgba(255, 255, 255, 0.14) !important;
        box-shadow: none !important;
        cursor: pointer !important;
        -webkit-appearance: none !important;
        appearance: none !important;
    }

    body.interimaire-navbar-unified .pt-inter-menu-toggle span {
        display: block !important;
        width: 24px !important;
        height: 3px !important;
        min-height: 3px !important;
        margin: 0 !important;
        border-radius: 999px !important;
        background: #ffffff !important;
        opacity: 1;
    }

    body.interimaire-navbar-unified.pt-inter-menu-open .pt-inter-menu-toggle span:nth-child(1) {
        transform: translateY(8px) rotate(45deg) !important;
    }

    body.interimaire-navbar-unified.pt-inter-menu-open .pt-inter-menu-toggle span:nth-child(2) {
        opacity: 0 !important;
    }

    body.interimaire-navbar-unified.pt-inter-menu-open .pt-inter-menu-toggle span:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg) !important;
    }
}

/* =========================================================
   MODE ADMIN MOBILE RAPIDE - 2026-07-21
   Réduit le coût de rendu des longues pages sans supprimer
   les tableaux, boutons, filtres ou fonctionnalités.
   ========================================================= */
@media (max-width: 900px) {
    html {
        scroll-behavior: auto !important;
    }

    body.admin-navbar-unified,
    body.missions-fullscreen {
        background: #f4f7fb !important;
    }

    body.admin-navbar-unified .pt-admin-menu-overlay,
    body.missions-fullscreen .mission-menu-overlay {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body.admin-navbar-unified .pt-admin-topbar,
    body.admin-navbar-unified .sidebar.admin-sidebar.pt-admin-sidebar,
    body.missions-fullscreen .mission-topbar,
    body.missions-fullscreen #missionAdminSidebar {
        contain: layout paint;
    }

    body.admin-navbar-unified .sidebar.admin-sidebar.pt-admin-sidebar,
    body.missions-fullscreen #missionAdminSidebar {
        transition-duration: .12s !important;
        box-shadow: 8px 0 16px rgba(0, 0, 0, .16) !important;
    }

    body.admin-navbar-unified .content > section,
    body.admin-navbar-unified .content > .card,
    body.admin-navbar-unified .content > .box,
    body.admin-navbar-unified .content > .table-responsive,
    body.admin-navbar-unified .main > section,
    body.admin-navbar-unified .main-content > section,
    body.missions-fullscreen .content > section,
    body.missions-fullscreen .content > .card,
    body.missions-fullscreen .mission-workspace {
        content-visibility: auto;
        contain-intrinsic-size: 1px 700px;
    }

    body.admin-navbar-unified .card,
    body.admin-navbar-unified .box,
    body.admin-navbar-unified .kpi-card,
    body.admin-navbar-unified .chart-card,
    body.admin-navbar-unified .dashboard-card,
    body.admin-navbar-unified .stat-card,
    body.admin-navbar-unified .notif-item,
    body.missions-fullscreen .card,
    body.missions-fullscreen .mission-card,
    body.missions-fullscreen .day-box {
        box-shadow: 0 2px 8px rgba(13, 43, 76, .07) !important;
    }

    body.admin-navbar-unified button,
    body.admin-navbar-unified .btn,
    body.admin-navbar-unified a.btn,
    body.admin-navbar-unified .card,
    body.admin-navbar-unified .box,
    body.missions-fullscreen button,
    body.missions-fullscreen .btn,
    body.missions-fullscreen a.btn {
        animation: none !important;
        transition-duration: .08s !important;
    }

    body.admin-navbar-unified table,
    body.missions-fullscreen table {
        contain: layout style;
    }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
    body.admin-navbar-unified *,
    body.missions-fullscreen * {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
